smb2-dissector: learn the "REPLAY_OPERATION" flag
[obnox/wireshark/wip.git] / epan / dissectors / packet-x2ap.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-x2ap.c                                                              */
4 /* ../../tools/asn2wrs.py -p x2ap -c ./x2ap.cnf -s ./packet-x2ap-template -D . -O ../../epan/dissectors X2AP-CommonDataTypes.asn X2AP-Constants.asn X2AP-Containers.asn X2AP-IEs.asn X2AP-PDU-Contents.asn X2AP-PDU-Descriptions.asn */
5
6 /* Input file: packet-x2ap-template.c */
7
8 #line 1 "../../asn1/x2ap/packet-x2ap-template.c"
9 /* packet-x2ap.c
10  * Routines for dissecting Evolved Universal Terrestrial Radio Access Network (EUTRAN);
11  * X2 Application Protocol (X2AP);
12  * 3GPP TS 36.423 packet dissection
13  * Copyright 2007-2010, Anders Broman <anders.broman@ericsson.com>
14  *
15  * $Id$
16  *
17  * Wireshark - Network traffic analyzer
18  * By Gerald Combs <gerald@wireshark.org>
19  * Copyright 1998 Gerald Combs
20  *
21  * This program is free software; you can redistribute it and/or
22  * modify it under the terms of the GNU General Public License
23  * as published by the Free Software Foundation; either version 2
24  * of the License, or (at your option) any later version.
25  *
26  * This program is distributed in the hope that it will be useful,
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29  * GNU General Public License for more details.
30  *
31  * You should have received a copy of the GNU General Public License
32  * along with this program; if not, write to the Free Software
33  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
34  *
35  * Ref:
36  * 3GPP TS 36.423 V9.2.0 (2010-03)
37  */
38
39 #ifdef HAVE_CONFIG_H
40 # include "config.h"
41 #endif
42
43 #include <glib.h>
44 #include <epan/packet.h>
45
46 #include <epan/asn1.h>
47 #include <epan/prefs.h>
48 #include <epan/sctpppids.h>
49
50 #include "packet-per.h"
51 #include "packet-e212.h"
52 #include "packet-frame.h"
53 #include "packet-lte-rrc.h"
54
55 #ifdef _MSC_VER
56 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
57 #pragma warning(disable:4146)
58 #endif
59
60 #define PNAME  "EUTRAN X2 Application Protocol (X2AP)"
61 #define PSNAME "X2AP"
62 #define PFNAME "x2ap"
63
64 /* Dissector will use SCTP PPID 27 or SCTP port. IANA assigned port = 36422 */
65 #define SCTP_PORT_X2AP  36422
66
67
68 /*--- Included file: packet-x2ap-val.h ---*/
69 #line 1 "../../asn1/x2ap/packet-x2ap-val.h"
70 #define maxPrivateIEs                  65535
71 #define maxProtocolExtensions          65535
72 #define maxProtocolIEs                 65535
73 #define maxEARFCN                      65535
74 #define maxInterfaces                  16
75 #define maxCellineNB                   256
76 #define maxnoofBearers                 256
77 #define maxNrOfErrors                  256
78 #define maxnoofPDCP_SN                 16
79 #define maxnoofEPLMNs                  15
80 #define maxnoofEPLMNsPlusOne           16
81 #define maxnoofForbLACs                4096
82 #define maxnoofForbTACs                4096
83 #define maxnoofBPLMNs                  6
84 #define maxnoofNeighbours              512
85 #define maxnoofPRBs                    110
86 #define maxPools                       16
87 #define maxnoofCells                   16
88 #define maxnoofMBSFN                   8
89 #define maxFailedMeasObjects           32
90 #define maxnoofCellIDforMDT            32
91 #define maxnoofTAforMDT                8
92
93 typedef enum _ProcedureCode_enum {
94   id_handoverPreparation =   0,
95   id_handoverCancel =   1,
96   id_loadIndication =   2,
97   id_errorIndication =   3,
98   id_snStatusTransfer =   4,
99   id_uEContextRelease =   5,
100   id_x2Setup   =   6,
101   id_reset     =   7,
102   id_eNBConfigurationUpdate =   8,
103   id_resourceStatusReportingInitiation =   9,
104   id_resourceStatusReporting =  10,
105   id_privateMessage =  11,
106   id_mobilitySettingsChange =  12,
107   id_rLFIndication =  13,
108   id_handoverReport =  14,
109   id_cellActivation =  15
110 } ProcedureCode_enum;
111
112 typedef enum _ProtocolIE_ID_enum {
113   id_E_RABs_Admitted_Item =   0,
114   id_E_RABs_Admitted_List =   1,
115   id_E_RAB_Item =   2,
116   id_E_RABs_NotAdmitted_List =   3,
117   id_E_RABs_ToBeSetup_Item =   4,
118   id_Cause     =   5,
119   id_CellInformation =   6,
120   id_CellInformation_Item =   7,
121   id_New_eNB_UE_X2AP_ID =   9,
122   id_Old_eNB_UE_X2AP_ID =  10,
123   id_TargetCell_ID =  11,
124   id_TargeteNBtoSource_eNBTransparentContainer =  12,
125   id_TraceActivation =  13,
126   id_UE_ContextInformation =  14,
127   id_UE_HistoryInformation =  15,
128   id_UE_X2AP_ID =  16,
129   id_CriticalityDiagnostics =  17,
130   id_E_RABs_SubjectToStatusTransfer_List =  18,
131   id_E_RABs_SubjectToStatusTransfer_Item =  19,
132   id_ServedCells =  20,
133   id_GlobalENB_ID =  21,
134   id_TimeToWait =  22,
135   id_GUMMEI_ID =  23,
136   id_GUGroupIDList =  24,
137   id_ServedCellsToAdd =  25,
138   id_ServedCellsToModify =  26,
139   id_ServedCellsToDelete =  27,
140   id_Registration_Request =  28,
141   id_CellToReport =  29,
142   id_ReportingPeriodicity =  30,
143   id_CellToReport_Item =  31,
144   id_CellMeasurementResult =  32,
145   id_CellMeasurementResult_Item =  33,
146   id_GUGroupIDToAddList =  34,
147   id_GUGroupIDToDeleteList =  35,
148   id_SRVCCOperationPossible =  36,
149   id_Measurement_ID =  37,
150   id_ReportCharacteristics =  38,
151   id_ENB1_Measurement_ID =  39,
152   id_ENB2_Measurement_ID =  40,
153   id_Number_of_Antennaports =  41,
154   id_CompositeAvailableCapacityGroup =  42,
155   id_ENB1_Cell_ID =  43,
156   id_ENB2_Cell_ID =  44,
157   id_ENB2_Proposed_Mobility_Parameters =  45,
158   id_ENB1_Mobility_Parameters =  46,
159   id_ENB2_Mobility_Parameters_Modification_Range =  47,
160   id_FailureCellPCI =  48,
161   id_Re_establishmentCellECGI =  49,
162   id_FailureCellCRNTI =  50,
163   id_ShortMAC_I =  51,
164   id_SourceCellECGI =  52,
165   id_FailureCellECGI =  53,
166   id_HandoverReportType =  54,
167   id_PRACH_Configuration =  55,
168   id_MBSFN_Subframe_Info =  56,
169   id_ServedCellsToActivate =  57,
170   id_ActivatedCellList =  58,
171   id_DeactivationIndication =  59,
172   id_UE_RLF_Report_Container =  60,
173   id_ABSInformation =  61,
174   id_InvokeIndication =  62,
175   id_ABS_Status =  63,
176   id_PartialSuccessIndicator =  64,
177   id_MeasurementInitiationResult_List =  65,
178   id_MeasurementInitiationResult_Item =  66,
179   id_MeasurementFailureCause_Item =  67,
180   id_CompleteFailureCauseInformation_List =  68,
181   id_CompleteFailureCauseInformation_Item =  69,
182   id_CSG_Id    =  70,
183   id_CSGMembershipStatus =  71,
184   id_MDTConfiguration =  72,
185   id_ManagementBasedMDTallowed =  74,
186   id_RRCConnSetupIndicator =  75
187 } ProtocolIE_ID_enum;
188
189 /*--- End of included file: packet-x2ap-val.h ---*/
190 #line 60 "../../asn1/x2ap/packet-x2ap-template.c"
191
192 /* Initialize the protocol and registered fields */
193 static int proto_x2ap = -1;
194 static int hf_x2ap_transportLayerAddressIPv4 = -1;
195 static int hf_x2ap_transportLayerAddressIPv6 = -1;
196
197 /*--- Included file: packet-x2ap-hf.c ---*/
198 #line 1 "../../asn1/x2ap/packet-x2ap-hf.c"
199 static int hf_x2ap_ABSInformation_PDU = -1;       /* ABSInformation */
200 static int hf_x2ap_ABS_Status_PDU = -1;           /* ABS_Status */
201 static int hf_x2ap_Cause_PDU = -1;                /* Cause */
202 static int hf_x2ap_CompositeAvailableCapacityGroup_PDU = -1;  /* CompositeAvailableCapacityGroup */
203 static int hf_x2ap_CriticalityDiagnostics_PDU = -1;  /* CriticalityDiagnostics */
204 static int hf_x2ap_CRNTI_PDU = -1;                /* CRNTI */
205 static int hf_x2ap_CSGMembershipStatus_PDU = -1;  /* CSGMembershipStatus */
206 static int hf_x2ap_CSG_Id_PDU = -1;               /* CSG_Id */
207 static int hf_x2ap_DeactivationIndication_PDU = -1;  /* DeactivationIndication */
208 static int hf_x2ap_ECGI_PDU = -1;                 /* ECGI */
209 static int hf_x2ap_E_RAB_List_PDU = -1;           /* E_RAB_List */
210 static int hf_x2ap_E_RAB_Item_PDU = -1;           /* E_RAB_Item */
211 static int hf_x2ap_GlobalENB_ID_PDU = -1;         /* GlobalENB_ID */
212 static int hf_x2ap_GUGroupIDList_PDU = -1;        /* GUGroupIDList */
213 static int hf_x2ap_GUMMEI_PDU = -1;               /* GUMMEI */
214 static int hf_x2ap_HandoverReportType_PDU = -1;   /* HandoverReportType */
215 static int hf_x2ap_InvokeIndication_PDU = -1;     /* InvokeIndication */
216 static int hf_x2ap_MDT_Configuration_PDU = -1;    /* MDT_Configuration */
217 static int hf_x2ap_Measurement_ID_PDU = -1;       /* Measurement_ID */
218 static int hf_x2ap_MBSFN_Subframe_Infolist_PDU = -1;  /* MBSFN_Subframe_Infolist */
219 static int hf_x2ap_ManagementBasedMDTallowed_PDU = -1;  /* ManagementBasedMDTallowed */
220 static int hf_x2ap_MobilityParametersModificationRange_PDU = -1;  /* MobilityParametersModificationRange */
221 static int hf_x2ap_MobilityParametersInformation_PDU = -1;  /* MobilityParametersInformation */
222 static int hf_x2ap_Number_of_Antennaports_PDU = -1;  /* Number_of_Antennaports */
223 static int hf_x2ap_PCI_PDU = -1;                  /* PCI */
224 static int hf_x2ap_PRACH_Configuration_PDU = -1;  /* PRACH_Configuration */
225 static int hf_x2ap_Registration_Request_PDU = -1;  /* Registration_Request */
226 static int hf_x2ap_ReportCharacteristics_PDU = -1;  /* ReportCharacteristics */
227 static int hf_x2ap_RRCConnSetupIndicator_PDU = -1;  /* RRCConnSetupIndicator */
228 static int hf_x2ap_ServedCells_PDU = -1;          /* ServedCells */
229 static int hf_x2ap_ShortMAC_I_PDU = -1;           /* ShortMAC_I */
230 static int hf_x2ap_SRVCCOperationPossible_PDU = -1;  /* SRVCCOperationPossible */
231 static int hf_x2ap_TargeteNBtoSource_eNBTransparentContainer_PDU = -1;  /* TargeteNBtoSource_eNBTransparentContainer */
232 static int hf_x2ap_TimeToWait_PDU = -1;           /* TimeToWait */
233 static int hf_x2ap_TraceActivation_PDU = -1;      /* TraceActivation */
234 static int hf_x2ap_UE_HistoryInformation_PDU = -1;  /* UE_HistoryInformation */
235 static int hf_x2ap_UE_X2AP_ID_PDU = -1;           /* UE_X2AP_ID */
236 static int hf_x2ap_UE_RLF_Report_Container_PDU = -1;  /* UE_RLF_Report_Container */
237 static int hf_x2ap_HandoverRequest_PDU = -1;      /* HandoverRequest */
238 static int hf_x2ap_UE_ContextInformation_PDU = -1;  /* UE_ContextInformation */
239 static int hf_x2ap_E_RABs_ToBeSetup_Item_PDU = -1;  /* E_RABs_ToBeSetup_Item */
240 static int hf_x2ap_HandoverRequestAcknowledge_PDU = -1;  /* HandoverRequestAcknowledge */
241 static int hf_x2ap_E_RABs_Admitted_List_PDU = -1;  /* E_RABs_Admitted_List */
242 static int hf_x2ap_E_RABs_Admitted_Item_PDU = -1;  /* E_RABs_Admitted_Item */
243 static int hf_x2ap_HandoverPreparationFailure_PDU = -1;  /* HandoverPreparationFailure */
244 static int hf_x2ap_HandoverReport_PDU = -1;       /* HandoverReport */
245 static int hf_x2ap_SNStatusTransfer_PDU = -1;     /* SNStatusTransfer */
246 static int hf_x2ap_E_RABs_SubjectToStatusTransfer_List_PDU = -1;  /* E_RABs_SubjectToStatusTransfer_List */
247 static int hf_x2ap_E_RABs_SubjectToStatusTransfer_Item_PDU = -1;  /* E_RABs_SubjectToStatusTransfer_Item */
248 static int hf_x2ap_UEContextRelease_PDU = -1;     /* UEContextRelease */
249 static int hf_x2ap_HandoverCancel_PDU = -1;       /* HandoverCancel */
250 static int hf_x2ap_ErrorIndication_PDU = -1;      /* ErrorIndication */
251 static int hf_x2ap_ResetRequest_PDU = -1;         /* ResetRequest */
252 static int hf_x2ap_ResetResponse_PDU = -1;        /* ResetResponse */
253 static int hf_x2ap_X2SetupRequest_PDU = -1;       /* X2SetupRequest */
254 static int hf_x2ap_X2SetupResponse_PDU = -1;      /* X2SetupResponse */
255 static int hf_x2ap_X2SetupFailure_PDU = -1;       /* X2SetupFailure */
256 static int hf_x2ap_LoadInformation_PDU = -1;      /* LoadInformation */
257 static int hf_x2ap_CellInformation_List_PDU = -1;  /* CellInformation_List */
258 static int hf_x2ap_CellInformation_Item_PDU = -1;  /* CellInformation_Item */
259 static int hf_x2ap_ENBConfigurationUpdate_PDU = -1;  /* ENBConfigurationUpdate */
260 static int hf_x2ap_ServedCellsToModify_PDU = -1;  /* ServedCellsToModify */
261 static int hf_x2ap_Old_ECGIs_PDU = -1;            /* Old_ECGIs */
262 static int hf_x2ap_ENBConfigurationUpdateAcknowledge_PDU = -1;  /* ENBConfigurationUpdateAcknowledge */
263 static int hf_x2ap_ENBConfigurationUpdateFailure_PDU = -1;  /* ENBConfigurationUpdateFailure */
264 static int hf_x2ap_ResourceStatusRequest_PDU = -1;  /* ResourceStatusRequest */
265 static int hf_x2ap_CellToReport_List_PDU = -1;    /* CellToReport_List */
266 static int hf_x2ap_CellToReport_Item_PDU = -1;    /* CellToReport_Item */
267 static int hf_x2ap_ReportingPeriodicity_PDU = -1;  /* ReportingPeriodicity */
268 static int hf_x2ap_PartialSuccessIndicator_PDU = -1;  /* PartialSuccessIndicator */
269 static int hf_x2ap_ResourceStatusResponse_PDU = -1;  /* ResourceStatusResponse */
270 static int hf_x2ap_MeasurementInitiationResult_List_PDU = -1;  /* MeasurementInitiationResult_List */
271 static int hf_x2ap_MeasurementInitiationResult_Item_PDU = -1;  /* MeasurementInitiationResult_Item */
272 static int hf_x2ap_MeasurementFailureCause_Item_PDU = -1;  /* MeasurementFailureCause_Item */
273 static int hf_x2ap_ResourceStatusFailure_PDU = -1;  /* ResourceStatusFailure */
274 static int hf_x2ap_CompleteFailureCauseInformation_List_PDU = -1;  /* CompleteFailureCauseInformation_List */
275 static int hf_x2ap_CompleteFailureCauseInformation_Item_PDU = -1;  /* CompleteFailureCauseInformation_Item */
276 static int hf_x2ap_ResourceStatusUpdate_PDU = -1;  /* ResourceStatusUpdate */
277 static int hf_x2ap_CellMeasurementResult_List_PDU = -1;  /* CellMeasurementResult_List */
278 static int hf_x2ap_CellMeasurementResult_Item_PDU = -1;  /* CellMeasurementResult_Item */
279 static int hf_x2ap_PrivateMessage_PDU = -1;       /* PrivateMessage */
280 static int hf_x2ap_MobilityChangeRequest_PDU = -1;  /* MobilityChangeRequest */
281 static int hf_x2ap_MobilityChangeAcknowledge_PDU = -1;  /* MobilityChangeAcknowledge */
282 static int hf_x2ap_MobilityChangeFailure_PDU = -1;  /* MobilityChangeFailure */
283 static int hf_x2ap_RLFIndication_PDU = -1;        /* RLFIndication */
284 static int hf_x2ap_CellActivationRequest_PDU = -1;  /* CellActivationRequest */
285 static int hf_x2ap_ServedCellsToActivate_PDU = -1;  /* ServedCellsToActivate */
286 static int hf_x2ap_CellActivationResponse_PDU = -1;  /* CellActivationResponse */
287 static int hf_x2ap_ActivatedCellList_PDU = -1;    /* ActivatedCellList */
288 static int hf_x2ap_CellActivationFailure_PDU = -1;  /* CellActivationFailure */
289 static int hf_x2ap_X2AP_PDU_PDU = -1;             /* X2AP_PDU */
290 static int hf_x2ap_local = -1;                    /* INTEGER_0_maxPrivateIEs */
291 static int hf_x2ap_global = -1;                   /* OBJECT_IDENTIFIER */
292 static int hf_x2ap_ProtocolIE_Container_item = -1;  /* ProtocolIE_Field */
293 static int hf_x2ap_id = -1;                       /* ProtocolIE_ID */
294 static int hf_x2ap_criticality = -1;              /* Criticality */
295 static int hf_x2ap_protocolIE_Field_value = -1;   /* ProtocolIE_Field_value */
296 static int hf_x2ap_ProtocolExtensionContainer_item = -1;  /* ProtocolExtensionField */
297 static int hf_x2ap_extension_id = -1;             /* ProtocolIE_ID */
298 static int hf_x2ap_extensionValue = -1;           /* T_extensionValue */
299 static int hf_x2ap_PrivateIE_Container_item = -1;  /* PrivateIE_Field */
300 static int hf_x2ap_private_id = -1;               /* PrivateIE_ID */
301 static int hf_x2ap_privateIE_Field_value = -1;    /* PrivateIE_Field_value */
302 static int hf_x2ap_fdd = -1;                      /* ABSInformationFDD */
303 static int hf_x2ap_tdd = -1;                      /* ABSInformationTDD */
304 static int hf_x2ap_abs_inactive = -1;             /* NULL */
305 static int hf_x2ap_abs_pattern_info = -1;         /* BIT_STRING_SIZE_40 */
306 static int hf_x2ap_numberOfCellSpecificAntennaPorts = -1;  /* T_numberOfCellSpecificAntennaPorts */
307 static int hf_x2ap_measurement_subset = -1;       /* BIT_STRING_SIZE_40 */
308 static int hf_x2ap_iE_Extensions = -1;            /* ProtocolExtensionContainer */
309 static int hf_x2ap_abs_pattern_info_01 = -1;      /* BIT_STRING_SIZE_1_70_ */
310 static int hf_x2ap_numberOfCellSpecificAntennaPorts_01 = -1;  /* T_numberOfCellSpecificAntennaPorts_01 */
311 static int hf_x2ap_measurement_subset_01 = -1;    /* BIT_STRING_SIZE_1_70_ */
312 static int hf_x2ap_dL_ABS_status = -1;            /* DL_ABS_status */
313 static int hf_x2ap_usableABSInformation = -1;     /* UsableABSInformation */
314 static int hf_x2ap_key_eNodeB_star = -1;          /* Key_eNodeB_Star */
315 static int hf_x2ap_nextHopChainingCount = -1;     /* NextHopChainingCount */
316 static int hf_x2ap_priorityLevel = -1;            /* PriorityLevel */
317 static int hf_x2ap_pre_emptionCapability = -1;    /* Pre_emptionCapability */
318 static int hf_x2ap_pre_emptionVulnerability = -1;  /* Pre_emptionVulnerability */
319 static int hf_x2ap_cellBased = -1;                /* CellBasedMDT */
320 static int hf_x2ap_tABased = -1;                  /* TABasedMDT */
321 static int hf_x2ap_pLMNWide = -1;                 /* NULL */
322 static int hf_x2ap_BroadcastPLMNs_Item_item = -1;  /* PLMN_Identity */
323 static int hf_x2ap_radioNetwork = -1;             /* CauseRadioNetwork */
324 static int hf_x2ap_transport = -1;                /* CauseTransport */
325 static int hf_x2ap_protocol = -1;                 /* CauseProtocol */
326 static int hf_x2ap_misc = -1;                     /* CauseMisc */
327 static int hf_x2ap_cellIdListforMDT = -1;         /* CellIdListforMDT */
328 static int hf_x2ap_CellIdListforMDT_item = -1;    /* ECGI */
329 static int hf_x2ap_cell_Size = -1;                /* Cell_Size */
330 static int hf_x2ap_dL_CompositeAvailableCapacity = -1;  /* CompositeAvailableCapacity */
331 static int hf_x2ap_uL_CompositeAvailableCapacity = -1;  /* CompositeAvailableCapacity */
332 static int hf_x2ap_cellCapacityClassValue = -1;   /* CellCapacityClassValue */
333 static int hf_x2ap_capacityValue = -1;            /* CapacityValue */
334 static int hf_x2ap_pDCP_SN = -1;                  /* PDCP_SN */
335 static int hf_x2ap_hFN = -1;                      /* HFN */
336 static int hf_x2ap_procedureCode = -1;            /* ProcedureCode */
337 static int hf_x2ap_triggeringMessage = -1;        /* TriggeringMessage */
338 static int hf_x2ap_procedureCriticality = -1;     /* Criticality */
339 static int hf_x2ap_iEsCriticalityDiagnostics = -1;  /* CriticalityDiagnostics_IE_List */
340 static int hf_x2ap_CriticalityDiagnostics_IE_List_item = -1;  /* CriticalityDiagnostics_IE_List_item */
341 static int hf_x2ap_iECriticality = -1;            /* Criticality */
342 static int hf_x2ap_iE_ID = -1;                    /* ProtocolIE_ID */
343 static int hf_x2ap_typeOfError = -1;              /* TypeOfError */
344 static int hf_x2ap_uL_EARFCN = -1;                /* EARFCN */
345 static int hf_x2ap_dL_EARFCN = -1;                /* EARFCN */
346 static int hf_x2ap_uL_Transmission_Bandwidth = -1;  /* Transmission_Bandwidth */
347 static int hf_x2ap_dL_Transmission_Bandwidth = -1;  /* Transmission_Bandwidth */
348 static int hf_x2ap_eARFCN = -1;                   /* EARFCN */
349 static int hf_x2ap_transmission_Bandwidth = -1;   /* Transmission_Bandwidth */
350 static int hf_x2ap_subframeAssignment = -1;       /* SubframeAssignment */
351 static int hf_x2ap_specialSubframe_Info = -1;     /* SpecialSubframe_Info */
352 static int hf_x2ap_fDD = -1;                      /* FDD_Info */
353 static int hf_x2ap_tDD = -1;                      /* TDD_Info */
354 static int hf_x2ap_pLMN_Identity = -1;            /* PLMN_Identity */
355 static int hf_x2ap_eUTRANcellIdentifier = -1;     /* EUTRANCellIdentifier */
356 static int hf_x2ap_macro_eNB_ID = -1;             /* BIT_STRING_SIZE_20 */
357 static int hf_x2ap_home_eNB_ID = -1;              /* BIT_STRING_SIZE_28 */
358 static int hf_x2ap_EPLMNs_item = -1;              /* PLMN_Identity */
359 static int hf_x2ap_qCI = -1;                      /* QCI */
360 static int hf_x2ap_allocationAndRetentionPriority = -1;  /* AllocationAndRetentionPriority */
361 static int hf_x2ap_gbrQosInformation = -1;        /* GBR_QosInformation */
362 static int hf_x2ap_E_RAB_List_item = -1;          /* ProtocolIE_Single_Container */
363 static int hf_x2ap_e_RAB_ID = -1;                 /* E_RAB_ID */
364 static int hf_x2ap_cause = -1;                    /* Cause */
365 static int hf_x2ap_ForbiddenTAs_item = -1;        /* ForbiddenTAs_Item */
366 static int hf_x2ap_forbiddenTACs = -1;            /* ForbiddenTACs */
367 static int hf_x2ap_ForbiddenTACs_item = -1;       /* TAC */
368 static int hf_x2ap_ForbiddenLAs_item = -1;        /* ForbiddenLAs_Item */
369 static int hf_x2ap_forbiddenLACs = -1;            /* ForbiddenLACs */
370 static int hf_x2ap_ForbiddenLACs_item = -1;       /* LAC */
371 static int hf_x2ap_e_RAB_MaximumBitrateDL = -1;   /* BitRate */
372 static int hf_x2ap_e_RAB_MaximumBitrateUL = -1;   /* BitRate */
373 static int hf_x2ap_e_RAB_GuaranteedBitrateDL = -1;  /* BitRate */
374 static int hf_x2ap_e_RAB_GuaranteedBitrateUL = -1;  /* BitRate */
375 static int hf_x2ap_eNB_ID = -1;                   /* ENB_ID */
376 static int hf_x2ap_transportLayerAddress = -1;    /* TransportLayerAddress */
377 static int hf_x2ap_gTP_TEID = -1;                 /* GTP_TEI */
378 static int hf_x2ap_GUGroupIDList_item = -1;       /* GU_Group_ID */
379 static int hf_x2ap_mME_Group_ID = -1;             /* MME_Group_ID */
380 static int hf_x2ap_gU_Group_ID = -1;              /* GU_Group_ID */
381 static int hf_x2ap_mME_Code = -1;                 /* MME_Code */
382 static int hf_x2ap_servingPLMN = -1;              /* PLMN_Identity */
383 static int hf_x2ap_equivalentPLMNs = -1;          /* EPLMNs */
384 static int hf_x2ap_forbiddenTAs = -1;             /* ForbiddenTAs */
385 static int hf_x2ap_forbiddenLAs = -1;             /* ForbiddenLAs */
386 static int hf_x2ap_forbiddenInterRATs = -1;       /* ForbiddenInterRATs */
387 static int hf_x2ap_dLHWLoadIndicator = -1;        /* LoadIndicator */
388 static int hf_x2ap_uLHWLoadIndicator = -1;        /* LoadIndicator */
389 static int hf_x2ap_e_UTRAN_Cell = -1;             /* LastVisitedEUTRANCellInformation */
390 static int hf_x2ap_uTRAN_Cell = -1;               /* LastVisitedUTRANCellInformation */
391 static int hf_x2ap_gERAN_Cell = -1;               /* LastVisitedGERANCellInformation */
392 static int hf_x2ap_global_Cell_ID = -1;           /* ECGI */
393 static int hf_x2ap_cellType = -1;                 /* CellType */
394 static int hf_x2ap_time_UE_StayedInCell = -1;     /* Time_UE_StayedInCell */
395 static int hf_x2ap_undefined = -1;                /* NULL */
396 static int hf_x2ap_eventType = -1;                /* EventType */
397 static int hf_x2ap_reportArea = -1;               /* ReportArea */
398 static int hf_x2ap_mdt_Activation = -1;           /* MDT_Activation */
399 static int hf_x2ap_areaScopeOfMDT = -1;           /* AreaScopeOfMDT */
400 static int hf_x2ap_measurementsToActivate = -1;   /* MeasurementsToActivate */
401 static int hf_x2ap_reportingTriggerMDT = -1;      /* ReportingTriggerMDT */
402 static int hf_x2ap_thresholdeventA2 = -1;         /* ThresholdEventA2 */
403 static int hf_x2ap_periodicReportingMDT = -1;     /* PeriodicReportingMDT */
404 static int hf_x2ap_threshold_RSRP = -1;           /* Threshold_RSRP */
405 static int hf_x2ap_threshold_RSRQ = -1;           /* Threshold_RSRQ */
406 static int hf_x2ap_MBSFN_Subframe_Infolist_item = -1;  /* MBSFN_Subframe_Info */
407 static int hf_x2ap_radioframeAllocationPeriod = -1;  /* RadioframeAllocationPeriod */
408 static int hf_x2ap_radioframeAllocationOffset = -1;  /* RadioframeAllocationOffset */
409 static int hf_x2ap_subframeAllocation = -1;       /* SubframeAllocation */
410 static int hf_x2ap_handoverTriggerChangeLowerLimit = -1;  /* INTEGER_M20_20 */
411 static int hf_x2ap_handoverTriggerChangeUpperLimit = -1;  /* INTEGER_M20_20 */
412 static int hf_x2ap_handoverTriggerChange = -1;    /* INTEGER_M20_20 */
413 static int hf_x2ap_Neighbour_Information_item = -1;  /* Neighbour_Information_item */
414 static int hf_x2ap_eCGI = -1;                     /* ECGI */
415 static int hf_x2ap_pCI = -1;                      /* PCI */
416 static int hf_x2ap_reportInterval = -1;           /* ReportIntervalMDT */
417 static int hf_x2ap_reportAmount = -1;             /* ReportAmountMDT */
418 static int hf_x2ap_rootSequenceIndex = -1;        /* INTEGER_0_837 */
419 static int hf_x2ap_zeroCorrelationIndex = -1;     /* INTEGER_0_15 */
420 static int hf_x2ap_highSpeedFlag = -1;            /* BOOLEAN */
421 static int hf_x2ap_prach_FreqOffset = -1;         /* INTEGER_0_94 */
422 static int hf_x2ap_prach_ConfigIndex = -1;        /* INTEGER_0_63 */
423 static int hf_x2ap_dL_GBR_PRB_usage = -1;         /* DL_GBR_PRB_usage */
424 static int hf_x2ap_uL_GBR_PRB_usage = -1;         /* UL_GBR_PRB_usage */
425 static int hf_x2ap_dL_non_GBR_PRB_usage = -1;     /* DL_non_GBR_PRB_usage */
426 static int hf_x2ap_uL_non_GBR_PRB_usage = -1;     /* UL_non_GBR_PRB_usage */
427 static int hf_x2ap_dL_Total_PRB_usage = -1;       /* DL_Total_PRB_usage */
428 static int hf_x2ap_uL_Total_PRB_usage = -1;       /* UL_Total_PRB_usage */
429 static int hf_x2ap_rNTP_PerPRB = -1;              /* BIT_STRING_SIZE_6_110_ */
430 static int hf_x2ap_rNTP_Threshold = -1;           /* RNTP_Threshold */
431 static int hf_x2ap_numberOfCellSpecificAntennaPorts_02 = -1;  /* T_numberOfCellSpecificAntennaPorts_02 */
432 static int hf_x2ap_p_B = -1;                      /* INTEGER_0_3_ */
433 static int hf_x2ap_pDCCH_InterferenceImpact = -1;  /* INTEGER_0_4_ */
434 static int hf_x2ap_dLS1TNLLoadIndicator = -1;     /* LoadIndicator */
435 static int hf_x2ap_uLS1TNLLoadIndicator = -1;     /* LoadIndicator */
436 static int hf_x2ap_ServedCells_item = -1;         /* ServedCells_item */
437 static int hf_x2ap_servedCellInfo = -1;           /* ServedCell_Information */
438 static int hf_x2ap_neighbour_Info = -1;           /* Neighbour_Information */
439 static int hf_x2ap_cellId = -1;                   /* ECGI */
440 static int hf_x2ap_tAC = -1;                      /* TAC */
441 static int hf_x2ap_broadcastPLMNs = -1;           /* BroadcastPLMNs_Item */
442 static int hf_x2ap_eUTRA_Mode_Info = -1;          /* EUTRA_Mode_Info */
443 static int hf_x2ap_specialSubframePatterns = -1;  /* SpecialSubframePatterns */
444 static int hf_x2ap_cyclicPrefixDL = -1;           /* CyclicPrefixDL */
445 static int hf_x2ap_cyclicPrefixUL = -1;           /* CyclicPrefixUL */
446 static int hf_x2ap_oneframe = -1;                 /* Oneframe */
447 static int hf_x2ap_fourframes = -1;               /* Fourframes */
448 static int hf_x2ap_tAListforMDT = -1;             /* TAListforMDT */
449 static int hf_x2ap_TAListforMDT_item = -1;        /* TAC */
450 static int hf_x2ap_measurementThreshold = -1;     /* MeasurementThresholdA2 */
451 static int hf_x2ap_eUTRANTraceID = -1;            /* EUTRANTraceID */
452 static int hf_x2ap_interfacesToTrace = -1;        /* InterfacesToTrace */
453 static int hf_x2ap_traceDepth = -1;               /* TraceDepth */
454 static int hf_x2ap_traceCollectionEntityIPAddress = -1;  /* TraceCollectionEntityIPAddress */
455 static int hf_x2ap_UE_HistoryInformation_item = -1;  /* LastVisitedCell_Item */
456 static int hf_x2ap_uEaggregateMaximumBitRateDownlink = -1;  /* BitRate */
457 static int hf_x2ap_uEaggregateMaximumBitRateUplink = -1;  /* BitRate */
458 static int hf_x2ap_encryptionAlgorithms = -1;     /* EncryptionAlgorithms */
459 static int hf_x2ap_integrityProtectionAlgorithms = -1;  /* IntegrityProtectionAlgorithms */
460 static int hf_x2ap_UL_InterferenceOverloadIndication_item = -1;  /* UL_InterferenceOverloadIndication_Item */
461 static int hf_x2ap_UL_HighInterferenceIndicationInfo_item = -1;  /* UL_HighInterferenceIndicationInfo_Item */
462 static int hf_x2ap_target_Cell_ID = -1;           /* ECGI */
463 static int hf_x2ap_ul_interferenceindication = -1;  /* UL_HighInterferenceIndication */
464 static int hf_x2ap_fdd_01 = -1;                   /* UsableABSInformationFDD */
465 static int hf_x2ap_tdd_01 = -1;                   /* UsableABSInformationTDD */
466 static int hf_x2ap_usable_abs_pattern_info = -1;  /* BIT_STRING_SIZE_40 */
467 static int hf_x2ap_usaable_abs_pattern_info = -1;  /* BIT_STRING_SIZE_1_70_ */
468 static int hf_x2ap_protocolIEs = -1;              /* ProtocolIE_Container */
469 static int hf_x2ap_mME_UE_S1AP_ID = -1;           /* UE_S1AP_ID */
470 static int hf_x2ap_uESecurityCapabilities = -1;   /* UESecurityCapabilities */
471 static int hf_x2ap_aS_SecurityInformation = -1;   /* AS_SecurityInformation */
472 static int hf_x2ap_uEaggregateMaximumBitRate = -1;  /* UEAggregateMaximumBitRate */
473 static int hf_x2ap_subscriberProfileIDforRFP = -1;  /* SubscriberProfileIDforRFP */
474 static int hf_x2ap_e_RABs_ToBeSetup_List = -1;    /* E_RABs_ToBeSetup_List */
475 static int hf_x2ap_rRC_Context = -1;              /* RRC_Context */
476 static int hf_x2ap_handoverRestrictionList = -1;  /* HandoverRestrictionList */
477 static int hf_x2ap_locationReportingInformation = -1;  /* LocationReportingInformation */
478 static int hf_x2ap_E_RABs_ToBeSetup_List_item = -1;  /* ProtocolIE_Single_Container */
479 static int hf_x2ap_e_RAB_Level_QoS_Parameters = -1;  /* E_RAB_Level_QoS_Parameters */
480 static int hf_x2ap_dL_Forwarding = -1;            /* DL_Forwarding */
481 static int hf_x2ap_uL_GTPtunnelEndpoint = -1;     /* GTPtunnelEndpoint */
482 static int hf_x2ap_E_RABs_Admitted_List_item = -1;  /* ProtocolIE_Single_Container */
483 static int hf_x2ap_uL_GTP_TunnelEndpoint = -1;    /* GTPtunnelEndpoint */
484 static int hf_x2ap_dL_GTP_TunnelEndpoint = -1;    /* GTPtunnelEndpoint */
485 static int hf_x2ap_E_RABs_SubjectToStatusTransfer_List_item = -1;  /* ProtocolIE_Single_Container */
486 static int hf_x2ap_receiveStatusofULPDCPSDUs = -1;  /* ReceiveStatusofULPDCPSDUs */
487 static int hf_x2ap_uL_COUNTvalue = -1;            /* COUNTvalue */
488 static int hf_x2ap_dL_COUNTvalue = -1;            /* COUNTvalue */
489 static int hf_x2ap_CellInformation_List_item = -1;  /* ProtocolIE_Single_Container */
490 static int hf_x2ap_cell_ID = -1;                  /* ECGI */
491 static int hf_x2ap_ul_InterferenceOverloadIndication = -1;  /* UL_InterferenceOverloadIndication */
492 static int hf_x2ap_ul_HighInterferenceIndicationInfo = -1;  /* UL_HighInterferenceIndicationInfo */
493 static int hf_x2ap_relativeNarrowbandTxPower = -1;  /* RelativeNarrowbandTxPower */
494 static int hf_x2ap_ServedCellsToModify_item = -1;  /* ServedCellsToModify_Item */
495 static int hf_x2ap_old_ecgi = -1;                 /* ECGI */
496 static int hf_x2ap_Old_ECGIs_item = -1;           /* ECGI */
497 static int hf_x2ap_CellToReport_List_item = -1;   /* ProtocolIE_Single_Container */
498 static int hf_x2ap_MeasurementInitiationResult_List_item = -1;  /* ProtocolIE_Single_Container */
499 static int hf_x2ap_measurementFailureCause_List = -1;  /* MeasurementFailureCause_List */
500 static int hf_x2ap_MeasurementFailureCause_List_item = -1;  /* ProtocolIE_Single_Container */
501 static int hf_x2ap_measurementFailedReportCharacteristics = -1;  /* ReportCharacteristics */
502 static int hf_x2ap_CompleteFailureCauseInformation_List_item = -1;  /* ProtocolIE_Single_Container */
503 static int hf_x2ap_CellMeasurementResult_List_item = -1;  /* ProtocolIE_Single_Container */
504 static int hf_x2ap_hWLoadIndicator = -1;          /* HWLoadIndicator */
505 static int hf_x2ap_s1TNLLoadIndicator = -1;       /* S1TNLLoadIndicator */
506 static int hf_x2ap_radioResourceStatus = -1;      /* RadioResourceStatus */
507 static int hf_x2ap_privateIEs = -1;               /* PrivateIE_Container */
508 static int hf_x2ap_ServedCellsToActivate_item = -1;  /* ServedCellsToActivate_Item */
509 static int hf_x2ap_ecgi = -1;                     /* ECGI */
510 static int hf_x2ap_ActivatedCellList_item = -1;   /* ActivatedCellList_Item */
511 static int hf_x2ap_initiatingMessage = -1;        /* InitiatingMessage */
512 static int hf_x2ap_successfulOutcome = -1;        /* SuccessfulOutcome */
513 static int hf_x2ap_unsuccessfulOutcome = -1;      /* UnsuccessfulOutcome */
514 static int hf_x2ap_initiatingMessage_value = -1;  /* InitiatingMessage_value */
515 static int hf_x2ap_successfulOutcome_value = -1;  /* SuccessfulOutcome_value */
516 static int hf_x2ap_value = -1;                    /* UnsuccessfulOutcome_value */
517
518 /*--- End of included file: packet-x2ap-hf.c ---*/
519 #line 66 "../../asn1/x2ap/packet-x2ap-template.c"
520
521 /* Initialize the subtree pointers */
522 static int ett_x2ap = -1;
523 static int ett_x2ap_TransportLayerAddress = -1;
524
525 /*--- Included file: packet-x2ap-ett.c ---*/
526 #line 1 "../../asn1/x2ap/packet-x2ap-ett.c"
527 static gint ett_x2ap_PrivateIE_ID = -1;
528 static gint ett_x2ap_ProtocolIE_Container = -1;
529 static gint ett_x2ap_ProtocolIE_Field = -1;
530 static gint ett_x2ap_ProtocolExtensionContainer = -1;
531 static gint ett_x2ap_ProtocolExtensionField = -1;
532 static gint ett_x2ap_PrivateIE_Container = -1;
533 static gint ett_x2ap_PrivateIE_Field = -1;
534 static gint ett_x2ap_ABSInformation = -1;
535 static gint ett_x2ap_ABSInformationFDD = -1;
536 static gint ett_x2ap_ABSInformationTDD = -1;
537 static gint ett_x2ap_ABS_Status = -1;
538 static gint ett_x2ap_AS_SecurityInformation = -1;
539 static gint ett_x2ap_AllocationAndRetentionPriority = -1;
540 static gint ett_x2ap_AreaScopeOfMDT = -1;
541 static gint ett_x2ap_BroadcastPLMNs_Item = -1;
542 static gint ett_x2ap_Cause = -1;
543 static gint ett_x2ap_CellBasedMDT = -1;
544 static gint ett_x2ap_CellIdListforMDT = -1;
545 static gint ett_x2ap_CellType = -1;
546 static gint ett_x2ap_CompositeAvailableCapacityGroup = -1;
547 static gint ett_x2ap_CompositeAvailableCapacity = -1;
548 static gint ett_x2ap_COUNTvalue = -1;
549 static gint ett_x2ap_CriticalityDiagnostics = -1;
550 static gint ett_x2ap_CriticalityDiagnostics_IE_List = -1;
551 static gint ett_x2ap_CriticalityDiagnostics_IE_List_item = -1;
552 static gint ett_x2ap_FDD_Info = -1;
553 static gint ett_x2ap_TDD_Info = -1;
554 static gint ett_x2ap_EUTRA_Mode_Info = -1;
555 static gint ett_x2ap_ECGI = -1;
556 static gint ett_x2ap_ENB_ID = -1;
557 static gint ett_x2ap_EPLMNs = -1;
558 static gint ett_x2ap_E_RAB_Level_QoS_Parameters = -1;
559 static gint ett_x2ap_E_RAB_List = -1;
560 static gint ett_x2ap_E_RAB_Item = -1;
561 static gint ett_x2ap_ForbiddenTAs = -1;
562 static gint ett_x2ap_ForbiddenTAs_Item = -1;
563 static gint ett_x2ap_ForbiddenTACs = -1;
564 static gint ett_x2ap_ForbiddenLAs = -1;
565 static gint ett_x2ap_ForbiddenLAs_Item = -1;
566 static gint ett_x2ap_ForbiddenLACs = -1;
567 static gint ett_x2ap_GBR_QosInformation = -1;
568 static gint ett_x2ap_GlobalENB_ID = -1;
569 static gint ett_x2ap_GTPtunnelEndpoint = -1;
570 static gint ett_x2ap_GUGroupIDList = -1;
571 static gint ett_x2ap_GU_Group_ID = -1;
572 static gint ett_x2ap_GUMMEI = -1;
573 static gint ett_x2ap_HandoverRestrictionList = -1;
574 static gint ett_x2ap_HWLoadIndicator = -1;
575 static gint ett_x2ap_LastVisitedCell_Item = -1;
576 static gint ett_x2ap_LastVisitedEUTRANCellInformation = -1;
577 static gint ett_x2ap_LastVisitedGERANCellInformation = -1;
578 static gint ett_x2ap_LocationReportingInformation = -1;
579 static gint ett_x2ap_MDT_Configuration = -1;
580 static gint ett_x2ap_MeasurementThresholdA2 = -1;
581 static gint ett_x2ap_MBSFN_Subframe_Infolist = -1;
582 static gint ett_x2ap_MBSFN_Subframe_Info = -1;
583 static gint ett_x2ap_MobilityParametersModificationRange = -1;
584 static gint ett_x2ap_MobilityParametersInformation = -1;
585 static gint ett_x2ap_Neighbour_Information = -1;
586 static gint ett_x2ap_Neighbour_Information_item = -1;
587 static gint ett_x2ap_PeriodicReportingMDT = -1;
588 static gint ett_x2ap_PRACH_Configuration = -1;
589 static gint ett_x2ap_RadioResourceStatus = -1;
590 static gint ett_x2ap_RelativeNarrowbandTxPower = -1;
591 static gint ett_x2ap_S1TNLLoadIndicator = -1;
592 static gint ett_x2ap_ServedCells = -1;
593 static gint ett_x2ap_ServedCells_item = -1;
594 static gint ett_x2ap_ServedCell_Information = -1;
595 static gint ett_x2ap_SpecialSubframe_Info = -1;
596 static gint ett_x2ap_SubframeAllocation = -1;
597 static gint ett_x2ap_TABasedMDT = -1;
598 static gint ett_x2ap_TAListforMDT = -1;
599 static gint ett_x2ap_ThresholdEventA2 = -1;
600 static gint ett_x2ap_TraceActivation = -1;
601 static gint ett_x2ap_UE_HistoryInformation = -1;
602 static gint ett_x2ap_UEAggregateMaximumBitRate = -1;
603 static gint ett_x2ap_UESecurityCapabilities = -1;
604 static gint ett_x2ap_UL_InterferenceOverloadIndication = -1;
605 static gint ett_x2ap_UL_HighInterferenceIndicationInfo = -1;
606 static gint ett_x2ap_UL_HighInterferenceIndicationInfo_Item = -1;
607 static gint ett_x2ap_UsableABSInformation = -1;
608 static gint ett_x2ap_UsableABSInformationFDD = -1;
609 static gint ett_x2ap_UsableABSInformationTDD = -1;
610 static gint ett_x2ap_HandoverRequest = -1;
611 static gint ett_x2ap_UE_ContextInformation = -1;
612 static gint ett_x2ap_E_RABs_ToBeSetup_List = -1;
613 static gint ett_x2ap_E_RABs_ToBeSetup_Item = -1;
614 static gint ett_x2ap_HandoverRequestAcknowledge = -1;
615 static gint ett_x2ap_E_RABs_Admitted_List = -1;
616 static gint ett_x2ap_E_RABs_Admitted_Item = -1;
617 static gint ett_x2ap_HandoverPreparationFailure = -1;
618 static gint ett_x2ap_HandoverReport = -1;
619 static gint ett_x2ap_SNStatusTransfer = -1;
620 static gint ett_x2ap_E_RABs_SubjectToStatusTransfer_List = -1;
621 static gint ett_x2ap_E_RABs_SubjectToStatusTransfer_Item = -1;
622 static gint ett_x2ap_UEContextRelease = -1;
623 static gint ett_x2ap_HandoverCancel = -1;
624 static gint ett_x2ap_ErrorIndication = -1;
625 static gint ett_x2ap_ResetRequest = -1;
626 static gint ett_x2ap_ResetResponse = -1;
627 static gint ett_x2ap_X2SetupRequest = -1;
628 static gint ett_x2ap_X2SetupResponse = -1;
629 static gint ett_x2ap_X2SetupFailure = -1;
630 static gint ett_x2ap_LoadInformation = -1;
631 static gint ett_x2ap_CellInformation_List = -1;
632 static gint ett_x2ap_CellInformation_Item = -1;
633 static gint ett_x2ap_ENBConfigurationUpdate = -1;
634 static gint ett_x2ap_ServedCellsToModify = -1;
635 static gint ett_x2ap_ServedCellsToModify_Item = -1;
636 static gint ett_x2ap_Old_ECGIs = -1;
637 static gint ett_x2ap_ENBConfigurationUpdateAcknowledge = -1;
638 static gint ett_x2ap_ENBConfigurationUpdateFailure = -1;
639 static gint ett_x2ap_ResourceStatusRequest = -1;
640 static gint ett_x2ap_CellToReport_List = -1;
641 static gint ett_x2ap_CellToReport_Item = -1;
642 static gint ett_x2ap_ResourceStatusResponse = -1;
643 static gint ett_x2ap_MeasurementInitiationResult_List = -1;
644 static gint ett_x2ap_MeasurementInitiationResult_Item = -1;
645 static gint ett_x2ap_MeasurementFailureCause_List = -1;
646 static gint ett_x2ap_MeasurementFailureCause_Item = -1;
647 static gint ett_x2ap_ResourceStatusFailure = -1;
648 static gint ett_x2ap_CompleteFailureCauseInformation_List = -1;
649 static gint ett_x2ap_CompleteFailureCauseInformation_Item = -1;
650 static gint ett_x2ap_ResourceStatusUpdate = -1;
651 static gint ett_x2ap_CellMeasurementResult_List = -1;
652 static gint ett_x2ap_CellMeasurementResult_Item = -1;
653 static gint ett_x2ap_PrivateMessage = -1;
654 static gint ett_x2ap_MobilityChangeRequest = -1;
655 static gint ett_x2ap_MobilityChangeAcknowledge = -1;
656 static gint ett_x2ap_MobilityChangeFailure = -1;
657 static gint ett_x2ap_RLFIndication = -1;
658 static gint ett_x2ap_CellActivationRequest = -1;
659 static gint ett_x2ap_ServedCellsToActivate = -1;
660 static gint ett_x2ap_ServedCellsToActivate_Item = -1;
661 static gint ett_x2ap_CellActivationResponse = -1;
662 static gint ett_x2ap_ActivatedCellList = -1;
663 static gint ett_x2ap_ActivatedCellList_Item = -1;
664 static gint ett_x2ap_CellActivationFailure = -1;
665 static gint ett_x2ap_X2AP_PDU = -1;
666 static gint ett_x2ap_InitiatingMessage = -1;
667 static gint ett_x2ap_SuccessfulOutcome = -1;
668 static gint ett_x2ap_UnsuccessfulOutcome = -1;
669
670 /*--- End of included file: packet-x2ap-ett.c ---*/
671 #line 71 "../../asn1/x2ap/packet-x2ap-template.c"
672
673 /* Global variables */
674 static guint32 ProcedureCode;
675 static guint32 ProtocolIE_ID;
676 static guint gbl_x2apSctpPort=SCTP_PORT_X2AP;
677
678 /* Dissector tables */
679 static dissector_table_t x2ap_ies_dissector_table;
680 static dissector_table_t x2ap_extension_dissector_table;
681 static dissector_table_t x2ap_proc_imsg_dissector_table;
682 static dissector_table_t x2ap_proc_sout_dissector_table;
683 static dissector_table_t x2ap_proc_uout_dissector_table;
684
685 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
686 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
687 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
688 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
689 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
690 void proto_reg_handoff_x2ap(void);
691
692
693 /*--- Included file: packet-x2ap-fn.c ---*/
694 #line 1 "../../asn1/x2ap/packet-x2ap-fn.c"
695
696 static const value_string x2ap_Criticality_vals[] = {
697   {   0, "reject" },
698   {   1, "ignore" },
699   {   2, "notify" },
700   { 0, NULL }
701 };
702
703
704 static int
705 dissect_x2ap_Criticality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
706   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
707                                      3, NULL, FALSE, 0, NULL);
708
709   return offset;
710 }
711
712
713
714 static int
715 dissect_x2ap_INTEGER_0_maxPrivateIEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
716   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
717                                                             0U, maxPrivateIEs, NULL, FALSE);
718
719   return offset;
720 }
721
722
723
724 static int
725 dissect_x2ap_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
726   offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
727
728   return offset;
729 }
730
731
732 static const value_string x2ap_PrivateIE_ID_vals[] = {
733   {   0, "local" },
734   {   1, "global" },
735   { 0, NULL }
736 };
737
738 static const per_choice_t PrivateIE_ID_choice[] = {
739   {   0, &hf_x2ap_local          , ASN1_NO_EXTENSIONS     , dissect_x2ap_INTEGER_0_maxPrivateIEs },
740   {   1, &hf_x2ap_global         , ASN1_NO_EXTENSIONS     , dissect_x2ap_OBJECT_IDENTIFIER },
741   { 0, NULL, 0, NULL }
742 };
743
744 static int
745 dissect_x2ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
746   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
747                                  ett_x2ap_PrivateIE_ID, PrivateIE_ID_choice,
748                                  NULL);
749
750   return offset;
751 }
752
753
754 static const value_string x2ap_ProcedureCode_vals[] = {
755   { id_handoverPreparation, "id-handoverPreparation" },
756   { id_handoverCancel, "id-handoverCancel" },
757   { id_loadIndication, "id-loadIndication" },
758   { id_errorIndication, "id-errorIndication" },
759   { id_snStatusTransfer, "id-snStatusTransfer" },
760   { id_uEContextRelease, "id-uEContextRelease" },
761   { id_x2Setup, "id-x2Setup" },
762   { id_reset, "id-reset" },
763   { id_eNBConfigurationUpdate, "id-eNBConfigurationUpdate" },
764   { id_resourceStatusReportingInitiation, "id-resourceStatusReportingInitiation" },
765   { id_resourceStatusReporting, "id-resourceStatusReporting" },
766   { id_privateMessage, "id-privateMessage" },
767   { id_mobilitySettingsChange, "id-mobilitySettingsChange" },
768   { id_rLFIndication, "id-rLFIndication" },
769   { id_handoverReport, "id-handoverReport" },
770   { id_cellActivation, "id-cellActivation" },
771   { 0, NULL }
772 };
773
774
775 static int
776 dissect_x2ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
777 #line 67 "../../asn1/x2ap/x2ap.cnf"
778   ProcedureCode = 0xFFFF;
779
780   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
781                                                             0U, 255U, &ProcedureCode, FALSE);
782
783 #line 61 "../../asn1/x2ap/x2ap.cnf"
784     col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
785                 val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
786                            "unknown message"));
787
788   return offset;
789 }
790
791
792 static const value_string x2ap_ProtocolIE_ID_vals[] = {
793   { id_E_RABs_Admitted_Item, "id-E-RABs-Admitted-Item" },
794   { id_E_RABs_Admitted_List, "id-E-RABs-Admitted-List" },
795   { id_E_RAB_Item, "id-E-RAB-Item" },
796   { id_E_RABs_NotAdmitted_List, "id-E-RABs-NotAdmitted-List" },
797   { id_E_RABs_ToBeSetup_Item, "id-E-RABs-ToBeSetup-Item" },
798   { id_Cause, "id-Cause" },
799   { id_CellInformation, "id-CellInformation" },
800   { id_CellInformation_Item, "id-CellInformation-Item" },
801   { id_New_eNB_UE_X2AP_ID, "id-New-eNB-UE-X2AP-ID" },
802   { id_Old_eNB_UE_X2AP_ID, "id-Old-eNB-UE-X2AP-ID" },
803   { id_TargetCell_ID, "id-TargetCell-ID" },
804   { id_TargeteNBtoSource_eNBTransparentContainer, "id-TargeteNBtoSource-eNBTransparentContainer" },
805   { id_TraceActivation, "id-TraceActivation" },
806   { id_UE_ContextInformation, "id-UE-ContextInformation" },
807   { id_UE_HistoryInformation, "id-UE-HistoryInformation" },
808   { id_UE_X2AP_ID, "id-UE-X2AP-ID" },
809   { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
810   { id_E_RABs_SubjectToStatusTransfer_List, "id-E-RABs-SubjectToStatusTransfer-List" },
811   { id_E_RABs_SubjectToStatusTransfer_Item, "id-E-RABs-SubjectToStatusTransfer-Item" },
812   { id_ServedCells, "id-ServedCells" },
813   { id_GlobalENB_ID, "id-GlobalENB-ID" },
814   { id_TimeToWait, "id-TimeToWait" },
815   { id_GUMMEI_ID, "id-GUMMEI-ID" },
816   { id_GUGroupIDList, "id-GUGroupIDList" },
817   { id_ServedCellsToAdd, "id-ServedCellsToAdd" },
818   { id_ServedCellsToModify, "id-ServedCellsToModify" },
819   { id_ServedCellsToDelete, "id-ServedCellsToDelete" },
820   { id_Registration_Request, "id-Registration-Request" },
821   { id_CellToReport, "id-CellToReport" },
822   { id_ReportingPeriodicity, "id-ReportingPeriodicity" },
823   { id_CellToReport_Item, "id-CellToReport-Item" },
824   { id_CellMeasurementResult, "id-CellMeasurementResult" },
825   { id_CellMeasurementResult_Item, "id-CellMeasurementResult-Item" },
826   { id_GUGroupIDToAddList, "id-GUGroupIDToAddList" },
827   { id_GUGroupIDToDeleteList, "id-GUGroupIDToDeleteList" },
828   { id_SRVCCOperationPossible, "id-SRVCCOperationPossible" },
829   { id_Measurement_ID, "id-Measurement-ID" },
830   { id_ReportCharacteristics, "id-ReportCharacteristics" },
831   { id_ENB1_Measurement_ID, "id-ENB1-Measurement-ID" },
832   { id_ENB2_Measurement_ID, "id-ENB2-Measurement-ID" },
833   { id_Number_of_Antennaports, "id-Number-of-Antennaports" },
834   { id_CompositeAvailableCapacityGroup, "id-CompositeAvailableCapacityGroup" },
835   { id_ENB1_Cell_ID, "id-ENB1-Cell-ID" },
836   { id_ENB2_Cell_ID, "id-ENB2-Cell-ID" },
837   { id_ENB2_Proposed_Mobility_Parameters, "id-ENB2-Proposed-Mobility-Parameters" },
838   { id_ENB1_Mobility_Parameters, "id-ENB1-Mobility-Parameters" },
839   { id_ENB2_Mobility_Parameters_Modification_Range, "id-ENB2-Mobility-Parameters-Modification-Range" },
840   { id_FailureCellPCI, "id-FailureCellPCI" },
841   { id_Re_establishmentCellECGI, "id-Re-establishmentCellECGI" },
842   { id_FailureCellCRNTI, "id-FailureCellCRNTI" },
843   { id_ShortMAC_I, "id-ShortMAC-I" },
844   { id_SourceCellECGI, "id-SourceCellECGI" },
845   { id_FailureCellECGI, "id-FailureCellECGI" },
846   { id_HandoverReportType, "id-HandoverReportType" },
847   { id_PRACH_Configuration, "id-PRACH-Configuration" },
848   { id_MBSFN_Subframe_Info, "id-MBSFN-Subframe-Info" },
849   { id_ServedCellsToActivate, "id-ServedCellsToActivate" },
850   { id_ActivatedCellList, "id-ActivatedCellList" },
851   { id_DeactivationIndication, "id-DeactivationIndication" },
852   { id_UE_RLF_Report_Container, "id-UE-RLF-Report-Container" },
853   { id_ABSInformation, "id-ABSInformation" },
854   { id_InvokeIndication, "id-InvokeIndication" },
855   { id_ABS_Status, "id-ABS-Status" },
856   { id_PartialSuccessIndicator, "id-PartialSuccessIndicator" },
857   { id_MeasurementInitiationResult_List, "id-MeasurementInitiationResult-List" },
858   { id_MeasurementInitiationResult_Item, "id-MeasurementInitiationResult-Item" },
859   { id_MeasurementFailureCause_Item, "id-MeasurementFailureCause-Item" },
860   { id_CompleteFailureCauseInformation_List, "id-CompleteFailureCauseInformation-List" },
861   { id_CompleteFailureCauseInformation_Item, "id-CompleteFailureCauseInformation-Item" },
862   { id_CSG_Id, "id-CSG-Id" },
863   { id_CSGMembershipStatus, "id-CSGMembershipStatus" },
864   { id_MDTConfiguration, "id-MDTConfiguration" },
865   { id_ManagementBasedMDTallowed, "id-ManagementBasedMDTallowed" },
866   { id_RRCConnSetupIndicator, "id-RRCConnSetupIndicator" },
867   { 0, NULL }
868 };
869
870
871 static int
872 dissect_x2ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
873   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
874                                                             0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
875
876 #line 50 "../../asn1/x2ap/x2ap.cnf"
877   if (tree) {
878     proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(x2ap_ProtocolIE_ID_vals), "unknown (%d)"));
879   }
880
881   return offset;
882 }
883
884
885 static const value_string x2ap_TriggeringMessage_vals[] = {
886   {   0, "initiating-message" },
887   {   1, "successful-outcome" },
888   {   2, "unsuccessful-outcome" },
889   { 0, NULL }
890 };
891
892
893 static int
894 dissect_x2ap_TriggeringMessage(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                                      3, NULL, FALSE, 0, NULL);
897
898   return offset;
899 }
900
901
902
903 static int
904 dissect_x2ap_ProtocolIE_Field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
905   offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue);
906
907   return offset;
908 }
909
910
911 static const per_sequence_t ProtocolIE_Field_sequence[] = {
912   { &hf_x2ap_id             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_ID },
913   { &hf_x2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_Criticality },
914   { &hf_x2ap_protocolIE_Field_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Field_value },
915   { NULL, 0, 0, NULL }
916 };
917
918 static int
919 dissect_x2ap_ProtocolIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
920   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
921                                    ett_x2ap_ProtocolIE_Field, ProtocolIE_Field_sequence);
922
923   return offset;
924 }
925
926
927 static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
928   { &hf_x2ap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Field },
929 };
930
931 static int
932 dissect_x2ap_ProtocolIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
933   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
934                                                   ett_x2ap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
935                                                   0, maxProtocolIEs, FALSE);
936
937   return offset;
938 }
939
940
941
942 static int
943 dissect_x2ap_ProtocolIE_Single_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
944   offset = dissect_x2ap_ProtocolIE_Field(tvb, offset, actx, tree, hf_index);
945
946   return offset;
947 }
948
949
950
951 static int
952 dissect_x2ap_T_extensionValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
953   offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolExtensionFieldExtensionValue);
954
955   return offset;
956 }
957
958
959 static const per_sequence_t ProtocolExtensionField_sequence[] = {
960   { &hf_x2ap_extension_id   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_ID },
961   { &hf_x2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_Criticality },
962   { &hf_x2ap_extensionValue , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_T_extensionValue },
963   { NULL, 0, 0, NULL }
964 };
965
966 static int
967 dissect_x2ap_ProtocolExtensionField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
968   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
969                                    ett_x2ap_ProtocolExtensionField, ProtocolExtensionField_sequence);
970
971   return offset;
972 }
973
974
975 static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
976   { &hf_x2ap_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolExtensionField },
977 };
978
979 static int
980 dissect_x2ap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
981   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
982                                                   ett_x2ap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
983                                                   1, maxProtocolExtensions, FALSE);
984
985   return offset;
986 }
987
988
989
990 static int
991 dissect_x2ap_PrivateIE_Field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
992   offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
993
994   return offset;
995 }
996
997
998 static const per_sequence_t PrivateIE_Field_sequence[] = {
999   { &hf_x2ap_private_id     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_PrivateIE_ID },
1000   { &hf_x2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_Criticality },
1001   { &hf_x2ap_privateIE_Field_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_PrivateIE_Field_value },
1002   { NULL, 0, 0, NULL }
1003 };
1004
1005 static int
1006 dissect_x2ap_PrivateIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1007   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1008                                    ett_x2ap_PrivateIE_Field, PrivateIE_Field_sequence);
1009
1010   return offset;
1011 }
1012
1013
1014 static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
1015   { &hf_x2ap_PrivateIE_Container_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_PrivateIE_Field },
1016 };
1017
1018 static int
1019 dissect_x2ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1020   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1021                                                   ett_x2ap_PrivateIE_Container, PrivateIE_Container_sequence_of,
1022                                                   1, maxPrivateIEs, FALSE);
1023
1024   return offset;
1025 }
1026
1027
1028
1029 static int
1030 dissect_x2ap_BIT_STRING_SIZE_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1031   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1032                                      40, 40, FALSE, NULL);
1033
1034   return offset;
1035 }
1036
1037
1038 static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_vals[] = {
1039   {   0, "one" },
1040   {   1, "two" },
1041   {   2, "four" },
1042   { 0, NULL }
1043 };
1044
1045
1046 static int
1047 dissect_x2ap_T_numberOfCellSpecificAntennaPorts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1048   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1049                                      3, NULL, TRUE, 0, NULL);
1050
1051   return offset;
1052 }
1053
1054
1055 static const per_sequence_t ABSInformationFDD_sequence[] = {
1056   { &hf_x2ap_abs_pattern_info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_40 },
1057   { &hf_x2ap_numberOfCellSpecificAntennaPorts, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_T_numberOfCellSpecificAntennaPorts },
1058   { &hf_x2ap_measurement_subset, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_40 },
1059   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1060   { NULL, 0, 0, NULL }
1061 };
1062
1063 static int
1064 dissect_x2ap_ABSInformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1065   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1066                                    ett_x2ap_ABSInformationFDD, ABSInformationFDD_sequence);
1067
1068   return offset;
1069 }
1070
1071
1072
1073 static int
1074 dissect_x2ap_BIT_STRING_SIZE_1_70_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1075   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1076                                      1, 70, TRUE, NULL);
1077
1078   return offset;
1079 }
1080
1081
1082 static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_01_vals[] = {
1083   {   0, "one" },
1084   {   1, "two" },
1085   {   2, "four" },
1086   { 0, NULL }
1087 };
1088
1089
1090 static int
1091 dissect_x2ap_T_numberOfCellSpecificAntennaPorts_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1092   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1093                                      3, NULL, TRUE, 0, NULL);
1094
1095   return offset;
1096 }
1097
1098
1099 static const per_sequence_t ABSInformationTDD_sequence[] = {
1100   { &hf_x2ap_abs_pattern_info_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_1_70_ },
1101   { &hf_x2ap_numberOfCellSpecificAntennaPorts_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_T_numberOfCellSpecificAntennaPorts_01 },
1102   { &hf_x2ap_measurement_subset_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_1_70_ },
1103   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1104   { NULL, 0, 0, NULL }
1105 };
1106
1107 static int
1108 dissect_x2ap_ABSInformationTDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1109   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1110                                    ett_x2ap_ABSInformationTDD, ABSInformationTDD_sequence);
1111
1112   return offset;
1113 }
1114
1115
1116
1117 static int
1118 dissect_x2ap_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1119   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1120
1121   return offset;
1122 }
1123
1124
1125 static const value_string x2ap_ABSInformation_vals[] = {
1126   {   0, "fdd" },
1127   {   1, "tdd" },
1128   {   2, "abs-inactive" },
1129   { 0, NULL }
1130 };
1131
1132 static const per_choice_t ABSInformation_choice[] = {
1133   {   0, &hf_x2ap_fdd            , ASN1_EXTENSION_ROOT    , dissect_x2ap_ABSInformationFDD },
1134   {   1, &hf_x2ap_tdd            , ASN1_EXTENSION_ROOT    , dissect_x2ap_ABSInformationTDD },
1135   {   2, &hf_x2ap_abs_inactive   , ASN1_EXTENSION_ROOT    , dissect_x2ap_NULL },
1136   { 0, NULL, 0, NULL }
1137 };
1138
1139 static int
1140 dissect_x2ap_ABSInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1141   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1142                                  ett_x2ap_ABSInformation, ABSInformation_choice,
1143                                  NULL);
1144
1145   return offset;
1146 }
1147
1148
1149
1150 static int
1151 dissect_x2ap_DL_ABS_status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1152   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1153                                                             0U, 100U, NULL, FALSE);
1154
1155   return offset;
1156 }
1157
1158
1159 static const per_sequence_t UsableABSInformationFDD_sequence[] = {
1160   { &hf_x2ap_usable_abs_pattern_info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_40 },
1161   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1162   { NULL, 0, 0, NULL }
1163 };
1164
1165 static int
1166 dissect_x2ap_UsableABSInformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1167   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1168                                    ett_x2ap_UsableABSInformationFDD, UsableABSInformationFDD_sequence);
1169
1170   return offset;
1171 }
1172
1173
1174 static const per_sequence_t UsableABSInformationTDD_sequence[] = {
1175   { &hf_x2ap_usaable_abs_pattern_info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_1_70_ },
1176   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1177   { NULL, 0, 0, NULL }
1178 };
1179
1180 static int
1181 dissect_x2ap_UsableABSInformationTDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1182   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1183                                    ett_x2ap_UsableABSInformationTDD, UsableABSInformationTDD_sequence);
1184
1185   return offset;
1186 }
1187
1188
1189 static const value_string x2ap_UsableABSInformation_vals[] = {
1190   {   0, "fdd" },
1191   {   1, "tdd" },
1192   { 0, NULL }
1193 };
1194
1195 static const per_choice_t UsableABSInformation_choice[] = {
1196   {   0, &hf_x2ap_fdd_01         , ASN1_EXTENSION_ROOT    , dissect_x2ap_UsableABSInformationFDD },
1197   {   1, &hf_x2ap_tdd_01         , ASN1_EXTENSION_ROOT    , dissect_x2ap_UsableABSInformationTDD },
1198   { 0, NULL, 0, NULL }
1199 };
1200
1201 static int
1202 dissect_x2ap_UsableABSInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1203   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1204                                  ett_x2ap_UsableABSInformation, UsableABSInformation_choice,
1205                                  NULL);
1206
1207   return offset;
1208 }
1209
1210
1211 static const per_sequence_t ABS_Status_sequence[] = {
1212   { &hf_x2ap_dL_ABS_status  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_ABS_status },
1213   { &hf_x2ap_usableABSInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UsableABSInformation },
1214   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1215   { NULL, 0, 0, NULL }
1216 };
1217
1218 static int
1219 dissect_x2ap_ABS_Status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1220   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1221                                    ett_x2ap_ABS_Status, ABS_Status_sequence);
1222
1223   return offset;
1224 }
1225
1226
1227
1228 static int
1229 dissect_x2ap_Key_eNodeB_Star(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1230   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1231                                      256, 256, FALSE, NULL);
1232
1233   return offset;
1234 }
1235
1236
1237
1238 static int
1239 dissect_x2ap_NextHopChainingCount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1240   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1241                                                             0U, 7U, NULL, FALSE);
1242
1243   return offset;
1244 }
1245
1246
1247 static const per_sequence_t AS_SecurityInformation_sequence[] = {
1248   { &hf_x2ap_key_eNodeB_star, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Key_eNodeB_Star },
1249   { &hf_x2ap_nextHopChainingCount, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_NextHopChainingCount },
1250   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1251   { NULL, 0, 0, NULL }
1252 };
1253
1254 static int
1255 dissect_x2ap_AS_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1256   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1257                                    ett_x2ap_AS_SecurityInformation, AS_SecurityInformation_sequence);
1258
1259   return offset;
1260 }
1261
1262
1263 static const value_string x2ap_PriorityLevel_vals[] = {
1264   {   0, "spare" },
1265   {   1, "highest" },
1266   {  14, "lowest" },
1267   {  15, "no-priority" },
1268   { 0, NULL }
1269 };
1270
1271
1272 static int
1273 dissect_x2ap_PriorityLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1274   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1275                                                             0U, 15U, NULL, FALSE);
1276
1277   return offset;
1278 }
1279
1280
1281 static const value_string x2ap_Pre_emptionCapability_vals[] = {
1282   {   0, "shall-not-trigger-pre-emption" },
1283   {   1, "may-trigger-pre-emption" },
1284   { 0, NULL }
1285 };
1286
1287
1288 static int
1289 dissect_x2ap_Pre_emptionCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1290   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1291                                      2, NULL, FALSE, 0, NULL);
1292
1293   return offset;
1294 }
1295
1296
1297 static const value_string x2ap_Pre_emptionVulnerability_vals[] = {
1298   {   0, "not-pre-emptable" },
1299   {   1, "pre-emptable" },
1300   { 0, NULL }
1301 };
1302
1303
1304 static int
1305 dissect_x2ap_Pre_emptionVulnerability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1306   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1307                                      2, NULL, FALSE, 0, NULL);
1308
1309   return offset;
1310 }
1311
1312
1313 static const per_sequence_t AllocationAndRetentionPriority_sequence[] = {
1314   { &hf_x2ap_priorityLevel  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PriorityLevel },
1315   { &hf_x2ap_pre_emptionCapability, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Pre_emptionCapability },
1316   { &hf_x2ap_pre_emptionVulnerability, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Pre_emptionVulnerability },
1317   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1318   { NULL, 0, 0, NULL }
1319 };
1320
1321 static int
1322 dissect_x2ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1323   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1324                                    ett_x2ap_AllocationAndRetentionPriority, AllocationAndRetentionPriority_sequence);
1325
1326   return offset;
1327 }
1328
1329
1330
1331 static int
1332 dissect_x2ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1333 #line 78 "../../asn1/x2ap/x2ap.cnf"
1334   tvbuff_t *parameter_tvb=NULL;
1335
1336   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1337                                        3, 3, FALSE, &parameter_tvb);
1338
1339
1340         if(tvb_length(tvb)==0) 
1341                 return offset;
1342                 
1343         if (!parameter_tvb)
1344                 return offset;
1345         dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, FALSE);
1346
1347
1348   return offset;
1349 }
1350
1351
1352
1353 static int
1354 dissect_x2ap_EUTRANCellIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1355   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1356                                      28, 28, FALSE, NULL);
1357
1358   return offset;
1359 }
1360
1361
1362 static const per_sequence_t ECGI_sequence[] = {
1363   { &hf_x2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
1364   { &hf_x2ap_eUTRANcellIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EUTRANCellIdentifier },
1365   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1366   { NULL, 0, 0, NULL }
1367 };
1368
1369 static int
1370 dissect_x2ap_ECGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1371   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1372                                    ett_x2ap_ECGI, ECGI_sequence);
1373
1374   return offset;
1375 }
1376
1377
1378 static const per_sequence_t CellIdListforMDT_sequence_of[1] = {
1379   { &hf_x2ap_CellIdListforMDT_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
1380 };
1381
1382 static int
1383 dissect_x2ap_CellIdListforMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1384   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1385                                                   ett_x2ap_CellIdListforMDT, CellIdListforMDT_sequence_of,
1386                                                   1, maxnoofCellIDforMDT, FALSE);
1387
1388   return offset;
1389 }
1390
1391
1392 static const per_sequence_t CellBasedMDT_sequence[] = {
1393   { &hf_x2ap_cellIdListforMDT, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_CellIdListforMDT },
1394   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1395   { NULL, 0, 0, NULL }
1396 };
1397
1398 static int
1399 dissect_x2ap_CellBasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1400   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1401                                    ett_x2ap_CellBasedMDT, CellBasedMDT_sequence);
1402
1403   return offset;
1404 }
1405
1406
1407
1408 static int
1409 dissect_x2ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1410   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1411                                        2, 2, FALSE, NULL);
1412
1413   return offset;
1414 }
1415
1416
1417 static const per_sequence_t TAListforMDT_sequence_of[1] = {
1418   { &hf_x2ap_TAListforMDT_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_TAC },
1419 };
1420
1421 static int
1422 dissect_x2ap_TAListforMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1423   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1424                                                   ett_x2ap_TAListforMDT, TAListforMDT_sequence_of,
1425                                                   1, maxnoofTAforMDT, FALSE);
1426
1427   return offset;
1428 }
1429
1430
1431 static const per_sequence_t TABasedMDT_sequence[] = {
1432   { &hf_x2ap_tAListforMDT   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_TAListforMDT },
1433   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1434   { NULL, 0, 0, NULL }
1435 };
1436
1437 static int
1438 dissect_x2ap_TABasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1439   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1440                                    ett_x2ap_TABasedMDT, TABasedMDT_sequence);
1441
1442   return offset;
1443 }
1444
1445
1446 static const value_string x2ap_AreaScopeOfMDT_vals[] = {
1447   {   0, "cellBased" },
1448   {   1, "tABased" },
1449   {   2, "pLMNWide" },
1450   { 0, NULL }
1451 };
1452
1453 static const per_choice_t AreaScopeOfMDT_choice[] = {
1454   {   0, &hf_x2ap_cellBased      , ASN1_EXTENSION_ROOT    , dissect_x2ap_CellBasedMDT },
1455   {   1, &hf_x2ap_tABased        , ASN1_EXTENSION_ROOT    , dissect_x2ap_TABasedMDT },
1456   {   2, &hf_x2ap_pLMNWide       , ASN1_EXTENSION_ROOT    , dissect_x2ap_NULL },
1457   { 0, NULL, 0, NULL }
1458 };
1459
1460 static int
1461 dissect_x2ap_AreaScopeOfMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1462   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1463                                  ett_x2ap_AreaScopeOfMDT, AreaScopeOfMDT_choice,
1464                                  NULL);
1465
1466   return offset;
1467 }
1468
1469
1470
1471 static int
1472 dissect_x2ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1473   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
1474                                                             0U, G_GINT64_CONSTANT(10000000000U), NULL, FALSE);
1475
1476   return offset;
1477 }
1478
1479
1480 static const per_sequence_t BroadcastPLMNs_Item_sequence_of[1] = {
1481   { &hf_x2ap_BroadcastPLMNs_Item_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
1482 };
1483
1484 static int
1485 dissect_x2ap_BroadcastPLMNs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1486   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1487                                                   ett_x2ap_BroadcastPLMNs_Item, BroadcastPLMNs_Item_sequence_of,
1488                                                   1, maxnoofBPLMNs, FALSE);
1489
1490   return offset;
1491 }
1492
1493
1494
1495 static int
1496 dissect_x2ap_CapacityValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1497   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1498                                                             0U, 100U, NULL, FALSE);
1499
1500   return offset;
1501 }
1502
1503
1504
1505 static int
1506 dissect_x2ap_CellCapacityClassValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1507   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1508                                                             1U, 100U, NULL, TRUE);
1509
1510   return offset;
1511 }
1512
1513
1514 static const value_string x2ap_CauseRadioNetwork_vals[] = {
1515   {   0, "handover-desirable-for-radio-reasons" },
1516   {   1, "time-critical-handover" },
1517   {   2, "resource-optimisation-handover" },
1518   {   3, "reduce-load-in-serving-cell" },
1519   {   4, "partial-handover" },
1520   {   5, "unknown-new-eNB-UE-X2AP-ID" },
1521   {   6, "unknown-old-eNB-UE-X2AP-ID" },
1522   {   7, "unknown-pair-of-UE-X2AP-ID" },
1523   {   8, "ho-target-not-allowed" },
1524   {   9, "tx2relocoverall-expiry" },
1525   {  10, "trelocprep-expiry" },
1526   {  11, "cell-not-available" },
1527   {  12, "no-radio-resources-available-in-target-cell" },
1528   {  13, "invalid-MME-GroupID" },
1529   {  14, "unknown-MME-Code" },
1530   {  15, "encryption-and-or-integrity-protection-algorithms-not-supported" },
1531   {  16, "reportCharacteristicsEmpty" },
1532   {  17, "noReportPeriodicity" },
1533   {  18, "existingMeasurementID" },
1534   {  19, "unknown-eNB-Measurement-ID" },
1535   {  20, "measurement-temporarily-not-available" },
1536   {  21, "unspecified" },
1537   {  22, "load-balancing" },
1538   {  23, "handover-optimisation" },
1539   {  24, "value-out-of-allowed-range" },
1540   {  25, "multiple-E-RAB-ID-instances" },
1541   {  26, "switch-off-ongoing" },
1542   {  27, "not-supported-QCI-value" },
1543   {  28, "measurement-not-supported-for-the-object" },
1544   { 0, NULL }
1545 };
1546
1547
1548 static int
1549 dissect_x2ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1550   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1551                                      22, NULL, TRUE, 7, NULL);
1552
1553   return offset;
1554 }
1555
1556
1557 static const value_string x2ap_CauseTransport_vals[] = {
1558   {   0, "transport-resource-unavailable" },
1559   {   1, "unspecified" },
1560   { 0, NULL }
1561 };
1562
1563
1564 static int
1565 dissect_x2ap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1566   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1567                                      2, NULL, TRUE, 0, NULL);
1568
1569   return offset;
1570 }
1571
1572
1573 static const value_string x2ap_CauseProtocol_vals[] = {
1574   {   0, "transfer-syntax-error" },
1575   {   1, "abstract-syntax-error-reject" },
1576   {   2, "abstract-syntax-error-ignore-and-notify" },
1577   {   3, "message-not-compatible-with-receiver-state" },
1578   {   4, "semantic-error" },
1579   {   5, "unspecified" },
1580   {   6, "abstract-syntax-error-falsely-constructed-message" },
1581   { 0, NULL }
1582 };
1583
1584
1585 static int
1586 dissect_x2ap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1587   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1588                                      7, NULL, TRUE, 0, NULL);
1589
1590   return offset;
1591 }
1592
1593
1594 static const value_string x2ap_CauseMisc_vals[] = {
1595   {   0, "control-processing-overload" },
1596   {   1, "hardware-failure" },
1597   {   2, "om-intervention" },
1598   {   3, "not-enough-user-plane-processing-resources" },
1599   {   4, "unspecified" },
1600   { 0, NULL }
1601 };
1602
1603
1604 static int
1605 dissect_x2ap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1606   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1607                                      5, NULL, TRUE, 0, NULL);
1608
1609   return offset;
1610 }
1611
1612
1613 static const value_string x2ap_Cause_vals[] = {
1614   {   0, "radioNetwork" },
1615   {   1, "transport" },
1616   {   2, "protocol" },
1617   {   3, "misc" },
1618   { 0, NULL }
1619 };
1620
1621 static const per_choice_t Cause_choice[] = {
1622   {   0, &hf_x2ap_radioNetwork   , ASN1_EXTENSION_ROOT    , dissect_x2ap_CauseRadioNetwork },
1623   {   1, &hf_x2ap_transport      , ASN1_EXTENSION_ROOT    , dissect_x2ap_CauseTransport },
1624   {   2, &hf_x2ap_protocol       , ASN1_EXTENSION_ROOT    , dissect_x2ap_CauseProtocol },
1625   {   3, &hf_x2ap_misc           , ASN1_EXTENSION_ROOT    , dissect_x2ap_CauseMisc },
1626   { 0, NULL, 0, NULL }
1627 };
1628
1629 static int
1630 dissect_x2ap_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1631   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1632                                  ett_x2ap_Cause, Cause_choice,
1633                                  NULL);
1634
1635   return offset;
1636 }
1637
1638
1639 static const value_string x2ap_Cell_Size_vals[] = {
1640   {   0, "verysmall" },
1641   {   1, "small" },
1642   {   2, "medium" },
1643   {   3, "large" },
1644   { 0, NULL }
1645 };
1646
1647
1648 static int
1649 dissect_x2ap_Cell_Size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1650   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1651                                      4, NULL, TRUE, 0, NULL);
1652
1653   return offset;
1654 }
1655
1656
1657 static const per_sequence_t CellType_sequence[] = {
1658   { &hf_x2ap_cell_Size      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Cell_Size },
1659   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1660   { NULL, 0, 0, NULL }
1661 };
1662
1663 static int
1664 dissect_x2ap_CellType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1665   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1666                                    ett_x2ap_CellType, CellType_sequence);
1667
1668   return offset;
1669 }
1670
1671
1672 static const per_sequence_t CompositeAvailableCapacity_sequence[] = {
1673   { &hf_x2ap_cellCapacityClassValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_CellCapacityClassValue },
1674   { &hf_x2ap_capacityValue  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_CapacityValue },
1675   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1676   { NULL, 0, 0, NULL }
1677 };
1678
1679 static int
1680 dissect_x2ap_CompositeAvailableCapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1681   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1682                                    ett_x2ap_CompositeAvailableCapacity, CompositeAvailableCapacity_sequence);
1683
1684   return offset;
1685 }
1686
1687
1688 static const per_sequence_t CompositeAvailableCapacityGroup_sequence[] = {
1689   { &hf_x2ap_dL_CompositeAvailableCapacity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_CompositeAvailableCapacity },
1690   { &hf_x2ap_uL_CompositeAvailableCapacity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_CompositeAvailableCapacity },
1691   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1692   { NULL, 0, 0, NULL }
1693 };
1694
1695 static int
1696 dissect_x2ap_CompositeAvailableCapacityGroup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1697   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1698                                    ett_x2ap_CompositeAvailableCapacityGroup, CompositeAvailableCapacityGroup_sequence);
1699
1700   return offset;
1701 }
1702
1703
1704
1705 static int
1706 dissect_x2ap_PDCP_SN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1707   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1708                                                             0U, 4095U, NULL, FALSE);
1709
1710   return offset;
1711 }
1712
1713
1714
1715 static int
1716 dissect_x2ap_HFN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1717   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1718                                                             0U, 1048575U, NULL, FALSE);
1719
1720   return offset;
1721 }
1722
1723
1724 static const per_sequence_t COUNTvalue_sequence[] = {
1725   { &hf_x2ap_pDCP_SN        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PDCP_SN },
1726   { &hf_x2ap_hFN            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_HFN },
1727   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1728   { NULL, 0, 0, NULL }
1729 };
1730
1731 static int
1732 dissect_x2ap_COUNTvalue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1733   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1734                                    ett_x2ap_COUNTvalue, COUNTvalue_sequence);
1735
1736   return offset;
1737 }
1738
1739
1740 static const value_string x2ap_TypeOfError_vals[] = {
1741   {   0, "not-understood" },
1742   {   1, "missing" },
1743   { 0, NULL }
1744 };
1745
1746
1747 static int
1748 dissect_x2ap_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1749   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1750                                      2, NULL, TRUE, 0, NULL);
1751
1752   return offset;
1753 }
1754
1755
1756 static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
1757   { &hf_x2ap_iECriticality  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Criticality },
1758   { &hf_x2ap_iE_ID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_ID },
1759   { &hf_x2ap_typeOfError    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_TypeOfError },
1760   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1761   { NULL, 0, 0, NULL }
1762 };
1763
1764 static int
1765 dissect_x2ap_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1766   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1767                                    ett_x2ap_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
1768
1769   return offset;
1770 }
1771
1772
1773 static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
1774   { &hf_x2ap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_CriticalityDiagnostics_IE_List_item },
1775 };
1776
1777 static int
1778 dissect_x2ap_CriticalityDiagnostics_IE_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1779   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1780                                                   ett_x2ap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
1781                                                   1, maxNrOfErrors, FALSE);
1782
1783   return offset;
1784 }
1785
1786
1787 static const per_sequence_t CriticalityDiagnostics_sequence[] = {
1788   { &hf_x2ap_procedureCode  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProcedureCode },
1789   { &hf_x2ap_triggeringMessage, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_TriggeringMessage },
1790   { &hf_x2ap_procedureCriticality, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_Criticality },
1791   { &hf_x2ap_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_CriticalityDiagnostics_IE_List },
1792   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1793   { NULL, 0, 0, NULL }
1794 };
1795
1796 static int
1797 dissect_x2ap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1798   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1799                                    ett_x2ap_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
1800
1801   return offset;
1802 }
1803
1804
1805
1806 static int
1807 dissect_x2ap_CRNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1808   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1809                                      16, 16, FALSE, NULL);
1810
1811   return offset;
1812 }
1813
1814
1815 static const value_string x2ap_CSGMembershipStatus_vals[] = {
1816   {   0, "member" },
1817   {   1, "not-member" },
1818   { 0, NULL }
1819 };
1820
1821
1822 static int
1823 dissect_x2ap_CSGMembershipStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1824   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1825                                      2, NULL, FALSE, 0, NULL);
1826
1827   return offset;
1828 }
1829
1830
1831
1832 static int
1833 dissect_x2ap_CSG_Id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1834   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1835                                      27, 27, FALSE, NULL);
1836
1837   return offset;
1838 }
1839
1840
1841 static const value_string x2ap_CyclicPrefixDL_vals[] = {
1842   {   0, "normal" },
1843   {   1, "extended" },
1844   { 0, NULL }
1845 };
1846
1847
1848 static int
1849 dissect_x2ap_CyclicPrefixDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1850   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1851                                      2, NULL, TRUE, 0, NULL);
1852
1853   return offset;
1854 }
1855
1856
1857 static const value_string x2ap_CyclicPrefixUL_vals[] = {
1858   {   0, "normal" },
1859   {   1, "extended" },
1860   { 0, NULL }
1861 };
1862
1863
1864 static int
1865 dissect_x2ap_CyclicPrefixUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1866   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1867                                      2, NULL, TRUE, 0, NULL);
1868
1869   return offset;
1870 }
1871
1872
1873 static const value_string x2ap_DeactivationIndication_vals[] = {
1874   {   0, "deactivated" },
1875   { 0, NULL }
1876 };
1877
1878
1879 static int
1880 dissect_x2ap_DeactivationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1881   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1882                                      1, NULL, TRUE, 0, NULL);
1883
1884   return offset;
1885 }
1886
1887
1888 static const value_string x2ap_DL_Forwarding_vals[] = {
1889   {   0, "dL-forwardingProposed" },
1890   { 0, NULL }
1891 };
1892
1893
1894 static int
1895 dissect_x2ap_DL_Forwarding(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1896   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1897                                      1, NULL, TRUE, 0, NULL);
1898
1899   return offset;
1900 }
1901
1902
1903
1904 static int
1905 dissect_x2ap_DL_GBR_PRB_usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1906   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1907                                                             0U, 100U, NULL, FALSE);
1908
1909   return offset;
1910 }
1911
1912
1913
1914 static int
1915 dissect_x2ap_DL_non_GBR_PRB_usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1916   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1917                                                             0U, 100U, NULL, FALSE);
1918
1919   return offset;
1920 }
1921
1922
1923
1924 static int
1925 dissect_x2ap_DL_Total_PRB_usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1926   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1927                                                             0U, 100U, NULL, FALSE);
1928
1929   return offset;
1930 }
1931
1932
1933
1934 static int
1935 dissect_x2ap_EARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1936   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1937                                                             0U, maxEARFCN, NULL, FALSE);
1938
1939   return offset;
1940 }
1941
1942
1943 static const value_string x2ap_Transmission_Bandwidth_vals[] = {
1944   {   0, "bw6" },
1945   {   1, "bw15" },
1946   {   2, "bw25" },
1947   {   3, "bw50" },
1948   {   4, "bw75" },
1949   {   5, "bw100" },
1950   { 0, NULL }
1951 };
1952
1953
1954 static int
1955 dissect_x2ap_Transmission_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1956   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1957                                      6, NULL, TRUE, 0, NULL);
1958
1959   return offset;
1960 }
1961
1962
1963 static const per_sequence_t FDD_Info_sequence[] = {
1964   { &hf_x2ap_uL_EARFCN      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EARFCN },
1965   { &hf_x2ap_dL_EARFCN      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EARFCN },
1966   { &hf_x2ap_uL_Transmission_Bandwidth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Transmission_Bandwidth },
1967   { &hf_x2ap_dL_Transmission_Bandwidth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Transmission_Bandwidth },
1968   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
1969   { NULL, 0, 0, NULL }
1970 };
1971
1972 static int
1973 dissect_x2ap_FDD_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1974   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1975                                    ett_x2ap_FDD_Info, FDD_Info_sequence);
1976
1977   return offset;
1978 }
1979
1980
1981 static const value_string x2ap_SubframeAssignment_vals[] = {
1982   {   0, "sa0" },
1983   {   1, "sa1" },
1984   {   2, "sa2" },
1985   {   3, "sa3" },
1986   {   4, "sa4" },
1987   {   5, "sa5" },
1988   {   6, "sa6" },
1989   { 0, NULL }
1990 };
1991
1992
1993 static int
1994 dissect_x2ap_SubframeAssignment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1995   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1996                                      7, NULL, TRUE, 0, NULL);
1997
1998   return offset;
1999 }
2000
2001
2002 static const value_string x2ap_SpecialSubframePatterns_vals[] = {
2003   {   0, "ssp0" },
2004   {   1, "ssp1" },
2005   {   2, "ssp2" },
2006   {   3, "ssp3" },
2007   {   4, "ssp4" },
2008   {   5, "ssp5" },
2009   {   6, "ssp6" },
2010   {   7, "ssp7" },
2011   {   8, "ssp8" },
2012   { 0, NULL }
2013 };
2014
2015
2016 static int
2017 dissect_x2ap_SpecialSubframePatterns(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2018   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2019                                      9, NULL, TRUE, 0, NULL);
2020
2021   return offset;
2022 }
2023
2024
2025 static const per_sequence_t SpecialSubframe_Info_sequence[] = {
2026   { &hf_x2ap_specialSubframePatterns, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_SpecialSubframePatterns },
2027   { &hf_x2ap_cyclicPrefixDL , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_CyclicPrefixDL },
2028   { &hf_x2ap_cyclicPrefixUL , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_CyclicPrefixUL },
2029   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2030   { NULL, 0, 0, NULL }
2031 };
2032
2033 static int
2034 dissect_x2ap_SpecialSubframe_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2036                                    ett_x2ap_SpecialSubframe_Info, SpecialSubframe_Info_sequence);
2037
2038   return offset;
2039 }
2040
2041
2042 static const per_sequence_t TDD_Info_sequence[] = {
2043   { &hf_x2ap_eARFCN         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EARFCN },
2044   { &hf_x2ap_transmission_Bandwidth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Transmission_Bandwidth },
2045   { &hf_x2ap_subframeAssignment, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_SubframeAssignment },
2046   { &hf_x2ap_specialSubframe_Info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_SpecialSubframe_Info },
2047   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2048   { NULL, 0, 0, NULL }
2049 };
2050
2051 static int
2052 dissect_x2ap_TDD_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2053   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2054                                    ett_x2ap_TDD_Info, TDD_Info_sequence);
2055
2056   return offset;
2057 }
2058
2059
2060 static const value_string x2ap_EUTRA_Mode_Info_vals[] = {
2061   {   0, "fDD" },
2062   {   1, "tDD" },
2063   { 0, NULL }
2064 };
2065
2066 static const per_choice_t EUTRA_Mode_Info_choice[] = {
2067   {   0, &hf_x2ap_fDD            , ASN1_EXTENSION_ROOT    , dissect_x2ap_FDD_Info },
2068   {   1, &hf_x2ap_tDD            , ASN1_EXTENSION_ROOT    , dissect_x2ap_TDD_Info },
2069   { 0, NULL, 0, NULL }
2070 };
2071
2072 static int
2073 dissect_x2ap_EUTRA_Mode_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2074   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2075                                  ett_x2ap_EUTRA_Mode_Info, EUTRA_Mode_Info_choice,
2076                                  NULL);
2077
2078   return offset;
2079 }
2080
2081
2082
2083 static int
2084 dissect_x2ap_BIT_STRING_SIZE_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2085   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2086                                      20, 20, FALSE, NULL);
2087
2088   return offset;
2089 }
2090
2091
2092
2093 static int
2094 dissect_x2ap_BIT_STRING_SIZE_28(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2095   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2096                                      28, 28, FALSE, NULL);
2097
2098   return offset;
2099 }
2100
2101
2102 static const value_string x2ap_ENB_ID_vals[] = {
2103   {   0, "macro-eNB-ID" },
2104   {   1, "home-eNB-ID" },
2105   { 0, NULL }
2106 };
2107
2108 static const per_choice_t ENB_ID_choice[] = {
2109   {   0, &hf_x2ap_macro_eNB_ID   , ASN1_EXTENSION_ROOT    , dissect_x2ap_BIT_STRING_SIZE_20 },
2110   {   1, &hf_x2ap_home_eNB_ID    , ASN1_EXTENSION_ROOT    , dissect_x2ap_BIT_STRING_SIZE_28 },
2111   { 0, NULL, 0, NULL }
2112 };
2113
2114 static int
2115 dissect_x2ap_ENB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2116   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2117                                  ett_x2ap_ENB_ID, ENB_ID_choice,
2118                                  NULL);
2119
2120   return offset;
2121 }
2122
2123
2124
2125 static int
2126 dissect_x2ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2127   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2128                                      16, 16, TRUE, NULL);
2129
2130   return offset;
2131 }
2132
2133
2134 static const per_sequence_t EPLMNs_sequence_of[1] = {
2135   { &hf_x2ap_EPLMNs_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
2136 };
2137
2138 static int
2139 dissect_x2ap_EPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2140   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2141                                                   ett_x2ap_EPLMNs, EPLMNs_sequence_of,
2142                                                   1, maxnoofEPLMNs, FALSE);
2143
2144   return offset;
2145 }
2146
2147
2148
2149 static int
2150 dissect_x2ap_E_RAB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2151   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2152                                                             0U, 15U, NULL, TRUE);
2153
2154   return offset;
2155 }
2156
2157
2158
2159 static int
2160 dissect_x2ap_QCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2161   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2162                                                             0U, 255U, NULL, FALSE);
2163
2164   return offset;
2165 }
2166
2167
2168 static const per_sequence_t GBR_QosInformation_sequence[] = {
2169   { &hf_x2ap_e_RAB_MaximumBitrateDL, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BitRate },
2170   { &hf_x2ap_e_RAB_MaximumBitrateUL, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BitRate },
2171   { &hf_x2ap_e_RAB_GuaranteedBitrateDL, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BitRate },
2172   { &hf_x2ap_e_RAB_GuaranteedBitrateUL, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BitRate },
2173   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2174   { NULL, 0, 0, NULL }
2175 };
2176
2177 static int
2178 dissect_x2ap_GBR_QosInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2179   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2180                                    ett_x2ap_GBR_QosInformation, GBR_QosInformation_sequence);
2181
2182   return offset;
2183 }
2184
2185
2186 static const per_sequence_t E_RAB_Level_QoS_Parameters_sequence[] = {
2187   { &hf_x2ap_qCI            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_QCI },
2188   { &hf_x2ap_allocationAndRetentionPriority, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_AllocationAndRetentionPriority },
2189   { &hf_x2ap_gbrQosInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_GBR_QosInformation },
2190   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2191   { NULL, 0, 0, NULL }
2192 };
2193
2194 static int
2195 dissect_x2ap_E_RAB_Level_QoS_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2196   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2197                                    ett_x2ap_E_RAB_Level_QoS_Parameters, E_RAB_Level_QoS_Parameters_sequence);
2198
2199   return offset;
2200 }
2201
2202
2203 static const per_sequence_t E_RAB_List_sequence_of[1] = {
2204   { &hf_x2ap_E_RAB_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
2205 };
2206
2207 static int
2208 dissect_x2ap_E_RAB_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2209   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2210                                                   ett_x2ap_E_RAB_List, E_RAB_List_sequence_of,
2211                                                   1, maxnoofBearers, FALSE);
2212
2213   return offset;
2214 }
2215
2216
2217 static const per_sequence_t E_RAB_Item_sequence[] = {
2218   { &hf_x2ap_e_RAB_ID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_E_RAB_ID },
2219   { &hf_x2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Cause },
2220   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2221   { NULL, 0, 0, NULL }
2222 };
2223
2224 static int
2225 dissect_x2ap_E_RAB_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2226   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2227                                    ett_x2ap_E_RAB_Item, E_RAB_Item_sequence);
2228
2229   return offset;
2230 }
2231
2232
2233
2234 static int
2235 dissect_x2ap_EUTRANTraceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2236   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2237                                        8, 8, FALSE, NULL);
2238
2239   return offset;
2240 }
2241
2242
2243 static const value_string x2ap_EventType_vals[] = {
2244   {   0, "change-of-serving-cell" },
2245   { 0, NULL }
2246 };
2247
2248
2249 static int
2250 dissect_x2ap_EventType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2251   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2252                                      1, NULL, TRUE, 0, NULL);
2253
2254   return offset;
2255 }
2256
2257
2258 static const value_string x2ap_ForbiddenInterRATs_vals[] = {
2259   {   0, "all" },
2260   {   1, "geran" },
2261   {   2, "utran" },
2262   {   3, "cdma2000" },
2263   {   4, "geranandutran" },
2264   {   5, "cdma2000andutran" },
2265   { 0, NULL }
2266 };
2267
2268
2269 static int
2270 dissect_x2ap_ForbiddenInterRATs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2271   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2272                                      4, NULL, TRUE, 2, NULL);
2273
2274   return offset;
2275 }
2276
2277
2278 static const per_sequence_t ForbiddenTACs_sequence_of[1] = {
2279   { &hf_x2ap_ForbiddenTACs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_TAC },
2280 };
2281
2282 static int
2283 dissect_x2ap_ForbiddenTACs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2284   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2285                                                   ett_x2ap_ForbiddenTACs, ForbiddenTACs_sequence_of,
2286                                                   1, maxnoofForbTACs, FALSE);
2287
2288   return offset;
2289 }
2290
2291
2292 static const per_sequence_t ForbiddenTAs_Item_sequence[] = {
2293   { &hf_x2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
2294   { &hf_x2ap_forbiddenTACs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ForbiddenTACs },
2295   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2296   { NULL, 0, 0, NULL }
2297 };
2298
2299 static int
2300 dissect_x2ap_ForbiddenTAs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2301   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2302                                    ett_x2ap_ForbiddenTAs_Item, ForbiddenTAs_Item_sequence);
2303
2304   return offset;
2305 }
2306
2307
2308 static const per_sequence_t ForbiddenTAs_sequence_of[1] = {
2309   { &hf_x2ap_ForbiddenTAs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ForbiddenTAs_Item },
2310 };
2311
2312 static int
2313 dissect_x2ap_ForbiddenTAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2314   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2315                                                   ett_x2ap_ForbiddenTAs, ForbiddenTAs_sequence_of,
2316                                                   1, maxnoofEPLMNsPlusOne, FALSE);
2317
2318   return offset;
2319 }
2320
2321
2322
2323 static int
2324 dissect_x2ap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2325   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2326                                        2, 2, FALSE, NULL);
2327
2328   return offset;
2329 }
2330
2331
2332 static const per_sequence_t ForbiddenLACs_sequence_of[1] = {
2333   { &hf_x2ap_ForbiddenLACs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_LAC },
2334 };
2335
2336 static int
2337 dissect_x2ap_ForbiddenLACs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2338   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2339                                                   ett_x2ap_ForbiddenLACs, ForbiddenLACs_sequence_of,
2340                                                   1, maxnoofForbLACs, FALSE);
2341
2342   return offset;
2343 }
2344
2345
2346 static const per_sequence_t ForbiddenLAs_Item_sequence[] = {
2347   { &hf_x2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
2348   { &hf_x2ap_forbiddenLACs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ForbiddenLACs },
2349   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2350   { NULL, 0, 0, NULL }
2351 };
2352
2353 static int
2354 dissect_x2ap_ForbiddenLAs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2355   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2356                                    ett_x2ap_ForbiddenLAs_Item, ForbiddenLAs_Item_sequence);
2357
2358   return offset;
2359 }
2360
2361
2362 static const per_sequence_t ForbiddenLAs_sequence_of[1] = {
2363   { &hf_x2ap_ForbiddenLAs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ForbiddenLAs_Item },
2364 };
2365
2366 static int
2367 dissect_x2ap_ForbiddenLAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2368   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2369                                                   ett_x2ap_ForbiddenLAs, ForbiddenLAs_sequence_of,
2370                                                   1, maxnoofEPLMNsPlusOne, FALSE);
2371
2372   return offset;
2373 }
2374
2375
2376
2377 static int
2378 dissect_x2ap_Fourframes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2379   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2380                                      24, 24, FALSE, NULL);
2381
2382   return offset;
2383 }
2384
2385
2386 static const per_sequence_t GlobalENB_ID_sequence[] = {
2387   { &hf_x2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
2388   { &hf_x2ap_eNB_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ENB_ID },
2389   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2390   { NULL, 0, 0, NULL }
2391 };
2392
2393 static int
2394 dissect_x2ap_GlobalENB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2395   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2396                                    ett_x2ap_GlobalENB_ID, GlobalENB_ID_sequence);
2397
2398   return offset;
2399 }
2400
2401
2402
2403 static int
2404 dissect_x2ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2405 #line 111 "../../asn1/x2ap/x2ap.cnf"
2406   tvbuff_t *parameter_tvb=NULL;
2407   proto_tree *subtree;
2408   gint tvb_len;
2409   
2410   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2411                                      1, 160, TRUE, &parameter_tvb);
2412
2413   if (!parameter_tvb)
2414     return offset;
2415         /* Get the length */
2416         tvb_len = tvb_length(parameter_tvb);
2417         subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_TransportLayerAddress);
2418         if (tvb_len==4){
2419                 /* IPv4 */
2420                  proto_tree_add_item(subtree, hf_x2ap_transportLayerAddressIPv4, parameter_tvb, 0, tvb_len, FALSE);
2421         }
2422         if (tvb_len==16){
2423                 /* IPv6 */
2424                  proto_tree_add_item(subtree, hf_x2ap_transportLayerAddressIPv6, parameter_tvb, 0, tvb_len, FALSE);
2425         }
2426
2427
2428
2429   return offset;
2430 }
2431
2432
2433
2434 static int
2435 dissect_x2ap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2436   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2437                                        4, 4, FALSE, NULL);
2438
2439   return offset;
2440 }
2441
2442
2443 static const per_sequence_t GTPtunnelEndpoint_sequence[] = {
2444   { &hf_x2ap_transportLayerAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_TransportLayerAddress },
2445   { &hf_x2ap_gTP_TEID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_GTP_TEI },
2446   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2447   { NULL, 0, 0, NULL }
2448 };
2449
2450 static int
2451 dissect_x2ap_GTPtunnelEndpoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2452   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2453                                    ett_x2ap_GTPtunnelEndpoint, GTPtunnelEndpoint_sequence);
2454
2455   return offset;
2456 }
2457
2458
2459
2460 static int
2461 dissect_x2ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2462   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2463                                        2, 2, FALSE, NULL);
2464
2465   return offset;
2466 }
2467
2468
2469 static const per_sequence_t GU_Group_ID_sequence[] = {
2470   { &hf_x2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
2471   { &hf_x2ap_mME_Group_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_MME_Group_ID },
2472   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2473   { NULL, 0, 0, NULL }
2474 };
2475
2476 static int
2477 dissect_x2ap_GU_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2478   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2479                                    ett_x2ap_GU_Group_ID, GU_Group_ID_sequence);
2480
2481   return offset;
2482 }
2483
2484
2485 static const per_sequence_t GUGroupIDList_sequence_of[1] = {
2486   { &hf_x2ap_GUGroupIDList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_GU_Group_ID },
2487 };
2488
2489 static int
2490 dissect_x2ap_GUGroupIDList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2491   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2492                                                   ett_x2ap_GUGroupIDList, GUGroupIDList_sequence_of,
2493                                                   1, maxPools, FALSE);
2494
2495   return offset;
2496 }
2497
2498
2499
2500 static int
2501 dissect_x2ap_MME_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2502   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2503                                        1, 1, FALSE, NULL);
2504
2505   return offset;
2506 }
2507
2508
2509 static const per_sequence_t GUMMEI_sequence[] = {
2510   { &hf_x2ap_gU_Group_ID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_GU_Group_ID },
2511   { &hf_x2ap_mME_Code       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_MME_Code },
2512   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2513   { NULL, 0, 0, NULL }
2514 };
2515
2516 static int
2517 dissect_x2ap_GUMMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2518   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2519                                    ett_x2ap_GUMMEI, GUMMEI_sequence);
2520
2521   return offset;
2522 }
2523
2524
2525 static const value_string x2ap_HandoverReportType_vals[] = {
2526   {   0, "hoTooEarly" },
2527   {   1, "hoToWrongCell" },
2528   { 0, NULL }
2529 };
2530
2531
2532 static int
2533 dissect_x2ap_HandoverReportType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2534   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2535                                      2, NULL, TRUE, 0, NULL);
2536
2537   return offset;
2538 }
2539
2540
2541 static const per_sequence_t HandoverRestrictionList_sequence[] = {
2542   { &hf_x2ap_servingPLMN    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity },
2543   { &hf_x2ap_equivalentPLMNs, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_EPLMNs },
2544   { &hf_x2ap_forbiddenTAs   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ForbiddenTAs },
2545   { &hf_x2ap_forbiddenLAs   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ForbiddenLAs },
2546   { &hf_x2ap_forbiddenInterRATs, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ForbiddenInterRATs },
2547   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2548   { NULL, 0, 0, NULL }
2549 };
2550
2551 static int
2552 dissect_x2ap_HandoverRestrictionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2553   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2554                                    ett_x2ap_HandoverRestrictionList, HandoverRestrictionList_sequence);
2555
2556   return offset;
2557 }
2558
2559
2560 static const value_string x2ap_LoadIndicator_vals[] = {
2561   {   0, "lowLoad" },
2562   {   1, "mediumLoad" },
2563   {   2, "highLoad" },
2564   {   3, "overLoad" },
2565   { 0, NULL }
2566 };
2567
2568
2569 static int
2570 dissect_x2ap_LoadIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2571   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2572                                      4, NULL, TRUE, 0, NULL);
2573
2574   return offset;
2575 }
2576
2577
2578 static const per_sequence_t HWLoadIndicator_sequence[] = {
2579   { &hf_x2ap_dLHWLoadIndicator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_LoadIndicator },
2580   { &hf_x2ap_uLHWLoadIndicator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_LoadIndicator },
2581   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2582   { NULL, 0, 0, NULL }
2583 };
2584
2585 static int
2586 dissect_x2ap_HWLoadIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2587   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2588                                    ett_x2ap_HWLoadIndicator, HWLoadIndicator_sequence);
2589
2590   return offset;
2591 }
2592
2593
2594 static const value_string x2ap_InvokeIndication_vals[] = {
2595   {   0, "abs-information" },
2596   { 0, NULL }
2597 };
2598
2599
2600 static int
2601 dissect_x2ap_InvokeIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2602   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2603                                      1, NULL, TRUE, 0, NULL);
2604
2605   return offset;
2606 }
2607
2608
2609
2610 static int
2611 dissect_x2ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2612   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2613                                      16, 16, TRUE, NULL);
2614
2615   return offset;
2616 }
2617
2618
2619
2620 static int
2621 dissect_x2ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2622   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2623                                      8, 8, FALSE, NULL);
2624
2625   return offset;
2626 }
2627
2628
2629
2630 static int
2631 dissect_x2ap_Time_UE_StayedInCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2632   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2633                                                             0U, 4095U, NULL, FALSE);
2634
2635   return offset;
2636 }
2637
2638
2639 static const per_sequence_t LastVisitedEUTRANCellInformation_sequence[] = {
2640   { &hf_x2ap_global_Cell_ID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
2641   { &hf_x2ap_cellType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_CellType },
2642   { &hf_x2ap_time_UE_StayedInCell, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Time_UE_StayedInCell },
2643   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2644   { NULL, 0, 0, NULL }
2645 };
2646
2647 static int
2648 dissect_x2ap_LastVisitedEUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2649   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2650                                    ett_x2ap_LastVisitedEUTRANCellInformation, LastVisitedEUTRANCellInformation_sequence);
2651
2652   return offset;
2653 }
2654
2655
2656
2657 static int
2658 dissect_x2ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2659   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2660                                        NO_BOUND, NO_BOUND, FALSE, NULL);
2661
2662   return offset;
2663 }
2664
2665
2666 static const value_string x2ap_LastVisitedGERANCellInformation_vals[] = {
2667   {   0, "undefined" },
2668   { 0, NULL }
2669 };
2670
2671 static const per_choice_t LastVisitedGERANCellInformation_choice[] = {
2672   {   0, &hf_x2ap_undefined      , ASN1_EXTENSION_ROOT    , dissect_x2ap_NULL },
2673   { 0, NULL, 0, NULL }
2674 };
2675
2676 static int
2677 dissect_x2ap_LastVisitedGERANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2678   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2679                                  ett_x2ap_LastVisitedGERANCellInformation, LastVisitedGERANCellInformation_choice,
2680                                  NULL);
2681
2682   return offset;
2683 }
2684
2685
2686 static const value_string x2ap_LastVisitedCell_Item_vals[] = {
2687   {   0, "e-UTRAN-Cell" },
2688   {   1, "uTRAN-Cell" },
2689   {   2, "gERAN-Cell" },
2690   { 0, NULL }
2691 };
2692
2693 static const per_choice_t LastVisitedCell_Item_choice[] = {
2694   {   0, &hf_x2ap_e_UTRAN_Cell   , ASN1_EXTENSION_ROOT    , dissect_x2ap_LastVisitedEUTRANCellInformation },
2695   {   1, &hf_x2ap_uTRAN_Cell     , ASN1_EXTENSION_ROOT    , dissect_x2ap_LastVisitedUTRANCellInformation },
2696   {   2, &hf_x2ap_gERAN_Cell     , ASN1_EXTENSION_ROOT    , dissect_x2ap_LastVisitedGERANCellInformation },
2697   { 0, NULL, 0, NULL }
2698 };
2699
2700 static int
2701 dissect_x2ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2702   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2703                                  ett_x2ap_LastVisitedCell_Item, LastVisitedCell_Item_choice,
2704                                  NULL);
2705
2706   return offset;
2707 }
2708
2709
2710 static const value_string x2ap_ReportArea_vals[] = {
2711   {   0, "ecgi" },
2712   { 0, NULL }
2713 };
2714
2715
2716 static int
2717 dissect_x2ap_ReportArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2718   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2719                                      1, NULL, TRUE, 0, NULL);
2720
2721   return offset;
2722 }
2723
2724
2725 static const per_sequence_t LocationReportingInformation_sequence[] = {
2726   { &hf_x2ap_eventType      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EventType },
2727   { &hf_x2ap_reportArea     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportArea },
2728   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2729   { NULL, 0, 0, NULL }
2730 };
2731
2732 static int
2733 dissect_x2ap_LocationReportingInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2734   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2735                                    ett_x2ap_LocationReportingInformation, LocationReportingInformation_sequence);
2736
2737   return offset;
2738 }
2739
2740
2741 static const value_string x2ap_MDT_Activation_vals[] = {
2742   {   0, "immediate-MDT-only" },
2743   {   1, "immediate-MDT-and-Trace" },
2744   { 0, NULL }
2745 };
2746
2747
2748 static int
2749 dissect_x2ap_MDT_Activation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2750   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2751                                      2, NULL, TRUE, 0, NULL);
2752
2753   return offset;
2754 }
2755
2756
2757
2758 static int
2759 dissect_x2ap_MeasurementsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2760   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2761                                      8, 8, FALSE, NULL);
2762
2763   return offset;
2764 }
2765
2766
2767 static const value_string x2ap_ReportingTriggerMDT_vals[] = {
2768   {   0, "periodic" },
2769   {   1, "a2eventtriggered" },
2770   { 0, NULL }
2771 };
2772
2773
2774 static int
2775 dissect_x2ap_ReportingTriggerMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2776   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2777                                      2, NULL, TRUE, 0, NULL);
2778
2779   return offset;
2780 }
2781
2782
2783
2784 static int
2785 dissect_x2ap_Threshold_RSRP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2786   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2787                                                             0U, 97U, NULL, FALSE);
2788
2789   return offset;
2790 }
2791
2792
2793
2794 static int
2795 dissect_x2ap_Threshold_RSRQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2796   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2797                                                             0U, 34U, NULL, FALSE);
2798
2799   return offset;
2800 }
2801
2802
2803 static const value_string x2ap_MeasurementThresholdA2_vals[] = {
2804   {   0, "threshold-RSRP" },
2805   {   1, "threshold-RSRQ" },
2806   { 0, NULL }
2807 };
2808
2809 static const per_choice_t MeasurementThresholdA2_choice[] = {
2810   {   0, &hf_x2ap_threshold_RSRP , ASN1_EXTENSION_ROOT    , dissect_x2ap_Threshold_RSRP },
2811   {   1, &hf_x2ap_threshold_RSRQ , ASN1_EXTENSION_ROOT    , dissect_x2ap_Threshold_RSRQ },
2812   { 0, NULL, 0, NULL }
2813 };
2814
2815 static int
2816 dissect_x2ap_MeasurementThresholdA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2817   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2818                                  ett_x2ap_MeasurementThresholdA2, MeasurementThresholdA2_choice,
2819                                  NULL);
2820
2821   return offset;
2822 }
2823
2824
2825 static const per_sequence_t ThresholdEventA2_sequence[] = {
2826   { &hf_x2ap_measurementThreshold, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_MeasurementThresholdA2 },
2827   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2828   { NULL, 0, 0, NULL }
2829 };
2830
2831 static int
2832 dissect_x2ap_ThresholdEventA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2833   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2834                                    ett_x2ap_ThresholdEventA2, ThresholdEventA2_sequence);
2835
2836   return offset;
2837 }
2838
2839
2840 static const value_string x2ap_ReportIntervalMDT_vals[] = {
2841   {   0, "ms120" },
2842   {   1, "ms240" },
2843   {   2, "ms480" },
2844   {   3, "ms640" },
2845   {   4, "ms1024" },
2846   {   5, "ms2048" },
2847   {   6, "ms5120" },
2848   {   7, "ms10240" },
2849   {   8, "min1" },
2850   {   9, "min6" },
2851   {  10, "min12" },
2852   {  11, "min30" },
2853   {  12, "min60" },
2854   { 0, NULL }
2855 };
2856
2857
2858 static int
2859 dissect_x2ap_ReportIntervalMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2860   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2861                                      13, NULL, FALSE, 0, NULL);
2862
2863   return offset;
2864 }
2865
2866
2867 static const value_string x2ap_ReportAmountMDT_vals[] = {
2868   {   0, "r1" },
2869   {   1, "r2" },
2870   {   2, "r4" },
2871   {   3, "r8" },
2872   {   4, "r16" },
2873   {   5, "r32" },
2874   {   6, "r64" },
2875   {   7, "rinfinity" },
2876   { 0, NULL }
2877 };
2878
2879
2880 static int
2881 dissect_x2ap_ReportAmountMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2882   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2883                                      8, NULL, FALSE, 0, NULL);
2884
2885   return offset;
2886 }
2887
2888
2889 static const per_sequence_t PeriodicReportingMDT_sequence[] = {
2890   { &hf_x2ap_reportInterval , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportIntervalMDT },
2891   { &hf_x2ap_reportAmount   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportAmountMDT },
2892   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2893   { NULL, 0, 0, NULL }
2894 };
2895
2896 static int
2897 dissect_x2ap_PeriodicReportingMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2898   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2899                                    ett_x2ap_PeriodicReportingMDT, PeriodicReportingMDT_sequence);
2900
2901   return offset;
2902 }
2903
2904
2905 static const per_sequence_t MDT_Configuration_sequence[] = {
2906   { &hf_x2ap_mdt_Activation , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_MDT_Activation },
2907   { &hf_x2ap_areaScopeOfMDT , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_AreaScopeOfMDT },
2908   { &hf_x2ap_measurementsToActivate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_MeasurementsToActivate },
2909   { &hf_x2ap_reportingTriggerMDT, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportingTriggerMDT },
2910   { &hf_x2ap_thresholdeventA2, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ThresholdEventA2 },
2911   { &hf_x2ap_periodicReportingMDT, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_PeriodicReportingMDT },
2912   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
2913   { NULL, 0, 0, NULL }
2914 };
2915
2916 static int
2917 dissect_x2ap_MDT_Configuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2918   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2919                                    ett_x2ap_MDT_Configuration, MDT_Configuration_sequence);
2920
2921   return offset;
2922 }
2923
2924
2925
2926 static int
2927 dissect_x2ap_Measurement_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2928   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2929                                                             1U, 4095U, NULL, TRUE);
2930
2931   return offset;
2932 }
2933
2934
2935 static const value_string x2ap_RadioframeAllocationPeriod_vals[] = {
2936   {   0, "n1" },
2937   {   1, "n2" },
2938   {   2, "n4" },
2939   {   3, "n8" },
2940   {   4, "n16" },
2941   {   5, "n32" },
2942   { 0, NULL }
2943 };
2944
2945
2946 static int
2947 dissect_x2ap_RadioframeAllocationPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2948   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2949                                      6, NULL, TRUE, 0, NULL);
2950
2951   return offset;
2952 }
2953
2954
2955
2956 static int
2957 dissect_x2ap_RadioframeAllocationOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2958   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2959                                                             0U, 7U, NULL, TRUE);
2960
2961   return offset;
2962 }
2963
2964
2965
2966 static int
2967 dissect_x2ap_Oneframe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2968   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2969                                      6, 6, FALSE, NULL);
2970
2971   return offset;
2972 }
2973
2974
2975 static const value_string x2ap_SubframeAllocation_vals[] = {
2976   {   0, "oneframe" },
2977   {   1, "fourframes" },
2978   { 0, NULL }
2979 };
2980
2981 static const per_choice_t SubframeAllocation_choice[] = {
2982   {   0, &hf_x2ap_oneframe       , ASN1_EXTENSION_ROOT    , dissect_x2ap_Oneframe },
2983   {   1, &hf_x2ap_fourframes     , ASN1_EXTENSION_ROOT    , dissect_x2ap_Fourframes },
2984   { 0, NULL, 0, NULL }
2985 };
2986
2987 static int
2988 dissect_x2ap_SubframeAllocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2989   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2990                                  ett_x2ap_SubframeAllocation, SubframeAllocation_choice,
2991                                  NULL);
2992
2993   return offset;
2994 }
2995
2996
2997 static const per_sequence_t MBSFN_Subframe_Info_sequence[] = {
2998   { &hf_x2ap_radioframeAllocationPeriod, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_RadioframeAllocationPeriod },
2999   { &hf_x2ap_radioframeAllocationOffset, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_RadioframeAllocationOffset },
3000   { &hf_x2ap_subframeAllocation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_SubframeAllocation },
3001   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3002   { NULL, 0, 0, NULL }
3003 };
3004
3005 static int
3006 dissect_x2ap_MBSFN_Subframe_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3007   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3008                                    ett_x2ap_MBSFN_Subframe_Info, MBSFN_Subframe_Info_sequence);
3009
3010   return offset;
3011 }
3012
3013
3014 static const per_sequence_t MBSFN_Subframe_Infolist_sequence_of[1] = {
3015   { &hf_x2ap_MBSFN_Subframe_Infolist_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_MBSFN_Subframe_Info },
3016 };
3017
3018 static int
3019 dissect_x2ap_MBSFN_Subframe_Infolist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3020   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3021                                                   ett_x2ap_MBSFN_Subframe_Infolist, MBSFN_Subframe_Infolist_sequence_of,
3022                                                   1, maxnoofMBSFN, FALSE);
3023
3024   return offset;
3025 }
3026
3027
3028 static const value_string x2ap_ManagementBasedMDTallowed_vals[] = {
3029   {   0, "allowed" },
3030   { 0, NULL }
3031 };
3032
3033
3034 static int
3035 dissect_x2ap_ManagementBasedMDTallowed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3036   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3037                                      1, NULL, TRUE, 0, NULL);
3038
3039   return offset;
3040 }
3041
3042
3043
3044 static int
3045 dissect_x2ap_INTEGER_M20_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3046   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3047                                                             -20, 20U, NULL, FALSE);
3048
3049   return offset;
3050 }
3051
3052
3053 static const per_sequence_t MobilityParametersModificationRange_sequence[] = {
3054   { &hf_x2ap_handoverTriggerChangeLowerLimit, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_M20_20 },
3055   { &hf_x2ap_handoverTriggerChangeUpperLimit, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_M20_20 },
3056   { NULL, 0, 0, NULL }
3057 };
3058
3059 static int
3060 dissect_x2ap_MobilityParametersModificationRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3061   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3062                                    ett_x2ap_MobilityParametersModificationRange, MobilityParametersModificationRange_sequence);
3063
3064   return offset;
3065 }
3066
3067
3068 static const per_sequence_t MobilityParametersInformation_sequence[] = {
3069   { &hf_x2ap_handoverTriggerChange, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_M20_20 },
3070   { NULL, 0, 0, NULL }
3071 };
3072
3073 static int
3074 dissect_x2ap_MobilityParametersInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3075   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3076                                    ett_x2ap_MobilityParametersInformation, MobilityParametersInformation_sequence);
3077
3078   return offset;
3079 }
3080
3081
3082
3083 static int
3084 dissect_x2ap_PCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3085   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3086                                                             0U, 503U, NULL, TRUE);
3087
3088   return offset;
3089 }
3090
3091
3092 static const per_sequence_t Neighbour_Information_item_sequence[] = {
3093   { &hf_x2ap_eCGI           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
3094   { &hf_x2ap_pCI            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PCI },
3095   { &hf_x2ap_eARFCN         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EARFCN },
3096   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3097   { NULL, 0, 0, NULL }
3098 };
3099
3100 static int
3101 dissect_x2ap_Neighbour_Information_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3102   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3103                                    ett_x2ap_Neighbour_Information_item, Neighbour_Information_item_sequence);
3104
3105   return offset;
3106 }
3107
3108
3109 static const per_sequence_t Neighbour_Information_sequence_of[1] = {
3110   { &hf_x2ap_Neighbour_Information_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_Neighbour_Information_item },
3111 };
3112
3113 static int
3114 dissect_x2ap_Neighbour_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3115   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3116                                                   ett_x2ap_Neighbour_Information, Neighbour_Information_sequence_of,
3117                                                   0, maxnoofNeighbours, FALSE);
3118
3119   return offset;
3120 }
3121
3122
3123 static const value_string x2ap_Number_of_Antennaports_vals[] = {
3124   {   0, "an1" },
3125   {   1, "an2" },
3126   {   2, "an4" },
3127   { 0, NULL }
3128 };
3129
3130
3131 static int
3132 dissect_x2ap_Number_of_Antennaports(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3133   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3134                                      3, NULL, TRUE, 0, NULL);
3135
3136   return offset;
3137 }
3138
3139
3140
3141 static int
3142 dissect_x2ap_INTEGER_0_837(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3143   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3144                                                             0U, 837U, NULL, FALSE);
3145
3146   return offset;
3147 }
3148
3149
3150
3151 static int
3152 dissect_x2ap_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3153   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3154                                                             0U, 15U, NULL, FALSE);
3155
3156   return offset;
3157 }
3158
3159
3160
3161 static int
3162 dissect_x2ap_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3163   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
3164
3165   return offset;
3166 }
3167
3168
3169
3170 static int
3171 dissect_x2ap_INTEGER_0_94(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3172   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3173                                                             0U, 94U, NULL, FALSE);
3174
3175   return offset;
3176 }
3177
3178
3179
3180 static int
3181 dissect_x2ap_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3182   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3183                                                             0U, 63U, NULL, FALSE);
3184
3185   return offset;
3186 }
3187
3188
3189 static const per_sequence_t PRACH_Configuration_sequence[] = {
3190   { &hf_x2ap_rootSequenceIndex, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_0_837 },
3191   { &hf_x2ap_zeroCorrelationIndex, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_0_15 },
3192   { &hf_x2ap_highSpeedFlag  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BOOLEAN },
3193   { &hf_x2ap_prach_FreqOffset, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_0_94 },
3194   { &hf_x2ap_prach_ConfigIndex, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_INTEGER_0_63 },
3195   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3196   { NULL, 0, 0, NULL }
3197 };
3198
3199 static int
3200 dissect_x2ap_PRACH_Configuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3201   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3202                                    ett_x2ap_PRACH_Configuration, PRACH_Configuration_sequence);
3203
3204   return offset;
3205 }
3206
3207
3208
3209 static int
3210 dissect_x2ap_UL_GBR_PRB_usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3211   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3212                                                             0U, 100U, NULL, FALSE);
3213
3214   return offset;
3215 }
3216
3217
3218
3219 static int
3220 dissect_x2ap_UL_non_GBR_PRB_usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3221   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3222                                                             0U, 100U, NULL, FALSE);
3223
3224   return offset;
3225 }
3226
3227
3228
3229 static int
3230 dissect_x2ap_UL_Total_PRB_usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3231   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3232                                                             0U, 100U, NULL, FALSE);
3233
3234   return offset;
3235 }
3236
3237
3238 static const per_sequence_t RadioResourceStatus_sequence[] = {
3239   { &hf_x2ap_dL_GBR_PRB_usage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_GBR_PRB_usage },
3240   { &hf_x2ap_uL_GBR_PRB_usage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_GBR_PRB_usage },
3241   { &hf_x2ap_dL_non_GBR_PRB_usage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_non_GBR_PRB_usage },
3242   { &hf_x2ap_uL_non_GBR_PRB_usage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_non_GBR_PRB_usage },
3243   { &hf_x2ap_dL_Total_PRB_usage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_Total_PRB_usage },
3244   { &hf_x2ap_uL_Total_PRB_usage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_Total_PRB_usage },
3245   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3246   { NULL, 0, 0, NULL }
3247 };
3248
3249 static int
3250 dissect_x2ap_RadioResourceStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3251   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3252                                    ett_x2ap_RadioResourceStatus, RadioResourceStatus_sequence);
3253
3254   return offset;
3255 }
3256
3257
3258
3259 static int
3260 dissect_x2ap_ReceiveStatusofULPDCPSDUs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3261   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3262                                      4096, 4096, FALSE, NULL);
3263
3264   return offset;
3265 }
3266
3267
3268 static const value_string x2ap_Registration_Request_vals[] = {
3269   {   0, "start" },
3270   {   1, "stop" },
3271   { 0, NULL }
3272 };
3273
3274
3275 static int
3276 dissect_x2ap_Registration_Request(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3277   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3278                                      2, NULL, TRUE, 0, NULL);
3279
3280   return offset;
3281 }
3282
3283
3284
3285 static int
3286 dissect_x2ap_BIT_STRING_SIZE_6_110_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3287   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3288                                      6, 110, TRUE, NULL);
3289
3290   return offset;
3291 }
3292
3293
3294 static const value_string x2ap_RNTP_Threshold_vals[] = {
3295   {   0, "minusInfinity" },
3296   {   1, "minusEleven" },
3297   {   2, "minusTen" },
3298   {   3, "minusNine" },
3299   {   4, "minusEight" },
3300   {   5, "minusSeven" },
3301   {   6, "minusSix" },
3302   {   7, "minusFive" },
3303   {   8, "minusFour" },
3304   {   9, "minusThree" },
3305   {  10, "minusTwo" },
3306   {  11, "minusOne" },
3307   {  12, "zero" },
3308   {  13, "one" },
3309   {  14, "two" },
3310   {  15, "three" },
3311   { 0, NULL }
3312 };
3313
3314
3315 static int
3316 dissect_x2ap_RNTP_Threshold(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3317   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3318                                      16, NULL, TRUE, 0, NULL);
3319
3320   return offset;
3321 }
3322
3323
3324 static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_02_vals[] = {
3325   {   0, "one" },
3326   {   1, "two" },
3327   {   2, "four" },
3328   { 0, NULL }
3329 };
3330
3331
3332 static int
3333 dissect_x2ap_T_numberOfCellSpecificAntennaPorts_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3334   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3335                                      3, NULL, TRUE, 0, NULL);
3336
3337   return offset;
3338 }
3339
3340
3341
3342 static int
3343 dissect_x2ap_INTEGER_0_3_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3344   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3345                                                             0U, 3U, NULL, TRUE);
3346
3347   return offset;
3348 }
3349
3350
3351
3352 static int
3353 dissect_x2ap_INTEGER_0_4_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3354   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3355                                                             0U, 4U, NULL, TRUE);
3356
3357   return offset;
3358 }
3359
3360
3361 static const per_sequence_t RelativeNarrowbandTxPower_sequence[] = {
3362   { &hf_x2ap_rNTP_PerPRB    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_6_110_ },
3363   { &hf_x2ap_rNTP_Threshold , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_RNTP_Threshold },
3364   { &hf_x2ap_numberOfCellSpecificAntennaPorts_02, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_T_numberOfCellSpecificAntennaPorts_02 },
3365   { &hf_x2ap_p_B            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_0_3_ },
3366   { &hf_x2ap_pDCCH_InterferenceImpact, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_0_4_ },
3367   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3368   { NULL, 0, 0, NULL }
3369 };
3370
3371 static int
3372 dissect_x2ap_RelativeNarrowbandTxPower(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3373   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3374                                    ett_x2ap_RelativeNarrowbandTxPower, RelativeNarrowbandTxPower_sequence);
3375
3376   return offset;
3377 }
3378
3379
3380
3381 static int
3382 dissect_x2ap_ReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3383   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3384                                      32, 32, FALSE, NULL);
3385
3386   return offset;
3387 }
3388
3389
3390
3391 static int
3392 dissect_x2ap_RRC_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3393 #line 135 "../../asn1/x2ap/x2ap.cnf"
3394   tvbuff_t *parameter_tvb=NULL;
3395
3396   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3397                                        NO_BOUND, NO_BOUND, FALSE, &parameter_tvb);
3398
3399   if (!parameter_tvb)
3400     return offset;
3401   dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, tree);
3402
3403
3404
3405   return offset;
3406 }
3407
3408
3409 static const value_string x2ap_RRCConnSetupIndicator_vals[] = {
3410   {   0, "rrcConnSetup" },
3411   { 0, NULL }
3412 };
3413
3414
3415 static int
3416 dissect_x2ap_RRCConnSetupIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3417   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3418                                      1, NULL, TRUE, 0, NULL);
3419
3420   return offset;
3421 }
3422
3423
3424 static const per_sequence_t S1TNLLoadIndicator_sequence[] = {
3425   { &hf_x2ap_dLS1TNLLoadIndicator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_LoadIndicator },
3426   { &hf_x2ap_uLS1TNLLoadIndicator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_LoadIndicator },
3427   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3428   { NULL, 0, 0, NULL }
3429 };
3430
3431 static int
3432 dissect_x2ap_S1TNLLoadIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3433   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3434                                    ett_x2ap_S1TNLLoadIndicator, S1TNLLoadIndicator_sequence);
3435
3436   return offset;
3437 }
3438
3439
3440 static const per_sequence_t ServedCell_Information_sequence[] = {
3441   { &hf_x2ap_pCI            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PCI },
3442   { &hf_x2ap_cellId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
3443   { &hf_x2ap_tAC            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_TAC },
3444   { &hf_x2ap_broadcastPLMNs , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BroadcastPLMNs_Item },
3445   { &hf_x2ap_eUTRA_Mode_Info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EUTRA_Mode_Info },
3446   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3447   { NULL, 0, 0, NULL }
3448 };
3449
3450 static int
3451 dissect_x2ap_ServedCell_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3452   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3453                                    ett_x2ap_ServedCell_Information, ServedCell_Information_sequence);
3454
3455   return offset;
3456 }
3457
3458
3459 static const per_sequence_t ServedCells_item_sequence[] = {
3460   { &hf_x2ap_servedCellInfo , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ServedCell_Information },
3461   { &hf_x2ap_neighbour_Info , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_Neighbour_Information },
3462   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3463   { NULL, 0, 0, NULL }
3464 };
3465
3466 static int
3467 dissect_x2ap_ServedCells_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3468   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3469                                    ett_x2ap_ServedCells_item, ServedCells_item_sequence);
3470
3471   return offset;
3472 }
3473
3474
3475 static const per_sequence_t ServedCells_sequence_of[1] = {
3476   { &hf_x2ap_ServedCells_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ServedCells_item },
3477 };
3478
3479 static int
3480 dissect_x2ap_ServedCells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3481   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3482                                                   ett_x2ap_ServedCells, ServedCells_sequence_of,
3483                                                   1, maxCellineNB, FALSE);
3484
3485   return offset;
3486 }
3487
3488
3489
3490 static int
3491 dissect_x2ap_ShortMAC_I(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3492   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3493                                      16, 16, FALSE, NULL);
3494
3495   return offset;
3496 }
3497
3498
3499 static const value_string x2ap_SRVCCOperationPossible_vals[] = {
3500   {   0, "possible" },
3501   { 0, NULL }
3502 };
3503
3504
3505 static int
3506 dissect_x2ap_SRVCCOperationPossible(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3507   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3508                                      1, NULL, TRUE, 0, NULL);
3509
3510   return offset;
3511 }
3512
3513
3514
3515 static int
3516 dissect_x2ap_SubscriberProfileIDforRFP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3517   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3518                                                             1U, 256U, NULL, FALSE);
3519
3520   return offset;
3521 }
3522
3523
3524
3525 static int
3526 dissect_x2ap_TargeteNBtoSource_eNBTransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3527 #line 91 "../../asn1/x2ap/x2ap.cnf"
3528   tvbuff_t *parameter_tvb=NULL;
3529   
3530   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3531                                        NO_BOUND, NO_BOUND, FALSE, &parameter_tvb);
3532
3533         if (!parameter_tvb)
3534                 return offset;
3535           
3536      dissect_lte_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, tree);
3537         
3538
3539
3540   return offset;
3541 }
3542
3543
3544 static const value_string x2ap_TimeToWait_vals[] = {
3545   {   0, "v1s" },
3546   {   1, "v2s" },
3547   {   2, "v5s" },
3548   {   3, "v10s" },
3549   {   4, "v20s" },
3550   {   5, "v60s" },
3551   { 0, NULL }
3552 };
3553
3554
3555 static int
3556 dissect_x2ap_TimeToWait(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3557   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3558                                      6, NULL, TRUE, 0, NULL);
3559
3560   return offset;
3561 }
3562
3563
3564 static const value_string x2ap_TraceDepth_vals[] = {
3565   {   0, "minimum" },
3566   {   1, "medium" },
3567   {   2, "maximum" },
3568   {   3, "minimumWithoutVendorSpecificExtension" },
3569   {   4, "mediumWithoutVendorSpecificExtension" },
3570   {   5, "maximumWithoutVendorSpecificExtension" },
3571   { 0, NULL }
3572 };
3573
3574
3575 static int
3576 dissect_x2ap_TraceDepth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3577   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3578                                      6, NULL, TRUE, 0, NULL);
3579
3580   return offset;
3581 }
3582
3583
3584
3585 static int
3586 dissect_x2ap_TraceCollectionEntityIPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3587   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3588                                      1, 160, TRUE, NULL);
3589
3590   return offset;
3591 }
3592
3593
3594 static const per_sequence_t TraceActivation_sequence[] = {
3595   { &hf_x2ap_eUTRANTraceID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EUTRANTraceID },
3596   { &hf_x2ap_interfacesToTrace, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_InterfacesToTrace },
3597   { &hf_x2ap_traceDepth     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_TraceDepth },
3598   { &hf_x2ap_traceCollectionEntityIPAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_TraceCollectionEntityIPAddress },
3599   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3600   { NULL, 0, 0, NULL }
3601 };
3602
3603 static int
3604 dissect_x2ap_TraceActivation(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_x2ap_TraceActivation, TraceActivation_sequence);
3607
3608   return offset;
3609 }
3610
3611
3612 static const per_sequence_t UE_HistoryInformation_sequence_of[1] = {
3613   { &hf_x2ap_UE_HistoryInformation_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_LastVisitedCell_Item },
3614 };
3615
3616 static int
3617 dissect_x2ap_UE_HistoryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3618   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3619                                                   ett_x2ap_UE_HistoryInformation, UE_HistoryInformation_sequence_of,
3620                                                   1, maxnoofCells, FALSE);
3621
3622   return offset;
3623 }
3624
3625
3626
3627 static int
3628 dissect_x2ap_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3629   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3630                                                             0U, 4294967295U, NULL, FALSE);
3631
3632   return offset;
3633 }
3634
3635
3636
3637 static int
3638 dissect_x2ap_UE_X2AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3639   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3640                                                             0U, 4095U, NULL, FALSE);
3641
3642   return offset;
3643 }
3644
3645
3646 static const per_sequence_t UEAggregateMaximumBitRate_sequence[] = {
3647   { &hf_x2ap_uEaggregateMaximumBitRateDownlink, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BitRate },
3648   { &hf_x2ap_uEaggregateMaximumBitRateUplink, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_BitRate },
3649   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3650   { NULL, 0, 0, NULL }
3651 };
3652
3653 static int
3654 dissect_x2ap_UEAggregateMaximumBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3655   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3656                                    ett_x2ap_UEAggregateMaximumBitRate, UEAggregateMaximumBitRate_sequence);
3657
3658   return offset;
3659 }
3660
3661
3662 static const per_sequence_t UESecurityCapabilities_sequence[] = {
3663   { &hf_x2ap_encryptionAlgorithms, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_EncryptionAlgorithms },
3664   { &hf_x2ap_integrityProtectionAlgorithms, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_IntegrityProtectionAlgorithms },
3665   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3666   { NULL, 0, 0, NULL }
3667 };
3668
3669 static int
3670 dissect_x2ap_UESecurityCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3671   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3672                                    ett_x2ap_UESecurityCapabilities, UESecurityCapabilities_sequence);
3673
3674   return offset;
3675 }
3676
3677
3678 static const value_string x2ap_UL_InterferenceOverloadIndication_Item_vals[] = {
3679   {   0, "high-interference" },
3680   {   1, "medium-interference" },
3681   {   2, "low-interference" },
3682   { 0, NULL }
3683 };
3684
3685
3686 static int
3687 dissect_x2ap_UL_InterferenceOverloadIndication_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3688   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3689                                      3, NULL, TRUE, 0, NULL);
3690
3691   return offset;
3692 }
3693
3694
3695 static const per_sequence_t UL_InterferenceOverloadIndication_sequence_of[1] = {
3696   { &hf_x2ap_UL_InterferenceOverloadIndication_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_InterferenceOverloadIndication_Item },
3697 };
3698
3699 static int
3700 dissect_x2ap_UL_InterferenceOverloadIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3701   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3702                                                   ett_x2ap_UL_InterferenceOverloadIndication, UL_InterferenceOverloadIndication_sequence_of,
3703                                                   1, maxnoofPRBs, FALSE);
3704
3705   return offset;
3706 }
3707
3708
3709
3710 static int
3711 dissect_x2ap_UL_HighInterferenceIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3712   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3713                                      1, 110, TRUE, NULL);
3714
3715   return offset;
3716 }
3717
3718
3719 static const per_sequence_t UL_HighInterferenceIndicationInfo_Item_sequence[] = {
3720   { &hf_x2ap_target_Cell_ID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
3721   { &hf_x2ap_ul_interferenceindication, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_HighInterferenceIndication },
3722   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3723   { NULL, 0, 0, NULL }
3724 };
3725
3726 static int
3727 dissect_x2ap_UL_HighInterferenceIndicationInfo_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3728   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3729                                    ett_x2ap_UL_HighInterferenceIndicationInfo_Item, UL_HighInterferenceIndicationInfo_Item_sequence);
3730
3731   return offset;
3732 }
3733
3734
3735 static const per_sequence_t UL_HighInterferenceIndicationInfo_sequence_of[1] = {
3736   { &hf_x2ap_UL_HighInterferenceIndicationInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_HighInterferenceIndicationInfo_Item },
3737 };
3738
3739 static int
3740 dissect_x2ap_UL_HighInterferenceIndicationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3741   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3742                                                   ett_x2ap_UL_HighInterferenceIndicationInfo, UL_HighInterferenceIndicationInfo_sequence_of,
3743                                                   1, maxCellineNB, FALSE);
3744
3745   return offset;
3746 }
3747
3748
3749
3750 static int
3751 dissect_x2ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3752   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3753                                        NO_BOUND, NO_BOUND, FALSE, NULL);
3754
3755   return offset;
3756 }
3757
3758
3759 static const per_sequence_t HandoverRequest_sequence[] = {
3760   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3761   { NULL, 0, 0, NULL }
3762 };
3763
3764 static int
3765 dissect_x2ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3766   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3767                                    ett_x2ap_HandoverRequest, HandoverRequest_sequence);
3768
3769   return offset;
3770 }
3771
3772
3773 static const per_sequence_t E_RABs_ToBeSetup_List_sequence_of[1] = {
3774   { &hf_x2ap_E_RABs_ToBeSetup_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
3775 };
3776
3777 static int
3778 dissect_x2ap_E_RABs_ToBeSetup_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3779   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3780                                                   ett_x2ap_E_RABs_ToBeSetup_List, E_RABs_ToBeSetup_List_sequence_of,
3781                                                   1, maxnoofBearers, FALSE);
3782
3783   return offset;
3784 }
3785
3786
3787 static const per_sequence_t UE_ContextInformation_sequence[] = {
3788   { &hf_x2ap_mME_UE_S1AP_ID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UE_S1AP_ID },
3789   { &hf_x2ap_uESecurityCapabilities, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UESecurityCapabilities },
3790   { &hf_x2ap_aS_SecurityInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_AS_SecurityInformation },
3791   { &hf_x2ap_uEaggregateMaximumBitRate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_UEAggregateMaximumBitRate },
3792   { &hf_x2ap_subscriberProfileIDforRFP, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_SubscriberProfileIDforRFP },
3793   { &hf_x2ap_e_RABs_ToBeSetup_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_E_RABs_ToBeSetup_List },
3794   { &hf_x2ap_rRC_Context    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_RRC_Context },
3795   { &hf_x2ap_handoverRestrictionList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_HandoverRestrictionList },
3796   { &hf_x2ap_locationReportingInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_LocationReportingInformation },
3797   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3798   { NULL, 0, 0, NULL }
3799 };
3800
3801 static int
3802 dissect_x2ap_UE_ContextInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3803   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3804                                    ett_x2ap_UE_ContextInformation, UE_ContextInformation_sequence);
3805
3806   return offset;
3807 }
3808
3809
3810 static const per_sequence_t E_RABs_ToBeSetup_Item_sequence[] = {
3811   { &hf_x2ap_e_RAB_ID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_E_RAB_ID },
3812   { &hf_x2ap_e_RAB_Level_QoS_Parameters, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_E_RAB_Level_QoS_Parameters },
3813   { &hf_x2ap_dL_Forwarding  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_DL_Forwarding },
3814   { &hf_x2ap_uL_GTPtunnelEndpoint, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_GTPtunnelEndpoint },
3815   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3816   { NULL, 0, 0, NULL }
3817 };
3818
3819 static int
3820 dissect_x2ap_E_RABs_ToBeSetup_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3821   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3822                                    ett_x2ap_E_RABs_ToBeSetup_Item, E_RABs_ToBeSetup_Item_sequence);
3823
3824   return offset;
3825 }
3826
3827
3828 static const per_sequence_t HandoverRequestAcknowledge_sequence[] = {
3829   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3830   { NULL, 0, 0, NULL }
3831 };
3832
3833 static int
3834 dissect_x2ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3835   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3836                                    ett_x2ap_HandoverRequestAcknowledge, HandoverRequestAcknowledge_sequence);
3837
3838   return offset;
3839 }
3840
3841
3842 static const per_sequence_t E_RABs_Admitted_List_sequence_of[1] = {
3843   { &hf_x2ap_E_RABs_Admitted_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
3844 };
3845
3846 static int
3847 dissect_x2ap_E_RABs_Admitted_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3848   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3849                                                   ett_x2ap_E_RABs_Admitted_List, E_RABs_Admitted_List_sequence_of,
3850                                                   1, maxnoofBearers, FALSE);
3851
3852   return offset;
3853 }
3854
3855
3856 static const per_sequence_t E_RABs_Admitted_Item_sequence[] = {
3857   { &hf_x2ap_e_RAB_ID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_E_RAB_ID },
3858   { &hf_x2ap_uL_GTP_TunnelEndpoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_GTPtunnelEndpoint },
3859   { &hf_x2ap_dL_GTP_TunnelEndpoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_GTPtunnelEndpoint },
3860   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3861   { NULL, 0, 0, NULL }
3862 };
3863
3864 static int
3865 dissect_x2ap_E_RABs_Admitted_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3866   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3867                                    ett_x2ap_E_RABs_Admitted_Item, E_RABs_Admitted_Item_sequence);
3868
3869   return offset;
3870 }
3871
3872
3873 static const per_sequence_t HandoverPreparationFailure_sequence[] = {
3874   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3875   { NULL, 0, 0, NULL }
3876 };
3877
3878 static int
3879 dissect_x2ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3880   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3881                                    ett_x2ap_HandoverPreparationFailure, HandoverPreparationFailure_sequence);
3882
3883   return offset;
3884 }
3885
3886
3887 static const per_sequence_t HandoverReport_sequence[] = {
3888   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3889   { NULL, 0, 0, NULL }
3890 };
3891
3892 static int
3893 dissect_x2ap_HandoverReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3894   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3895                                    ett_x2ap_HandoverReport, HandoverReport_sequence);
3896
3897   return offset;
3898 }
3899
3900
3901 static const per_sequence_t SNStatusTransfer_sequence[] = {
3902   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3903   { NULL, 0, 0, NULL }
3904 };
3905
3906 static int
3907 dissect_x2ap_SNStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3908   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3909                                    ett_x2ap_SNStatusTransfer, SNStatusTransfer_sequence);
3910
3911   return offset;
3912 }
3913
3914
3915 static const per_sequence_t E_RABs_SubjectToStatusTransfer_List_sequence_of[1] = {
3916   { &hf_x2ap_E_RABs_SubjectToStatusTransfer_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
3917 };
3918
3919 static int
3920 dissect_x2ap_E_RABs_SubjectToStatusTransfer_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3921   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3922                                                   ett_x2ap_E_RABs_SubjectToStatusTransfer_List, E_RABs_SubjectToStatusTransfer_List_sequence_of,
3923                                                   1, maxnoofBearers, FALSE);
3924
3925   return offset;
3926 }
3927
3928
3929 static const per_sequence_t E_RABs_SubjectToStatusTransfer_Item_sequence[] = {
3930   { &hf_x2ap_e_RAB_ID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_E_RAB_ID },
3931   { &hf_x2ap_receiveStatusofULPDCPSDUs, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ReceiveStatusofULPDCPSDUs },
3932   { &hf_x2ap_uL_COUNTvalue  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_COUNTvalue },
3933   { &hf_x2ap_dL_COUNTvalue  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_COUNTvalue },
3934   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
3935   { NULL, 0, 0, NULL }
3936 };
3937
3938 static int
3939 dissect_x2ap_E_RABs_SubjectToStatusTransfer_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3940   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3941                                    ett_x2ap_E_RABs_SubjectToStatusTransfer_Item, E_RABs_SubjectToStatusTransfer_Item_sequence);
3942
3943   return offset;
3944 }
3945
3946
3947 static const per_sequence_t UEContextRelease_sequence[] = {
3948   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3949   { NULL, 0, 0, NULL }
3950 };
3951
3952 static int
3953 dissect_x2ap_UEContextRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3954   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3955                                    ett_x2ap_UEContextRelease, UEContextRelease_sequence);
3956
3957   return offset;
3958 }
3959
3960
3961 static const per_sequence_t HandoverCancel_sequence[] = {
3962   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3963   { NULL, 0, 0, NULL }
3964 };
3965
3966 static int
3967 dissect_x2ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3968   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3969                                    ett_x2ap_HandoverCancel, HandoverCancel_sequence);
3970
3971   return offset;
3972 }
3973
3974
3975 static const per_sequence_t ErrorIndication_sequence[] = {
3976   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3977   { NULL, 0, 0, NULL }
3978 };
3979
3980 static int
3981 dissect_x2ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3982   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3983                                    ett_x2ap_ErrorIndication, ErrorIndication_sequence);
3984
3985   return offset;
3986 }
3987
3988
3989 static const per_sequence_t ResetRequest_sequence[] = {
3990   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
3991   { NULL, 0, 0, NULL }
3992 };
3993
3994 static int
3995 dissect_x2ap_ResetRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3996   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3997                                    ett_x2ap_ResetRequest, ResetRequest_sequence);
3998
3999   return offset;
4000 }
4001
4002
4003 static const per_sequence_t ResetResponse_sequence[] = {
4004   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4005   { NULL, 0, 0, NULL }
4006 };
4007
4008 static int
4009 dissect_x2ap_ResetResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4010   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4011                                    ett_x2ap_ResetResponse, ResetResponse_sequence);
4012
4013   return offset;
4014 }
4015
4016
4017 static const per_sequence_t X2SetupRequest_sequence[] = {
4018   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4019   { NULL, 0, 0, NULL }
4020 };
4021
4022 static int
4023 dissect_x2ap_X2SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4024   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4025                                    ett_x2ap_X2SetupRequest, X2SetupRequest_sequence);
4026
4027   return offset;
4028 }
4029
4030
4031 static const per_sequence_t X2SetupResponse_sequence[] = {
4032   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4033   { NULL, 0, 0, NULL }
4034 };
4035
4036 static int
4037 dissect_x2ap_X2SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4038   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4039                                    ett_x2ap_X2SetupResponse, X2SetupResponse_sequence);
4040
4041   return offset;
4042 }
4043
4044
4045 static const per_sequence_t X2SetupFailure_sequence[] = {
4046   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4047   { NULL, 0, 0, NULL }
4048 };
4049
4050 static int
4051 dissect_x2ap_X2SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4052   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4053                                    ett_x2ap_X2SetupFailure, X2SetupFailure_sequence);
4054
4055   return offset;
4056 }
4057
4058
4059 static const per_sequence_t LoadInformation_sequence[] = {
4060   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4061   { NULL, 0, 0, NULL }
4062 };
4063
4064 static int
4065 dissect_x2ap_LoadInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4066   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4067                                    ett_x2ap_LoadInformation, LoadInformation_sequence);
4068
4069   return offset;
4070 }
4071
4072
4073 static const per_sequence_t CellInformation_List_sequence_of[1] = {
4074   { &hf_x2ap_CellInformation_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
4075 };
4076
4077 static int
4078 dissect_x2ap_CellInformation_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4079   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4080                                                   ett_x2ap_CellInformation_List, CellInformation_List_sequence_of,
4081                                                   1, maxCellineNB, FALSE);
4082
4083   return offset;
4084 }
4085
4086
4087 static const per_sequence_t CellInformation_Item_sequence[] = {
4088   { &hf_x2ap_cell_ID        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4089   { &hf_x2ap_ul_InterferenceOverloadIndication, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_UL_InterferenceOverloadIndication },
4090   { &hf_x2ap_ul_HighInterferenceIndicationInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_UL_HighInterferenceIndicationInfo },
4091   { &hf_x2ap_relativeNarrowbandTxPower, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_RelativeNarrowbandTxPower },
4092   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4093   { NULL, 0, 0, NULL }
4094 };
4095
4096 static int
4097 dissect_x2ap_CellInformation_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4098   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4099                                    ett_x2ap_CellInformation_Item, CellInformation_Item_sequence);
4100
4101   return offset;
4102 }
4103
4104
4105 static const per_sequence_t ENBConfigurationUpdate_sequence[] = {
4106   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4107   { NULL, 0, 0, NULL }
4108 };
4109
4110 static int
4111 dissect_x2ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4112   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4113                                    ett_x2ap_ENBConfigurationUpdate, ENBConfigurationUpdate_sequence);
4114
4115   return offset;
4116 }
4117
4118
4119 static const per_sequence_t ServedCellsToModify_Item_sequence[] = {
4120   { &hf_x2ap_old_ecgi       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4121   { &hf_x2ap_servedCellInfo , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ServedCell_Information },
4122   { &hf_x2ap_neighbour_Info , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_Neighbour_Information },
4123   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4124   { NULL, 0, 0, NULL }
4125 };
4126
4127 static int
4128 dissect_x2ap_ServedCellsToModify_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4129   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4130                                    ett_x2ap_ServedCellsToModify_Item, ServedCellsToModify_Item_sequence);
4131
4132   return offset;
4133 }
4134
4135
4136 static const per_sequence_t ServedCellsToModify_sequence_of[1] = {
4137   { &hf_x2ap_ServedCellsToModify_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ServedCellsToModify_Item },
4138 };
4139
4140 static int
4141 dissect_x2ap_ServedCellsToModify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4142   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4143                                                   ett_x2ap_ServedCellsToModify, ServedCellsToModify_sequence_of,
4144                                                   1, maxCellineNB, FALSE);
4145
4146   return offset;
4147 }
4148
4149
4150 static const per_sequence_t Old_ECGIs_sequence_of[1] = {
4151   { &hf_x2ap_Old_ECGIs_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4152 };
4153
4154 static int
4155 dissect_x2ap_Old_ECGIs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4156   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4157                                                   ett_x2ap_Old_ECGIs, Old_ECGIs_sequence_of,
4158                                                   1, maxCellineNB, FALSE);
4159
4160   return offset;
4161 }
4162
4163
4164 static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = {
4165   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4166   { NULL, 0, 0, NULL }
4167 };
4168
4169 static int
4170 dissect_x2ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4171   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4172                                    ett_x2ap_ENBConfigurationUpdateAcknowledge, ENBConfigurationUpdateAcknowledge_sequence);
4173
4174   return offset;
4175 }
4176
4177
4178 static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = {
4179   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4180   { NULL, 0, 0, NULL }
4181 };
4182
4183 static int
4184 dissect_x2ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4185   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4186                                    ett_x2ap_ENBConfigurationUpdateFailure, ENBConfigurationUpdateFailure_sequence);
4187
4188   return offset;
4189 }
4190
4191
4192 static const per_sequence_t ResourceStatusRequest_sequence[] = {
4193   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4194   { NULL, 0, 0, NULL }
4195 };
4196
4197 static int
4198 dissect_x2ap_ResourceStatusRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4199   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4200                                    ett_x2ap_ResourceStatusRequest, ResourceStatusRequest_sequence);
4201
4202   return offset;
4203 }
4204
4205
4206 static const per_sequence_t CellToReport_List_sequence_of[1] = {
4207   { &hf_x2ap_CellToReport_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
4208 };
4209
4210 static int
4211 dissect_x2ap_CellToReport_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4212   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4213                                                   ett_x2ap_CellToReport_List, CellToReport_List_sequence_of,
4214                                                   1, maxCellineNB, FALSE);
4215
4216   return offset;
4217 }
4218
4219
4220 static const per_sequence_t CellToReport_Item_sequence[] = {
4221   { &hf_x2ap_cell_ID        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4222   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4223   { NULL, 0, 0, NULL }
4224 };
4225
4226 static int
4227 dissect_x2ap_CellToReport_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4228   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4229                                    ett_x2ap_CellToReport_Item, CellToReport_Item_sequence);
4230
4231   return offset;
4232 }
4233
4234
4235 static const value_string x2ap_ReportingPeriodicity_vals[] = {
4236   {   0, "one-thousand-ms" },
4237   {   1, "two-thousand-ms" },
4238   {   2, "five-thousand-ms" },
4239   {   3, "ten-thousand-ms" },
4240   { 0, NULL }
4241 };
4242
4243
4244 static int
4245 dissect_x2ap_ReportingPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4246   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4247                                      4, NULL, TRUE, 0, NULL);
4248
4249   return offset;
4250 }
4251
4252
4253 static const value_string x2ap_PartialSuccessIndicator_vals[] = {
4254   {   0, "partial-success-allowed" },
4255   { 0, NULL }
4256 };
4257
4258
4259 static int
4260 dissect_x2ap_PartialSuccessIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4261   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4262                                      1, NULL, TRUE, 0, NULL);
4263
4264   return offset;
4265 }
4266
4267
4268 static const per_sequence_t ResourceStatusResponse_sequence[] = {
4269   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4270   { NULL, 0, 0, NULL }
4271 };
4272
4273 static int
4274 dissect_x2ap_ResourceStatusResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4275   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4276                                    ett_x2ap_ResourceStatusResponse, ResourceStatusResponse_sequence);
4277
4278   return offset;
4279 }
4280
4281
4282 static const per_sequence_t MeasurementInitiationResult_List_sequence_of[1] = {
4283   { &hf_x2ap_MeasurementInitiationResult_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
4284 };
4285
4286 static int
4287 dissect_x2ap_MeasurementInitiationResult_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4288   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4289                                                   ett_x2ap_MeasurementInitiationResult_List, MeasurementInitiationResult_List_sequence_of,
4290                                                   1, maxCellineNB, FALSE);
4291
4292   return offset;
4293 }
4294
4295
4296 static const per_sequence_t MeasurementFailureCause_List_sequence_of[1] = {
4297   { &hf_x2ap_MeasurementFailureCause_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
4298 };
4299
4300 static int
4301 dissect_x2ap_MeasurementFailureCause_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4302   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4303                                                   ett_x2ap_MeasurementFailureCause_List, MeasurementFailureCause_List_sequence_of,
4304                                                   1, maxFailedMeasObjects, FALSE);
4305
4306   return offset;
4307 }
4308
4309
4310 static const per_sequence_t MeasurementInitiationResult_Item_sequence[] = {
4311   { &hf_x2ap_cell_ID        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4312   { &hf_x2ap_measurementFailureCause_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_MeasurementFailureCause_List },
4313   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4314   { NULL, 0, 0, NULL }
4315 };
4316
4317 static int
4318 dissect_x2ap_MeasurementInitiationResult_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4319   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4320                                    ett_x2ap_MeasurementInitiationResult_Item, MeasurementInitiationResult_Item_sequence);
4321
4322   return offset;
4323 }
4324
4325
4326 static const per_sequence_t MeasurementFailureCause_Item_sequence[] = {
4327   { &hf_x2ap_measurementFailedReportCharacteristics, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportCharacteristics },
4328   { &hf_x2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_Cause },
4329   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4330   { NULL, 0, 0, NULL }
4331 };
4332
4333 static int
4334 dissect_x2ap_MeasurementFailureCause_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4335   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4336                                    ett_x2ap_MeasurementFailureCause_Item, MeasurementFailureCause_Item_sequence);
4337
4338   return offset;
4339 }
4340
4341
4342 static const per_sequence_t ResourceStatusFailure_sequence[] = {
4343   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4344   { NULL, 0, 0, NULL }
4345 };
4346
4347 static int
4348 dissect_x2ap_ResourceStatusFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4349   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4350                                    ett_x2ap_ResourceStatusFailure, ResourceStatusFailure_sequence);
4351
4352   return offset;
4353 }
4354
4355
4356 static const per_sequence_t CompleteFailureCauseInformation_List_sequence_of[1] = {
4357   { &hf_x2ap_CompleteFailureCauseInformation_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
4358 };
4359
4360 static int
4361 dissect_x2ap_CompleteFailureCauseInformation_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4362   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4363                                                   ett_x2ap_CompleteFailureCauseInformation_List, CompleteFailureCauseInformation_List_sequence_of,
4364                                                   1, maxCellineNB, FALSE);
4365
4366   return offset;
4367 }
4368
4369
4370 static const per_sequence_t CompleteFailureCauseInformation_Item_sequence[] = {
4371   { &hf_x2ap_cell_ID        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4372   { &hf_x2ap_measurementFailureCause_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_MeasurementFailureCause_List },
4373   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4374   { NULL, 0, 0, NULL }
4375 };
4376
4377 static int
4378 dissect_x2ap_CompleteFailureCauseInformation_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4379   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4380                                    ett_x2ap_CompleteFailureCauseInformation_Item, CompleteFailureCauseInformation_Item_sequence);
4381
4382   return offset;
4383 }
4384
4385
4386 static const per_sequence_t ResourceStatusUpdate_sequence[] = {
4387   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4388   { NULL, 0, 0, NULL }
4389 };
4390
4391 static int
4392 dissect_x2ap_ResourceStatusUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4393   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4394                                    ett_x2ap_ResourceStatusUpdate, ResourceStatusUpdate_sequence);
4395
4396   return offset;
4397 }
4398
4399
4400 static const per_sequence_t CellMeasurementResult_List_sequence_of[1] = {
4401   { &hf_x2ap_CellMeasurementResult_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container },
4402 };
4403
4404 static int
4405 dissect_x2ap_CellMeasurementResult_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4406   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4407                                                   ett_x2ap_CellMeasurementResult_List, CellMeasurementResult_List_sequence_of,
4408                                                   1, maxCellineNB, FALSE);
4409
4410   return offset;
4411 }
4412
4413
4414 static const per_sequence_t CellMeasurementResult_Item_sequence[] = {
4415   { &hf_x2ap_cell_ID        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4416   { &hf_x2ap_hWLoadIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_HWLoadIndicator },
4417   { &hf_x2ap_s1TNLLoadIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_S1TNLLoadIndicator },
4418   { &hf_x2ap_radioResourceStatus, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_RadioResourceStatus },
4419   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4420   { NULL, 0, 0, NULL }
4421 };
4422
4423 static int
4424 dissect_x2ap_CellMeasurementResult_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4425   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4426                                    ett_x2ap_CellMeasurementResult_Item, CellMeasurementResult_Item_sequence);
4427
4428   return offset;
4429 }
4430
4431
4432 static const per_sequence_t PrivateMessage_sequence[] = {
4433   { &hf_x2ap_privateIEs     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_PrivateIE_Container },
4434   { NULL, 0, 0, NULL }
4435 };
4436
4437 static int
4438 dissect_x2ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4439   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4440                                    ett_x2ap_PrivateMessage, PrivateMessage_sequence);
4441
4442   return offset;
4443 }
4444
4445
4446 static const per_sequence_t MobilityChangeRequest_sequence[] = {
4447   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4448   { NULL, 0, 0, NULL }
4449 };
4450
4451 static int
4452 dissect_x2ap_MobilityChangeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4453   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4454                                    ett_x2ap_MobilityChangeRequest, MobilityChangeRequest_sequence);
4455
4456   return offset;
4457 }
4458
4459
4460 static const per_sequence_t MobilityChangeAcknowledge_sequence[] = {
4461   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4462   { NULL, 0, 0, NULL }
4463 };
4464
4465 static int
4466 dissect_x2ap_MobilityChangeAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4467   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4468                                    ett_x2ap_MobilityChangeAcknowledge, MobilityChangeAcknowledge_sequence);
4469
4470   return offset;
4471 }
4472
4473
4474 static const per_sequence_t MobilityChangeFailure_sequence[] = {
4475   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4476   { NULL, 0, 0, NULL }
4477 };
4478
4479 static int
4480 dissect_x2ap_MobilityChangeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4481   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4482                                    ett_x2ap_MobilityChangeFailure, MobilityChangeFailure_sequence);
4483
4484   return offset;
4485 }
4486
4487
4488 static const per_sequence_t RLFIndication_sequence[] = {
4489   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4490   { NULL, 0, 0, NULL }
4491 };
4492
4493 static int
4494 dissect_x2ap_RLFIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4495   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4496                                    ett_x2ap_RLFIndication, RLFIndication_sequence);
4497
4498   return offset;
4499 }
4500
4501
4502 static const per_sequence_t CellActivationRequest_sequence[] = {
4503   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4504   { NULL, 0, 0, NULL }
4505 };
4506
4507 static int
4508 dissect_x2ap_CellActivationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4509   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4510                                    ett_x2ap_CellActivationRequest, CellActivationRequest_sequence);
4511
4512   return offset;
4513 }
4514
4515
4516 static const per_sequence_t ServedCellsToActivate_Item_sequence[] = {
4517   { &hf_x2ap_ecgi           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4518   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4519   { NULL, 0, 0, NULL }
4520 };
4521
4522 static int
4523 dissect_x2ap_ServedCellsToActivate_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4524   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4525                                    ett_x2ap_ServedCellsToActivate_Item, ServedCellsToActivate_Item_sequence);
4526
4527   return offset;
4528 }
4529
4530
4531 static const per_sequence_t ServedCellsToActivate_sequence_of[1] = {
4532   { &hf_x2ap_ServedCellsToActivate_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ServedCellsToActivate_Item },
4533 };
4534
4535 static int
4536 dissect_x2ap_ServedCellsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4537   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4538                                                   ett_x2ap_ServedCellsToActivate, ServedCellsToActivate_sequence_of,
4539                                                   1, maxCellineNB, FALSE);
4540
4541   return offset;
4542 }
4543
4544
4545 static const per_sequence_t CellActivationResponse_sequence[] = {
4546   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4547   { NULL, 0, 0, NULL }
4548 };
4549
4550 static int
4551 dissect_x2ap_CellActivationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4552   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4553                                    ett_x2ap_CellActivationResponse, CellActivationResponse_sequence);
4554
4555   return offset;
4556 }
4557
4558
4559 static const per_sequence_t ActivatedCellList_Item_sequence[] = {
4560   { &hf_x2ap_ecgi           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI },
4561   { &hf_x2ap_iE_Extensions  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_x2ap_ProtocolExtensionContainer },
4562   { NULL, 0, 0, NULL }
4563 };
4564
4565 static int
4566 dissect_x2ap_ActivatedCellList_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4567   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4568                                    ett_x2ap_ActivatedCellList_Item, ActivatedCellList_Item_sequence);
4569
4570   return offset;
4571 }
4572
4573
4574 static const per_sequence_t ActivatedCellList_sequence_of[1] = {
4575   { &hf_x2ap_ActivatedCellList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ActivatedCellList_Item },
4576 };
4577
4578 static int
4579 dissect_x2ap_ActivatedCellList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4580   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4581                                                   ett_x2ap_ActivatedCellList, ActivatedCellList_sequence_of,
4582                                                   1, maxCellineNB, FALSE);
4583
4584   return offset;
4585 }
4586
4587
4588 static const per_sequence_t CellActivationFailure_sequence[] = {
4589   { &hf_x2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container },
4590   { NULL, 0, 0, NULL }
4591 };
4592
4593 static int
4594 dissect_x2ap_CellActivationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4595   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4596                                    ett_x2ap_CellActivationFailure, CellActivationFailure_sequence);
4597
4598   return offset;
4599 }
4600
4601
4602
4603 static int
4604 dissect_x2ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4605   offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
4606
4607   return offset;
4608 }
4609
4610
4611 static const per_sequence_t InitiatingMessage_sequence[] = {
4612   { &hf_x2ap_procedureCode  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProcedureCode },
4613   { &hf_x2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_Criticality },
4614   { &hf_x2ap_initiatingMessage_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_InitiatingMessage_value },
4615   { NULL, 0, 0, NULL }
4616 };
4617
4618 static int
4619 dissect_x2ap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4620   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4621                                    ett_x2ap_InitiatingMessage, InitiatingMessage_sequence);
4622
4623   return offset;
4624 }
4625
4626
4627
4628 static int
4629 dissect_x2ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4630   offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
4631
4632   return offset;
4633 }
4634
4635
4636 static const per_sequence_t SuccessfulOutcome_sequence[] = {
4637   { &hf_x2ap_procedureCode  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProcedureCode },
4638   { &hf_x2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_Criticality },
4639   { &hf_x2ap_successfulOutcome_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_SuccessfulOutcome_value },
4640   { NULL, 0, 0, NULL }
4641 };
4642
4643 static int
4644 dissect_x2ap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4645   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4646                                    ett_x2ap_SuccessfulOutcome, SuccessfulOutcome_sequence);
4647
4648   return offset;
4649 }
4650
4651
4652
4653 static int
4654 dissect_x2ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4655   offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue);
4656
4657   return offset;
4658 }
4659
4660
4661 static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
4662   { &hf_x2ap_procedureCode  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_ProcedureCode },
4663   { &hf_x2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_Criticality },
4664   { &hf_x2ap_value          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_x2ap_UnsuccessfulOutcome_value },
4665   { NULL, 0, 0, NULL }
4666 };
4667
4668 static int
4669 dissect_x2ap_UnsuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4670   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4671                                    ett_x2ap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
4672
4673   return offset;
4674 }
4675
4676
4677 static const value_string x2ap_X2AP_PDU_vals[] = {
4678   {   0, "initiatingMessage" },
4679   {   1, "successfulOutcome" },
4680   {   2, "unsuccessfulOutcome" },
4681   { 0, NULL }
4682 };
4683
4684 static const per_choice_t X2AP_PDU_choice[] = {
4685   {   0, &hf_x2ap_initiatingMessage, ASN1_EXTENSION_ROOT    , dissect_x2ap_InitiatingMessage },
4686   {   1, &hf_x2ap_successfulOutcome, ASN1_EXTENSION_ROOT    , dissect_x2ap_SuccessfulOutcome },
4687   {   2, &hf_x2ap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT    , dissect_x2ap_UnsuccessfulOutcome },
4688   { 0, NULL, 0, NULL }
4689 };
4690
4691 static int
4692 dissect_x2ap_X2AP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4693   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4694                                  ett_x2ap_X2AP_PDU, X2AP_PDU_choice,
4695                                  NULL);
4696
4697   return offset;
4698 }
4699
4700 /*--- PDUs ---*/
4701
4702 static int dissect_ABSInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4703   int offset = 0;
4704   asn1_ctx_t asn1_ctx;
4705   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4706   offset = dissect_x2ap_ABSInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_ABSInformation_PDU);
4707   offset += 7; offset >>= 3;
4708   return offset;
4709 }
4710 static int dissect_ABS_Status_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4711   int offset = 0;
4712   asn1_ctx_t asn1_ctx;
4713   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4714   offset = dissect_x2ap_ABS_Status(tvb, offset, &asn1_ctx, tree, hf_x2ap_ABS_Status_PDU);
4715   offset += 7; offset >>= 3;
4716   return offset;
4717 }
4718 static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4719   int offset = 0;
4720   asn1_ctx_t asn1_ctx;
4721   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4722   offset = dissect_x2ap_Cause(tvb, offset, &asn1_ctx, tree, hf_x2ap_Cause_PDU);
4723   offset += 7; offset >>= 3;
4724   return offset;
4725 }
4726 static int dissect_CompositeAvailableCapacityGroup_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4727   int offset = 0;
4728   asn1_ctx_t asn1_ctx;
4729   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4730   offset = dissect_x2ap_CompositeAvailableCapacityGroup(tvb, offset, &asn1_ctx, tree, hf_x2ap_CompositeAvailableCapacityGroup_PDU);
4731   offset += 7; offset >>= 3;
4732   return offset;
4733 }
4734 static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4735   int offset = 0;
4736   asn1_ctx_t asn1_ctx;
4737   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4738   offset = dissect_x2ap_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_x2ap_CriticalityDiagnostics_PDU);
4739   offset += 7; offset >>= 3;
4740   return offset;
4741 }
4742 static int dissect_CRNTI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4743   int offset = 0;
4744   asn1_ctx_t asn1_ctx;
4745   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4746   offset = dissect_x2ap_CRNTI(tvb, offset, &asn1_ctx, tree, hf_x2ap_CRNTI_PDU);
4747   offset += 7; offset >>= 3;
4748   return offset;
4749 }
4750 static int dissect_CSGMembershipStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4751   int offset = 0;
4752   asn1_ctx_t asn1_ctx;
4753   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4754   offset = dissect_x2ap_CSGMembershipStatus(tvb, offset, &asn1_ctx, tree, hf_x2ap_CSGMembershipStatus_PDU);
4755   offset += 7; offset >>= 3;
4756   return offset;
4757 }
4758 static int dissect_CSG_Id_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4759   int offset = 0;
4760   asn1_ctx_t asn1_ctx;
4761   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4762   offset = dissect_x2ap_CSG_Id(tvb, offset, &asn1_ctx, tree, hf_x2ap_CSG_Id_PDU);
4763   offset += 7; offset >>= 3;
4764   return offset;
4765 }
4766 static int dissect_DeactivationIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4767   int offset = 0;
4768   asn1_ctx_t asn1_ctx;
4769   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4770   offset = dissect_x2ap_DeactivationIndication(tvb, offset, &asn1_ctx, tree, hf_x2ap_DeactivationIndication_PDU);
4771   offset += 7; offset >>= 3;
4772   return offset;
4773 }
4774 static int dissect_ECGI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4775   int offset = 0;
4776   asn1_ctx_t asn1_ctx;
4777   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4778   offset = dissect_x2ap_ECGI(tvb, offset, &asn1_ctx, tree, hf_x2ap_ECGI_PDU);
4779   offset += 7; offset >>= 3;
4780   return offset;
4781 }
4782 static int dissect_E_RAB_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4783   int offset = 0;
4784   asn1_ctx_t asn1_ctx;
4785   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4786   offset = dissect_x2ap_E_RAB_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_E_RAB_List_PDU);
4787   offset += 7; offset >>= 3;
4788   return offset;
4789 }
4790 static int dissect_E_RAB_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4791   int offset = 0;
4792   asn1_ctx_t asn1_ctx;
4793   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4794   offset = dissect_x2ap_E_RAB_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_E_RAB_Item_PDU);
4795   offset += 7; offset >>= 3;
4796   return offset;
4797 }
4798 static int dissect_GlobalENB_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4799   int offset = 0;
4800   asn1_ctx_t asn1_ctx;
4801   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4802   offset = dissect_x2ap_GlobalENB_ID(tvb, offset, &asn1_ctx, tree, hf_x2ap_GlobalENB_ID_PDU);
4803   offset += 7; offset >>= 3;
4804   return offset;
4805 }
4806 static int dissect_GUGroupIDList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4807   int offset = 0;
4808   asn1_ctx_t asn1_ctx;
4809   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4810   offset = dissect_x2ap_GUGroupIDList(tvb, offset, &asn1_ctx, tree, hf_x2ap_GUGroupIDList_PDU);
4811   offset += 7; offset >>= 3;
4812   return offset;
4813 }
4814 static int dissect_GUMMEI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4815   int offset = 0;
4816   asn1_ctx_t asn1_ctx;
4817   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4818   offset = dissect_x2ap_GUMMEI(tvb, offset, &asn1_ctx, tree, hf_x2ap_GUMMEI_PDU);
4819   offset += 7; offset >>= 3;
4820   return offset;
4821 }
4822 static int dissect_HandoverReportType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4823   int offset = 0;
4824   asn1_ctx_t asn1_ctx;
4825   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4826   offset = dissect_x2ap_HandoverReportType(tvb, offset, &asn1_ctx, tree, hf_x2ap_HandoverReportType_PDU);
4827   offset += 7; offset >>= 3;
4828   return offset;
4829 }
4830 static int dissect_InvokeIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4831   int offset = 0;
4832   asn1_ctx_t asn1_ctx;
4833   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4834   offset = dissect_x2ap_InvokeIndication(tvb, offset, &asn1_ctx, tree, hf_x2ap_InvokeIndication_PDU);
4835   offset += 7; offset >>= 3;
4836   return offset;
4837 }
4838 static int dissect_MDT_Configuration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4839   int offset = 0;
4840   asn1_ctx_t asn1_ctx;
4841   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4842   offset = dissect_x2ap_MDT_Configuration(tvb, offset, &asn1_ctx, tree, hf_x2ap_MDT_Configuration_PDU);
4843   offset += 7; offset >>= 3;
4844   return offset;
4845 }
4846 static int dissect_Measurement_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4847   int offset = 0;
4848   asn1_ctx_t asn1_ctx;
4849   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4850   offset = dissect_x2ap_Measurement_ID(tvb, offset, &asn1_ctx, tree, hf_x2ap_Measurement_ID_PDU);
4851   offset += 7; offset >>= 3;
4852   return offset;
4853 }
4854 static int dissect_MBSFN_Subframe_Infolist_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4855   int offset = 0;
4856   asn1_ctx_t asn1_ctx;
4857   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4858   offset = dissect_x2ap_MBSFN_Subframe_Infolist(tvb, offset, &asn1_ctx, tree, hf_x2ap_MBSFN_Subframe_Infolist_PDU);
4859   offset += 7; offset >>= 3;
4860   return offset;
4861 }
4862 static int dissect_ManagementBasedMDTallowed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4863   int offset = 0;
4864   asn1_ctx_t asn1_ctx;
4865   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4866   offset = dissect_x2ap_ManagementBasedMDTallowed(tvb, offset, &asn1_ctx, tree, hf_x2ap_ManagementBasedMDTallowed_PDU);
4867   offset += 7; offset >>= 3;
4868   return offset;
4869 }
4870 static int dissect_MobilityParametersModificationRange_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4871   int offset = 0;
4872   asn1_ctx_t asn1_ctx;
4873   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4874   offset = dissect_x2ap_MobilityParametersModificationRange(tvb, offset, &asn1_ctx, tree, hf_x2ap_MobilityParametersModificationRange_PDU);
4875   offset += 7; offset >>= 3;
4876   return offset;
4877 }
4878 static int dissect_MobilityParametersInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4879   int offset = 0;
4880   asn1_ctx_t asn1_ctx;
4881   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4882   offset = dissect_x2ap_MobilityParametersInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_MobilityParametersInformation_PDU);
4883   offset += 7; offset >>= 3;
4884   return offset;
4885 }
4886 static int dissect_Number_of_Antennaports_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4887   int offset = 0;
4888   asn1_ctx_t asn1_ctx;
4889   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4890   offset = dissect_x2ap_Number_of_Antennaports(tvb, offset, &asn1_ctx, tree, hf_x2ap_Number_of_Antennaports_PDU);
4891   offset += 7; offset >>= 3;
4892   return offset;
4893 }
4894 static int dissect_PCI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4895   int offset = 0;
4896   asn1_ctx_t asn1_ctx;
4897   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4898   offset = dissect_x2ap_PCI(tvb, offset, &asn1_ctx, tree, hf_x2ap_PCI_PDU);
4899   offset += 7; offset >>= 3;
4900   return offset;
4901 }
4902 static int dissect_PRACH_Configuration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4903   int offset = 0;
4904   asn1_ctx_t asn1_ctx;
4905   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4906   offset = dissect_x2ap_PRACH_Configuration(tvb, offset, &asn1_ctx, tree, hf_x2ap_PRACH_Configuration_PDU);
4907   offset += 7; offset >>= 3;
4908   return offset;
4909 }
4910 static int dissect_Registration_Request_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4911   int offset = 0;
4912   asn1_ctx_t asn1_ctx;
4913   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4914   offset = dissect_x2ap_Registration_Request(tvb, offset, &asn1_ctx, tree, hf_x2ap_Registration_Request_PDU);
4915   offset += 7; offset >>= 3;
4916   return offset;
4917 }
4918 static int dissect_ReportCharacteristics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4919   int offset = 0;
4920   asn1_ctx_t asn1_ctx;
4921   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4922   offset = dissect_x2ap_ReportCharacteristics(tvb, offset, &asn1_ctx, tree, hf_x2ap_ReportCharacteristics_PDU);
4923   offset += 7; offset >>= 3;
4924   return offset;
4925 }
4926 static int dissect_RRCConnSetupIndicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4927   int offset = 0;
4928   asn1_ctx_t asn1_ctx;
4929   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4930   offset = dissect_x2ap_RRCConnSetupIndicator(tvb, offset, &asn1_ctx, tree, hf_x2ap_RRCConnSetupIndicator_PDU);
4931   offset += 7; offset >>= 3;
4932   return offset;
4933 }
4934 static int dissect_ServedCells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4935   int offset = 0;
4936   asn1_ctx_t asn1_ctx;
4937   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4938   offset = dissect_x2ap_ServedCells(tvb, offset, &asn1_ctx, tree, hf_x2ap_ServedCells_PDU);
4939   offset += 7; offset >>= 3;
4940   return offset;
4941 }
4942 static int dissect_ShortMAC_I_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4943   int offset = 0;
4944   asn1_ctx_t asn1_ctx;
4945   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4946   offset = dissect_x2ap_ShortMAC_I(tvb, offset, &asn1_ctx, tree, hf_x2ap_ShortMAC_I_PDU);
4947   offset += 7; offset >>= 3;
4948   return offset;
4949 }
4950 static int dissect_SRVCCOperationPossible_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4951   int offset = 0;
4952   asn1_ctx_t asn1_ctx;
4953   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4954   offset = dissect_x2ap_SRVCCOperationPossible(tvb, offset, &asn1_ctx, tree, hf_x2ap_SRVCCOperationPossible_PDU);
4955   offset += 7; offset >>= 3;
4956   return offset;
4957 }
4958 static int dissect_TargeteNBtoSource_eNBTransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4959   int offset = 0;
4960   asn1_ctx_t asn1_ctx;
4961   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4962   offset = dissect_x2ap_TargeteNBtoSource_eNBTransparentContainer(tvb, offset, &asn1_ctx, tree, hf_x2ap_TargeteNBtoSource_eNBTransparentContainer_PDU);
4963   offset += 7; offset >>= 3;
4964   return offset;
4965 }
4966 static int dissect_TimeToWait_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4967   int offset = 0;
4968   asn1_ctx_t asn1_ctx;
4969   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4970   offset = dissect_x2ap_TimeToWait(tvb, offset, &asn1_ctx, tree, hf_x2ap_TimeToWait_PDU);
4971   offset += 7; offset >>= 3;
4972   return offset;
4973 }
4974 static int dissect_TraceActivation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4975   int offset = 0;
4976   asn1_ctx_t asn1_ctx;
4977   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4978   offset = dissect_x2ap_TraceActivation(tvb, offset, &asn1_ctx, tree, hf_x2ap_TraceActivation_PDU);
4979   offset += 7; offset >>= 3;
4980   return offset;
4981 }
4982 static int dissect_UE_HistoryInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4983   int offset = 0;
4984   asn1_ctx_t asn1_ctx;
4985   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4986   offset = dissect_x2ap_UE_HistoryInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_UE_HistoryInformation_PDU);
4987   offset += 7; offset >>= 3;
4988   return offset;
4989 }
4990 static int dissect_UE_X2AP_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4991   int offset = 0;
4992   asn1_ctx_t asn1_ctx;
4993   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4994   offset = dissect_x2ap_UE_X2AP_ID(tvb, offset, &asn1_ctx, tree, hf_x2ap_UE_X2AP_ID_PDU);
4995   offset += 7; offset >>= 3;
4996   return offset;
4997 }
4998 static int dissect_UE_RLF_Report_Container_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4999   int offset = 0;
5000   asn1_ctx_t asn1_ctx;
5001   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5002   offset = dissect_x2ap_UE_RLF_Report_Container(tvb, offset, &asn1_ctx, tree, hf_x2ap_UE_RLF_Report_Container_PDU);
5003   offset += 7; offset >>= 3;
5004   return offset;
5005 }
5006 static int dissect_HandoverRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5007   int offset = 0;
5008   asn1_ctx_t asn1_ctx;
5009   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5010   offset = dissect_x2ap_HandoverRequest(tvb, offset, &asn1_ctx, tree, hf_x2ap_HandoverRequest_PDU);
5011   offset += 7; offset >>= 3;
5012   return offset;
5013 }
5014 static int dissect_UE_ContextInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5015   int offset = 0;
5016   asn1_ctx_t asn1_ctx;
5017   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5018   offset = dissect_x2ap_UE_ContextInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_UE_ContextInformation_PDU);
5019   offset += 7; offset >>= 3;
5020   return offset;
5021 }
5022 static int dissect_E_RABs_ToBeSetup_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5023   int offset = 0;
5024   asn1_ctx_t asn1_ctx;
5025   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5026   offset = dissect_x2ap_E_RABs_ToBeSetup_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_E_RABs_ToBeSetup_Item_PDU);
5027   offset += 7; offset >>= 3;
5028   return offset;
5029 }
5030 static int dissect_HandoverRequestAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5031   int offset = 0;
5032   asn1_ctx_t asn1_ctx;
5033   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5034   offset = dissect_x2ap_HandoverRequestAcknowledge(tvb, offset, &asn1_ctx, tree, hf_x2ap_HandoverRequestAcknowledge_PDU);
5035   offset += 7; offset >>= 3;
5036   return offset;
5037 }
5038 static int dissect_E_RABs_Admitted_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5039   int offset = 0;
5040   asn1_ctx_t asn1_ctx;
5041   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5042   offset = dissect_x2ap_E_RABs_Admitted_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_E_RABs_Admitted_List_PDU);
5043   offset += 7; offset >>= 3;
5044   return offset;
5045 }
5046 static int dissect_E_RABs_Admitted_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5047   int offset = 0;
5048   asn1_ctx_t asn1_ctx;
5049   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5050   offset = dissect_x2ap_E_RABs_Admitted_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_E_RABs_Admitted_Item_PDU);
5051   offset += 7; offset >>= 3;
5052   return offset;
5053 }
5054 static int dissect_HandoverPreparationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5055   int offset = 0;
5056   asn1_ctx_t asn1_ctx;
5057   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5058   offset = dissect_x2ap_HandoverPreparationFailure(tvb, offset, &asn1_ctx, tree, hf_x2ap_HandoverPreparationFailure_PDU);
5059   offset += 7; offset >>= 3;
5060   return offset;
5061 }
5062 static int dissect_HandoverReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5063   int offset = 0;
5064   asn1_ctx_t asn1_ctx;
5065   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5066   offset = dissect_x2ap_HandoverReport(tvb, offset, &asn1_ctx, tree, hf_x2ap_HandoverReport_PDU);
5067   offset += 7; offset >>= 3;
5068   return offset;
5069 }
5070 static int dissect_SNStatusTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5071   int offset = 0;
5072   asn1_ctx_t asn1_ctx;
5073   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5074   offset = dissect_x2ap_SNStatusTransfer(tvb, offset, &asn1_ctx, tree, hf_x2ap_SNStatusTransfer_PDU);
5075   offset += 7; offset >>= 3;
5076   return offset;
5077 }
5078 static int dissect_E_RABs_SubjectToStatusTransfer_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5079   int offset = 0;
5080   asn1_ctx_t asn1_ctx;
5081   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5082   offset = dissect_x2ap_E_RABs_SubjectToStatusTransfer_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_E_RABs_SubjectToStatusTransfer_List_PDU);
5083   offset += 7; offset >>= 3;
5084   return offset;
5085 }
5086 static int dissect_E_RABs_SubjectToStatusTransfer_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5087   int offset = 0;
5088   asn1_ctx_t asn1_ctx;
5089   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5090   offset = dissect_x2ap_E_RABs_SubjectToStatusTransfer_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_E_RABs_SubjectToStatusTransfer_Item_PDU);
5091   offset += 7; offset >>= 3;
5092   return offset;
5093 }
5094 static int dissect_UEContextRelease_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5095   int offset = 0;
5096   asn1_ctx_t asn1_ctx;
5097   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5098   offset = dissect_x2ap_UEContextRelease(tvb, offset, &asn1_ctx, tree, hf_x2ap_UEContextRelease_PDU);
5099   offset += 7; offset >>= 3;
5100   return offset;
5101 }
5102 static int dissect_HandoverCancel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5103   int offset = 0;
5104   asn1_ctx_t asn1_ctx;
5105   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5106   offset = dissect_x2ap_HandoverCancel(tvb, offset, &asn1_ctx, tree, hf_x2ap_HandoverCancel_PDU);
5107   offset += 7; offset >>= 3;
5108   return offset;
5109 }
5110 static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5111   int offset = 0;
5112   asn1_ctx_t asn1_ctx;
5113   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5114   offset = dissect_x2ap_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_x2ap_ErrorIndication_PDU);
5115   offset += 7; offset >>= 3;
5116   return offset;
5117 }
5118 static int dissect_ResetRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5119   int offset = 0;
5120   asn1_ctx_t asn1_ctx;
5121   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5122   offset = dissect_x2ap_ResetRequest(tvb, offset, &asn1_ctx, tree, hf_x2ap_ResetRequest_PDU);
5123   offset += 7; offset >>= 3;
5124   return offset;
5125 }
5126 static int dissect_ResetResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5127   int offset = 0;
5128   asn1_ctx_t asn1_ctx;
5129   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5130   offset = dissect_x2ap_ResetResponse(tvb, offset, &asn1_ctx, tree, hf_x2ap_ResetResponse_PDU);
5131   offset += 7; offset >>= 3;
5132   return offset;
5133 }
5134 static int dissect_X2SetupRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5135   int offset = 0;
5136   asn1_ctx_t asn1_ctx;
5137   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5138   offset = dissect_x2ap_X2SetupRequest(tvb, offset, &asn1_ctx, tree, hf_x2ap_X2SetupRequest_PDU);
5139   offset += 7; offset >>= 3;
5140   return offset;
5141 }
5142 static int dissect_X2SetupResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5143   int offset = 0;
5144   asn1_ctx_t asn1_ctx;
5145   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5146   offset = dissect_x2ap_X2SetupResponse(tvb, offset, &asn1_ctx, tree, hf_x2ap_X2SetupResponse_PDU);
5147   offset += 7; offset >>= 3;
5148   return offset;
5149 }
5150 static int dissect_X2SetupFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5151   int offset = 0;
5152   asn1_ctx_t asn1_ctx;
5153   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5154   offset = dissect_x2ap_X2SetupFailure(tvb, offset, &asn1_ctx, tree, hf_x2ap_X2SetupFailure_PDU);
5155   offset += 7; offset >>= 3;
5156   return offset;
5157 }
5158 static int dissect_LoadInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5159   int offset = 0;
5160   asn1_ctx_t asn1_ctx;
5161   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5162   offset = dissect_x2ap_LoadInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_LoadInformation_PDU);
5163   offset += 7; offset >>= 3;
5164   return offset;
5165 }
5166 static int dissect_CellInformation_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5167   int offset = 0;
5168   asn1_ctx_t asn1_ctx;
5169   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5170   offset = dissect_x2ap_CellInformation_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellInformation_List_PDU);
5171   offset += 7; offset >>= 3;
5172   return offset;
5173 }
5174 static int dissect_CellInformation_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5175   int offset = 0;
5176   asn1_ctx_t asn1_ctx;
5177   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5178   offset = dissect_x2ap_CellInformation_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellInformation_Item_PDU);
5179   offset += 7; offset >>= 3;
5180   return offset;
5181 }
5182 static int dissect_ENBConfigurationUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5183   int offset = 0;
5184   asn1_ctx_t asn1_ctx;
5185   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5186   offset = dissect_x2ap_ENBConfigurationUpdate(tvb, offset, &asn1_ctx, tree, hf_x2ap_ENBConfigurationUpdate_PDU);
5187   offset += 7; offset >>= 3;
5188   return offset;
5189 }
5190 static int dissect_ServedCellsToModify_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5191   int offset = 0;
5192   asn1_ctx_t asn1_ctx;
5193   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5194   offset = dissect_x2ap_ServedCellsToModify(tvb, offset, &asn1_ctx, tree, hf_x2ap_ServedCellsToModify_PDU);
5195   offset += 7; offset >>= 3;
5196   return offset;
5197 }
5198 static int dissect_Old_ECGIs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5199   int offset = 0;
5200   asn1_ctx_t asn1_ctx;
5201   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5202   offset = dissect_x2ap_Old_ECGIs(tvb, offset, &asn1_ctx, tree, hf_x2ap_Old_ECGIs_PDU);
5203   offset += 7; offset >>= 3;
5204   return offset;
5205 }
5206 static int dissect_ENBConfigurationUpdateAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5207   int offset = 0;
5208   asn1_ctx_t asn1_ctx;
5209   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5210   offset = dissect_x2ap_ENBConfigurationUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_x2ap_ENBConfigurationUpdateAcknowledge_PDU);
5211   offset += 7; offset >>= 3;
5212   return offset;
5213 }
5214 static int dissect_ENBConfigurationUpdateFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5215   int offset = 0;
5216   asn1_ctx_t asn1_ctx;
5217   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5218   offset = dissect_x2ap_ENBConfigurationUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_x2ap_ENBConfigurationUpdateFailure_PDU);
5219   offset += 7; offset >>= 3;
5220   return offset;
5221 }
5222 static int dissect_ResourceStatusRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5223   int offset = 0;
5224   asn1_ctx_t asn1_ctx;
5225   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5226   offset = dissect_x2ap_ResourceStatusRequest(tvb, offset, &asn1_ctx, tree, hf_x2ap_ResourceStatusRequest_PDU);
5227   offset += 7; offset >>= 3;
5228   return offset;
5229 }
5230 static int dissect_CellToReport_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5231   int offset = 0;
5232   asn1_ctx_t asn1_ctx;
5233   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5234   offset = dissect_x2ap_CellToReport_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellToReport_List_PDU);
5235   offset += 7; offset >>= 3;
5236   return offset;
5237 }
5238 static int dissect_CellToReport_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5239   int offset = 0;
5240   asn1_ctx_t asn1_ctx;
5241   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5242   offset = dissect_x2ap_CellToReport_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellToReport_Item_PDU);
5243   offset += 7; offset >>= 3;
5244   return offset;
5245 }
5246 static int dissect_ReportingPeriodicity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5247   int offset = 0;
5248   asn1_ctx_t asn1_ctx;
5249   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5250   offset = dissect_x2ap_ReportingPeriodicity(tvb, offset, &asn1_ctx, tree, hf_x2ap_ReportingPeriodicity_PDU);
5251   offset += 7; offset >>= 3;
5252   return offset;
5253 }
5254 static int dissect_PartialSuccessIndicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5255   int offset = 0;
5256   asn1_ctx_t asn1_ctx;
5257   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5258   offset = dissect_x2ap_PartialSuccessIndicator(tvb, offset, &asn1_ctx, tree, hf_x2ap_PartialSuccessIndicator_PDU);
5259   offset += 7; offset >>= 3;
5260   return offset;
5261 }
5262 static int dissect_ResourceStatusResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5263   int offset = 0;
5264   asn1_ctx_t asn1_ctx;
5265   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5266   offset = dissect_x2ap_ResourceStatusResponse(tvb, offset, &asn1_ctx, tree, hf_x2ap_ResourceStatusResponse_PDU);
5267   offset += 7; offset >>= 3;
5268   return offset;
5269 }
5270 static int dissect_MeasurementInitiationResult_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5271   int offset = 0;
5272   asn1_ctx_t asn1_ctx;
5273   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5274   offset = dissect_x2ap_MeasurementInitiationResult_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_MeasurementInitiationResult_List_PDU);
5275   offset += 7; offset >>= 3;
5276   return offset;
5277 }
5278 static int dissect_MeasurementInitiationResult_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5279   int offset = 0;
5280   asn1_ctx_t asn1_ctx;
5281   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5282   offset = dissect_x2ap_MeasurementInitiationResult_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_MeasurementInitiationResult_Item_PDU);
5283   offset += 7; offset >>= 3;
5284   return offset;
5285 }
5286 static int dissect_MeasurementFailureCause_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5287   int offset = 0;
5288   asn1_ctx_t asn1_ctx;
5289   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5290   offset = dissect_x2ap_MeasurementFailureCause_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_MeasurementFailureCause_Item_PDU);
5291   offset += 7; offset >>= 3;
5292   return offset;
5293 }
5294 static int dissect_ResourceStatusFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5295   int offset = 0;
5296   asn1_ctx_t asn1_ctx;
5297   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5298   offset = dissect_x2ap_ResourceStatusFailure(tvb, offset, &asn1_ctx, tree, hf_x2ap_ResourceStatusFailure_PDU);
5299   offset += 7; offset >>= 3;
5300   return offset;
5301 }
5302 static int dissect_CompleteFailureCauseInformation_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5303   int offset = 0;
5304   asn1_ctx_t asn1_ctx;
5305   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5306   offset = dissect_x2ap_CompleteFailureCauseInformation_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_CompleteFailureCauseInformation_List_PDU);
5307   offset += 7; offset >>= 3;
5308   return offset;
5309 }
5310 static int dissect_CompleteFailureCauseInformation_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5311   int offset = 0;
5312   asn1_ctx_t asn1_ctx;
5313   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5314   offset = dissect_x2ap_CompleteFailureCauseInformation_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_CompleteFailureCauseInformation_Item_PDU);
5315   offset += 7; offset >>= 3;
5316   return offset;
5317 }
5318 static int dissect_ResourceStatusUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5319   int offset = 0;
5320   asn1_ctx_t asn1_ctx;
5321   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5322   offset = dissect_x2ap_ResourceStatusUpdate(tvb, offset, &asn1_ctx, tree, hf_x2ap_ResourceStatusUpdate_PDU);
5323   offset += 7; offset >>= 3;
5324   return offset;
5325 }
5326 static int dissect_CellMeasurementResult_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5327   int offset = 0;
5328   asn1_ctx_t asn1_ctx;
5329   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5330   offset = dissect_x2ap_CellMeasurementResult_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellMeasurementResult_List_PDU);
5331   offset += 7; offset >>= 3;
5332   return offset;
5333 }
5334 static int dissect_CellMeasurementResult_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5335   int offset = 0;
5336   asn1_ctx_t asn1_ctx;
5337   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5338   offset = dissect_x2ap_CellMeasurementResult_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellMeasurementResult_Item_PDU);
5339   offset += 7; offset >>= 3;
5340   return offset;
5341 }
5342 static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5343   int offset = 0;
5344   asn1_ctx_t asn1_ctx;
5345   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5346   offset = dissect_x2ap_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_x2ap_PrivateMessage_PDU);
5347   offset += 7; offset >>= 3;
5348   return offset;
5349 }
5350 static int dissect_MobilityChangeRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5351   int offset = 0;
5352   asn1_ctx_t asn1_ctx;
5353   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5354   offset = dissect_x2ap_MobilityChangeRequest(tvb, offset, &asn1_ctx, tree, hf_x2ap_MobilityChangeRequest_PDU);
5355   offset += 7; offset >>= 3;
5356   return offset;
5357 }
5358 static int dissect_MobilityChangeAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5359   int offset = 0;
5360   asn1_ctx_t asn1_ctx;
5361   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5362   offset = dissect_x2ap_MobilityChangeAcknowledge(tvb, offset, &asn1_ctx, tree, hf_x2ap_MobilityChangeAcknowledge_PDU);
5363   offset += 7; offset >>= 3;
5364   return offset;
5365 }
5366 static int dissect_MobilityChangeFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5367   int offset = 0;
5368   asn1_ctx_t asn1_ctx;
5369   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5370   offset = dissect_x2ap_MobilityChangeFailure(tvb, offset, &asn1_ctx, tree, hf_x2ap_MobilityChangeFailure_PDU);
5371   offset += 7; offset >>= 3;
5372   return offset;
5373 }
5374 static int dissect_RLFIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5375   int offset = 0;
5376   asn1_ctx_t asn1_ctx;
5377   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5378   offset = dissect_x2ap_RLFIndication(tvb, offset, &asn1_ctx, tree, hf_x2ap_RLFIndication_PDU);
5379   offset += 7; offset >>= 3;
5380   return offset;
5381 }
5382 static int dissect_CellActivationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5383   int offset = 0;
5384   asn1_ctx_t asn1_ctx;
5385   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5386   offset = dissect_x2ap_CellActivationRequest(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellActivationRequest_PDU);
5387   offset += 7; offset >>= 3;
5388   return offset;
5389 }
5390 static int dissect_ServedCellsToActivate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5391   int offset = 0;
5392   asn1_ctx_t asn1_ctx;
5393   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5394   offset = dissect_x2ap_ServedCellsToActivate(tvb, offset, &asn1_ctx, tree, hf_x2ap_ServedCellsToActivate_PDU);
5395   offset += 7; offset >>= 3;
5396   return offset;
5397 }
5398 static int dissect_CellActivationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5399   int offset = 0;
5400   asn1_ctx_t asn1_ctx;
5401   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5402   offset = dissect_x2ap_CellActivationResponse(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellActivationResponse_PDU);
5403   offset += 7; offset >>= 3;
5404   return offset;
5405 }
5406 static int dissect_ActivatedCellList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5407   int offset = 0;
5408   asn1_ctx_t asn1_ctx;
5409   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5410   offset = dissect_x2ap_ActivatedCellList(tvb, offset, &asn1_ctx, tree, hf_x2ap_ActivatedCellList_PDU);
5411   offset += 7; offset >>= 3;
5412   return offset;
5413 }
5414 static int dissect_CellActivationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5415   int offset = 0;
5416   asn1_ctx_t asn1_ctx;
5417   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5418   offset = dissect_x2ap_CellActivationFailure(tvb, offset, &asn1_ctx, tree, hf_x2ap_CellActivationFailure_PDU);
5419   offset += 7; offset >>= 3;
5420   return offset;
5421 }
5422 static void dissect_X2AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
5423   asn1_ctx_t asn1_ctx;
5424   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
5425   dissect_x2ap_X2AP_PDU(tvb, 0, &asn1_ctx, tree, hf_x2ap_X2AP_PDU_PDU);
5426 }
5427
5428
5429 /*--- End of included file: packet-x2ap-fn.c ---*/
5430 #line 92 "../../asn1/x2ap/packet-x2ap-template.c"
5431
5432 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
5433 {
5434   return (dissector_try_uint(x2ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
5435 }
5436
5437 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
5438 {
5439   return (dissector_try_uint(x2ap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
5440 }
5441
5442 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
5443 {
5444   return (dissector_try_uint(x2ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
5445 }
5446
5447 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
5448 {
5449   return (dissector_try_uint(x2ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
5450 }
5451
5452 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
5453 {
5454   return (dissector_try_uint(x2ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
5455 }
5456
5457 static void
5458 dissect_x2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
5459 {
5460         proto_item      *x2ap_item = NULL;
5461         proto_tree      *x2ap_tree = NULL;
5462
5463         /* make entry in the Protocol column on summary display */
5464         col_set_str(pinfo->cinfo, COL_PROTOCOL, "X2AP");
5465
5466         /* create the x2ap protocol tree */
5467         x2ap_item = proto_tree_add_item(tree, proto_x2ap, tvb, 0, -1, ENC_NA);
5468         x2ap_tree = proto_item_add_subtree(x2ap_item, ett_x2ap);
5469
5470         dissect_X2AP_PDU_PDU(tvb, pinfo, x2ap_tree);
5471 }
5472
5473 /*--- proto_register_x2ap -------------------------------------------*/
5474 void proto_register_x2ap(void) {
5475
5476   /* List of fields */
5477
5478   static hf_register_info hf[] = {
5479     { &hf_x2ap_transportLayerAddressIPv4,
5480       { "transportLayerAddress(IPv4)", "x2ap.transportLayerAddressIPv4",
5481         FT_IPv4, BASE_NONE, NULL, 0,
5482         NULL, HFILL }},
5483     { &hf_x2ap_transportLayerAddressIPv6,
5484       { "transportLayerAddress(IPv6)", "x2ap.transportLayerAddressIPv6",
5485         FT_IPv4, BASE_NONE, NULL, 0,
5486         NULL, HFILL }},
5487
5488
5489 /*--- Included file: packet-x2ap-hfarr.c ---*/
5490 #line 1 "../../asn1/x2ap/packet-x2ap-hfarr.c"
5491     { &hf_x2ap_ABSInformation_PDU,
5492       { "ABSInformation", "x2ap.ABSInformation",
5493         FT_UINT32, BASE_DEC, VALS(x2ap_ABSInformation_vals), 0,
5494         NULL, HFILL }},
5495     { &hf_x2ap_ABS_Status_PDU,
5496       { "ABS-Status", "x2ap.ABS_Status",
5497         FT_NONE, BASE_NONE, NULL, 0,
5498         NULL, HFILL }},
5499     { &hf_x2ap_Cause_PDU,
5500       { "Cause", "x2ap.Cause",
5501         FT_UINT32, BASE_DEC, VALS(x2ap_Cause_vals), 0,
5502         NULL, HFILL }},
5503     { &hf_x2ap_CompositeAvailableCapacityGroup_PDU,
5504       { "CompositeAvailableCapacityGroup", "x2ap.CompositeAvailableCapacityGroup",
5505         FT_NONE, BASE_NONE, NULL, 0,
5506         NULL, HFILL }},
5507     { &hf_x2ap_CriticalityDiagnostics_PDU,
5508       { "CriticalityDiagnostics", "x2ap.CriticalityDiagnostics",
5509         FT_NONE, BASE_NONE, NULL, 0,
5510         NULL, HFILL }},
5511     { &hf_x2ap_CRNTI_PDU,
5512       { "CRNTI", "x2ap.CRNTI",
5513         FT_BYTES, BASE_NONE, NULL, 0,
5514         NULL, HFILL }},
5515     { &hf_x2ap_CSGMembershipStatus_PDU,
5516       { "CSGMembershipStatus", "x2ap.CSGMembershipStatus",
5517         FT_UINT32, BASE_DEC, VALS(x2ap_CSGMembershipStatus_vals), 0,
5518         NULL, HFILL }},
5519     { &hf_x2ap_CSG_Id_PDU,
5520       { "CSG-Id", "x2ap.CSG_Id",
5521         FT_BYTES, BASE_NONE, NULL, 0,
5522         NULL, HFILL }},
5523     { &hf_x2ap_DeactivationIndication_PDU,
5524       { "DeactivationIndication", "x2ap.DeactivationIndication",
5525         FT_UINT32, BASE_DEC, VALS(x2ap_DeactivationIndication_vals), 0,
5526         NULL, HFILL }},
5527     { &hf_x2ap_ECGI_PDU,
5528       { "ECGI", "x2ap.ECGI",
5529         FT_NONE, BASE_NONE, NULL, 0,
5530         NULL, HFILL }},
5531     { &hf_x2ap_E_RAB_List_PDU,
5532       { "E-RAB-List", "x2ap.E_RAB_List",
5533         FT_UINT32, BASE_DEC, NULL, 0,
5534         NULL, HFILL }},
5535     { &hf_x2ap_E_RAB_Item_PDU,
5536       { "E-RAB-Item", "x2ap.E_RAB_Item",
5537         FT_NONE, BASE_NONE, NULL, 0,
5538         NULL, HFILL }},
5539     { &hf_x2ap_GlobalENB_ID_PDU,
5540       { "GlobalENB-ID", "x2ap.GlobalENB_ID",
5541         FT_NONE, BASE_NONE, NULL, 0,
5542         NULL, HFILL }},
5543     { &hf_x2ap_GUGroupIDList_PDU,
5544       { "GUGroupIDList", "x2ap.GUGroupIDList",
5545         FT_UINT32, BASE_DEC, NULL, 0,
5546         NULL, HFILL }},
5547     { &hf_x2ap_GUMMEI_PDU,
5548       { "GUMMEI", "x2ap.GUMMEI",
5549         FT_NONE, BASE_NONE, NULL, 0,
5550         NULL, HFILL }},
5551     { &hf_x2ap_HandoverReportType_PDU,
5552       { "HandoverReportType", "x2ap.HandoverReportType",
5553         FT_UINT32, BASE_DEC, VALS(x2ap_HandoverReportType_vals), 0,
5554         NULL, HFILL }},
5555     { &hf_x2ap_InvokeIndication_PDU,
5556       { "InvokeIndication", "x2ap.InvokeIndication",
5557         FT_UINT32, BASE_DEC, VALS(x2ap_InvokeIndication_vals), 0,
5558         NULL, HFILL }},
5559     { &hf_x2ap_MDT_Configuration_PDU,
5560       { "MDT-Configuration", "x2ap.MDT_Configuration",
5561         FT_NONE, BASE_NONE, NULL, 0,
5562         NULL, HFILL }},
5563     { &hf_x2ap_Measurement_ID_PDU,
5564       { "Measurement-ID", "x2ap.Measurement_ID",
5565         FT_UINT32, BASE_DEC, NULL, 0,
5566         NULL, HFILL }},
5567     { &hf_x2ap_MBSFN_Subframe_Infolist_PDU,
5568       { "MBSFN-Subframe-Infolist", "x2ap.MBSFN_Subframe_Infolist",
5569         FT_UINT32, BASE_DEC, NULL, 0,
5570         NULL, HFILL }},
5571     { &hf_x2ap_ManagementBasedMDTallowed_PDU,
5572       { "ManagementBasedMDTallowed", "x2ap.ManagementBasedMDTallowed",
5573         FT_UINT32, BASE_DEC, VALS(x2ap_ManagementBasedMDTallowed_vals), 0,
5574         NULL, HFILL }},
5575     { &hf_x2ap_MobilityParametersModificationRange_PDU,
5576       { "MobilityParametersModificationRange", "x2ap.MobilityParametersModificationRange",
5577         FT_NONE, BASE_NONE, NULL, 0,
5578         NULL, HFILL }},
5579     { &hf_x2ap_MobilityParametersInformation_PDU,
5580       { "MobilityParametersInformation", "x2ap.MobilityParametersInformation",
5581         FT_NONE, BASE_NONE, NULL, 0,
5582         NULL, HFILL }},
5583     { &hf_x2ap_Number_of_Antennaports_PDU,
5584       { "Number-of-Antennaports", "x2ap.Number_of_Antennaports",
5585         FT_UINT32, BASE_DEC, VALS(x2ap_Number_of_Antennaports_vals), 0,
5586         NULL, HFILL }},
5587     { &hf_x2ap_PCI_PDU,
5588       { "PCI", "x2ap.PCI",
5589         FT_UINT32, BASE_DEC, NULL, 0,
5590         NULL, HFILL }},
5591     { &hf_x2ap_PRACH_Configuration_PDU,
5592       { "PRACH-Configuration", "x2ap.PRACH_Configuration",
5593         FT_NONE, BASE_NONE, NULL, 0,
5594         NULL, HFILL }},
5595     { &hf_x2ap_Registration_Request_PDU,
5596       { "Registration-Request", "x2ap.Registration_Request",
5597         FT_UINT32, BASE_DEC, VALS(x2ap_Registration_Request_vals), 0,
5598         NULL, HFILL }},
5599     { &hf_x2ap_ReportCharacteristics_PDU,
5600       { "ReportCharacteristics", "x2ap.ReportCharacteristics",
5601         FT_BYTES, BASE_NONE, NULL, 0,
5602         NULL, HFILL }},
5603     { &hf_x2ap_RRCConnSetupIndicator_PDU,
5604       { "RRCConnSetupIndicator", "x2ap.RRCConnSetupIndicator",
5605         FT_UINT32, BASE_DEC, VALS(x2ap_RRCConnSetupIndicator_vals), 0,
5606         NULL, HFILL }},
5607     { &hf_x2ap_ServedCells_PDU,
5608       { "ServedCells", "x2ap.ServedCells",
5609         FT_UINT32, BASE_DEC, NULL, 0,
5610         NULL, HFILL }},
5611     { &hf_x2ap_ShortMAC_I_PDU,
5612       { "ShortMAC-I", "x2ap.ShortMAC_I",
5613         FT_BYTES, BASE_NONE, NULL, 0,
5614         NULL, HFILL }},
5615     { &hf_x2ap_SRVCCOperationPossible_PDU,
5616       { "SRVCCOperationPossible", "x2ap.SRVCCOperationPossible",
5617         FT_UINT32, BASE_DEC, VALS(x2ap_SRVCCOperationPossible_vals), 0,
5618         NULL, HFILL }},
5619     { &hf_x2ap_TargeteNBtoSource_eNBTransparentContainer_PDU,
5620       { "TargeteNBtoSource-eNBTransparentContainer", "x2ap.TargeteNBtoSource_eNBTransparentContainer",
5621         FT_BYTES, BASE_NONE, NULL, 0,
5622         NULL, HFILL }},
5623     { &hf_x2ap_TimeToWait_PDU,
5624       { "TimeToWait", "x2ap.TimeToWait",
5625         FT_UINT32, BASE_DEC, VALS(x2ap_TimeToWait_vals), 0,
5626         NULL, HFILL }},
5627     { &hf_x2ap_TraceActivation_PDU,
5628       { "TraceActivation", "x2ap.TraceActivation",
5629         FT_NONE, BASE_NONE, NULL, 0,
5630         NULL, HFILL }},
5631     { &hf_x2ap_UE_HistoryInformation_PDU,
5632       { "UE-HistoryInformation", "x2ap.UE_HistoryInformation",
5633         FT_UINT32, BASE_DEC, NULL, 0,
5634         NULL, HFILL }},
5635     { &hf_x2ap_UE_X2AP_ID_PDU,
5636       { "UE-X2AP-ID", "x2ap.UE_X2AP_ID",
5637         FT_UINT32, BASE_DEC, NULL, 0,
5638         NULL, HFILL }},
5639     { &hf_x2ap_UE_RLF_Report_Container_PDU,
5640       { "UE-RLF-Report-Container", "x2ap.UE_RLF_Report_Container",
5641         FT_BYTES, BASE_NONE, NULL, 0,
5642         NULL, HFILL }},
5643     { &hf_x2ap_HandoverRequest_PDU,
5644       { "HandoverRequest", "x2ap.HandoverRequest",
5645         FT_NONE, BASE_NONE, NULL, 0,
5646         NULL, HFILL }},
5647     { &hf_x2ap_UE_ContextInformation_PDU,
5648       { "UE-ContextInformation", "x2ap.UE_ContextInformation",
5649         FT_NONE, BASE_NONE, NULL, 0,
5650         NULL, HFILL }},
5651     { &hf_x2ap_E_RABs_ToBeSetup_Item_PDU,
5652       { "E-RABs-ToBeSetup-Item", "x2ap.E_RABs_ToBeSetup_Item",
5653         FT_NONE, BASE_NONE, NULL, 0,
5654         NULL, HFILL }},
5655     { &hf_x2ap_HandoverRequestAcknowledge_PDU,
5656       { "HandoverRequestAcknowledge", "x2ap.HandoverRequestAcknowledge",
5657         FT_NONE, BASE_NONE, NULL, 0,
5658         NULL, HFILL }},
5659     { &hf_x2ap_E_RABs_Admitted_List_PDU,
5660       { "E-RABs-Admitted-List", "x2ap.E_RABs_Admitted_List",
5661         FT_UINT32, BASE_DEC, NULL, 0,
5662         NULL, HFILL }},
5663     { &hf_x2ap_E_RABs_Admitted_Item_PDU,
5664       { "E-RABs-Admitted-Item", "x2ap.E_RABs_Admitted_Item",
5665         FT_NONE, BASE_NONE, NULL, 0,
5666         NULL, HFILL }},
5667     { &hf_x2ap_HandoverPreparationFailure_PDU,
5668       { "HandoverPreparationFailure", "x2ap.HandoverPreparationFailure",
5669         FT_NONE, BASE_NONE, NULL, 0,
5670         NULL, HFILL }},
5671     { &hf_x2ap_HandoverReport_PDU,
5672       { "HandoverReport", "x2ap.HandoverReport",
5673         FT_NONE, BASE_NONE, NULL, 0,
5674         NULL, HFILL }},
5675     { &hf_x2ap_SNStatusTransfer_PDU,
5676       { "SNStatusTransfer", "x2ap.SNStatusTransfer",
5677         FT_NONE, BASE_NONE, NULL, 0,
5678         NULL, HFILL }},
5679     { &hf_x2ap_E_RABs_SubjectToStatusTransfer_List_PDU,
5680       { "E-RABs-SubjectToStatusTransfer-List", "x2ap.E_RABs_SubjectToStatusTransfer_List",
5681         FT_UINT32, BASE_DEC, NULL, 0,
5682         NULL, HFILL }},
5683     { &hf_x2ap_E_RABs_SubjectToStatusTransfer_Item_PDU,
5684       { "E-RABs-SubjectToStatusTransfer-Item", "x2ap.E_RABs_SubjectToStatusTransfer_Item",
5685         FT_NONE, BASE_NONE, NULL, 0,
5686         NULL, HFILL }},
5687     { &hf_x2ap_UEContextRelease_PDU,
5688       { "UEContextRelease", "x2ap.UEContextRelease",
5689         FT_NONE, BASE_NONE, NULL, 0,
5690         NULL, HFILL }},
5691     { &hf_x2ap_HandoverCancel_PDU,
5692       { "HandoverCancel", "x2ap.HandoverCancel",
5693         FT_NONE, BASE_NONE, NULL, 0,
5694         NULL, HFILL }},
5695     { &hf_x2ap_ErrorIndication_PDU,
5696       { "ErrorIndication", "x2ap.ErrorIndication",
5697         FT_NONE, BASE_NONE, NULL, 0,
5698         NULL, HFILL }},
5699     { &hf_x2ap_ResetRequest_PDU,
5700       { "ResetRequest", "x2ap.ResetRequest",
5701         FT_NONE, BASE_NONE, NULL, 0,
5702         NULL, HFILL }},
5703     { &hf_x2ap_ResetResponse_PDU,
5704       { "ResetResponse", "x2ap.ResetResponse",
5705         FT_NONE, BASE_NONE, NULL, 0,
5706         NULL, HFILL }},
5707     { &hf_x2ap_X2SetupRequest_PDU,
5708       { "X2SetupRequest", "x2ap.X2SetupRequest",
5709         FT_NONE, BASE_NONE, NULL, 0,
5710         NULL, HFILL }},
5711     { &hf_x2ap_X2SetupResponse_PDU,
5712       { "X2SetupResponse", "x2ap.X2SetupResponse",
5713         FT_NONE, BASE_NONE, NULL, 0,
5714         NULL, HFILL }},
5715     { &hf_x2ap_X2SetupFailure_PDU,
5716       { "X2SetupFailure", "x2ap.X2SetupFailure",
5717         FT_NONE, BASE_NONE, NULL, 0,
5718         NULL, HFILL }},
5719     { &hf_x2ap_LoadInformation_PDU,
5720       { "LoadInformation", "x2ap.LoadInformation",
5721         FT_NONE, BASE_NONE, NULL, 0,
5722         NULL, HFILL }},
5723     { &hf_x2ap_CellInformation_List_PDU,
5724       { "CellInformation-List", "x2ap.CellInformation_List",
5725         FT_UINT32, BASE_DEC, NULL, 0,
5726         NULL, HFILL }},
5727     { &hf_x2ap_CellInformation_Item_PDU,
5728       { "CellInformation-Item", "x2ap.CellInformation_Item",
5729         FT_NONE, BASE_NONE, NULL, 0,
5730         NULL, HFILL }},
5731     { &hf_x2ap_ENBConfigurationUpdate_PDU,
5732       { "ENBConfigurationUpdate", "x2ap.ENBConfigurationUpdate",
5733         FT_NONE, BASE_NONE, NULL, 0,
5734         NULL, HFILL }},
5735     { &hf_x2ap_ServedCellsToModify_PDU,
5736       { "ServedCellsToModify", "x2ap.ServedCellsToModify",
5737         FT_UINT32, BASE_DEC, NULL, 0,
5738         NULL, HFILL }},
5739     { &hf_x2ap_Old_ECGIs_PDU,
5740       { "Old-ECGIs", "x2ap.Old_ECGIs",
5741         FT_UINT32, BASE_DEC, NULL, 0,
5742         NULL, HFILL }},
5743     { &hf_x2ap_ENBConfigurationUpdateAcknowledge_PDU,
5744       { "ENBConfigurationUpdateAcknowledge", "x2ap.ENBConfigurationUpdateAcknowledge",
5745         FT_NONE, BASE_NONE, NULL, 0,
5746         NULL, HFILL }},
5747     { &hf_x2ap_ENBConfigurationUpdateFailure_PDU,
5748       { "ENBConfigurationUpdateFailure", "x2ap.ENBConfigurationUpdateFailure",
5749         FT_NONE, BASE_NONE, NULL, 0,
5750         NULL, HFILL }},
5751     { &hf_x2ap_ResourceStatusRequest_PDU,
5752       { "ResourceStatusRequest", "x2ap.ResourceStatusRequest",
5753         FT_NONE, BASE_NONE, NULL, 0,
5754         NULL, HFILL }},
5755     { &hf_x2ap_CellToReport_List_PDU,
5756       { "CellToReport-List", "x2ap.CellToReport_List",
5757         FT_UINT32, BASE_DEC, NULL, 0,
5758         NULL, HFILL }},
5759     { &hf_x2ap_CellToReport_Item_PDU,
5760       { "CellToReport-Item", "x2ap.CellToReport_Item",
5761         FT_NONE, BASE_NONE, NULL, 0,
5762         NULL, HFILL }},
5763     { &hf_x2ap_ReportingPeriodicity_PDU,
5764       { "ReportingPeriodicity", "x2ap.ReportingPeriodicity",
5765         FT_UINT32, BASE_DEC, VALS(x2ap_ReportingPeriodicity_vals), 0,
5766         NULL, HFILL }},
5767     { &hf_x2ap_PartialSuccessIndicator_PDU,
5768       { "PartialSuccessIndicator", "x2ap.PartialSuccessIndicator",
5769         FT_UINT32, BASE_DEC, VALS(x2ap_PartialSuccessIndicator_vals), 0,
5770         NULL, HFILL }},
5771     { &hf_x2ap_ResourceStatusResponse_PDU,
5772       { "ResourceStatusResponse", "x2ap.ResourceStatusResponse",
5773         FT_NONE, BASE_NONE, NULL, 0,
5774         NULL, HFILL }},
5775     { &hf_x2ap_MeasurementInitiationResult_List_PDU,
5776       { "MeasurementInitiationResult-List", "x2ap.MeasurementInitiationResult_List",
5777         FT_UINT32, BASE_DEC, NULL, 0,
5778         NULL, HFILL }},
5779     { &hf_x2ap_MeasurementInitiationResult_Item_PDU,
5780       { "MeasurementInitiationResult-Item", "x2ap.MeasurementInitiationResult_Item",
5781         FT_NONE, BASE_NONE, NULL, 0,
5782         NULL, HFILL }},
5783     { &hf_x2ap_MeasurementFailureCause_Item_PDU,
5784       { "MeasurementFailureCause-Item", "x2ap.MeasurementFailureCause_Item",
5785         FT_NONE, BASE_NONE, NULL, 0,
5786         NULL, HFILL }},
5787     { &hf_x2ap_ResourceStatusFailure_PDU,
5788       { "ResourceStatusFailure", "x2ap.ResourceStatusFailure",
5789         FT_NONE, BASE_NONE, NULL, 0,
5790         NULL, HFILL }},
5791     { &hf_x2ap_CompleteFailureCauseInformation_List_PDU,
5792       { "CompleteFailureCauseInformation-List", "x2ap.CompleteFailureCauseInformation_List",
5793         FT_UINT32, BASE_DEC, NULL, 0,
5794         NULL, HFILL }},
5795     { &hf_x2ap_CompleteFailureCauseInformation_Item_PDU,
5796       { "CompleteFailureCauseInformation-Item", "x2ap.CompleteFailureCauseInformation_Item",
5797         FT_NONE, BASE_NONE, NULL, 0,
5798         NULL, HFILL }},
5799     { &hf_x2ap_ResourceStatusUpdate_PDU,
5800       { "ResourceStatusUpdate", "x2ap.ResourceStatusUpdate",
5801         FT_NONE, BASE_NONE, NULL, 0,
5802         NULL, HFILL }},
5803     { &hf_x2ap_CellMeasurementResult_List_PDU,
5804       { "CellMeasurementResult-List", "x2ap.CellMeasurementResult_List",
5805         FT_UINT32, BASE_DEC, NULL, 0,
5806         NULL, HFILL }},
5807     { &hf_x2ap_CellMeasurementResult_Item_PDU,
5808       { "CellMeasurementResult-Item", "x2ap.CellMeasurementResult_Item",
5809         FT_NONE, BASE_NONE, NULL, 0,
5810         NULL, HFILL }},
5811     { &hf_x2ap_PrivateMessage_PDU,
5812       { "PrivateMessage", "x2ap.PrivateMessage",
5813         FT_NONE, BASE_NONE, NULL, 0,
5814         NULL, HFILL }},
5815     { &hf_x2ap_MobilityChangeRequest_PDU,
5816       { "MobilityChangeRequest", "x2ap.MobilityChangeRequest",
5817         FT_NONE, BASE_NONE, NULL, 0,
5818         NULL, HFILL }},
5819     { &hf_x2ap_MobilityChangeAcknowledge_PDU,
5820       { "MobilityChangeAcknowledge", "x2ap.MobilityChangeAcknowledge",
5821         FT_NONE, BASE_NONE, NULL, 0,
5822         NULL, HFILL }},
5823     { &hf_x2ap_MobilityChangeFailure_PDU,
5824       { "MobilityChangeFailure", "x2ap.MobilityChangeFailure",
5825         FT_NONE, BASE_NONE, NULL, 0,
5826         NULL, HFILL }},
5827     { &hf_x2ap_RLFIndication_PDU,
5828       { "RLFIndication", "x2ap.RLFIndication",
5829         FT_NONE, BASE_NONE, NULL, 0,
5830         NULL, HFILL }},
5831     { &hf_x2ap_CellActivationRequest_PDU,
5832       { "CellActivationRequest", "x2ap.CellActivationRequest",
5833         FT_NONE, BASE_NONE, NULL, 0,
5834         NULL, HFILL }},
5835     { &hf_x2ap_ServedCellsToActivate_PDU,
5836       { "ServedCellsToActivate", "x2ap.ServedCellsToActivate",
5837         FT_UINT32, BASE_DEC, NULL, 0,
5838         NULL, HFILL }},
5839     { &hf_x2ap_CellActivationResponse_PDU,
5840       { "CellActivationResponse", "x2ap.CellActivationResponse",
5841         FT_NONE, BASE_NONE, NULL, 0,
5842         NULL, HFILL }},
5843     { &hf_x2ap_ActivatedCellList_PDU,
5844       { "ActivatedCellList", "x2ap.ActivatedCellList",
5845         FT_UINT32, BASE_DEC, NULL, 0,
5846         NULL, HFILL }},
5847     { &hf_x2ap_CellActivationFailure_PDU,
5848       { "CellActivationFailure", "x2ap.CellActivationFailure",
5849         FT_NONE, BASE_NONE, NULL, 0,
5850         NULL, HFILL }},
5851     { &hf_x2ap_X2AP_PDU_PDU,
5852       { "X2AP-PDU", "x2ap.X2AP_PDU",
5853         FT_UINT32, BASE_DEC, VALS(x2ap_X2AP_PDU_vals), 0,
5854         NULL, HFILL }},
5855     { &hf_x2ap_local,
5856       { "local", "x2ap.local",
5857         FT_UINT32, BASE_DEC, NULL, 0,
5858         "INTEGER_0_maxPrivateIEs", HFILL }},
5859     { &hf_x2ap_global,
5860       { "global", "x2ap.global",
5861         FT_OID, BASE_NONE, NULL, 0,
5862         "OBJECT_IDENTIFIER", HFILL }},
5863     { &hf_x2ap_ProtocolIE_Container_item,
5864       { "ProtocolIE-Field", "x2ap.ProtocolIE_Field",
5865         FT_NONE, BASE_NONE, NULL, 0,
5866         NULL, HFILL }},
5867     { &hf_x2ap_id,
5868       { "id", "x2ap.id",
5869         FT_UINT32, BASE_DEC, VALS(x2ap_ProtocolIE_ID_vals), 0,
5870         "ProtocolIE_ID", HFILL }},
5871     { &hf_x2ap_criticality,
5872       { "criticality", "x2ap.criticality",
5873         FT_UINT32, BASE_DEC, VALS(x2ap_Criticality_vals), 0,
5874         NULL, HFILL }},
5875     { &hf_x2ap_protocolIE_Field_value,
5876       { "value", "x2ap.value",
5877         FT_NONE, BASE_NONE, NULL, 0,
5878         "ProtocolIE_Field_value", HFILL }},
5879     { &hf_x2ap_ProtocolExtensionContainer_item,
5880       { "ProtocolExtensionField", "x2ap.ProtocolExtensionField",
5881         FT_NONE, BASE_NONE, NULL, 0,
5882         NULL, HFILL }},
5883     { &hf_x2ap_extension_id,
5884       { "id", "x2ap.id",
5885         FT_UINT32, BASE_DEC, VALS(x2ap_ProtocolIE_ID_vals), 0,
5886         "ProtocolIE_ID", HFILL }},
5887     { &hf_x2ap_extensionValue,
5888       { "extensionValue", "x2ap.extensionValue",
5889         FT_NONE, BASE_NONE, NULL, 0,
5890         NULL, HFILL }},
5891     { &hf_x2ap_PrivateIE_Container_item,
5892       { "PrivateIE-Field", "x2ap.PrivateIE_Field",
5893         FT_NONE, BASE_NONE, NULL, 0,
5894         NULL, HFILL }},
5895     { &hf_x2ap_private_id,
5896       { "id", "x2ap.id",
5897         FT_UINT32, BASE_DEC, VALS(x2ap_PrivateIE_ID_vals), 0,
5898         "PrivateIE_ID", HFILL }},
5899     { &hf_x2ap_privateIE_Field_value,
5900       { "value", "x2ap.value",
5901         FT_NONE, BASE_NONE, NULL, 0,
5902         "PrivateIE_Field_value", HFILL }},
5903     { &hf_x2ap_fdd,
5904       { "fdd", "x2ap.fdd",
5905         FT_NONE, BASE_NONE, NULL, 0,
5906         "ABSInformationFDD", HFILL }},
5907     { &hf_x2ap_tdd,
5908       { "tdd", "x2ap.tdd",
5909         FT_NONE, BASE_NONE, NULL, 0,
5910         "ABSInformationTDD", HFILL }},
5911     { &hf_x2ap_abs_inactive,
5912       { "abs-inactive", "x2ap.abs_inactive",
5913         FT_NONE, BASE_NONE, NULL, 0,
5914         NULL, HFILL }},
5915     { &hf_x2ap_abs_pattern_info,
5916       { "abs-pattern-info", "x2ap.abs_pattern_info",
5917         FT_BYTES, BASE_NONE, NULL, 0,
5918         "BIT_STRING_SIZE_40", HFILL }},
5919     { &hf_x2ap_numberOfCellSpecificAntennaPorts,
5920       { "numberOfCellSpecificAntennaPorts", "x2ap.numberOfCellSpecificAntennaPorts",
5921         FT_UINT32, BASE_DEC, VALS(x2ap_T_numberOfCellSpecificAntennaPorts_vals), 0,
5922         NULL, HFILL }},
5923     { &hf_x2ap_measurement_subset,
5924       { "measurement-subset", "x2ap.measurement_subset",
5925         FT_BYTES, BASE_NONE, NULL, 0,
5926         "BIT_STRING_SIZE_40", HFILL }},
5927     { &hf_x2ap_iE_Extensions,
5928       { "iE-Extensions", "x2ap.iE_Extensions",
5929         FT_UINT32, BASE_DEC, NULL, 0,
5930         "ProtocolExtensionContainer", HFILL }},
5931     { &hf_x2ap_abs_pattern_info_01,
5932       { "abs-pattern-info", "x2ap.abs_pattern_info",
5933         FT_BYTES, BASE_NONE, NULL, 0,
5934         "BIT_STRING_SIZE_1_70_", HFILL }},
5935     { &hf_x2ap_numberOfCellSpecificAntennaPorts_01,
5936       { "numberOfCellSpecificAntennaPorts", "x2ap.numberOfCellSpecificAntennaPorts",
5937         FT_UINT32, BASE_DEC, VALS(x2ap_T_numberOfCellSpecificAntennaPorts_01_vals), 0,
5938         "T_numberOfCellSpecificAntennaPorts_01", HFILL }},
5939     { &hf_x2ap_measurement_subset_01,
5940       { "measurement-subset", "x2ap.measurement_subset",
5941         FT_BYTES, BASE_NONE, NULL, 0,
5942         "BIT_STRING_SIZE_1_70_", HFILL }},
5943     { &hf_x2ap_dL_ABS_status,
5944       { "dL-ABS-status", "x2ap.dL_ABS_status",
5945         FT_UINT32, BASE_DEC, NULL, 0,
5946         NULL, HFILL }},
5947     { &hf_x2ap_usableABSInformation,
5948       { "usableABSInformation", "x2ap.usableABSInformation",
5949         FT_UINT32, BASE_DEC, VALS(x2ap_UsableABSInformation_vals), 0,
5950         NULL, HFILL }},
5951     { &hf_x2ap_key_eNodeB_star,
5952       { "key-eNodeB-star", "x2ap.key_eNodeB_star",
5953         FT_BYTES, BASE_NONE, NULL, 0,
5954         NULL, HFILL }},
5955     { &hf_x2ap_nextHopChainingCount,
5956       { "nextHopChainingCount", "x2ap.nextHopChainingCount",
5957         FT_UINT32, BASE_DEC, NULL, 0,
5958         NULL, HFILL }},
5959     { &hf_x2ap_priorityLevel,
5960       { "priorityLevel", "x2ap.priorityLevel",
5961         FT_UINT32, BASE_DEC, VALS(x2ap_PriorityLevel_vals), 0,
5962         NULL, HFILL }},
5963     { &hf_x2ap_pre_emptionCapability,
5964       { "pre-emptionCapability", "x2ap.pre_emptionCapability",
5965         FT_UINT32, BASE_DEC, VALS(x2ap_Pre_emptionCapability_vals), 0,
5966         NULL, HFILL }},
5967     { &hf_x2ap_pre_emptionVulnerability,
5968       { "pre-emptionVulnerability", "x2ap.pre_emptionVulnerability",
5969         FT_UINT32, BASE_DEC, VALS(x2ap_Pre_emptionVulnerability_vals), 0,
5970         NULL, HFILL }},
5971     { &hf_x2ap_cellBased,
5972       { "cellBased", "x2ap.cellBased",
5973         FT_NONE, BASE_NONE, NULL, 0,
5974         "CellBasedMDT", HFILL }},
5975     { &hf_x2ap_tABased,
5976       { "tABased", "x2ap.tABased",
5977         FT_NONE, BASE_NONE, NULL, 0,
5978         "TABasedMDT", HFILL }},
5979     { &hf_x2ap_pLMNWide,
5980       { "pLMNWide", "x2ap.pLMNWide",
5981         FT_NONE, BASE_NONE, NULL, 0,
5982         NULL, HFILL }},
5983     { &hf_x2ap_BroadcastPLMNs_Item_item,
5984       { "PLMN-Identity", "x2ap.PLMN_Identity",
5985         FT_BYTES, BASE_NONE, NULL, 0,
5986         NULL, HFILL }},
5987     { &hf_x2ap_radioNetwork,
5988       { "radioNetwork", "x2ap.radioNetwork",
5989         FT_UINT32, BASE_DEC, VALS(x2ap_CauseRadioNetwork_vals), 0,
5990         "CauseRadioNetwork", HFILL }},
5991     { &hf_x2ap_transport,
5992       { "transport", "x2ap.transport",
5993         FT_UINT32, BASE_DEC, VALS(x2ap_CauseTransport_vals), 0,
5994         "CauseTransport", HFILL }},
5995     { &hf_x2ap_protocol,
5996       { "protocol", "x2ap.protocol",
5997         FT_UINT32, BASE_DEC, VALS(x2ap_CauseProtocol_vals), 0,
5998         "CauseProtocol", HFILL }},
5999     { &hf_x2ap_misc,
6000       { "misc", "x2ap.misc",
6001         FT_UINT32, BASE_DEC, VALS(x2ap_CauseMisc_vals), 0,
6002         "CauseMisc", HFILL }},
6003     { &hf_x2ap_cellIdListforMDT,
6004       { "cellIdListforMDT", "x2ap.cellIdListforMDT",
6005         FT_UINT32, BASE_DEC, NULL, 0,
6006         NULL, HFILL }},
6007     { &hf_x2ap_CellIdListforMDT_item,
6008       { "ECGI", "x2ap.ECGI",
6009         FT_NONE, BASE_NONE, NULL, 0,
6010         NULL, HFILL }},
6011     { &hf_x2ap_cell_Size,
6012       { "cell-Size", "x2ap.cell_Size",
6013         FT_UINT32, BASE_DEC, VALS(x2ap_Cell_Size_vals), 0,
6014         NULL, HFILL }},
6015     { &hf_x2ap_dL_CompositeAvailableCapacity,
6016       { "dL-CompositeAvailableCapacity", "x2ap.dL_CompositeAvailableCapacity",
6017         FT_NONE, BASE_NONE, NULL, 0,
6018         "CompositeAvailableCapacity", HFILL }},
6019     { &hf_x2ap_uL_CompositeAvailableCapacity,
6020       { "uL-CompositeAvailableCapacity", "x2ap.uL_CompositeAvailableCapacity",
6021         FT_NONE, BASE_NONE, NULL, 0,
6022         "CompositeAvailableCapacity", HFILL }},
6023     { &hf_x2ap_cellCapacityClassValue,
6024       { "cellCapacityClassValue", "x2ap.cellCapacityClassValue",
6025         FT_UINT32, BASE_DEC, NULL, 0,
6026         NULL, HFILL }},
6027     { &hf_x2ap_capacityValue,
6028       { "capacityValue", "x2ap.capacityValue",
6029         FT_UINT32, BASE_DEC, NULL, 0,
6030         NULL, HFILL }},
6031     { &hf_x2ap_pDCP_SN,
6032       { "pDCP-SN", "x2ap.pDCP_SN",
6033         FT_UINT32, BASE_DEC, NULL, 0,
6034         NULL, HFILL }},
6035     { &hf_x2ap_hFN,
6036       { "hFN", "x2ap.hFN",
6037         FT_UINT32, BASE_DEC, NULL, 0,
6038         NULL, HFILL }},
6039     { &hf_x2ap_procedureCode,
6040       { "procedureCode", "x2ap.procedureCode",
6041         FT_UINT32, BASE_DEC, VALS(x2ap_ProcedureCode_vals), 0,
6042         NULL, HFILL }},
6043     { &hf_x2ap_triggeringMessage,
6044       { "triggeringMessage", "x2ap.triggeringMessage",
6045         FT_UINT32, BASE_DEC, VALS(x2ap_TriggeringMessage_vals), 0,
6046         NULL, HFILL }},
6047     { &hf_x2ap_procedureCriticality,
6048       { "procedureCriticality", "x2ap.procedureCriticality",
6049         FT_UINT32, BASE_DEC, VALS(x2ap_Criticality_vals), 0,
6050         "Criticality", HFILL }},
6051     { &hf_x2ap_iEsCriticalityDiagnostics,
6052       { "iEsCriticalityDiagnostics", "x2ap.iEsCriticalityDiagnostics",
6053         FT_UINT32, BASE_DEC, NULL, 0,
6054         "CriticalityDiagnostics_IE_List", HFILL }},
6055     { &hf_x2ap_CriticalityDiagnostics_IE_List_item,
6056       { "CriticalityDiagnostics-IE-List item", "x2ap.CriticalityDiagnostics_IE_List_item",
6057         FT_NONE, BASE_NONE, NULL, 0,
6058         NULL, HFILL }},
6059     { &hf_x2ap_iECriticality,
6060       { "iECriticality", "x2ap.iECriticality",
6061         FT_UINT32, BASE_DEC, VALS(x2ap_Criticality_vals), 0,
6062         "Criticality", HFILL }},
6063     { &hf_x2ap_iE_ID,
6064       { "iE-ID", "x2ap.iE_ID",
6065         FT_UINT32, BASE_DEC, VALS(x2ap_ProtocolIE_ID_vals), 0,
6066         "ProtocolIE_ID", HFILL }},
6067     { &hf_x2ap_typeOfError,
6068       { "typeOfError", "x2ap.typeOfError",
6069         FT_UINT32, BASE_DEC, VALS(x2ap_TypeOfError_vals), 0,
6070         NULL, HFILL }},
6071     { &hf_x2ap_uL_EARFCN,
6072       { "uL-EARFCN", "x2ap.uL_EARFCN",
6073         FT_UINT32, BASE_DEC, NULL, 0,
6074         "EARFCN", HFILL }},
6075     { &hf_x2ap_dL_EARFCN,
6076       { "dL-EARFCN", "x2ap.dL_EARFCN",
6077         FT_UINT32, BASE_DEC, NULL, 0,
6078         "EARFCN", HFILL }},
6079     { &hf_x2ap_uL_Transmission_Bandwidth,
6080       { "uL-Transmission-Bandwidth", "x2ap.uL_Transmission_Bandwidth",
6081         FT_UINT32, BASE_DEC, VALS(x2ap_Transmission_Bandwidth_vals), 0,
6082         "Transmission_Bandwidth", HFILL }},
6083     { &hf_x2ap_dL_Transmission_Bandwidth,
6084       { "dL-Transmission-Bandwidth", "x2ap.dL_Transmission_Bandwidth",
6085         FT_UINT32, BASE_DEC, VALS(x2ap_Transmission_Bandwidth_vals), 0,
6086         "Transmission_Bandwidth", HFILL }},
6087     { &hf_x2ap_eARFCN,
6088       { "eARFCN", "x2ap.eARFCN",
6089         FT_UINT32, BASE_DEC, NULL, 0,
6090         NULL, HFILL }},
6091     { &hf_x2ap_transmission_Bandwidth,
6092       { "transmission-Bandwidth", "x2ap.transmission_Bandwidth",
6093         FT_UINT32, BASE_DEC, VALS(x2ap_Transmission_Bandwidth_vals), 0,
6094         NULL, HFILL }},
6095     { &hf_x2ap_subframeAssignment,
6096       { "subframeAssignment", "x2ap.subframeAssignment",
6097         FT_UINT32, BASE_DEC, VALS(x2ap_SubframeAssignment_vals), 0,
6098         NULL, HFILL }},
6099     { &hf_x2ap_specialSubframe_Info,
6100       { "specialSubframe-Info", "x2ap.specialSubframe_Info",
6101         FT_NONE, BASE_NONE, NULL, 0,
6102         NULL, HFILL }},
6103     { &hf_x2ap_fDD,
6104       { "fDD", "x2ap.fDD",
6105         FT_NONE, BASE_NONE, NULL, 0,
6106         "FDD_Info", HFILL }},
6107     { &hf_x2ap_tDD,
6108       { "tDD", "x2ap.tDD",
6109         FT_NONE, BASE_NONE, NULL, 0,
6110         "TDD_Info", HFILL }},
6111     { &hf_x2ap_pLMN_Identity,
6112       { "pLMN-Identity", "x2ap.pLMN_Identity",
6113         FT_BYTES, BASE_NONE, NULL, 0,
6114         NULL, HFILL }},
6115     { &hf_x2ap_eUTRANcellIdentifier,
6116       { "eUTRANcellIdentifier", "x2ap.eUTRANcellIdentifier",
6117         FT_BYTES, BASE_NONE, NULL, 0,
6118         NULL, HFILL }},
6119     { &hf_x2ap_macro_eNB_ID,
6120       { "macro-eNB-ID", "x2ap.macro_eNB_ID",
6121         FT_BYTES, BASE_NONE, NULL, 0,
6122         "BIT_STRING_SIZE_20", HFILL }},
6123     { &hf_x2ap_home_eNB_ID,
6124       { "home-eNB-ID", "x2ap.home_eNB_ID",
6125         FT_BYTES, BASE_NONE, NULL, 0,
6126         "BIT_STRING_SIZE_28", HFILL }},
6127     { &hf_x2ap_EPLMNs_item,
6128       { "PLMN-Identity", "x2ap.PLMN_Identity",
6129         FT_BYTES, BASE_NONE, NULL, 0,
6130         NULL, HFILL }},
6131     { &hf_x2ap_qCI,
6132       { "qCI", "x2ap.qCI",
6133         FT_UINT32, BASE_DEC, NULL, 0,
6134         NULL, HFILL }},
6135     { &hf_x2ap_allocationAndRetentionPriority,
6136       { "allocationAndRetentionPriority", "x2ap.allocationAndRetentionPriority",
6137         FT_NONE, BASE_NONE, NULL, 0,
6138         NULL, HFILL }},
6139     { &hf_x2ap_gbrQosInformation,
6140       { "gbrQosInformation", "x2ap.gbrQosInformation",
6141         FT_NONE, BASE_NONE, NULL, 0,
6142         "GBR_QosInformation", HFILL }},
6143     { &hf_x2ap_E_RAB_List_item,
6144       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6145         FT_NONE, BASE_NONE, NULL, 0,
6146         NULL, HFILL }},
6147     { &hf_x2ap_e_RAB_ID,
6148       { "e-RAB-ID", "x2ap.e_RAB_ID",
6149         FT_UINT32, BASE_DEC, NULL, 0,
6150         NULL, HFILL }},
6151     { &hf_x2ap_cause,
6152       { "cause", "x2ap.cause",
6153         FT_UINT32, BASE_DEC, VALS(x2ap_Cause_vals), 0,
6154         NULL, HFILL }},
6155     { &hf_x2ap_ForbiddenTAs_item,
6156       { "ForbiddenTAs-Item", "x2ap.ForbiddenTAs_Item",
6157         FT_NONE, BASE_NONE, NULL, 0,
6158         NULL, HFILL }},
6159     { &hf_x2ap_forbiddenTACs,
6160       { "forbiddenTACs", "x2ap.forbiddenTACs",
6161         FT_UINT32, BASE_DEC, NULL, 0,
6162         NULL, HFILL }},
6163     { &hf_x2ap_ForbiddenTACs_item,
6164       { "TAC", "x2ap.TAC",
6165         FT_BYTES, BASE_NONE, NULL, 0,
6166         NULL, HFILL }},
6167     { &hf_x2ap_ForbiddenLAs_item,
6168       { "ForbiddenLAs-Item", "x2ap.ForbiddenLAs_Item",
6169         FT_NONE, BASE_NONE, NULL, 0,
6170         NULL, HFILL }},
6171     { &hf_x2ap_forbiddenLACs,
6172       { "forbiddenLACs", "x2ap.forbiddenLACs",
6173         FT_UINT32, BASE_DEC, NULL, 0,
6174         NULL, HFILL }},
6175     { &hf_x2ap_ForbiddenLACs_item,
6176       { "LAC", "x2ap.LAC",
6177         FT_BYTES, BASE_NONE, NULL, 0,
6178         NULL, HFILL }},
6179     { &hf_x2ap_e_RAB_MaximumBitrateDL,
6180       { "e-RAB-MaximumBitrateDL", "x2ap.e_RAB_MaximumBitrateDL",
6181         FT_UINT64, BASE_DEC, NULL, 0,
6182         "BitRate", HFILL }},
6183     { &hf_x2ap_e_RAB_MaximumBitrateUL,
6184       { "e-RAB-MaximumBitrateUL", "x2ap.e_RAB_MaximumBitrateUL",
6185         FT_UINT64, BASE_DEC, NULL, 0,
6186         "BitRate", HFILL }},
6187     { &hf_x2ap_e_RAB_GuaranteedBitrateDL,
6188       { "e-RAB-GuaranteedBitrateDL", "x2ap.e_RAB_GuaranteedBitrateDL",
6189         FT_UINT64, BASE_DEC, NULL, 0,
6190         "BitRate", HFILL }},
6191     { &hf_x2ap_e_RAB_GuaranteedBitrateUL,
6192       { "e-RAB-GuaranteedBitrateUL", "x2ap.e_RAB_GuaranteedBitrateUL",
6193         FT_UINT64, BASE_DEC, NULL, 0,
6194         "BitRate", HFILL }},
6195     { &hf_x2ap_eNB_ID,
6196       { "eNB-ID", "x2ap.eNB_ID",
6197         FT_UINT32, BASE_DEC, VALS(x2ap_ENB_ID_vals), 0,
6198         NULL, HFILL }},
6199     { &hf_x2ap_transportLayerAddress,
6200       { "transportLayerAddress", "x2ap.transportLayerAddress",
6201         FT_BYTES, BASE_NONE, NULL, 0,
6202         NULL, HFILL }},
6203     { &hf_x2ap_gTP_TEID,
6204       { "gTP-TEID", "x2ap.gTP_TEID",
6205         FT_BYTES, BASE_NONE, NULL, 0,
6206         "GTP_TEI", HFILL }},
6207     { &hf_x2ap_GUGroupIDList_item,
6208       { "GU-Group-ID", "x2ap.GU_Group_ID",
6209         FT_NONE, BASE_NONE, NULL, 0,
6210         NULL, HFILL }},
6211     { &hf_x2ap_mME_Group_ID,
6212       { "mME-Group-ID", "x2ap.mME_Group_ID",
6213         FT_BYTES, BASE_NONE, NULL, 0,
6214         NULL, HFILL }},
6215     { &hf_x2ap_gU_Group_ID,
6216       { "gU-Group-ID", "x2ap.gU_Group_ID",
6217         FT_NONE, BASE_NONE, NULL, 0,
6218         NULL, HFILL }},
6219     { &hf_x2ap_mME_Code,
6220       { "mME-Code", "x2ap.mME_Code",
6221         FT_BYTES, BASE_NONE, NULL, 0,
6222         NULL, HFILL }},
6223     { &hf_x2ap_servingPLMN,
6224       { "servingPLMN", "x2ap.servingPLMN",
6225         FT_BYTES, BASE_NONE, NULL, 0,
6226         "PLMN_Identity", HFILL }},
6227     { &hf_x2ap_equivalentPLMNs,
6228       { "equivalentPLMNs", "x2ap.equivalentPLMNs",
6229         FT_UINT32, BASE_DEC, NULL, 0,
6230         "EPLMNs", HFILL }},
6231     { &hf_x2ap_forbiddenTAs,
6232       { "forbiddenTAs", "x2ap.forbiddenTAs",
6233         FT_UINT32, BASE_DEC, NULL, 0,
6234         NULL, HFILL }},
6235     { &hf_x2ap_forbiddenLAs,
6236       { "forbiddenLAs", "x2ap.forbiddenLAs",
6237         FT_UINT32, BASE_DEC, NULL, 0,
6238         NULL, HFILL }},
6239     { &hf_x2ap_forbiddenInterRATs,
6240       { "forbiddenInterRATs", "x2ap.forbiddenInterRATs",
6241         FT_UINT32, BASE_DEC, VALS(x2ap_ForbiddenInterRATs_vals), 0,
6242         NULL, HFILL }},
6243     { &hf_x2ap_dLHWLoadIndicator,
6244       { "dLHWLoadIndicator", "x2ap.dLHWLoadIndicator",
6245         FT_UINT32, BASE_DEC, VALS(x2ap_LoadIndicator_vals), 0,
6246         "LoadIndicator", HFILL }},
6247     { &hf_x2ap_uLHWLoadIndicator,
6248       { "uLHWLoadIndicator", "x2ap.uLHWLoadIndicator",
6249         FT_UINT32, BASE_DEC, VALS(x2ap_LoadIndicator_vals), 0,
6250         "LoadIndicator", HFILL }},
6251     { &hf_x2ap_e_UTRAN_Cell,
6252       { "e-UTRAN-Cell", "x2ap.e_UTRAN_Cell",
6253         FT_NONE, BASE_NONE, NULL, 0,
6254         "LastVisitedEUTRANCellInformation", HFILL }},
6255     { &hf_x2ap_uTRAN_Cell,
6256       { "uTRAN-Cell", "x2ap.uTRAN_Cell",
6257         FT_BYTES, BASE_NONE, NULL, 0,
6258         "LastVisitedUTRANCellInformation", HFILL }},
6259     { &hf_x2ap_gERAN_Cell,
6260       { "gERAN-Cell", "x2ap.gERAN_Cell",
6261         FT_UINT32, BASE_DEC, VALS(x2ap_LastVisitedGERANCellInformation_vals), 0,
6262         "LastVisitedGERANCellInformation", HFILL }},
6263     { &hf_x2ap_global_Cell_ID,
6264       { "global-Cell-ID", "x2ap.global_Cell_ID",
6265         FT_NONE, BASE_NONE, NULL, 0,
6266         "ECGI", HFILL }},
6267     { &hf_x2ap_cellType,
6268       { "cellType", "x2ap.cellType",
6269         FT_NONE, BASE_NONE, NULL, 0,
6270         NULL, HFILL }},
6271     { &hf_x2ap_time_UE_StayedInCell,
6272       { "time-UE-StayedInCell", "x2ap.time_UE_StayedInCell",
6273         FT_UINT32, BASE_DEC, NULL, 0,
6274         NULL, HFILL }},
6275     { &hf_x2ap_undefined,
6276       { "undefined", "x2ap.undefined",
6277         FT_NONE, BASE_NONE, NULL, 0,
6278         NULL, HFILL }},
6279     { &hf_x2ap_eventType,
6280       { "eventType", "x2ap.eventType",
6281         FT_UINT32, BASE_DEC, VALS(x2ap_EventType_vals), 0,
6282         NULL, HFILL }},
6283     { &hf_x2ap_reportArea,
6284       { "reportArea", "x2ap.reportArea",
6285         FT_UINT32, BASE_DEC, VALS(x2ap_ReportArea_vals), 0,
6286         NULL, HFILL }},
6287     { &hf_x2ap_mdt_Activation,
6288       { "mdt-Activation", "x2ap.mdt_Activation",
6289         FT_UINT32, BASE_DEC, VALS(x2ap_MDT_Activation_vals), 0,
6290         NULL, HFILL }},
6291     { &hf_x2ap_areaScopeOfMDT,
6292       { "areaScopeOfMDT", "x2ap.areaScopeOfMDT",
6293         FT_UINT32, BASE_DEC, VALS(x2ap_AreaScopeOfMDT_vals), 0,
6294         NULL, HFILL }},
6295     { &hf_x2ap_measurementsToActivate,
6296       { "measurementsToActivate", "x2ap.measurementsToActivate",
6297         FT_BYTES, BASE_NONE, NULL, 0,
6298         NULL, HFILL }},
6299     { &hf_x2ap_reportingTriggerMDT,
6300       { "reportingTriggerMDT", "x2ap.reportingTriggerMDT",
6301         FT_UINT32, BASE_DEC, VALS(x2ap_ReportingTriggerMDT_vals), 0,
6302         NULL, HFILL }},
6303     { &hf_x2ap_thresholdeventA2,
6304       { "thresholdeventA2", "x2ap.thresholdeventA2",
6305         FT_NONE, BASE_NONE, NULL, 0,
6306         NULL, HFILL }},
6307     { &hf_x2ap_periodicReportingMDT,
6308       { "periodicReportingMDT", "x2ap.periodicReportingMDT",
6309         FT_NONE, BASE_NONE, NULL, 0,
6310         NULL, HFILL }},
6311     { &hf_x2ap_threshold_RSRP,
6312       { "threshold-RSRP", "x2ap.threshold_RSRP",
6313         FT_UINT32, BASE_DEC, NULL, 0,
6314         NULL, HFILL }},
6315     { &hf_x2ap_threshold_RSRQ,
6316       { "threshold-RSRQ", "x2ap.threshold_RSRQ",
6317         FT_UINT32, BASE_DEC, NULL, 0,
6318         NULL, HFILL }},
6319     { &hf_x2ap_MBSFN_Subframe_Infolist_item,
6320       { "MBSFN-Subframe-Info", "x2ap.MBSFN_Subframe_Info",
6321         FT_NONE, BASE_NONE, NULL, 0,
6322         NULL, HFILL }},
6323     { &hf_x2ap_radioframeAllocationPeriod,
6324       { "radioframeAllocationPeriod", "x2ap.radioframeAllocationPeriod",
6325         FT_UINT32, BASE_DEC, VALS(x2ap_RadioframeAllocationPeriod_vals), 0,
6326         NULL, HFILL }},
6327     { &hf_x2ap_radioframeAllocationOffset,
6328       { "radioframeAllocationOffset", "x2ap.radioframeAllocationOffset",
6329         FT_UINT32, BASE_DEC, NULL, 0,
6330         NULL, HFILL }},
6331     { &hf_x2ap_subframeAllocation,
6332       { "subframeAllocation", "x2ap.subframeAllocation",
6333         FT_UINT32, BASE_DEC, VALS(x2ap_SubframeAllocation_vals), 0,
6334         NULL, HFILL }},
6335     { &hf_x2ap_handoverTriggerChangeLowerLimit,
6336       { "handoverTriggerChangeLowerLimit", "x2ap.handoverTriggerChangeLowerLimit",
6337         FT_INT32, BASE_DEC, NULL, 0,
6338         "INTEGER_M20_20", HFILL }},
6339     { &hf_x2ap_handoverTriggerChangeUpperLimit,
6340       { "handoverTriggerChangeUpperLimit", "x2ap.handoverTriggerChangeUpperLimit",
6341         FT_INT32, BASE_DEC, NULL, 0,
6342         "INTEGER_M20_20", HFILL }},
6343     { &hf_x2ap_handoverTriggerChange,
6344       { "handoverTriggerChange", "x2ap.handoverTriggerChange",
6345         FT_INT32, BASE_DEC, NULL, 0,
6346         "INTEGER_M20_20", HFILL }},
6347     { &hf_x2ap_Neighbour_Information_item,
6348       { "Neighbour-Information item", "x2ap.Neighbour_Information_item",
6349         FT_NONE, BASE_NONE, NULL, 0,
6350         NULL, HFILL }},
6351     { &hf_x2ap_eCGI,
6352       { "eCGI", "x2ap.eCGI",
6353         FT_NONE, BASE_NONE, NULL, 0,
6354         NULL, HFILL }},
6355     { &hf_x2ap_pCI,
6356       { "pCI", "x2ap.pCI",
6357         FT_UINT32, BASE_DEC, NULL, 0,
6358         NULL, HFILL }},
6359     { &hf_x2ap_reportInterval,
6360       { "reportInterval", "x2ap.reportInterval",
6361         FT_UINT32, BASE_DEC, VALS(x2ap_ReportIntervalMDT_vals), 0,
6362         "ReportIntervalMDT", HFILL }},
6363     { &hf_x2ap_reportAmount,
6364       { "reportAmount", "x2ap.reportAmount",
6365         FT_UINT32, BASE_DEC, VALS(x2ap_ReportAmountMDT_vals), 0,
6366         "ReportAmountMDT", HFILL }},
6367     { &hf_x2ap_rootSequenceIndex,
6368       { "rootSequenceIndex", "x2ap.rootSequenceIndex",
6369         FT_UINT32, BASE_DEC, NULL, 0,
6370         "INTEGER_0_837", HFILL }},
6371     { &hf_x2ap_zeroCorrelationIndex,
6372       { "zeroCorrelationIndex", "x2ap.zeroCorrelationIndex",
6373         FT_UINT32, BASE_DEC, NULL, 0,
6374         "INTEGER_0_15", HFILL }},
6375     { &hf_x2ap_highSpeedFlag,
6376       { "highSpeedFlag", "x2ap.highSpeedFlag",
6377         FT_BOOLEAN, BASE_NONE, NULL, 0,
6378         "BOOLEAN", HFILL }},
6379     { &hf_x2ap_prach_FreqOffset,
6380       { "prach-FreqOffset", "x2ap.prach_FreqOffset",
6381         FT_UINT32, BASE_DEC, NULL, 0,
6382         "INTEGER_0_94", HFILL }},
6383     { &hf_x2ap_prach_ConfigIndex,
6384       { "prach-ConfigIndex", "x2ap.prach_ConfigIndex",
6385         FT_UINT32, BASE_DEC, NULL, 0,
6386         "INTEGER_0_63", HFILL }},
6387     { &hf_x2ap_dL_GBR_PRB_usage,
6388       { "dL-GBR-PRB-usage", "x2ap.dL_GBR_PRB_usage",
6389         FT_UINT32, BASE_DEC, NULL, 0,
6390         NULL, HFILL }},
6391     { &hf_x2ap_uL_GBR_PRB_usage,
6392       { "uL-GBR-PRB-usage", "x2ap.uL_GBR_PRB_usage",
6393         FT_UINT32, BASE_DEC, NULL, 0,
6394         NULL, HFILL }},
6395     { &hf_x2ap_dL_non_GBR_PRB_usage,
6396       { "dL-non-GBR-PRB-usage", "x2ap.dL_non_GBR_PRB_usage",
6397         FT_UINT32, BASE_DEC, NULL, 0,
6398         NULL, HFILL }},
6399     { &hf_x2ap_uL_non_GBR_PRB_usage,
6400       { "uL-non-GBR-PRB-usage", "x2ap.uL_non_GBR_PRB_usage",
6401         FT_UINT32, BASE_DEC, NULL, 0,
6402         NULL, HFILL }},
6403     { &hf_x2ap_dL_Total_PRB_usage,
6404       { "dL-Total-PRB-usage", "x2ap.dL_Total_PRB_usage",
6405         FT_UINT32, BASE_DEC, NULL, 0,
6406         NULL, HFILL }},
6407     { &hf_x2ap_uL_Total_PRB_usage,
6408       { "uL-Total-PRB-usage", "x2ap.uL_Total_PRB_usage",
6409         FT_UINT32, BASE_DEC, NULL, 0,
6410         NULL, HFILL }},
6411     { &hf_x2ap_rNTP_PerPRB,
6412       { "rNTP-PerPRB", "x2ap.rNTP_PerPRB",
6413         FT_BYTES, BASE_NONE, NULL, 0,
6414         "BIT_STRING_SIZE_6_110_", HFILL }},
6415     { &hf_x2ap_rNTP_Threshold,
6416       { "rNTP-Threshold", "x2ap.rNTP_Threshold",
6417         FT_UINT32, BASE_DEC, VALS(x2ap_RNTP_Threshold_vals), 0,
6418         NULL, HFILL }},
6419     { &hf_x2ap_numberOfCellSpecificAntennaPorts_02,
6420       { "numberOfCellSpecificAntennaPorts", "x2ap.numberOfCellSpecificAntennaPorts",
6421         FT_UINT32, BASE_DEC, VALS(x2ap_T_numberOfCellSpecificAntennaPorts_02_vals), 0,
6422         "T_numberOfCellSpecificAntennaPorts_02", HFILL }},
6423     { &hf_x2ap_p_B,
6424       { "p-B", "x2ap.p_B",
6425         FT_UINT32, BASE_DEC, NULL, 0,
6426         "INTEGER_0_3_", HFILL }},
6427     { &hf_x2ap_pDCCH_InterferenceImpact,
6428       { "pDCCH-InterferenceImpact", "x2ap.pDCCH_InterferenceImpact",
6429         FT_UINT32, BASE_DEC, NULL, 0,
6430         "INTEGER_0_4_", HFILL }},
6431     { &hf_x2ap_dLS1TNLLoadIndicator,
6432       { "dLS1TNLLoadIndicator", "x2ap.dLS1TNLLoadIndicator",
6433         FT_UINT32, BASE_DEC, VALS(x2ap_LoadIndicator_vals), 0,
6434         "LoadIndicator", HFILL }},
6435     { &hf_x2ap_uLS1TNLLoadIndicator,
6436       { "uLS1TNLLoadIndicator", "x2ap.uLS1TNLLoadIndicator",
6437         FT_UINT32, BASE_DEC, VALS(x2ap_LoadIndicator_vals), 0,
6438         "LoadIndicator", HFILL }},
6439     { &hf_x2ap_ServedCells_item,
6440       { "ServedCells item", "x2ap.ServedCells_item",
6441         FT_NONE, BASE_NONE, NULL, 0,
6442         NULL, HFILL }},
6443     { &hf_x2ap_servedCellInfo,
6444       { "servedCellInfo", "x2ap.servedCellInfo",
6445         FT_NONE, BASE_NONE, NULL, 0,
6446         "ServedCell_Information", HFILL }},
6447     { &hf_x2ap_neighbour_Info,
6448       { "neighbour-Info", "x2ap.neighbour_Info",
6449         FT_UINT32, BASE_DEC, NULL, 0,
6450         "Neighbour_Information", HFILL }},
6451     { &hf_x2ap_cellId,
6452       { "cellId", "x2ap.cellId",
6453         FT_NONE, BASE_NONE, NULL, 0,
6454         "ECGI", HFILL }},
6455     { &hf_x2ap_tAC,
6456       { "tAC", "x2ap.tAC",
6457         FT_BYTES, BASE_NONE, NULL, 0,
6458         NULL, HFILL }},
6459     { &hf_x2ap_broadcastPLMNs,
6460       { "broadcastPLMNs", "x2ap.broadcastPLMNs",
6461         FT_UINT32, BASE_DEC, NULL, 0,
6462         "BroadcastPLMNs_Item", HFILL }},
6463     { &hf_x2ap_eUTRA_Mode_Info,
6464       { "eUTRA-Mode-Info", "x2ap.eUTRA_Mode_Info",
6465         FT_UINT32, BASE_DEC, VALS(x2ap_EUTRA_Mode_Info_vals), 0,
6466         NULL, HFILL }},
6467     { &hf_x2ap_specialSubframePatterns,
6468       { "specialSubframePatterns", "x2ap.specialSubframePatterns",
6469         FT_UINT32, BASE_DEC, VALS(x2ap_SpecialSubframePatterns_vals), 0,
6470         NULL, HFILL }},
6471     { &hf_x2ap_cyclicPrefixDL,
6472       { "cyclicPrefixDL", "x2ap.cyclicPrefixDL",
6473         FT_UINT32, BASE_DEC, VALS(x2ap_CyclicPrefixDL_vals), 0,
6474         NULL, HFILL }},
6475     { &hf_x2ap_cyclicPrefixUL,
6476       { "cyclicPrefixUL", "x2ap.cyclicPrefixUL",
6477         FT_UINT32, BASE_DEC, VALS(x2ap_CyclicPrefixUL_vals), 0,
6478         NULL, HFILL }},
6479     { &hf_x2ap_oneframe,
6480       { "oneframe", "x2ap.oneframe",
6481         FT_BYTES, BASE_NONE, NULL, 0,
6482         NULL, HFILL }},
6483     { &hf_x2ap_fourframes,
6484       { "fourframes", "x2ap.fourframes",
6485         FT_BYTES, BASE_NONE, NULL, 0,
6486         NULL, HFILL }},
6487     { &hf_x2ap_tAListforMDT,
6488       { "tAListforMDT", "x2ap.tAListforMDT",
6489         FT_UINT32, BASE_DEC, NULL, 0,
6490         NULL, HFILL }},
6491     { &hf_x2ap_TAListforMDT_item,
6492       { "TAC", "x2ap.TAC",
6493         FT_BYTES, BASE_NONE, NULL, 0,
6494         NULL, HFILL }},
6495     { &hf_x2ap_measurementThreshold,
6496       { "measurementThreshold", "x2ap.measurementThreshold",
6497         FT_UINT32, BASE_DEC, VALS(x2ap_MeasurementThresholdA2_vals), 0,
6498         "MeasurementThresholdA2", HFILL }},
6499     { &hf_x2ap_eUTRANTraceID,
6500       { "eUTRANTraceID", "x2ap.eUTRANTraceID",
6501         FT_BYTES, BASE_NONE, NULL, 0,
6502         NULL, HFILL }},
6503     { &hf_x2ap_interfacesToTrace,
6504       { "interfacesToTrace", "x2ap.interfacesToTrace",
6505         FT_BYTES, BASE_NONE, NULL, 0,
6506         NULL, HFILL }},
6507     { &hf_x2ap_traceDepth,
6508       { "traceDepth", "x2ap.traceDepth",
6509         FT_UINT32, BASE_DEC, VALS(x2ap_TraceDepth_vals), 0,
6510         NULL, HFILL }},
6511     { &hf_x2ap_traceCollectionEntityIPAddress,
6512       { "traceCollectionEntityIPAddress", "x2ap.traceCollectionEntityIPAddress",
6513         FT_BYTES, BASE_NONE, NULL, 0,
6514         NULL, HFILL }},
6515     { &hf_x2ap_UE_HistoryInformation_item,
6516       { "LastVisitedCell-Item", "x2ap.LastVisitedCell_Item",
6517         FT_UINT32, BASE_DEC, VALS(x2ap_LastVisitedCell_Item_vals), 0,
6518         NULL, HFILL }},
6519     { &hf_x2ap_uEaggregateMaximumBitRateDownlink,
6520       { "uEaggregateMaximumBitRateDownlink", "x2ap.uEaggregateMaximumBitRateDownlink",
6521         FT_UINT64, BASE_DEC, NULL, 0,
6522         "BitRate", HFILL }},
6523     { &hf_x2ap_uEaggregateMaximumBitRateUplink,
6524       { "uEaggregateMaximumBitRateUplink", "x2ap.uEaggregateMaximumBitRateUplink",
6525         FT_UINT64, BASE_DEC, NULL, 0,
6526         "BitRate", HFILL }},
6527     { &hf_x2ap_encryptionAlgorithms,
6528       { "encryptionAlgorithms", "x2ap.encryptionAlgorithms",
6529         FT_BYTES, BASE_NONE, NULL, 0,
6530         NULL, HFILL }},
6531     { &hf_x2ap_integrityProtectionAlgorithms,
6532       { "integrityProtectionAlgorithms", "x2ap.integrityProtectionAlgorithms",
6533         FT_BYTES, BASE_NONE, NULL, 0,
6534         NULL, HFILL }},
6535     { &hf_x2ap_UL_InterferenceOverloadIndication_item,
6536       { "UL-InterferenceOverloadIndication-Item", "x2ap.UL_InterferenceOverloadIndication_Item",
6537         FT_UINT32, BASE_DEC, VALS(x2ap_UL_InterferenceOverloadIndication_Item_vals), 0,
6538         NULL, HFILL }},
6539     { &hf_x2ap_UL_HighInterferenceIndicationInfo_item,
6540       { "UL-HighInterferenceIndicationInfo-Item", "x2ap.UL_HighInterferenceIndicationInfo_Item",
6541         FT_NONE, BASE_NONE, NULL, 0,
6542         NULL, HFILL }},
6543     { &hf_x2ap_target_Cell_ID,
6544       { "target-Cell-ID", "x2ap.target_Cell_ID",
6545         FT_NONE, BASE_NONE, NULL, 0,
6546         "ECGI", HFILL }},
6547     { &hf_x2ap_ul_interferenceindication,
6548       { "ul-interferenceindication", "x2ap.ul_interferenceindication",
6549         FT_BYTES, BASE_NONE, NULL, 0,
6550         "UL_HighInterferenceIndication", HFILL }},
6551     { &hf_x2ap_fdd_01,
6552       { "fdd", "x2ap.fdd",
6553         FT_NONE, BASE_NONE, NULL, 0,
6554         "UsableABSInformationFDD", HFILL }},
6555     { &hf_x2ap_tdd_01,
6556       { "tdd", "x2ap.tdd",
6557         FT_NONE, BASE_NONE, NULL, 0,
6558         "UsableABSInformationTDD", HFILL }},
6559     { &hf_x2ap_usable_abs_pattern_info,
6560       { "usable-abs-pattern-info", "x2ap.usable_abs_pattern_info",
6561         FT_BYTES, BASE_NONE, NULL, 0,
6562         "BIT_STRING_SIZE_40", HFILL }},
6563     { &hf_x2ap_usaable_abs_pattern_info,
6564       { "usaable-abs-pattern-info", "x2ap.usaable_abs_pattern_info",
6565         FT_BYTES, BASE_NONE, NULL, 0,
6566         "BIT_STRING_SIZE_1_70_", HFILL }},
6567     { &hf_x2ap_protocolIEs,
6568       { "protocolIEs", "x2ap.protocolIEs",
6569         FT_UINT32, BASE_DEC, NULL, 0,
6570         "ProtocolIE_Container", HFILL }},
6571     { &hf_x2ap_mME_UE_S1AP_ID,
6572       { "mME-UE-S1AP-ID", "x2ap.mME_UE_S1AP_ID",
6573         FT_UINT32, BASE_DEC, NULL, 0,
6574         "UE_S1AP_ID", HFILL }},
6575     { &hf_x2ap_uESecurityCapabilities,
6576       { "uESecurityCapabilities", "x2ap.uESecurityCapabilities",
6577         FT_NONE, BASE_NONE, NULL, 0,
6578         NULL, HFILL }},
6579     { &hf_x2ap_aS_SecurityInformation,
6580       { "aS-SecurityInformation", "x2ap.aS_SecurityInformation",
6581         FT_NONE, BASE_NONE, NULL, 0,
6582         NULL, HFILL }},
6583     { &hf_x2ap_uEaggregateMaximumBitRate,
6584       { "uEaggregateMaximumBitRate", "x2ap.uEaggregateMaximumBitRate",
6585         FT_NONE, BASE_NONE, NULL, 0,
6586         NULL, HFILL }},
6587     { &hf_x2ap_subscriberProfileIDforRFP,
6588       { "subscriberProfileIDforRFP", "x2ap.subscriberProfileIDforRFP",
6589         FT_UINT32, BASE_DEC, NULL, 0,
6590         NULL, HFILL }},
6591     { &hf_x2ap_e_RABs_ToBeSetup_List,
6592       { "e-RABs-ToBeSetup-List", "x2ap.e_RABs_ToBeSetup_List",
6593         FT_UINT32, BASE_DEC, NULL, 0,
6594         NULL, HFILL }},
6595     { &hf_x2ap_rRC_Context,
6596       { "rRC-Context", "x2ap.rRC_Context",
6597         FT_BYTES, BASE_NONE, NULL, 0,
6598         NULL, HFILL }},
6599     { &hf_x2ap_handoverRestrictionList,
6600       { "handoverRestrictionList", "x2ap.handoverRestrictionList",
6601         FT_NONE, BASE_NONE, NULL, 0,
6602         NULL, HFILL }},
6603     { &hf_x2ap_locationReportingInformation,
6604       { "locationReportingInformation", "x2ap.locationReportingInformation",
6605         FT_NONE, BASE_NONE, NULL, 0,
6606         NULL, HFILL }},
6607     { &hf_x2ap_E_RABs_ToBeSetup_List_item,
6608       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6609         FT_NONE, BASE_NONE, NULL, 0,
6610         NULL, HFILL }},
6611     { &hf_x2ap_e_RAB_Level_QoS_Parameters,
6612       { "e-RAB-Level-QoS-Parameters", "x2ap.e_RAB_Level_QoS_Parameters",
6613         FT_NONE, BASE_NONE, NULL, 0,
6614         NULL, HFILL }},
6615     { &hf_x2ap_dL_Forwarding,
6616       { "dL-Forwarding", "x2ap.dL_Forwarding",
6617         FT_UINT32, BASE_DEC, VALS(x2ap_DL_Forwarding_vals), 0,
6618         NULL, HFILL }},
6619     { &hf_x2ap_uL_GTPtunnelEndpoint,
6620       { "uL-GTPtunnelEndpoint", "x2ap.uL_GTPtunnelEndpoint",
6621         FT_NONE, BASE_NONE, NULL, 0,
6622         "GTPtunnelEndpoint", HFILL }},
6623     { &hf_x2ap_E_RABs_Admitted_List_item,
6624       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6625         FT_NONE, BASE_NONE, NULL, 0,
6626         NULL, HFILL }},
6627     { &hf_x2ap_uL_GTP_TunnelEndpoint,
6628       { "uL-GTP-TunnelEndpoint", "x2ap.uL_GTP_TunnelEndpoint",
6629         FT_NONE, BASE_NONE, NULL, 0,
6630         "GTPtunnelEndpoint", HFILL }},
6631     { &hf_x2ap_dL_GTP_TunnelEndpoint,
6632       { "dL-GTP-TunnelEndpoint", "x2ap.dL_GTP_TunnelEndpoint",
6633         FT_NONE, BASE_NONE, NULL, 0,
6634         "GTPtunnelEndpoint", HFILL }},
6635     { &hf_x2ap_E_RABs_SubjectToStatusTransfer_List_item,
6636       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6637         FT_NONE, BASE_NONE, NULL, 0,
6638         NULL, HFILL }},
6639     { &hf_x2ap_receiveStatusofULPDCPSDUs,
6640       { "receiveStatusofULPDCPSDUs", "x2ap.receiveStatusofULPDCPSDUs",
6641         FT_BYTES, BASE_NONE, NULL, 0,
6642         NULL, HFILL }},
6643     { &hf_x2ap_uL_COUNTvalue,
6644       { "uL-COUNTvalue", "x2ap.uL_COUNTvalue",
6645         FT_NONE, BASE_NONE, NULL, 0,
6646         "COUNTvalue", HFILL }},
6647     { &hf_x2ap_dL_COUNTvalue,
6648       { "dL-COUNTvalue", "x2ap.dL_COUNTvalue",
6649         FT_NONE, BASE_NONE, NULL, 0,
6650         "COUNTvalue", HFILL }},
6651     { &hf_x2ap_CellInformation_List_item,
6652       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6653         FT_NONE, BASE_NONE, NULL, 0,
6654         NULL, HFILL }},
6655     { &hf_x2ap_cell_ID,
6656       { "cell-ID", "x2ap.cell_ID",
6657         FT_NONE, BASE_NONE, NULL, 0,
6658         "ECGI", HFILL }},
6659     { &hf_x2ap_ul_InterferenceOverloadIndication,
6660       { "ul-InterferenceOverloadIndication", "x2ap.ul_InterferenceOverloadIndication",
6661         FT_UINT32, BASE_DEC, NULL, 0,
6662         NULL, HFILL }},
6663     { &hf_x2ap_ul_HighInterferenceIndicationInfo,
6664       { "ul-HighInterferenceIndicationInfo", "x2ap.ul_HighInterferenceIndicationInfo",
6665         FT_UINT32, BASE_DEC, NULL, 0,
6666         NULL, HFILL }},
6667     { &hf_x2ap_relativeNarrowbandTxPower,
6668       { "relativeNarrowbandTxPower", "x2ap.relativeNarrowbandTxPower",
6669         FT_NONE, BASE_NONE, NULL, 0,
6670         NULL, HFILL }},
6671     { &hf_x2ap_ServedCellsToModify_item,
6672       { "ServedCellsToModify-Item", "x2ap.ServedCellsToModify_Item",
6673         FT_NONE, BASE_NONE, NULL, 0,
6674         NULL, HFILL }},
6675     { &hf_x2ap_old_ecgi,
6676       { "old-ecgi", "x2ap.old_ecgi",
6677         FT_NONE, BASE_NONE, NULL, 0,
6678         "ECGI", HFILL }},
6679     { &hf_x2ap_Old_ECGIs_item,
6680       { "ECGI", "x2ap.ECGI",
6681         FT_NONE, BASE_NONE, NULL, 0,
6682         NULL, HFILL }},
6683     { &hf_x2ap_CellToReport_List_item,
6684       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6685         FT_NONE, BASE_NONE, NULL, 0,
6686         NULL, HFILL }},
6687     { &hf_x2ap_MeasurementInitiationResult_List_item,
6688       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6689         FT_NONE, BASE_NONE, NULL, 0,
6690         NULL, HFILL }},
6691     { &hf_x2ap_measurementFailureCause_List,
6692       { "measurementFailureCause-List", "x2ap.measurementFailureCause_List",
6693         FT_UINT32, BASE_DEC, NULL, 0,
6694         NULL, HFILL }},
6695     { &hf_x2ap_MeasurementFailureCause_List_item,
6696       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6697         FT_NONE, BASE_NONE, NULL, 0,
6698         NULL, HFILL }},
6699     { &hf_x2ap_measurementFailedReportCharacteristics,
6700       { "measurementFailedReportCharacteristics", "x2ap.measurementFailedReportCharacteristics",
6701         FT_BYTES, BASE_NONE, NULL, 0,
6702         "ReportCharacteristics", HFILL }},
6703     { &hf_x2ap_CompleteFailureCauseInformation_List_item,
6704       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6705         FT_NONE, BASE_NONE, NULL, 0,
6706         NULL, HFILL }},
6707     { &hf_x2ap_CellMeasurementResult_List_item,
6708       { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container",
6709         FT_NONE, BASE_NONE, NULL, 0,
6710         NULL, HFILL }},
6711     { &hf_x2ap_hWLoadIndicator,
6712       { "hWLoadIndicator", "x2ap.hWLoadIndicator",
6713         FT_NONE, BASE_NONE, NULL, 0,
6714         NULL, HFILL }},
6715     { &hf_x2ap_s1TNLLoadIndicator,
6716       { "s1TNLLoadIndicator", "x2ap.s1TNLLoadIndicator",
6717         FT_NONE, BASE_NONE, NULL, 0,
6718         NULL, HFILL }},
6719     { &hf_x2ap_radioResourceStatus,
6720       { "radioResourceStatus", "x2ap.radioResourceStatus",
6721         FT_NONE, BASE_NONE, NULL, 0,
6722         NULL, HFILL }},
6723     { &hf_x2ap_privateIEs,
6724       { "privateIEs", "x2ap.privateIEs",
6725         FT_UINT32, BASE_DEC, NULL, 0,
6726         "PrivateIE_Container", HFILL }},
6727     { &hf_x2ap_ServedCellsToActivate_item,
6728       { "ServedCellsToActivate-Item", "x2ap.ServedCellsToActivate_Item",
6729         FT_NONE, BASE_NONE, NULL, 0,
6730         NULL, HFILL }},
6731     { &hf_x2ap_ecgi,
6732       { "ecgi", "x2ap.ecgi",
6733         FT_NONE, BASE_NONE, NULL, 0,
6734         NULL, HFILL }},
6735     { &hf_x2ap_ActivatedCellList_item,
6736       { "ActivatedCellList-Item", "x2ap.ActivatedCellList_Item",
6737         FT_NONE, BASE_NONE, NULL, 0,
6738         NULL, HFILL }},
6739     { &hf_x2ap_initiatingMessage,
6740       { "initiatingMessage", "x2ap.initiatingMessage",
6741         FT_NONE, BASE_NONE, NULL, 0,
6742         NULL, HFILL }},
6743     { &hf_x2ap_successfulOutcome,
6744       { "successfulOutcome", "x2ap.successfulOutcome",
6745         FT_NONE, BASE_NONE, NULL, 0,
6746         NULL, HFILL }},
6747     { &hf_x2ap_unsuccessfulOutcome,
6748       { "unsuccessfulOutcome", "x2ap.unsuccessfulOutcome",
6749         FT_NONE, BASE_NONE, NULL, 0,
6750         NULL, HFILL }},
6751     { &hf_x2ap_initiatingMessage_value,
6752       { "value", "x2ap.value",
6753         FT_NONE, BASE_NONE, NULL, 0,
6754         "InitiatingMessage_value", HFILL }},
6755     { &hf_x2ap_successfulOutcome_value,
6756       { "value", "x2ap.value",
6757         FT_NONE, BASE_NONE, NULL, 0,
6758         "SuccessfulOutcome_value", HFILL }},
6759     { &hf_x2ap_value,
6760       { "value", "x2ap.value",
6761         FT_NONE, BASE_NONE, NULL, 0,
6762         "UnsuccessfulOutcome_value", HFILL }},
6763
6764 /*--- End of included file: packet-x2ap-hfarr.c ---*/
6765 #line 150 "../../asn1/x2ap/packet-x2ap-template.c"
6766   };
6767
6768   /* List of subtrees */
6769   static gint *ett[] = {
6770                   &ett_x2ap,
6771                   &ett_x2ap_TransportLayerAddress,
6772
6773 /*--- Included file: packet-x2ap-ettarr.c ---*/
6774 #line 1 "../../asn1/x2ap/packet-x2ap-ettarr.c"
6775     &ett_x2ap_PrivateIE_ID,
6776     &ett_x2ap_ProtocolIE_Container,
6777     &ett_x2ap_ProtocolIE_Field,
6778     &ett_x2ap_ProtocolExtensionContainer,
6779     &ett_x2ap_ProtocolExtensionField,
6780     &ett_x2ap_PrivateIE_Container,
6781     &ett_x2ap_PrivateIE_Field,
6782     &ett_x2ap_ABSInformation,
6783     &ett_x2ap_ABSInformationFDD,
6784     &ett_x2ap_ABSInformationTDD,
6785     &ett_x2ap_ABS_Status,
6786     &ett_x2ap_AS_SecurityInformation,
6787     &ett_x2ap_AllocationAndRetentionPriority,
6788     &ett_x2ap_AreaScopeOfMDT,
6789     &ett_x2ap_BroadcastPLMNs_Item,
6790     &ett_x2ap_Cause,
6791     &ett_x2ap_CellBasedMDT,
6792     &ett_x2ap_CellIdListforMDT,
6793     &ett_x2ap_CellType,
6794     &ett_x2ap_CompositeAvailableCapacityGroup,
6795     &ett_x2ap_CompositeAvailableCapacity,
6796     &ett_x2ap_COUNTvalue,
6797     &ett_x2ap_CriticalityDiagnostics,
6798     &ett_x2ap_CriticalityDiagnostics_IE_List,
6799     &ett_x2ap_CriticalityDiagnostics_IE_List_item,
6800     &ett_x2ap_FDD_Info,
6801     &ett_x2ap_TDD_Info,
6802     &ett_x2ap_EUTRA_Mode_Info,
6803     &ett_x2ap_ECGI,
6804     &ett_x2ap_ENB_ID,
6805     &ett_x2ap_EPLMNs,
6806     &ett_x2ap_E_RAB_Level_QoS_Parameters,
6807     &ett_x2ap_E_RAB_List,
6808     &ett_x2ap_E_RAB_Item,
6809     &ett_x2ap_ForbiddenTAs,
6810     &ett_x2ap_ForbiddenTAs_Item,
6811     &ett_x2ap_ForbiddenTACs,
6812     &ett_x2ap_ForbiddenLAs,
6813     &ett_x2ap_ForbiddenLAs_Item,
6814     &ett_x2ap_ForbiddenLACs,
6815     &ett_x2ap_GBR_QosInformation,
6816     &ett_x2ap_GlobalENB_ID,
6817     &ett_x2ap_GTPtunnelEndpoint,
6818     &ett_x2ap_GUGroupIDList,
6819     &ett_x2ap_GU_Group_ID,
6820     &ett_x2ap_GUMMEI,
6821     &ett_x2ap_HandoverRestrictionList,
6822     &ett_x2ap_HWLoadIndicator,
6823     &ett_x2ap_LastVisitedCell_Item,
6824     &ett_x2ap_LastVisitedEUTRANCellInformation,
6825     &ett_x2ap_LastVisitedGERANCellInformation,
6826     &ett_x2ap_LocationReportingInformation,
6827     &ett_x2ap_MDT_Configuration,
6828     &ett_x2ap_MeasurementThresholdA2,
6829     &ett_x2ap_MBSFN_Subframe_Infolist,
6830     &ett_x2ap_MBSFN_Subframe_Info,
6831     &ett_x2ap_MobilityParametersModificationRange,
6832     &ett_x2ap_MobilityParametersInformation,
6833     &ett_x2ap_Neighbour_Information,
6834     &ett_x2ap_Neighbour_Information_item,
6835     &ett_x2ap_PeriodicReportingMDT,
6836     &ett_x2ap_PRACH_Configuration,
6837     &ett_x2ap_RadioResourceStatus,
6838     &ett_x2ap_RelativeNarrowbandTxPower,
6839     &ett_x2ap_S1TNLLoadIndicator,
6840     &ett_x2ap_ServedCells,
6841     &ett_x2ap_ServedCells_item,
6842     &ett_x2ap_ServedCell_Information,
6843     &ett_x2ap_SpecialSubframe_Info,
6844     &ett_x2ap_SubframeAllocation,
6845     &ett_x2ap_TABasedMDT,
6846     &ett_x2ap_TAListforMDT,
6847     &ett_x2ap_ThresholdEventA2,
6848     &ett_x2ap_TraceActivation,
6849     &ett_x2ap_UE_HistoryInformation,
6850     &ett_x2ap_UEAggregateMaximumBitRate,
6851     &ett_x2ap_UESecurityCapabilities,
6852     &ett_x2ap_UL_InterferenceOverloadIndication,
6853     &ett_x2ap_UL_HighInterferenceIndicationInfo,
6854     &ett_x2ap_UL_HighInterferenceIndicationInfo_Item,
6855     &ett_x2ap_UsableABSInformation,
6856     &ett_x2ap_UsableABSInformationFDD,
6857     &ett_x2ap_UsableABSInformationTDD,
6858     &ett_x2ap_HandoverRequest,
6859     &ett_x2ap_UE_ContextInformation,
6860     &ett_x2ap_E_RABs_ToBeSetup_List,
6861     &ett_x2ap_E_RABs_ToBeSetup_Item,
6862     &ett_x2ap_HandoverRequestAcknowledge,
6863     &ett_x2ap_E_RABs_Admitted_List,
6864     &ett_x2ap_E_RABs_Admitted_Item,
6865     &ett_x2ap_HandoverPreparationFailure,
6866     &ett_x2ap_HandoverReport,
6867     &ett_x2ap_SNStatusTransfer,
6868     &ett_x2ap_E_RABs_SubjectToStatusTransfer_List,
6869     &ett_x2ap_E_RABs_SubjectToStatusTransfer_Item,
6870     &ett_x2ap_UEContextRelease,
6871     &ett_x2ap_HandoverCancel,
6872     &ett_x2ap_ErrorIndication,
6873     &ett_x2ap_ResetRequest,
6874     &ett_x2ap_ResetResponse,
6875     &ett_x2ap_X2SetupRequest,
6876     &ett_x2ap_X2SetupResponse,
6877     &ett_x2ap_X2SetupFailure,
6878     &ett_x2ap_LoadInformation,
6879     &ett_x2ap_CellInformation_List,
6880     &ett_x2ap_CellInformation_Item,
6881     &ett_x2ap_ENBConfigurationUpdate,
6882     &ett_x2ap_ServedCellsToModify,
6883     &ett_x2ap_ServedCellsToModify_Item,
6884     &ett_x2ap_Old_ECGIs,
6885     &ett_x2ap_ENBConfigurationUpdateAcknowledge,
6886     &ett_x2ap_ENBConfigurationUpdateFailure,
6887     &ett_x2ap_ResourceStatusRequest,
6888     &ett_x2ap_CellToReport_List,
6889     &ett_x2ap_CellToReport_Item,
6890     &ett_x2ap_ResourceStatusResponse,
6891     &ett_x2ap_MeasurementInitiationResult_List,
6892     &ett_x2ap_MeasurementInitiationResult_Item,
6893     &ett_x2ap_MeasurementFailureCause_List,
6894     &ett_x2ap_MeasurementFailureCause_Item,
6895     &ett_x2ap_ResourceStatusFailure,
6896     &ett_x2ap_CompleteFailureCauseInformation_List,
6897     &ett_x2ap_CompleteFailureCauseInformation_Item,
6898     &ett_x2ap_ResourceStatusUpdate,
6899     &ett_x2ap_CellMeasurementResult_List,
6900     &ett_x2ap_CellMeasurementResult_Item,
6901     &ett_x2ap_PrivateMessage,
6902     &ett_x2ap_MobilityChangeRequest,
6903     &ett_x2ap_MobilityChangeAcknowledge,
6904     &ett_x2ap_MobilityChangeFailure,
6905     &ett_x2ap_RLFIndication,
6906     &ett_x2ap_CellActivationRequest,
6907     &ett_x2ap_ServedCellsToActivate,
6908     &ett_x2ap_ServedCellsToActivate_Item,
6909     &ett_x2ap_CellActivationResponse,
6910     &ett_x2ap_ActivatedCellList,
6911     &ett_x2ap_ActivatedCellList_Item,
6912     &ett_x2ap_CellActivationFailure,
6913     &ett_x2ap_X2AP_PDU,
6914     &ett_x2ap_InitiatingMessage,
6915     &ett_x2ap_SuccessfulOutcome,
6916     &ett_x2ap_UnsuccessfulOutcome,
6917
6918 /*--- End of included file: packet-x2ap-ettarr.c ---*/
6919 #line 157 "../../asn1/x2ap/packet-x2ap-template.c"
6920   };
6921
6922   module_t *x2ap_module;
6923
6924   /* Register protocol */
6925   proto_x2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
6926   /* Register fields and subtrees */
6927   proto_register_field_array(proto_x2ap, hf, array_length(hf));
6928   proto_register_subtree_array(ett, array_length(ett));
6929
6930   /* Register dissector */
6931   register_dissector("x2ap", dissect_x2ap, proto_x2ap);
6932
6933   /* Register dissector tables */
6934   x2ap_ies_dissector_table = register_dissector_table("x2ap.ies", "X2AP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
6935   x2ap_extension_dissector_table = register_dissector_table("x2ap.extension", "X2AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
6936   x2ap_proc_imsg_dissector_table = register_dissector_table("x2ap.proc.imsg", "X2AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
6937   x2ap_proc_sout_dissector_table = register_dissector_table("x2ap.proc.sout", "X2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
6938   x2ap_proc_uout_dissector_table = register_dissector_table("x2ap.proc.uout", "X2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
6939
6940   /* Register configuration options for ports */
6941   x2ap_module = prefs_register_protocol(proto_x2ap, proto_reg_handoff_x2ap);
6942
6943   prefs_register_uint_preference(x2ap_module, "sctp.port",
6944                                  "X2AP SCTP Port",
6945                                  "Set the SCTP port for X2AP messages",
6946                                  10,
6947                                  &gbl_x2apSctpPort);
6948
6949 }
6950
6951
6952 /*--- proto_reg_handoff_x2ap ---------------------------------------*/
6953 void
6954 proto_reg_handoff_x2ap(void)
6955 {
6956         dissector_handle_t x2ap_handle;
6957         static gboolean Initialized=FALSE;
6958         static guint SctpPort;
6959
6960         x2ap_handle = find_dissector("x2ap");
6961         if (!Initialized) {
6962                 dissector_add_handle("sctp.port", x2ap_handle);  /* for "decode-as" */
6963                 dissector_add_uint("sctp.ppi", X2AP_PAYLOAD_PROTOCOL_ID, x2ap_handle);
6964                 Initialized=TRUE;
6965
6966 /*--- Included file: packet-x2ap-dis-tab.c ---*/
6967 #line 1 "../../asn1/x2ap/packet-x2ap-dis-tab.c"
6968   dissector_add_uint("x2ap.ies", id_E_RABs_Admitted_Item, new_create_dissector_handle(dissect_E_RABs_Admitted_Item_PDU, proto_x2ap));
6969   dissector_add_uint("x2ap.ies", id_E_RABs_Admitted_List, new_create_dissector_handle(dissect_E_RABs_Admitted_List_PDU, proto_x2ap));
6970   dissector_add_uint("x2ap.ies", id_E_RAB_Item, new_create_dissector_handle(dissect_E_RAB_Item_PDU, proto_x2ap));
6971   dissector_add_uint("x2ap.ies", id_E_RABs_NotAdmitted_List, new_create_dissector_handle(dissect_E_RAB_List_PDU, proto_x2ap));
6972   dissector_add_uint("x2ap.ies", id_E_RABs_ToBeSetup_Item, new_create_dissector_handle(dissect_E_RABs_ToBeSetup_Item_PDU, proto_x2ap));
6973   dissector_add_uint("x2ap.ies", id_Cause, new_create_dissector_handle(dissect_Cause_PDU, proto_x2ap));
6974   dissector_add_uint("x2ap.ies", id_CellInformation, new_create_dissector_handle(dissect_CellInformation_List_PDU, proto_x2ap));
6975   dissector_add_uint("x2ap.ies", id_CellInformation_Item, new_create_dissector_handle(dissect_CellInformation_Item_PDU, proto_x2ap));
6976   dissector_add_uint("x2ap.ies", id_New_eNB_UE_X2AP_ID, new_create_dissector_handle(dissect_UE_X2AP_ID_PDU, proto_x2ap));
6977   dissector_add_uint("x2ap.ies", id_Old_eNB_UE_X2AP_ID, new_create_dissector_handle(dissect_UE_X2AP_ID_PDU, proto_x2ap));
6978   dissector_add_uint("x2ap.ies", id_TargetCell_ID, new_create_dissector_handle(dissect_ECGI_PDU, proto_x2ap));
6979   dissector_add_uint("x2ap.ies", id_TargeteNBtoSource_eNBTransparentContainer, new_create_dissector_handle(dissect_TargeteNBtoSource_eNBTransparentContainer_PDU, proto_x2ap));
6980   dissector_add_uint("x2ap.ies", id_TraceActivation, new_create_dissector_handle(dissect_TraceActivation_PDU, proto_x2ap));
6981   dissector_add_uint("x2ap.ies", id_UE_ContextInformation, new_create_dissector_handle(dissect_UE_ContextInformation_PDU, proto_x2ap));
6982   dissector_add_uint("x2ap.ies", id_UE_HistoryInformation, new_create_dissector_handle(dissect_UE_HistoryInformation_PDU, proto_x2ap));
6983   dissector_add_uint("x2ap.ies", id_UE_X2AP_ID, new_create_dissector_handle(dissect_UE_X2AP_ID_PDU, proto_x2ap));
6984   dissector_add_uint("x2ap.ies", id_CriticalityDiagnostics, new_create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_x2ap));
6985   dissector_add_uint("x2ap.ies", id_E_RABs_SubjectToStatusTransfer_List, new_create_dissector_handle(dissect_E_RABs_SubjectToStatusTransfer_List_PDU, proto_x2ap));
6986   dissector_add_uint("x2ap.ies", id_E_RABs_SubjectToStatusTransfer_Item, new_create_dissector_handle(dissect_E_RABs_SubjectToStatusTransfer_Item_PDU, proto_x2ap));
6987   dissector_add_uint("x2ap.ies", id_ServedCells, new_create_dissector_handle(dissect_ServedCells_PDU, proto_x2ap));
6988   dissector_add_uint("x2ap.ies", id_GlobalENB_ID, new_create_dissector_handle(dissect_GlobalENB_ID_PDU, proto_x2ap));
6989   dissector_add_uint("x2ap.ies", id_TimeToWait, new_create_dissector_handle(dissect_TimeToWait_PDU, proto_x2ap));
6990   dissector_add_uint("x2ap.ies", id_GUMMEI_ID, new_create_dissector_handle(dissect_GUMMEI_PDU, proto_x2ap));
6991   dissector_add_uint("x2ap.ies", id_GUGroupIDList, new_create_dissector_handle(dissect_GUGroupIDList_PDU, proto_x2ap));
6992   dissector_add_uint("x2ap.ies", id_ServedCellsToAdd, new_create_dissector_handle(dissect_ServedCells_PDU, proto_x2ap));
6993   dissector_add_uint("x2ap.ies", id_ServedCellsToModify, new_create_dissector_handle(dissect_ServedCellsToModify_PDU, proto_x2ap));
6994   dissector_add_uint("x2ap.ies", id_ServedCellsToDelete, new_create_dissector_handle(dissect_Old_ECGIs_PDU, proto_x2ap));
6995   dissector_add_uint("x2ap.ies", id_Registration_Request, new_create_dissector_handle(dissect_Registration_Request_PDU, proto_x2ap));
6996   dissector_add_uint("x2ap.ies", id_CellToReport, new_create_dissector_handle(dissect_CellToReport_List_PDU, proto_x2ap));
6997   dissector_add_uint("x2ap.ies", id_ReportingPeriodicity, new_create_dissector_handle(dissect_ReportingPeriodicity_PDU, proto_x2ap));
6998   dissector_add_uint("x2ap.ies", id_CellToReport_Item, new_create_dissector_handle(dissect_CellToReport_Item_PDU, proto_x2ap));
6999   dissector_add_uint("x2ap.ies", id_CellMeasurementResult, new_create_dissector_handle(dissect_CellMeasurementResult_List_PDU, proto_x2ap));
7000   dissector_add_uint("x2ap.ies", id_CellMeasurementResult_Item, new_create_dissector_handle(dissect_CellMeasurementResult_Item_PDU, proto_x2ap));
7001   dissector_add_uint("x2ap.ies", id_GUGroupIDToAddList, new_create_dissector_handle(dissect_GUGroupIDList_PDU, proto_x2ap));
7002   dissector_add_uint("x2ap.ies", id_GUGroupIDToDeleteList, new_create_dissector_handle(dissect_GUGroupIDList_PDU, proto_x2ap));
7003   dissector_add_uint("x2ap.ies", id_SRVCCOperationPossible, new_create_dissector_handle(dissect_SRVCCOperationPossible_PDU, proto_x2ap));
7004   dissector_add_uint("x2ap.ies", id_ReportCharacteristics, new_create_dissector_handle(dissect_ReportCharacteristics_PDU, proto_x2ap));
7005   dissector_add_uint("x2ap.ies", id_ENB1_Measurement_ID, new_create_dissector_handle(dissect_Measurement_ID_PDU, proto_x2ap));
7006   dissector_add_uint("x2ap.ies", id_ENB2_Measurement_ID, new_create_dissector_handle(dissect_Measurement_ID_PDU, proto_x2ap));
7007   dissector_add_uint("x2ap.ies", id_ENB1_Cell_ID, new_create_dissector_handle(dissect_ECGI_PDU, proto_x2ap));
7008   dissector_add_uint("x2ap.ies", id_ENB2_Cell_ID, new_create_dissector_handle(dissect_ECGI_PDU, proto_x2ap));
7009   dissector_add_uint("x2ap.ies", id_ENB2_Proposed_Mobility_Parameters, new_create_dissector_handle(dissect_MobilityParametersInformation_PDU, proto_x2ap));
7010   dissector_add_uint("x2ap.ies", id_ENB1_Mobility_Parameters, new_create_dissector_handle(dissect_MobilityParametersInformation_PDU, proto_x2ap));
7011   dissector_add_uint("x2ap.ies", id_ENB2_Mobility_Parameters_Modification_Range, new_create_dissector_handle(dissect_MobilityParametersModificationRange_PDU, proto_x2ap));
7012   dissector_add_uint("x2ap.ies", id_FailureCellPCI, new_create_dissector_handle(dissect_PCI_PDU, proto_x2ap));
7013   dissector_add_uint("x2ap.ies", id_Re_establishmentCellECGI, new_create_dissector_handle(dissect_ECGI_PDU, proto_x2ap));
7014   dissector_add_uint("x2ap.ies", id_FailureCellCRNTI, new_create_dissector_handle(dissect_CRNTI_PDU, proto_x2ap));
7015   dissector_add_uint("x2ap.ies", id_ShortMAC_I, new_create_dissector_handle(dissect_ShortMAC_I_PDU, proto_x2ap));
7016   dissector_add_uint("x2ap.ies", id_SourceCellECGI, new_create_dissector_handle(dissect_ECGI_PDU, proto_x2ap));
7017   dissector_add_uint("x2ap.ies", id_FailureCellECGI, new_create_dissector_handle(dissect_ECGI_PDU, proto_x2ap));
7018   dissector_add_uint("x2ap.ies", id_HandoverReportType, new_create_dissector_handle(dissect_HandoverReportType_PDU, proto_x2ap));
7019   dissector_add_uint("x2ap.ies", id_UE_RLF_Report_Container, new_create_dissector_handle(dissect_UE_RLF_Report_Container_PDU, proto_x2ap));
7020   dissector_add_uint("x2ap.ies", id_ServedCellsToActivate, new_create_dissector_handle(dissect_ServedCellsToActivate_PDU, proto_x2ap));
7021   dissector_add_uint("x2ap.ies", id_ActivatedCellList, new_create_dissector_handle(dissect_ActivatedCellList_PDU, proto_x2ap));
7022   dissector_add_uint("x2ap.ies", id_PartialSuccessIndicator, new_create_dissector_handle(dissect_PartialSuccessIndicator_PDU, proto_x2ap));
7023   dissector_add_uint("x2ap.ies", id_MeasurementInitiationResult_List, new_create_dissector_handle(dissect_MeasurementInitiationResult_List_PDU, proto_x2ap));
7024   dissector_add_uint("x2ap.ies", id_MeasurementInitiationResult_Item, new_create_dissector_handle(dissect_MeasurementInitiationResult_Item_PDU, proto_x2ap));
7025   dissector_add_uint("x2ap.ies", id_MeasurementFailureCause_Item, new_create_dissector_handle(dissect_MeasurementFailureCause_Item_PDU, proto_x2ap));
7026   dissector_add_uint("x2ap.ies", id_CompleteFailureCauseInformation_List, new_create_dissector_handle(dissect_CompleteFailureCauseInformation_List_PDU, proto_x2ap));
7027   dissector_add_uint("x2ap.ies", id_CompleteFailureCauseInformation_Item, new_create_dissector_handle(dissect_CompleteFailureCauseInformation_Item_PDU, proto_x2ap));
7028   dissector_add_uint("x2ap.ies", id_CSGMembershipStatus, new_create_dissector_handle(dissect_CSGMembershipStatus_PDU, proto_x2ap));
7029   dissector_add_uint("x2ap.ies", id_RRCConnSetupIndicator, new_create_dissector_handle(dissect_RRCConnSetupIndicator_PDU, proto_x2ap));
7030   dissector_add_uint("x2ap.extension", id_Number_of_Antennaports, new_create_dissector_handle(dissect_Number_of_Antennaports_PDU, proto_x2ap));
7031   dissector_add_uint("x2ap.extension", id_CompositeAvailableCapacityGroup, new_create_dissector_handle(dissect_CompositeAvailableCapacityGroup_PDU, proto_x2ap));
7032   dissector_add_uint("x2ap.extension", id_PRACH_Configuration, new_create_dissector_handle(dissect_PRACH_Configuration_PDU, proto_x2ap));
7033   dissector_add_uint("x2ap.extension", id_MBSFN_Subframe_Info, new_create_dissector_handle(dissect_MBSFN_Subframe_Infolist_PDU, proto_x2ap));
7034   dissector_add_uint("x2ap.extension", id_DeactivationIndication, new_create_dissector_handle(dissect_DeactivationIndication_PDU, proto_x2ap));
7035   dissector_add_uint("x2ap.extension", id_ABSInformation, new_create_dissector_handle(dissect_ABSInformation_PDU, proto_x2ap));
7036   dissector_add_uint("x2ap.extension", id_InvokeIndication, new_create_dissector_handle(dissect_InvokeIndication_PDU, proto_x2ap));
7037   dissector_add_uint("x2ap.extension", id_ABS_Status, new_create_dissector_handle(dissect_ABS_Status_PDU, proto_x2ap));
7038   dissector_add_uint("x2ap.extension", id_CSG_Id, new_create_dissector_handle(dissect_CSG_Id_PDU, proto_x2ap));
7039   dissector_add_uint("x2ap.extension", id_MDTConfiguration, new_create_dissector_handle(dissect_MDT_Configuration_PDU, proto_x2ap));
7040   dissector_add_uint("x2ap.extension", id_ManagementBasedMDTallowed, new_create_dissector_handle(dissect_ManagementBasedMDTallowed_PDU, proto_x2ap));
7041   dissector_add_uint("x2ap.proc.imsg", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverRequest_PDU, proto_x2ap));
7042   dissector_add_uint("x2ap.proc.sout", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_x2ap));
7043   dissector_add_uint("x2ap.proc.uout", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_x2ap));
7044   dissector_add_uint("x2ap.proc.imsg", id_snStatusTransfer, new_create_dissector_handle(dissect_SNStatusTransfer_PDU, proto_x2ap));
7045   dissector_add_uint("x2ap.proc.imsg", id_uEContextRelease, new_create_dissector_handle(dissect_UEContextRelease_PDU, proto_x2ap));
7046   dissector_add_uint("x2ap.proc.imsg", id_handoverCancel, new_create_dissector_handle(dissect_HandoverCancel_PDU, proto_x2ap));
7047   dissector_add_uint("x2ap.proc.imsg", id_errorIndication, new_create_dissector_handle(dissect_ErrorIndication_PDU, proto_x2ap));
7048   dissector_add_uint("x2ap.proc.imsg", id_reset, new_create_dissector_handle(dissect_ResetRequest_PDU, proto_x2ap));
7049   dissector_add_uint("x2ap.proc.sout", id_reset, new_create_dissector_handle(dissect_ResetResponse_PDU, proto_x2ap));
7050   dissector_add_uint("x2ap.proc.imsg", id_x2Setup, new_create_dissector_handle(dissect_X2SetupRequest_PDU, proto_x2ap));
7051   dissector_add_uint("x2ap.proc.sout", id_x2Setup, new_create_dissector_handle(dissect_X2SetupResponse_PDU, proto_x2ap));
7052   dissector_add_uint("x2ap.proc.uout", id_x2Setup, new_create_dissector_handle(dissect_X2SetupFailure_PDU, proto_x2ap));
7053   dissector_add_uint("x2ap.proc.imsg", id_loadIndication, new_create_dissector_handle(dissect_LoadInformation_PDU, proto_x2ap));
7054   dissector_add_uint("x2ap.proc.imsg", id_eNBConfigurationUpdate, new_create_dissector_handle(dissect_ENBConfigurationUpdate_PDU, proto_x2ap));
7055   dissector_add_uint("x2ap.proc.sout", id_eNBConfigurationUpdate, new_create_dissector_handle(dissect_ENBConfigurationUpdateAcknowledge_PDU, proto_x2ap));
7056   dissector_add_uint("x2ap.proc.uout", id_eNBConfigurationUpdate, new_create_dissector_handle(dissect_ENBConfigurationUpdateFailure_PDU, proto_x2ap));
7057   dissector_add_uint("x2ap.proc.imsg", id_resourceStatusReportingInitiation, new_create_dissector_handle(dissect_ResourceStatusRequest_PDU, proto_x2ap));
7058   dissector_add_uint("x2ap.proc.sout", id_resourceStatusReportingInitiation, new_create_dissector_handle(dissect_ResourceStatusResponse_PDU, proto_x2ap));
7059   dissector_add_uint("x2ap.proc.uout", id_resourceStatusReportingInitiation, new_create_dissector_handle(dissect_ResourceStatusFailure_PDU, proto_x2ap));
7060   dissector_add_uint("x2ap.proc.imsg", id_resourceStatusReporting, new_create_dissector_handle(dissect_ResourceStatusUpdate_PDU, proto_x2ap));
7061   dissector_add_uint("x2ap.proc.imsg", id_privateMessage, new_create_dissector_handle(dissect_PrivateMessage_PDU, proto_x2ap));
7062   dissector_add_uint("x2ap.proc.imsg", id_handoverReport, new_create_dissector_handle(dissect_HandoverReport_PDU, proto_x2ap));
7063   dissector_add_uint("x2ap.proc.imsg", id_rLFIndication, new_create_dissector_handle(dissect_RLFIndication_PDU, proto_x2ap));
7064   dissector_add_uint("x2ap.proc.imsg", id_mobilitySettingsChange, new_create_dissector_handle(dissect_MobilityChangeRequest_PDU, proto_x2ap));
7065   dissector_add_uint("x2ap.proc.sout", id_mobilitySettingsChange, new_create_dissector_handle(dissect_MobilityChangeAcknowledge_PDU, proto_x2ap));
7066   dissector_add_uint("x2ap.proc.uout", id_mobilitySettingsChange, new_create_dissector_handle(dissect_MobilityChangeFailure_PDU, proto_x2ap));
7067   dissector_add_uint("x2ap.proc.imsg", id_cellActivation, new_create_dissector_handle(dissect_CellActivationRequest_PDU, proto_x2ap));
7068   dissector_add_uint("x2ap.proc.sout", id_cellActivation, new_create_dissector_handle(dissect_CellActivationResponse_PDU, proto_x2ap));
7069   dissector_add_uint("x2ap.proc.uout", id_cellActivation, new_create_dissector_handle(dissect_CellActivationFailure_PDU, proto_x2ap));
7070
7071
7072 /*--- End of included file: packet-x2ap-dis-tab.c ---*/
7073 #line 203 "../../asn1/x2ap/packet-x2ap-template.c"
7074         } else {
7075                 if (SctpPort != 0) {
7076                         dissector_delete_uint("sctp.port", SctpPort, x2ap_handle);
7077                 }
7078         }
7079
7080         SctpPort=gbl_x2apSctpPort;
7081         if (SctpPort != 0) {
7082                 dissector_add_uint("sctp.port", SctpPort, x2ap_handle);
7083         }
7084
7085 }
7086
7087