Coverage Report

Created: 2026-11-12 07:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-e2ap.c
Line
Count
Source
1
/* Do not modify this file. Changes will be overwritten.                      */
2
/* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3
/* packet-e2ap.c                                                              */
4
/* asn2wrs.py -q -L -p e2ap -c ./e2ap.cnf -s ./packet-e2ap-template -D . -O ../.. E2AP-CommonDataTypes.asn E2AP-Constants.asn E2AP-Containers.asn E2AP-IEs.asn E2AP-PDU-Contents.asn E2AP-PDU-Descriptions.asn e2sm-v3.01.asn e2sm-rc-v1.03.asn e2sm-kpm-v3.00.asn e2sm-ni-v1.00.asn */
5
6
/* packet-e2ap.c
7
 * Routines for E2APApplication Protocol (e2ap) packet dissection
8
 * Copyright 2021, Martin Mathieson
9
 *
10
 * Wireshark - Network traffic analyzer
11
 * By Gerald Combs <gerald@wireshark.org>
12
 * Copyright 1998 Gerald Combs
13
 *
14
 * SPDX-License-Identifier: GPL-2.0-or-later
15
 *
16
 * References: ORAN-WG3.E2AP-v03.00, ORAN-WG3.E2SM-KPM-v03.00, ORAN-WG3.E2SM-RC.03.00
17
 */
18
19
#include "config.h"
20
21
#include <epan/packet.h>
22
#include <epan/strutil.h>
23
#include <epan/asn1.h>
24
#include <epan/prefs.h>
25
#include <epan/expert.h>
26
#include <epan/proto_data.h>
27
#include <epan/conversation.h>
28
#include <epan/to_str.h>
29
#include <epan/oids.h>
30
#include <epan/tap.h>
31
#include <epan/stats_tree.h>
32
#include <wsutil/array.h>
33
34
#include "packet-e2ap.h"
35
#include "packet-per.h"
36
#include "packet-ntp.h"
37
#include "packet-sctp.h"
38
39
/* Dissector will use SCTP PPID 70, 71 or 72 or SCTP port 37464. */
40
16
#define SCTP_PORT_E2AP 37464
41
42
/* RC Version (can't infer from OIDs..) */
43
enum manual_rc_version_choice {
44
    RC_Version_1=1,
45
    RC_Version_3=3
46
};
47
/* Default to later available version */
48
static int e2ap_rc_version_pref_choice = (int)RC_Version_3;
49
50
void proto_register_e2ap(void);
51
void proto_reg_handoff_e2ap(void);
52
53
static dissector_handle_t e2ap_handle;
54
55
79
#define maxProtocolIEs                 65535
56
4
#define maxnoofErrors                  256
57
6
#define maxofE2nodeComponents          1024
58
8
#define maxofRANfunctionID             256
59
10
#define maxofRICactionID               16
60
4
#define maxofTNLA                      32
61
0
#define maxofRICrequestID              1024
62
0
#define maxE1APid                      65535
63
0
#define maxF1APid                      4
64
0
#define maxEARFCN                      65535
65
0
#define maxNRARFCN                     3279165
66
0
#define maxnoofNrCellBands             32
67
0
#define maxnoofMessages                65535
68
0
#define maxnoofE2InfoChanges           65535
69
0
#define maxnoofUEInfoChanges           65535
70
0
#define maxnoofRRCstate                8
71
0
#define maxnoofParametersToReport      65535
72
0
#define maxnoofPolicyConditions        65535
73
0
#define maxnoofAssociatedRANParameters 65535
74
0
#define maxnoofUEID                    65535
75
0
#define maxnoofCellID                  65535
76
0
#define maxnoofRANOutcomeParameters    255
77
0
#define maxnoofParametersinStructure   65535
78
0
#define maxnoofItemsinList             65535
79
0
#define maxnoofUEInfo                  65535
80
0
#define maxnoofCellInfo                65535
81
0
#define maxnoofUEeventInfo             65535
82
0
#define maxnoofRANparamTest            255
83
0
#define maxnoofNeighbourCell           65535
84
0
#define maxnoofRICStyles               63
85
0
#define maxnoofCallProcessTypes        65535
86
0
#define maxnoofCallProcessBreakpoints  65535
87
0
#define maxnoofInsertIndication        65535
88
0
#define maxnoofControlAction           65535
89
0
#define maxnoofPolicyAction            65535
90
0
#define maxnoofInsertIndicationActions 63
91
0
#define maxnoofMulCtrlActions          63
92
#define maxnoofCells                   16384
93
0
#define maxnoofMeasurementInfo         65535
94
0
#define maxnoofLabelInfo               2147483647
95
0
#define maxnoofMeasurementRecord       65535
96
0
#define maxnoofMeasurementValue        2147483647
97
0
#define maxnoofConditionInfo           32768
98
0
#define maxnoofConditionInfoPerSub     32768
99
0
#define maxnoofUEIDPerSub              65535
100
0
#define maxnoofUEMeasReport            65535
101
0
#define maxnoofBin                     65535
102
0
#define maxofInterfaceProtocolTests    15
103
0
#define maxofRANueGroups               255
104
0
#define maxofActionParameters          255
105
0
#define maxofRANparameters             65535
106
0
#define maxofNItypes                   63
107
0
#define maxofRICstyles                 63
108
109
typedef enum _ProcedureCode_enum {
110
  id_E2setup   =   1,
111
  id_ErrorIndication =   2,
112
  id_Reset     =   3,
113
  id_RICcontrol =   4,
114
  id_RICindication =   5,
115
  id_RICserviceQuery =   6,
116
  id_RICserviceUpdate =   7,
117
  id_RICsubscription =   8,
118
  id_RICsubscriptionDelete =   9,
119
  id_E2nodeConfigurationUpdate =  10,
120
  id_E2connectionUpdate =  11,
121
  id_RICsubscriptionDeleteRequired =  12,
122
  id_E2removal =  13,
123
  id_RICsubscriptionModification =  14,
124
  id_RICsubscriptionModificationRequired =  15,
125
  id_RICquery  =  16
126
} ProcedureCode_enum;
127
128
typedef enum _ProtocolIE_ID_enum {
129
  id_Cause     =   1,
130
  id_CriticalityDiagnostics =   2,
131
  id_GlobalE2node_ID =   3,
132
  id_GlobalRIC_ID =   4,
133
  id_RANfunctionID =   5,
134
  id_RANfunctionID_Item =   6,
135
  id_RANfunctionIEcause_Item =   7,
136
  id_RANfunction_Item =   8,
137
  id_RANfunctionsAccepted =   9,
138
  id_RANfunctionsAdded =  10,
139
  id_RANfunctionsDeleted =  11,
140
  id_RANfunctionsModified =  12,
141
  id_RANfunctionsRejected =  13,
142
  id_RICaction_Admitted_Item =  14,
143
  id_RICactionID =  15,
144
  id_RICaction_NotAdmitted_Item =  16,
145
  id_RICactions_Admitted =  17,
146
  id_RICactions_NotAdmitted =  18,
147
  id_RICaction_ToBeSetup_Item =  19,
148
  id_RICcallProcessID =  20,
149
  id_RICcontrolAckRequest =  21,
150
  id_RICcontrolHeader =  22,
151
  id_RICcontrolMessage =  23,
152
  id_RICcontrolStatus =  24,
153
  id_RICindicationHeader =  25,
154
  id_RICindicationMessage =  26,
155
  id_RICindicationSN =  27,
156
  id_RICindicationType =  28,
157
  id_RICrequestID =  29,
158
  id_RICsubscriptionDetails =  30,
159
  id_TimeToWait =  31,
160
  id_RICcontrolOutcome =  32,
161
  id_E2nodeComponentConfigUpdate =  33,
162
  id_E2nodeComponentConfigUpdate_Item =  34,
163
  id_E2nodeComponentConfigUpdateAck =  35,
164
  id_E2nodeComponentConfigUpdateAck_Item =  36,
165
  id_E2connectionSetup =  39,
166
  id_E2connectionSetupFailed =  40,
167
  id_E2connectionSetupFailed_Item =  41,
168
  id_E2connectionFailed_Item =  42,
169
  id_E2connectionUpdate_Item =  43,
170
  id_E2connectionUpdateAdd =  44,
171
  id_E2connectionUpdateModify =  45,
172
  id_E2connectionUpdateRemove =  46,
173
  id_E2connectionUpdateRemove_Item =  47,
174
  id_TNLinformation =  48,
175
  id_TransactionID =  49,
176
  id_E2nodeComponentConfigAddition =  50,
177
  id_E2nodeComponentConfigAddition_Item =  51,
178
  id_E2nodeComponentConfigAdditionAck =  52,
179
  id_E2nodeComponentConfigAdditionAck_Item =  53,
180
  id_E2nodeComponentConfigRemoval =  54,
181
  id_E2nodeComponentConfigRemoval_Item =  55,
182
  id_E2nodeComponentConfigRemovalAck =  56,
183
  id_E2nodeComponentConfigRemovalAck_Item =  57,
184
  id_E2nodeTNLassociationRemoval =  58,
185
  id_E2nodeTNLassociationRemoval_Item =  59,
186
  id_RICsubscriptionToBeRemoved =  60,
187
  id_RICsubscription_withCause_Item =  61,
188
  id_RICsubscriptionStartTime =  62,
189
  id_RICsubscriptionEndTime =  63,
190
  id_RICeventTriggerDefinitionToBeModified =  64,
191
  id_RICactionsToBeRemovedForModification_List =  65,
192
  id_RICaction_ToBeRemovedForModification_Item =  66,
193
  id_RICactionsToBeModifiedForModification_List =  67,
194
  id_RICaction_ToBeModifiedForModification_Item =  68,
195
  id_RICactionsToBeAddedForModification_List =  69,
196
  id_RICaction_ToBeAddedForModification_Item =  70,
197
  id_RICactionsRemovedForModification_List =  71,
198
  id_RICaction_RemovedForModification_Item =  72,
199
  id_RICactionsFailedToBeRemovedForModification_List =  73,
200
  id_RICaction_FailedToBeRemovedForModification_Item =  74,
201
  id_RICactionsModifiedForModification_List =  75,
202
  id_RICaction_ModifiedForModification_Item =  76,
203
  id_RICactionsFailedToBeModifiedForModification_List =  77,
204
  id_RICaction_FailedToBeModifiedForModification_Item =  78,
205
  id_RICactionsAddedForModification_List =  79,
206
  id_RICaction_AddedForModification_Item =  80,
207
  id_RICactionsFailedToBeAddedForModification_List =  81,
208
  id_RICaction_FailedToBeAddedForModification_Item =  82,
209
  id_RICactionsRequiredToBeModified_List =  83,
210
  id_RICaction_RequiredToBeModified_Item =  84,
211
  id_RICactionsRequiredToBeRemoved_List =  85,
212
  id_RICaction_RequiredToBeRemoved_Item =  86,
213
  id_RICactionsConfirmedForModification_List =  87,
214
  id_RICaction_ConfirmedForModification_Item =  88,
215
  id_RICactionsRefusedToBeModified_List =  89,
216
  id_RICaction_RefusedToBeModified_Item =  90,
217
  id_RICactionsConfirmedForRemoval_List =  91,
218
  id_RICaction_ConfirmedForRemoval_Item =  92,
219
  id_RICactionsRefusedToBeRemoved_List =  93,
220
  id_RICaction_RefusedToBeRemoved_Item =  94,
221
  id_RICqueryHeader =  95,
222
  id_RICqueryDefinition =  96,
223
  id_RICqueryOutcome =  97
224
} ProtocolIE_ID_enum;
225
226
/* Initialize the protocol and registered fields */
227
static int proto_e2ap;
228
static int hf_e2ap_Cause_PDU;                     /* Cause */
229
static int hf_e2ap_CriticalityDiagnostics_PDU;    /* CriticalityDiagnostics */
230
static int hf_e2ap_GlobalE2node_ID_PDU;           /* GlobalE2node_ID */
231
static int hf_e2ap_GlobalRIC_ID_PDU;              /* GlobalRIC_ID */
232
static int hf_e2ap_RANfunctionID_PDU;             /* RANfunctionID */
233
static int hf_e2ap_RICactionID_PDU;               /* RICactionID */
234
static int hf_e2ap_RICcallProcessID_PDU;          /* RICcallProcessID */
235
static int hf_e2ap_RICcontrolAckRequest_PDU;      /* RICcontrolAckRequest */
236
static int hf_e2ap_RICcontrolHeader_PDU;          /* RICcontrolHeader */
237
static int hf_e2ap_RICcontrolMessage_PDU;         /* RICcontrolMessage */
238
static int hf_e2ap_RICcontrolOutcome_PDU;         /* RICcontrolOutcome */
239
static int hf_e2ap_RICeventTriggerDefinition_PDU;  /* RICeventTriggerDefinition */
240
static int hf_e2ap_RICindicationHeader_PDU;       /* RICindicationHeader */
241
static int hf_e2ap_RICindicationMessage_PDU;      /* RICindicationMessage */
242
static int hf_e2ap_RICindicationSN_PDU;           /* RICindicationSN */
243
static int hf_e2ap_RICindicationType_PDU;         /* RICindicationType */
244
static int hf_e2ap_RICrequestID_PDU;              /* RICrequestID */
245
static int hf_e2ap_RICsubscriptionTime_PDU;       /* RICsubscriptionTime */
246
static int hf_e2ap_RICqueryHeader_PDU;            /* RICqueryHeader */
247
static int hf_e2ap_RICqueryDefinition_PDU;        /* RICqueryDefinition */
248
static int hf_e2ap_RICqueryOutcome_PDU;           /* RICqueryOutcome */
249
static int hf_e2ap_TimeToWait_PDU;                /* TimeToWait */
250
static int hf_e2ap_TNLinformation_PDU;            /* TNLinformation */
251
static int hf_e2ap_TransactionID_PDU;             /* TransactionID */
252
static int hf_e2ap_RICsubscriptionRequest_PDU;    /* RICsubscriptionRequest */
253
static int hf_e2ap_RICsubscriptionDetails_PDU;    /* RICsubscriptionDetails */
254
static int hf_e2ap_RICaction_ToBeSetup_Item_PDU;  /* RICaction_ToBeSetup_Item */
255
static int hf_e2ap_RICsubscriptionResponse_PDU;   /* RICsubscriptionResponse */
256
static int hf_e2ap_RICaction_Admitted_List_PDU;   /* RICaction_Admitted_List */
257
static int hf_e2ap_RICaction_Admitted_Item_PDU;   /* RICaction_Admitted_Item */
258
static int hf_e2ap_RICaction_NotAdmitted_List_PDU;  /* RICaction_NotAdmitted_List */
259
static int hf_e2ap_RICaction_NotAdmitted_Item_PDU;  /* RICaction_NotAdmitted_Item */
260
static int hf_e2ap_RICsubscriptionFailure_PDU;    /* RICsubscriptionFailure */
261
static int hf_e2ap_RICsubscriptionDeleteRequest_PDU;  /* RICsubscriptionDeleteRequest */
262
static int hf_e2ap_RICsubscriptionDeleteResponse_PDU;  /* RICsubscriptionDeleteResponse */
263
static int hf_e2ap_RICsubscriptionDeleteFailure_PDU;  /* RICsubscriptionDeleteFailure */
264
static int hf_e2ap_RICsubscriptionDeleteRequired_PDU;  /* RICsubscriptionDeleteRequired */
265
static int hf_e2ap_RICsubscription_List_withCause_PDU;  /* RICsubscription_List_withCause */
266
static int hf_e2ap_RICsubscription_withCause_Item_PDU;  /* RICsubscription_withCause_Item */
267
static int hf_e2ap_RICsubscriptionModificationRequest_PDU;  /* RICsubscriptionModificationRequest */
268
static int hf_e2ap_RICactions_ToBeRemovedForModification_List_PDU;  /* RICactions_ToBeRemovedForModification_List */
269
static int hf_e2ap_RICaction_ToBeRemovedForModification_Item_PDU;  /* RICaction_ToBeRemovedForModification_Item */
270
static int hf_e2ap_RICactions_ToBeModifiedForModification_List_PDU;  /* RICactions_ToBeModifiedForModification_List */
271
static int hf_e2ap_RICaction_ToBeModifiedForModification_Item_PDU;  /* RICaction_ToBeModifiedForModification_Item */
272
static int hf_e2ap_RICactions_ToBeAddedForModification_List_PDU;  /* RICactions_ToBeAddedForModification_List */
273
static int hf_e2ap_RICaction_ToBeAddedForModification_Item_PDU;  /* RICaction_ToBeAddedForModification_Item */
274
static int hf_e2ap_RICsubscriptionModificationResponse_PDU;  /* RICsubscriptionModificationResponse */
275
static int hf_e2ap_RICactions_RemovedForModification_List_PDU;  /* RICactions_RemovedForModification_List */
276
static int hf_e2ap_RICaction_RemovedForModification_Item_PDU;  /* RICaction_RemovedForModification_Item */
277
static int hf_e2ap_RICactions_FailedToBeRemovedForModification_List_PDU;  /* RICactions_FailedToBeRemovedForModification_List */
278
static int hf_e2ap_RICaction_FailedToBeRemovedForModification_Item_PDU;  /* RICaction_FailedToBeRemovedForModification_Item */
279
static int hf_e2ap_RICactions_ModifiedForModification_List_PDU;  /* RICactions_ModifiedForModification_List */
280
static int hf_e2ap_RICaction_ModifiedForModification_Item_PDU;  /* RICaction_ModifiedForModification_Item */
281
static int hf_e2ap_RICactions_FailedToBeModifiedForModification_List_PDU;  /* RICactions_FailedToBeModifiedForModification_List */
282
static int hf_e2ap_RICaction_FailedToBeModifiedForModification_Item_PDU;  /* RICaction_FailedToBeModifiedForModification_Item */
283
static int hf_e2ap_RICactions_AddedForModification_List_PDU;  /* RICactions_AddedForModification_List */
284
static int hf_e2ap_RICaction_AddedForModification_Item_PDU;  /* RICaction_AddedForModification_Item */
285
static int hf_e2ap_RICactions_FailedToBeAddedForModification_List_PDU;  /* RICactions_FailedToBeAddedForModification_List */
286
static int hf_e2ap_RICaction_FailedToBeAddedForModification_Item_PDU;  /* RICaction_FailedToBeAddedForModification_Item */
287
static int hf_e2ap_RICsubscriptionModificationFailure_PDU;  /* RICsubscriptionModificationFailure */
288
static int hf_e2ap_RICsubscriptionModificationRequired_PDU;  /* RICsubscriptionModificationRequired */
289
static int hf_e2ap_RICactions_RequiredToBeModified_List_PDU;  /* RICactions_RequiredToBeModified_List */
290
static int hf_e2ap_RICaction_RequiredToBeModified_Item_PDU;  /* RICaction_RequiredToBeModified_Item */
291
static int hf_e2ap_RICactions_RequiredToBeRemoved_List_PDU;  /* RICactions_RequiredToBeRemoved_List */
292
static int hf_e2ap_RICaction_RequiredToBeRemoved_Item_PDU;  /* RICaction_RequiredToBeRemoved_Item */
293
static int hf_e2ap_RICsubscriptionModificationConfirm_PDU;  /* RICsubscriptionModificationConfirm */
294
static int hf_e2ap_RICactions_ConfirmedForModification_List_PDU;  /* RICactions_ConfirmedForModification_List */
295
static int hf_e2ap_RICaction_ConfirmedForModification_Item_PDU;  /* RICaction_ConfirmedForModification_Item */
296
static int hf_e2ap_RICactions_RefusedToBeModified_List_PDU;  /* RICactions_RefusedToBeModified_List */
297
static int hf_e2ap_RICaction_RefusedToBeModified_Item_PDU;  /* RICaction_RefusedToBeModified_Item */
298
static int hf_e2ap_RICactions_ConfirmedForRemoval_List_PDU;  /* RICactions_ConfirmedForRemoval_List */
299
static int hf_e2ap_RICaction_ConfirmedForRemoval_Item_PDU;  /* RICaction_ConfirmedForRemoval_Item */
300
static int hf_e2ap_RICactions_RefusedToBeRemoved_List_PDU;  /* RICactions_RefusedToBeRemoved_List */
301
static int hf_e2ap_RICaction_RefusedToBeRemoved_Item_PDU;  /* RICaction_RefusedToBeRemoved_Item */
302
static int hf_e2ap_RICsubscriptionModificationRefuse_PDU;  /* RICsubscriptionModificationRefuse */
303
static int hf_e2ap_RICindication_PDU;             /* RICindication */
304
static int hf_e2ap_RICcontrolRequest_PDU;         /* RICcontrolRequest */
305
static int hf_e2ap_RICcontrolAcknowledge_PDU;     /* RICcontrolAcknowledge */
306
static int hf_e2ap_RICcontrolFailure_PDU;         /* RICcontrolFailure */
307
static int hf_e2ap_RICQueryRequest_PDU;           /* RICQueryRequest */
308
static int hf_e2ap_RICQueryResponse_PDU;          /* RICQueryResponse */
309
static int hf_e2ap_RICQueryFailure_PDU;           /* RICQueryFailure */
310
static int hf_e2ap_ErrorIndication_PDU;           /* ErrorIndication */
311
static int hf_e2ap_E2setupRequest_PDU;            /* E2setupRequest */
312
static int hf_e2ap_E2setupResponse_PDU;           /* E2setupResponse */
313
static int hf_e2ap_E2setupFailure_PDU;            /* E2setupFailure */
314
static int hf_e2ap_E2connectionUpdate_PDU;        /* E2connectionUpdate */
315
static int hf_e2ap_E2connectionUpdate_List_PDU;   /* E2connectionUpdate_List */
316
static int hf_e2ap_E2connectionUpdate_Item_PDU;   /* E2connectionUpdate_Item */
317
static int hf_e2ap_E2connectionUpdateRemove_List_PDU;  /* E2connectionUpdateRemove_List */
318
static int hf_e2ap_E2connectionUpdateRemove_Item_PDU;  /* E2connectionUpdateRemove_Item */
319
static int hf_e2ap_E2connectionUpdateAcknowledge_PDU;  /* E2connectionUpdateAcknowledge */
320
static int hf_e2ap_E2connectionSetupFailed_List_PDU;  /* E2connectionSetupFailed_List */
321
static int hf_e2ap_E2connectionSetupFailed_Item_PDU;  /* E2connectionSetupFailed_Item */
322
static int hf_e2ap_E2connectionUpdateFailure_PDU;  /* E2connectionUpdateFailure */
323
static int hf_e2ap_E2nodeConfigurationUpdate_PDU;  /* E2nodeConfigurationUpdate */
324
static int hf_e2ap_E2nodeComponentConfigAddition_List_PDU;  /* E2nodeComponentConfigAddition_List */
325
static int hf_e2ap_E2nodeComponentConfigAddition_Item_PDU;  /* E2nodeComponentConfigAddition_Item */
326
static int hf_e2ap_E2nodeComponentConfigUpdate_List_PDU;  /* E2nodeComponentConfigUpdate_List */
327
static int hf_e2ap_E2nodeComponentConfigUpdate_Item_PDU;  /* E2nodeComponentConfigUpdate_Item */
328
static int hf_e2ap_E2nodeComponentConfigRemoval_List_PDU;  /* E2nodeComponentConfigRemoval_List */
329
static int hf_e2ap_E2nodeComponentConfigRemoval_Item_PDU;  /* E2nodeComponentConfigRemoval_Item */
330
static int hf_e2ap_E2nodeTNLassociationRemoval_List_PDU;  /* E2nodeTNLassociationRemoval_List */
331
static int hf_e2ap_E2nodeTNLassociationRemoval_Item_PDU;  /* E2nodeTNLassociationRemoval_Item */
332
static int hf_e2ap_E2nodeConfigurationUpdateAcknowledge_PDU;  /* E2nodeConfigurationUpdateAcknowledge */
333
static int hf_e2ap_E2nodeComponentConfigAdditionAck_List_PDU;  /* E2nodeComponentConfigAdditionAck_List */
334
static int hf_e2ap_E2nodeComponentConfigAdditionAck_Item_PDU;  /* E2nodeComponentConfigAdditionAck_Item */
335
static int hf_e2ap_E2nodeComponentConfigUpdateAck_List_PDU;  /* E2nodeComponentConfigUpdateAck_List */
336
static int hf_e2ap_E2nodeComponentConfigUpdateAck_Item_PDU;  /* E2nodeComponentConfigUpdateAck_Item */
337
static int hf_e2ap_E2nodeComponentConfigRemovalAck_List_PDU;  /* E2nodeComponentConfigRemovalAck_List */
338
static int hf_e2ap_E2nodeComponentConfigRemovalAck_Item_PDU;  /* E2nodeComponentConfigRemovalAck_Item */
339
static int hf_e2ap_E2nodeConfigurationUpdateFailure_PDU;  /* E2nodeConfigurationUpdateFailure */
340
static int hf_e2ap_ResetRequest_PDU;              /* ResetRequest */
341
static int hf_e2ap_ResetResponse_PDU;             /* ResetResponse */
342
static int hf_e2ap_RICserviceUpdate_PDU;          /* RICserviceUpdate */
343
static int hf_e2ap_RANfunctions_List_PDU;         /* RANfunctions_List */
344
static int hf_e2ap_RANfunction_Item_PDU;          /* RANfunction_Item */
345
static int hf_e2ap_RANfunctionsID_List_PDU;       /* RANfunctionsID_List */
346
static int hf_e2ap_RANfunctionID_Item_PDU;        /* RANfunctionID_Item */
347
static int hf_e2ap_RICserviceUpdateAcknowledge_PDU;  /* RICserviceUpdateAcknowledge */
348
static int hf_e2ap_RANfunctionsIDcause_List_PDU;  /* RANfunctionsIDcause_List */
349
static int hf_e2ap_RANfunctionIDcause_Item_PDU;   /* RANfunctionIDcause_Item */
350
static int hf_e2ap_RICserviceUpdateFailure_PDU;   /* RICserviceUpdateFailure */
351
static int hf_e2ap_RICserviceQuery_PDU;           /* RICserviceQuery */
352
static int hf_e2ap_E2RemovalRequest_PDU;          /* E2RemovalRequest */
353
static int hf_e2ap_E2RemovalResponse_PDU;         /* E2RemovalResponse */
354
static int hf_e2ap_E2RemovalFailure_PDU;          /* E2RemovalFailure */
355
static int hf_e2ap_E2AP_PDU_PDU;                  /* E2AP_PDU */
356
static int hf_e2ap_E2SM_RC_EventTrigger_PDU;      /* E2SM_RC_EventTrigger */
357
static int hf_e2ap_E2SM_RC_ActionDefinition_PDU;  /* E2SM_RC_ActionDefinition */
358
static int hf_e2ap_E2SM_RC_IndicationHeader_PDU;  /* E2SM_RC_IndicationHeader */
359
static int hf_e2ap_E2SM_RC_IndicationMessage_PDU;  /* E2SM_RC_IndicationMessage */
360
static int hf_e2ap_E2SM_RC_CallProcessID_PDU;     /* E2SM_RC_CallProcessID */
361
static int hf_e2ap_E2SM_RC_ControlHeader_PDU;     /* E2SM_RC_ControlHeader */
362
static int hf_e2ap_E2SM_RC_ControlMessage_PDU;    /* E2SM_RC_ControlMessage */
363
static int hf_e2ap_E2SM_RC_ControlOutcome_PDU;    /* E2SM_RC_ControlOutcome */
364
static int hf_e2ap_E2SM_RC_RANFunctionDefinition_PDU;  /* E2SM_RC_RANFunctionDefinition */
365
static int hf_e2ap_E2SM_KPM_EventTriggerDefinition_PDU;  /* E2SM_KPM_EventTriggerDefinition */
366
static int hf_e2ap_E2SM_KPM_ActionDefinition_PDU;  /* E2SM_KPM_ActionDefinition */
367
static int hf_e2ap_E2SM_KPM_IndicationHeader_PDU;  /* E2SM_KPM_IndicationHeader */
368
static int hf_e2ap_E2SM_KPM_IndicationMessage_PDU;  /* E2SM_KPM_IndicationMessage */
369
static int hf_e2ap_E2SM_KPM_RANfunction_Description_PDU;  /* E2SM_KPM_RANfunction_Description */
370
static int hf_e2ap_E2SM_NI_EventTriggerDefinition_PDU;  /* E2SM_NI_EventTriggerDefinition */
371
static int hf_e2ap_E2SM_NI_ActionDefinition_PDU;  /* E2SM_NI_ActionDefinition */
372
static int hf_e2ap_E2SM_NI_IndicationHeader_PDU;  /* E2SM_NI_IndicationHeader */
373
static int hf_e2ap_E2SM_NI_IndicationMessage_PDU;  /* E2SM_NI_IndicationMessage */
374
static int hf_e2ap_E2SM_NI_CallProcessID_PDU;     /* E2SM_NI_CallProcessID */
375
static int hf_e2ap_E2SM_NI_ControlHeader_PDU;     /* E2SM_NI_ControlHeader */
376
static int hf_e2ap_E2SM_NI_ControlMessage_PDU;    /* E2SM_NI_ControlMessage */
377
static int hf_e2ap_E2SM_NI_ControlOutcome_PDU;    /* E2SM_NI_ControlOutcome */
378
static int hf_e2ap_E2SM_NI_RANfunction_Description_PDU;  /* E2SM_NI_RANfunction_Description */
379
static int hf_e2ap_ProtocolIE_Container_item;     /* ProtocolIE_Field */
380
static int hf_e2ap_id;                            /* ProtocolIE_ID */
381
static int hf_e2ap_criticality;                   /* Criticality */
382
static int hf_e2ap_value;                         /* T_value */
383
static int hf_e2ap_ricRequest;                    /* CauseRICrequest */
384
static int hf_e2ap_ricService;                    /* CauseRICservice */
385
static int hf_e2ap_e2Node;                        /* CauseE2node */
386
static int hf_e2ap_transport;                     /* CauseTransport */
387
static int hf_e2ap_protocol;                      /* CauseProtocol */
388
static int hf_e2ap_misc;                          /* CauseMisc */
389
static int hf_e2ap_procedureCode;                 /* ProcedureCode */
390
static int hf_e2ap_triggeringMessage;             /* TriggeringMessage */
391
static int hf_e2ap_procedureCriticality;          /* Criticality */
392
static int hf_e2ap_ricRequestorID;                /* RICrequestID */
393
static int hf_e2ap_iEsCriticalityDiagnostics;     /* CriticalityDiagnostics_IE_List */
394
static int hf_e2ap_CriticalityDiagnostics_IE_List_item;  /* CriticalityDiagnostics_IE_Item */
395
static int hf_e2ap_iECriticality;                 /* Criticality */
396
static int hf_e2ap_iE_ID;                         /* ProtocolIE_ID */
397
static int hf_e2ap_typeOfError;                   /* TypeOfError */
398
static int hf_e2ap_e2nodeComponentRequestPart;    /* T_e2nodeComponentRequestPart */
399
static int hf_e2ap_e2nodeComponentResponsePart;   /* T_e2nodeComponentResponsePart */
400
static int hf_e2ap_updateOutcome;                 /* T_updateOutcome */
401
static int hf_e2ap_failureCause;                  /* Cause */
402
static int hf_e2ap_e2nodeComponentInterfaceTypeNG;  /* T_e2nodeComponentInterfaceTypeNG */
403
static int hf_e2ap_e2nodeComponentInterfaceTypeXn;  /* T_e2nodeComponentInterfaceTypeXn */
404
static int hf_e2ap_e2nodeComponentInterfaceTypeE1;  /* T_e2nodeComponentInterfaceTypeE1 */
405
static int hf_e2ap_e2nodeComponentInterfaceTypeF1;  /* T_e2nodeComponentInterfaceTypeF1 */
406
static int hf_e2ap_e2nodeComponentInterfaceTypeW1;  /* E2nodeComponentInterfaceW1 */
407
static int hf_e2ap_e2nodeComponentInterfaceTypeS1;  /* T_e2nodeComponentInterfaceTypeS1 */
408
static int hf_e2ap_e2nodeComponentInterfaceTypeX2;  /* T_e2nodeComponentInterfaceTypeX2 */
409
static int hf_e2ap_gNB_CU_UP_ID;                  /* GNB_CU_UP_ID */
410
static int hf_e2ap_gNB_DU_ID;                     /* GNB_DU_ID */
411
static int hf_e2ap_amf_name;                      /* AMFName */
412
static int hf_e2ap_mme_name;                      /* MMEname */
413
static int hf_e2ap_global_eNB_ID;                 /* GlobalENB_ID */
414
static int hf_e2ap_global_en_gNB_ID;              /* GlobalenGNB_ID */
415
static int hf_e2ap_global_NG_RAN_Node_ID;         /* GlobalNG_RANNode_ID */
416
static int hf_e2ap_ng_eNB_DU_ID;                  /* NGENB_DU_ID */
417
static int hf_e2ap_macro_eNB_ID;                  /* BIT_STRING_SIZE_20 */
418
static int hf_e2ap_home_eNB_ID;                   /* BIT_STRING_SIZE_28 */
419
static int hf_e2ap_short_Macro_eNB_ID;            /* BIT_STRING_SIZE_18 */
420
static int hf_e2ap_long_Macro_eNB_ID;             /* BIT_STRING_SIZE_21 */
421
static int hf_e2ap_enb_ID_macro;                  /* BIT_STRING_SIZE_20 */
422
static int hf_e2ap_enb_ID_shortmacro;             /* BIT_STRING_SIZE_18 */
423
static int hf_e2ap_enb_ID_longmacro;              /* BIT_STRING_SIZE_21 */
424
static int hf_e2ap_gnb_id_bit_string;             /* BIT_STRING_SIZE_22_32 */
425
static int hf_e2ap_gNB;                           /* GlobalE2node_gNB_ID */
426
static int hf_e2ap_en_gNB;                        /* GlobalE2node_en_gNB_ID */
427
static int hf_e2ap_ng_eNB;                        /* GlobalE2node_ng_eNB_ID */
428
static int hf_e2ap_eNB;                           /* GlobalE2node_eNB_ID */
429
static int hf_e2ap_en_gNB_CU_UP_ID;               /* GNB_CU_UP_ID */
430
static int hf_e2ap_en_gNB_DU_ID;                  /* GNB_DU_ID */
431
static int hf_e2ap_global_gNB_ID;                 /* GlobalgNB_ID */
432
static int hf_e2ap_global_ng_eNB_ID;              /* GlobalngeNB_ID */
433
static int hf_e2ap_ngENB_DU_ID;                   /* NGENB_DU_ID */
434
static int hf_e2ap_pLMN_Identity;                 /* PLMN_Identity */
435
static int hf_e2ap_eNB_ID;                        /* ENB_ID */
436
static int hf_e2ap_eNGNB_ID_choice;               /* ENGNB_ID */
437
static int hf_e2ap_plmn_id;                       /* PLMN_Identity */
438
static int hf_e2ap_gnb_id;                        /* T_gnb_id */
439
static int hf_e2ap_enb_id;                        /* ENB_ID_Choice */
440
static int hf_e2ap_gNB_01;                        /* GlobalgNB_ID */
441
static int hf_e2ap_ng_eNB_01;                     /* GlobalngeNB_ID */
442
static int hf_e2ap_ric_ID;                        /* BIT_STRING_SIZE_20 */
443
static int hf_e2ap_gnb_ID;                        /* BIT_STRING_SIZE_22_32 */
444
static int hf_e2ap_ricRequestorID_01;             /* INTEGER_0_65535 */
445
static int hf_e2ap_ricInstanceID;                 /* INTEGER_0_65535 */
446
static int hf_e2ap_ricSubsequentActionType;       /* RICsubsequentActionType */
447
static int hf_e2ap_ricTimeToWait;                 /* RICtimeToWait */
448
static int hf_e2ap_tnlAddress;                    /* T_tnlAddress */
449
static int hf_e2ap_tnlPort;                       /* T_tnlPort */
450
static int hf_e2ap_protocolIEs;                   /* ProtocolIE_Container */
451
static int hf_e2ap_ricEventTriggerDefinition;     /* RICeventTriggerDefinition */
452
static int hf_e2ap_ricAction_ToBeSetup_List;      /* RICactions_ToBeSetup_List */
453
static int hf_e2ap_RICactions_ToBeSetup_List_item;  /* ProtocolIE_SingleContainer */
454
static int hf_e2ap_ricActionID;                   /* RICactionID */
455
static int hf_e2ap_ricActionType;                 /* RICactionType */
456
static int hf_e2ap_ricActionDefinition;           /* RICactionDefinition */
457
static int hf_e2ap_ricSubsequentAction;           /* RICsubsequentAction */
458
static int hf_e2ap_ricActionExecutionOrder;       /* RICactionExecutionOrder */
459
static int hf_e2ap_RICaction_Admitted_List_item;  /* ProtocolIE_SingleContainer */
460
static int hf_e2ap_RICaction_NotAdmitted_List_item;  /* ProtocolIE_SingleContainer */
461
static int hf_e2ap_cause;                         /* Cause */
462
static int hf_e2ap_RICsubscription_List_withCause_item;  /* ProtocolIE_SingleContainer */
463
static int hf_e2ap_ricRequestID;                  /* RICrequestID */
464
static int hf_e2ap_ranFunctionID;                 /* RANfunctionID */
465
static int hf_e2ap_RICactions_ToBeRemovedForModification_List_item;  /* ProtocolIE_SingleContainer */
466
static int hf_e2ap_RICactions_ToBeModifiedForModification_List_item;  /* ProtocolIE_SingleContainer */
467
static int hf_e2ap_RICactions_ToBeAddedForModification_List_item;  /* ProtocolIE_SingleContainer */
468
static int hf_e2ap_RICactions_RemovedForModification_List_item;  /* ProtocolIE_SingleContainer */
469
static int hf_e2ap_RICactions_FailedToBeRemovedForModification_List_item;  /* ProtocolIE_SingleContainer */
470
static int hf_e2ap_RICactions_ModifiedForModification_List_item;  /* ProtocolIE_SingleContainer */
471
static int hf_e2ap_RICactions_FailedToBeModifiedForModification_List_item;  /* ProtocolIE_SingleContainer */
472
static int hf_e2ap_RICactions_AddedForModification_List_item;  /* ProtocolIE_SingleContainer */
473
static int hf_e2ap_RICactions_FailedToBeAddedForModification_List_item;  /* ProtocolIE_SingleContainer */
474
static int hf_e2ap_RICactions_RequiredToBeModified_List_item;  /* ProtocolIE_SingleContainer */
475
static int hf_e2ap_RICactions_RequiredToBeRemoved_List_item;  /* ProtocolIE_SingleContainer */
476
static int hf_e2ap_RICactions_ConfirmedForModification_List_item;  /* ProtocolIE_SingleContainer */
477
static int hf_e2ap_RICactions_RefusedToBeModified_List_item;  /* ProtocolIE_SingleContainer */
478
static int hf_e2ap_RICactions_ConfirmedForRemoval_List_item;  /* ProtocolIE_SingleContainer */
479
static int hf_e2ap_RICactions_RefusedToBeRemoved_List_item;  /* ProtocolIE_SingleContainer */
480
static int hf_e2ap_E2connectionUpdate_List_item;  /* ProtocolIE_SingleContainer */
481
static int hf_e2ap_tnlInformation;                /* TNLinformation */
482
static int hf_e2ap_tnlUsage;                      /* TNLusage */
483
static int hf_e2ap_E2connectionUpdateRemove_List_item;  /* ProtocolIE_SingleContainer */
484
static int hf_e2ap_E2connectionSetupFailed_List_item;  /* ProtocolIE_SingleContainer */
485
static int hf_e2ap_E2nodeComponentConfigAddition_List_item;  /* ProtocolIE_SingleContainer */
486
static int hf_e2ap_e2nodeComponentInterfaceType;  /* E2nodeComponentInterfaceType */
487
static int hf_e2ap_e2nodeComponentID;             /* E2nodeComponentID */
488
static int hf_e2ap_e2nodeComponentConfiguration;  /* E2nodeComponentConfiguration */
489
static int hf_e2ap_E2nodeComponentConfigUpdate_List_item;  /* ProtocolIE_SingleContainer */
490
static int hf_e2ap_E2nodeComponentConfigRemoval_List_item;  /* ProtocolIE_SingleContainer */
491
static int hf_e2ap_E2nodeTNLassociationRemoval_List_item;  /* ProtocolIE_SingleContainer */
492
static int hf_e2ap_tnlInformationRIC;             /* TNLinformation */
493
static int hf_e2ap_E2nodeComponentConfigAdditionAck_List_item;  /* ProtocolIE_SingleContainer */
494
static int hf_e2ap_e2nodeComponentConfigurationAck;  /* E2nodeComponentConfigurationAck */
495
static int hf_e2ap_E2nodeComponentConfigUpdateAck_List_item;  /* ProtocolIE_SingleContainer */
496
static int hf_e2ap_E2nodeComponentConfigRemovalAck_List_item;  /* ProtocolIE_SingleContainer */
497
static int hf_e2ap_RANfunctions_List_item;        /* ProtocolIE_SingleContainer */
498
static int hf_e2ap_ranFunctionDefinition;         /* RANfunctionDefinition */
499
static int hf_e2ap_ranFunctionRevision;           /* RANfunctionRevision */
500
static int hf_e2ap_ranFunctionOID;                /* RANfunctionOID */
501
static int hf_e2ap_RANfunctionsID_List_item;      /* ProtocolIE_SingleContainer */
502
static int hf_e2ap_RANfunctionsIDcause_List_item;  /* ProtocolIE_SingleContainer */
503
static int hf_e2ap_initiatingMessage;             /* InitiatingMessage */
504
static int hf_e2ap_successfulOutcome;             /* SuccessfulOutcome */
505
static int hf_e2ap_unsuccessfulOutcome;           /* UnsuccessfulOutcome */
506
static int hf_e2ap_initiatingMessagevalue;        /* InitiatingMessage_value */
507
static int hf_e2ap_successfulOutcome_value;       /* SuccessfulOutcome_value */
508
static int hf_e2ap_unsuccessfulOutcome_value;     /* UnsuccessfulOutcome_value */
509
static int hf_e2ap_nR_CGI;                        /* NR_CGI */
510
static int hf_e2ap_eUTRA_CGI;                     /* EUTRA_CGI */
511
static int hf_e2ap_nG;                            /* InterfaceID_NG */
512
static int hf_e2ap_xN;                            /* InterfaceID_Xn */
513
static int hf_e2ap_f1;                            /* InterfaceID_F1 */
514
static int hf_e2ap_e1;                            /* InterfaceID_E1 */
515
static int hf_e2ap_s1;                            /* InterfaceID_S1 */
516
static int hf_e2ap_x2;                            /* InterfaceID_X2 */
517
static int hf_e2ap_w1;                            /* InterfaceID_W1 */
518
static int hf_e2ap_guami;                         /* GUAMI */
519
static int hf_e2ap_global_NG_RAN_ID;              /* GlobalNGRANNodeID */
520
static int hf_e2ap_globalGNB_ID;                  /* GlobalGNB_ID */
521
static int hf_e2ap_gUMMEI;                        /* GUMMEI */
522
static int hf_e2ap_nodeType;                      /* T_nodeType */
523
static int hf_e2ap_global_ng_eNB_ID_01;           /* GlobalNgENB_ID */
524
static int hf_e2ap_interfaceProcedureID;          /* INTEGER */
525
static int hf_e2ap_messageType;                   /* T_messageType */
526
static int hf_e2ap_ranFunction_ShortName;         /* T_ranFunction_ShortName */
527
static int hf_e2ap_ranFunction_E2SM_OID;          /* PrintableString_SIZE_1_1000_ */
528
static int hf_e2ap_ranFunction_Description;       /* PrintableString_SIZE_1_150_ */
529
static int hf_e2ap_ranFunction_Instance;          /* INTEGER */
530
static int hf_e2ap_rrcType;                       /* T_rrcType */
531
static int hf_e2ap_lTE;                           /* RRCclass_LTE */
532
static int hf_e2ap_nR;                            /* RRCclass_NR */
533
static int hf_e2ap_messageID;                     /* INTEGER */
534
static int hf_e2ap_nR_01;                         /* NR_ARFCN */
535
static int hf_e2ap_eUTRA;                         /* E_UTRA_ARFCN */
536
static int hf_e2ap_nR_02;                         /* NR_PCI */
537
static int hf_e2ap_eUTRA_01;                      /* E_UTRA_PCI */
538
static int hf_e2ap_gNB_UEID;                      /* UEID_GNB */
539
static int hf_e2ap_gNB_DU_UEID;                   /* UEID_GNB_DU */
540
static int hf_e2ap_gNB_CU_UP_UEID;                /* UEID_GNB_CU_UP */
541
static int hf_e2ap_ng_eNB_UEID;                   /* UEID_NG_ENB */
542
static int hf_e2ap_ng_eNB_DU_UEID;                /* UEID_NG_ENB_DU */
543
static int hf_e2ap_en_gNB_UEID;                   /* UEID_EN_GNB */
544
static int hf_e2ap_eNB_UEID;                      /* UEID_ENB */
545
static int hf_e2ap_amf_UE_NGAP_ID;                /* AMF_UE_NGAP_ID */
546
static int hf_e2ap_gNB_CU_UE_F1AP_ID_List;        /* UEID_GNB_CU_F1AP_ID_List */
547
static int hf_e2ap_gNB_CU_CP_UE_E1AP_ID_List;     /* UEID_GNB_CU_CP_E1AP_ID_List */
548
static int hf_e2ap_ran_UEID;                      /* RANUEID */
549
static int hf_e2ap_m_NG_RAN_UE_XnAP_ID;           /* NG_RANnodeUEXnAPID */
550
static int hf_e2ap_globalNG_RANNode_ID;           /* GlobalNGRANNodeID */
551
static int hf_e2ap_UEID_GNB_CU_CP_E1AP_ID_List_item;  /* UEID_GNB_CU_CP_E1AP_ID_Item */
552
static int hf_e2ap_gNB_CU_CP_UE_E1AP_ID;          /* GNB_CU_CP_UE_E1AP_ID */
553
static int hf_e2ap_UEID_GNB_CU_F1AP_ID_List_item;  /* UEID_GNB_CU_CP_F1AP_ID_Item */
554
static int hf_e2ap_gNB_CU_UE_F1AP_ID;             /* GNB_CU_UE_F1AP_ID */
555
static int hf_e2ap_ng_eNB_CU_UE_W1AP_ID;          /* NGENB_CU_UE_W1AP_ID */
556
static int hf_e2ap_globalNgENB_ID;                /* GlobalNgENB_ID */
557
static int hf_e2ap_m_eNB_UE_X2AP_ID;              /* ENB_UE_X2AP_ID */
558
static int hf_e2ap_m_eNB_UE_X2AP_ID_Extension;    /* ENB_UE_X2AP_ID_Extension */
559
static int hf_e2ap_globalENB_ID;                  /* GlobalENB_ID */
560
static int hf_e2ap_mME_UE_S1AP_ID;                /* MME_UE_S1AP_ID */
561
static int hf_e2ap_pLMN_Identity_01;              /* PLMNIdentity */
562
static int hf_e2ap_mME_Group_ID;                  /* MME_Group_ID */
563
static int hf_e2ap_mME_Code;                      /* MME_Code */
564
static int hf_e2ap_pLMNIdentity;                  /* PLMNIdentity */
565
static int hf_e2ap_eUTRACellIdentity;             /* EUTRACellIdentity */
566
static int hf_e2ap_gNB_ID_choice;                 /* GNB_ID */
567
static int hf_e2ap_ngENB_ID;                      /* NgENB_ID */
568
static int hf_e2ap_gNB_ID;                        /* BIT_STRING_SIZE_22_32 */
569
static int hf_e2ap_aMFRegionID;                   /* AMFRegionID */
570
static int hf_e2ap_aMFSetID;                      /* AMFSetID */
571
static int hf_e2ap_aMFPointer;                    /* AMFPointer */
572
static int hf_e2ap_macroNgENB_ID;                 /* BIT_STRING_SIZE_20 */
573
static int hf_e2ap_shortMacroNgENB_ID;            /* BIT_STRING_SIZE_18 */
574
static int hf_e2ap_longMacroNgENB_ID;             /* BIT_STRING_SIZE_21 */
575
static int hf_e2ap_nRCellIdentity;                /* NRCellIdentity */
576
static int hf_e2ap_sST;                           /* SST */
577
static int hf_e2ap_sD;                            /* SD */
578
static int hf_e2ap_gNB_02;                        /* GlobalGNB_ID */
579
static int hf_e2ap_ng_eNB_02;                     /* GlobalNgENB_ID */
580
static int hf_e2ap_nRARFCN;                       /* INTEGER_0_maxNRARFCN */
581
static int hf_e2ap_NRFrequencyBand_List_item;     /* NRFrequencyBandItem */
582
static int hf_e2ap_freqBandIndicatorNr;           /* INTEGER_1_1024_ */
583
static int hf_e2ap_supportedSULBandList;          /* SupportedSULBandList */
584
static int hf_e2ap_nrARFCN;                       /* NR_ARFCN */
585
static int hf_e2ap_frequencyBand_List;            /* NRFrequencyBand_List */
586
static int hf_e2ap_frequencyShift7p5khz;          /* NRFrequencyShift7p5khz */
587
static int hf_e2ap_SupportedSULBandList_item;     /* SupportedSULFreqBandItem */
588
static int hf_e2ap_NeighborCell_List_item;        /* NeighborCell_Item */
589
static int hf_e2ap_ranType_Choice_NR;             /* NeighborCell_Item_Choice_NR */
590
static int hf_e2ap_ranType_Choice_EUTRA;          /* NeighborCell_Item_Choice_E_UTRA */
591
static int hf_e2ap_nR_PCI;                        /* NR_PCI */
592
static int hf_e2ap_fiveGS_TAC;                    /* FiveGS_TAC */
593
static int hf_e2ap_nR_mode_info;                  /* T_nR_mode_info */
594
static int hf_e2ap_nR_FreqInfo;                   /* NRFrequencyInfo */
595
static int hf_e2ap_x2_Xn_established;             /* T_x2_Xn_established */
596
static int hf_e2ap_hO_validated;                  /* T_hO_validated */
597
static int hf_e2ap_version;                       /* INTEGER_1_65535_ */
598
static int hf_e2ap_eUTRA_PCI;                     /* E_UTRA_PCI */
599
static int hf_e2ap_eUTRA_ARFCN;                   /* E_UTRA_ARFCN */
600
static int hf_e2ap_eUTRA_TAC;                     /* E_UTRA_TAC */
601
static int hf_e2ap_x2_Xn_established_01;          /* T_x2_Xn_established_01 */
602
static int hf_e2ap_hO_validated_01;               /* T_hO_validated_01 */
603
static int hf_e2ap_servingCellPCI;                /* ServingCell_PCI */
604
static int hf_e2ap_servingCellARFCN;              /* ServingCell_ARFCN */
605
static int hf_e2ap_neighborCell_List;             /* NeighborCell_List */
606
static int hf_e2ap_cellInfo_List;                 /* SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item */
607
static int hf_e2ap_cellInfo_List_item;            /* EventTrigger_Cell_Info_Item */
608
static int hf_e2ap_eventTriggerCellID;            /* RIC_EventTrigger_Cell_ID */
609
static int hf_e2ap_cellType;                      /* T_cellType */
610
static int hf_e2ap_cellType_Choice_Individual;    /* EventTrigger_Cell_Info_Item_Choice_Individual */
611
static int hf_e2ap_cellType_Choice_Group;         /* EventTrigger_Cell_Info_Item_Choice_Group */
612
static int hf_e2ap_logicalOR;                     /* LogicalOR */
613
static int hf_e2ap_cellGlobalID;                  /* CGI */
614
static int hf_e2ap_ranParameterTesting;           /* RANParameter_Testing */
615
static int hf_e2ap_ueInfo_List;                   /* SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item */
616
static int hf_e2ap_ueInfo_List_item;              /* EventTrigger_UE_Info_Item */
617
static int hf_e2ap_eventTriggerUEID;              /* RIC_EventTrigger_UE_ID */
618
static int hf_e2ap_ueType;                        /* T_ueType */
619
static int hf_e2ap_ueType_Choice_Individual;      /* EventTrigger_UE_Info_Item_Choice_Individual */
620
static int hf_e2ap_ueType_Choice_Group;           /* EventTrigger_UE_Info_Item_Choice_Group */
621
static int hf_e2ap_ueID;                          /* UEID */
622
static int hf_e2ap_ueEvent_List;                  /* SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item */
623
static int hf_e2ap_ueEvent_List_item;             /* EventTrigger_UEevent_Info_Item */
624
static int hf_e2ap_ueEventID;                     /* RIC_EventTrigger_UEevent_ID */
625
static int hf_e2ap_ranParameter_Definition_Choice;  /* RANParameter_Definition_Choice */
626
static int hf_e2ap_choiceLIST;                    /* RANParameter_Definition_Choice_LIST */
627
static int hf_e2ap_choiceSTRUCTURE;               /* RANParameter_Definition_Choice_STRUCTURE */
628
static int hf_e2ap_ranParameter_List;             /* SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item */
629
static int hf_e2ap_ranParameter_List_item;        /* RANParameter_Definition_Choice_LIST_Item */
630
static int hf_e2ap_ranParameter_ID;               /* RANParameter_ID */
631
static int hf_e2ap_ranParameter_name;             /* RANParameter_Name */
632
static int hf_e2ap_ranParameter_Definition;       /* RANParameter_Definition */
633
static int hf_e2ap_ranParameter_STRUCTURE;        /* SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item */
634
static int hf_e2ap_ranParameter_STRUCTURE_item;   /* RANParameter_Definition_Choice_STRUCTURE_Item */
635
static int hf_e2ap_valueBoolean;                  /* BOOLEAN */
636
static int hf_e2ap_valueInt;                      /* INTEGER */
637
static int hf_e2ap_valueReal;                     /* REAL */
638
static int hf_e2ap_valueBitS;                     /* BIT_STRING */
639
static int hf_e2ap_valueOctS;                     /* OCTET_STRING */
640
static int hf_e2ap_valuePrintableString;          /* PrintableString */
641
static int hf_e2ap_ranP_Choice_ElementTrue;       /* RANParameter_ValueType_Choice_ElementTrue */
642
static int hf_e2ap_ranP_Choice_ElementFalse;      /* RANParameter_ValueType_Choice_ElementFalse */
643
static int hf_e2ap_ranP_Choice_Structure;         /* RANParameter_ValueType_Choice_Structure */
644
static int hf_e2ap_ranP_Choice_List;              /* RANParameter_ValueType_Choice_List */
645
static int hf_e2ap_ranParameter_value;            /* RANParameter_Value */
646
static int hf_e2ap_ranParameter_Structure;        /* RANParameter_STRUCTURE */
647
static int hf_e2ap_ranParameter_List_01;          /* RANParameter_LIST */
648
static int hf_e2ap_sequence_of_ranParameters;     /* SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item */
649
static int hf_e2ap_sequence_of_ranParameters_item;  /* RANParameter_STRUCTURE_Item */
650
static int hf_e2ap_ranParameter_valueType;        /* RANParameter_ValueType */
651
static int hf_e2ap_list_of_ranParameter;          /* SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE */
652
static int hf_e2ap_list_of_ranParameter_item;     /* RANParameter_STRUCTURE */
653
static int hf_e2ap_RANParameter_Testing_item;     /* RANParameter_Testing_Item */
654
static int hf_e2ap_ranP_Choice_comparison;        /* T_ranP_Choice_comparison */
655
static int hf_e2ap_ranP_Choice_presence;          /* T_ranP_Choice_presence */
656
static int hf_e2ap_ranParameter_Type;             /* T_ranParameter_Type */
657
static int hf_e2ap_ranP_Choice_List_01;           /* RANParameter_Testing_Item_Choice_List */
658
static int hf_e2ap_ranP_Choice_Structure_01;      /* RANParameter_Testing_Item_Choice_Structure */
659
static int hf_e2ap_ranP_Choice_ElementTrue_01;    /* RANParameter_Testing_Item_Choice_ElementTrue */
660
static int hf_e2ap_ranP_Choice_ElementFalse_01;   /* RANParameter_Testing_Item_Choice_ElementFalse */
661
static int hf_e2ap_ranParameter_List_02;          /* RANParameter_Testing_LIST */
662
static int hf_e2ap_ranParameter_Structure_01;     /* RANParameter_Testing_STRUCTURE */
663
static int hf_e2ap_ranParameter_TestCondition;    /* RANParameter_TestingCondition */
664
static int hf_e2ap_ranParameter_Value;            /* RANParameter_Value */
665
static int hf_e2ap_RANParameter_Testing_LIST_item;  /* RANParameter_Testing_Item */
666
static int hf_e2ap_RANParameter_Testing_STRUCTURE_item;  /* RANParameter_Testing_Item */
667
static int hf_e2ap_ric_PolicyAction_ID;           /* RIC_ControlAction_ID */
668
static int hf_e2ap_ranParameters_List;            /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item */
669
static int hf_e2ap_ranParameters_List_item;       /* RIC_PolicyAction_RANParameter_Item */
670
static int hf_e2ap_ric_PolicyDecision;            /* T_ric_PolicyDecision */
671
static int hf_e2ap_ric_eventTrigger_formats;      /* T_ric_eventTrigger_formats */
672
static int hf_e2ap_eventTrigger_Format1;          /* E2SM_RC_EventTrigger_Format1 */
673
static int hf_e2ap_eventTrigger_Format2;          /* E2SM_RC_EventTrigger_Format2 */
674
static int hf_e2ap_eventTrigger_Format3;          /* E2SM_RC_EventTrigger_Format3 */
675
static int hf_e2ap_eventTrigger_Format4;          /* E2SM_RC_EventTrigger_Format4 */
676
static int hf_e2ap_eventTrigger_Format5;          /* E2SM_RC_EventTrigger_Format5 */
677
static int hf_e2ap_message_List;                  /* SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item */
678
static int hf_e2ap_message_List_item;             /* E2SM_RC_EventTrigger_Format1_Item */
679
static int hf_e2ap_globalAssociatedUEInfo;        /* EventTrigger_UE_Info */
680
static int hf_e2ap_ric_eventTriggerCondition_ID;  /* RIC_EventTriggerCondition_ID */
681
static int hf_e2ap_messageType_01;                /* MessageType_Choice */
682
static int hf_e2ap_messageDirection;              /* T_messageDirection */
683
static int hf_e2ap_associatedUEInfo;              /* EventTrigger_UE_Info */
684
static int hf_e2ap_associatedUEEvent;             /* EventTrigger_UEevent_Info */
685
static int hf_e2ap_messageType_Choice_NI;         /* MessageType_Choice_NI */
686
static int hf_e2ap_messageType_Choice_RRC;        /* MessageType_Choice_RRC */
687
static int hf_e2ap_nI_Type;                       /* InterfaceType */
688
static int hf_e2ap_nI_Identifier;                 /* InterfaceIdentifier */
689
static int hf_e2ap_nI_Message;                    /* Interface_MessageID */
690
static int hf_e2ap_rRC_Message;                   /* RRC_MessageID */
691
static int hf_e2ap_ric_callProcessType_ID;        /* RIC_CallProcessType_ID */
692
static int hf_e2ap_ric_callProcessBreakpoint_ID;  /* RIC_CallProcessBreakpoint_ID */
693
static int hf_e2ap_associatedE2NodeInfo;          /* RANParameter_Testing */
694
static int hf_e2ap_e2NodeInfoChange_List;         /* SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item */
695
static int hf_e2ap_e2NodeInfoChange_List_item;    /* E2SM_RC_EventTrigger_Format3_Item */
696
static int hf_e2ap_e2NodeInfoChange_ID;           /* INTEGER_1_512_ */
697
static int hf_e2ap_associatedCellInfo;            /* EventTrigger_Cell_Info */
698
static int hf_e2ap_uEInfoChange_List;             /* SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item */
699
static int hf_e2ap_uEInfoChange_List_item;        /* E2SM_RC_EventTrigger_Format4_Item */
700
static int hf_e2ap_triggerType;                   /* TriggerType_Choice */
701
static int hf_e2ap_triggerType_Choice_RRCstate;   /* TriggerType_Choice_RRCstate */
702
static int hf_e2ap_triggerType_Choice_UEID;       /* TriggerType_Choice_UEID */
703
static int hf_e2ap_triggerType_Choice_L2state;    /* TriggerType_Choice_L2state */
704
static int hf_e2ap_rrcState_List;                 /* SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item */
705
static int hf_e2ap_rrcState_List_item;            /* TriggerType_Choice_RRCstate_Item */
706
static int hf_e2ap_stateChangedTo;                /* RRC_State */
707
static int hf_e2ap_ueIDchange_ID;                 /* INTEGER_1_512_ */
708
static int hf_e2ap_associatedL2variables;         /* RANParameter_Testing */
709
static int hf_e2ap_onDemand;                      /* T_onDemand */
710
static int hf_e2ap_ric_Style_Type;                /* RIC_Style_Type */
711
static int hf_e2ap_ric_actionDefinition_formats;  /* T_ric_actionDefinition_formats */
712
static int hf_e2ap_actionDefinition_Format1;      /* E2SM_RC_ActionDefinition_Format1 */
713
static int hf_e2ap_actionDefinition_Format2;      /* E2SM_RC_ActionDefinition_Format2 */
714
static int hf_e2ap_actionDefinition_Format3;      /* E2SM_RC_ActionDefinition_Format3 */
715
static int hf_e2ap_actionDefinition_Format4;      /* E2SM_RC_ActionDefinition_Format4 */
716
static int hf_e2ap_ranP_ToBeReported_List;        /* SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item */
717
static int hf_e2ap_ranP_ToBeReported_List_item;   /* E2SM_RC_ActionDefinition_Format1_Item */
718
static int hf_e2ap_ric_PolicyConditions_List;     /* SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item */
719
static int hf_e2ap_ric_PolicyConditions_List_item;  /* E2SM_RC_ActionDefinition_Format2_Item */
720
static int hf_e2ap_ric_PolicyAction;              /* RIC_PolicyAction */
721
static int hf_e2ap_ric_PolicyConditionDefinition;  /* RANParameter_Testing */
722
static int hf_e2ap_ric_InsertIndication_ID;       /* RIC_InsertIndication_ID */
723
static int hf_e2ap_ranP_InsertIndication_List;    /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item */
724
static int hf_e2ap_ranP_InsertIndication_List_item;  /* E2SM_RC_ActionDefinition_Format3_Item */
725
static int hf_e2ap_ric_InsertStyle_List;          /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item */
726
static int hf_e2ap_ric_InsertStyle_List_item;     /* E2SM_RC_ActionDefinition_Format4_Style_Item */
727
static int hf_e2ap_requested_Insert_Style_Type;   /* RIC_Style_Type */
728
static int hf_e2ap_ric_InsertIndication_List;     /* SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item */
729
static int hf_e2ap_ric_InsertIndication_List_item;  /* E2SM_RC_ActionDefinition_Format4_Indication_Item */
730
static int hf_e2ap_ranP_InsertIndication_List_01;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item */
731
static int hf_e2ap_ranP_InsertIndication_List_item_01;  /* E2SM_RC_ActionDefinition_Format4_RANP_Item */
732
static int hf_e2ap_ric_indicationHeader_formats;  /* T_ric_indicationHeader_formats */
733
static int hf_e2ap_indicationHeader_Format1;      /* E2SM_RC_IndicationHeader_Format1 */
734
static int hf_e2ap_indicationHeader_Format2;      /* E2SM_RC_IndicationHeader_Format2 */
735
static int hf_e2ap_indicationHeader_Format3;      /* E2SM_RC_IndicationHeader_Format3 */
736
static int hf_e2ap_ric_InsertStyle_Type;          /* RIC_Style_Type */
737
static int hf_e2ap_ric_indicationMessage_formats;  /* T_ric_indicationMessage_formats */
738
static int hf_e2ap_indicationMessage_Format1;     /* E2SM_RC_IndicationMessage_Format1 */
739
static int hf_e2ap_indicationMessage_Format2;     /* E2SM_RC_IndicationMessage_Format2 */
740
static int hf_e2ap_indicationMessage_Format3;     /* E2SM_RC_IndicationMessage_Format3 */
741
static int hf_e2ap_indicationMessage_Format4;     /* E2SM_RC_IndicationMessage_Format4 */
742
static int hf_e2ap_indicationMessage_Format5;     /* E2SM_RC_IndicationMessage_Format5 */
743
static int hf_e2ap_indicationMessage_Format6;     /* E2SM_RC_IndicationMessage_Format6 */
744
static int hf_e2ap_ranP_Reported_List;            /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item */
745
static int hf_e2ap_ranP_Reported_List_item;       /* E2SM_RC_IndicationMessage_Format1_Item */
746
static int hf_e2ap_ueParameter_List;              /* SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item */
747
static int hf_e2ap_ueParameter_List_item;         /* E2SM_RC_IndicationMessage_Format2_Item */
748
static int hf_e2ap_ranP_List;                     /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item */
749
static int hf_e2ap_ranP_List_item;                /* E2SM_RC_IndicationMessage_Format2_RANParameter_Item */
750
static int hf_e2ap_cellInfo_List_01;              /* SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item */
751
static int hf_e2ap_cellInfo_List_item_01;         /* E2SM_RC_IndicationMessage_Format3_Item */
752
static int hf_e2ap_cellGlobal_ID;                 /* CGI */
753
static int hf_e2ap_cellContextInfo;               /* OCTET_STRING */
754
static int hf_e2ap_cellDeleted;                   /* BOOLEAN */
755
static int hf_e2ap_neighborRelation_Table;        /* NeighborRelation_Info */
756
static int hf_e2ap_ueInfo_List_01;                /* SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE */
757
static int hf_e2ap_ueInfo_List_item_01;           /* E2SM_RC_IndicationMessage_Format4_ItemUE */
758
static int hf_e2ap_cellInfo_List_02;              /* SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell */
759
static int hf_e2ap_cellInfo_List_item_02;         /* E2SM_RC_IndicationMessage_Format4_ItemCell */
760
static int hf_e2ap_ueContextInfo;                 /* OCTET_STRING */
761
static int hf_e2ap_ranP_Requested_List;           /* SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item */
762
static int hf_e2ap_ranP_Requested_List_item;      /* E2SM_RC_IndicationMessage_Format5_Item */
763
static int hf_e2ap_ric_InsertStyle_List_01;       /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item */
764
static int hf_e2ap_ric_InsertStyle_List_item_01;  /* E2SM_RC_IndicationMessage_Format6_Style_Item */
765
static int hf_e2ap_indicated_Insert_Style_Type;   /* RIC_Style_Type */
766
static int hf_e2ap_ric_InsertIndication_List_01;  /* SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item */
767
static int hf_e2ap_ric_InsertIndication_List_item_01;  /* E2SM_RC_IndicationMessage_Format6_Indication_Item */
768
static int hf_e2ap_ranP_InsertIndication_List_02;  /* SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item */
769
static int hf_e2ap_ranP_InsertIndication_List_item_02;  /* E2SM_RC_IndicationMessage_Format6_RANP_Item */
770
static int hf_e2ap_ric_callProcessID_formats;     /* T_ric_callProcessID_formats */
771
static int hf_e2ap_callProcessID_Format1;         /* E2SM_RC_CallProcessID_Format1 */
772
static int hf_e2ap_ric_callProcess_ID;            /* RAN_CallProcess_ID */
773
static int hf_e2ap_ric_controlHeader_formats;     /* T_ric_controlHeader_formats */
774
static int hf_e2ap_controlHeader_Format1;         /* E2SM_RC_ControlHeader_Format1 */
775
static int hf_e2ap_controlHeader_Format2;         /* E2SM_RC_ControlHeader_Format2 */
776
static int hf_e2ap_ric_ControlAction_ID;          /* RIC_ControlAction_ID */
777
static int hf_e2ap_ric_ControlDecision;           /* T_ric_ControlDecision */
778
static int hf_e2ap_ric_ControlDecision_01;        /* T_ric_ControlDecision_01 */
779
static int hf_e2ap_ric_controlMessage_formats;    /* T_ric_controlMessage_formats */
780
static int hf_e2ap_controlMessage_Format1;        /* E2SM_RC_ControlMessage_Format1 */
781
static int hf_e2ap_controlMessage_Format2;        /* E2SM_RC_ControlMessage_Format2 */
782
static int hf_e2ap_ranP_List_01;                  /* SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item */
783
static int hf_e2ap_ranP_List_item_01;             /* E2SM_RC_ControlMessage_Format1_Item */
784
static int hf_e2ap_ric_ControlStyle_List;         /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item */
785
static int hf_e2ap_ric_ControlStyle_List_item;    /* E2SM_RC_ControlMessage_Format2_Style_Item */
786
static int hf_e2ap_indicated_Control_Style_Type;  /* RIC_Style_Type */
787
static int hf_e2ap_ric_ControlAction_List;        /* SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item */
788
static int hf_e2ap_ric_ControlAction_List_item;   /* E2SM_RC_ControlMessage_Format2_ControlAction_Item */
789
static int hf_e2ap_ranP_List_02;                  /* E2SM_RC_ControlMessage_Format1 */
790
static int hf_e2ap_ric_controlOutcome_formats;    /* T_ric_controlOutcome_formats */
791
static int hf_e2ap_controlOutcome_Format1;        /* E2SM_RC_ControlOutcome_Format1 */
792
static int hf_e2ap_controlOutcome_Format2;        /* E2SM_RC_ControlOutcome_Format2 */
793
static int hf_e2ap_controlOutcome_Format3;        /* E2SM_RC_ControlOutcome_Format3 */
794
static int hf_e2ap_ranP_List_03;                  /* SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item */
795
static int hf_e2ap_ranP_List_item_02;             /* E2SM_RC_ControlOutcome_Format1_Item */
796
static int hf_e2ap_ric_ControlStyle_List_01;      /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item */
797
static int hf_e2ap_ric_ControlStyle_List_item_01;  /* E2SM_RC_ControlOutcome_Format2_Style_Item */
798
static int hf_e2ap_ric_ControlOutcome_List;       /* SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item */
799
static int hf_e2ap_ric_ControlOutcome_List_item;  /* E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item */
800
static int hf_e2ap_ranP_List_04;                  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item */
801
static int hf_e2ap_ranP_List_item_03;             /* E2SM_RC_ControlOutcome_Format2_RANP_Item */
802
static int hf_e2ap_ranP_List_05;                  /* SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item */
803
static int hf_e2ap_ranP_List_item_04;             /* E2SM_RC_ControlOutcome_Format3_Item */
804
static int hf_e2ap_ranFunction_Name;              /* RANfunction_Name */
805
static int hf_e2ap_ranFunctionDefinition_EventTrigger;  /* RANFunctionDefinition_EventTrigger */
806
static int hf_e2ap_ranFunctionDefinition_Report;  /* RANFunctionDefinition_Report */
807
static int hf_e2ap_ranFunctionDefinition_Insert;  /* RANFunctionDefinition_Insert */
808
static int hf_e2ap_ranFunctionDefinition_Control;  /* RANFunctionDefinition_Control */
809
static int hf_e2ap_ranFunctionDefinition_Policy;  /* RANFunctionDefinition_Policy */
810
static int hf_e2ap_ric_EventTriggerStyle_List;    /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item */
811
static int hf_e2ap_ric_EventTriggerStyle_List_item;  /* RANFunctionDefinition_EventTrigger_Style_Item */
812
static int hf_e2ap_ran_L2Parameters_List;         /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item */
813
static int hf_e2ap_ran_L2Parameters_List_item;    /* L2Parameters_RANParameter_Item */
814
static int hf_e2ap_ran_CallProcessTypes_List;     /* SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item */
815
static int hf_e2ap_ran_CallProcessTypes_List_item;  /* RANFunctionDefinition_EventTrigger_CallProcess_Item */
816
static int hf_e2ap_ran_UEIdentificationParameters_List;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item */
817
static int hf_e2ap_ran_UEIdentificationParameters_List_item;  /* UEIdentification_RANParameter_Item */
818
static int hf_e2ap_ran_CellIdentificationParameters_List;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item */
819
static int hf_e2ap_ran_CellIdentificationParameters_List_item;  /* CellIdentification_RANParameter_Item */
820
static int hf_e2ap_ric_EventTriggerStyle_Type;    /* RIC_Style_Type */
821
static int hf_e2ap_ric_EventTriggerStyle_Name;    /* RIC_Style_Name */
822
static int hf_e2ap_ric_EventTriggerFormat_Type;   /* RIC_Format_Type */
823
static int hf_e2ap_callProcessType_ID;            /* RIC_CallProcessType_ID */
824
static int hf_e2ap_callProcessType_Name;          /* RIC_CallProcessType_Name */
825
static int hf_e2ap_callProcessBreakpoints_List;   /* SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item */
826
static int hf_e2ap_callProcessBreakpoints_List_item;  /* RANFunctionDefinition_EventTrigger_Breakpoint_Item */
827
static int hf_e2ap_callProcessBreakpoint_ID;      /* RIC_CallProcessBreakpoint_ID */
828
static int hf_e2ap_callProcessBreakpoint_Name;    /* RIC_CallProcessBreakpoint_Name */
829
static int hf_e2ap_ran_CallProcessBreakpointParameters_List;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item */
830
static int hf_e2ap_ran_CallProcessBreakpointParameters_List_item;  /* CallProcessBreakpoint_RANParameter_Item */
831
static int hf_e2ap_ric_ReportStyle_List;          /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item */
832
static int hf_e2ap_ric_ReportStyle_List_item;     /* RANFunctionDefinition_Report_Item */
833
static int hf_e2ap_ric_ReportStyle_Type;          /* RIC_Style_Type */
834
static int hf_e2ap_ric_ReportStyle_Name;          /* RIC_Style_Name */
835
static int hf_e2ap_ric_SupportedEventTriggerStyle_Type;  /* RIC_Style_Type */
836
static int hf_e2ap_ric_ReportActionFormat_Type;   /* RIC_Format_Type */
837
static int hf_e2ap_ric_IndicationHeaderFormat_Type;  /* RIC_Format_Type */
838
static int hf_e2ap_ric_IndicationMessageFormat_Type;  /* RIC_Format_Type */
839
static int hf_e2ap_ran_ReportParameters_List;     /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item */
840
static int hf_e2ap_ran_ReportParameters_List_item;  /* Report_RANParameter_Item */
841
static int hf_e2ap_ric_InsertStyle_List_02;       /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item */
842
static int hf_e2ap_ric_InsertStyle_List_item_02;  /* RANFunctionDefinition_Insert_Item */
843
static int hf_e2ap_ric_InsertStyle_Name;          /* RIC_Style_Name */
844
static int hf_e2ap_ric_ActionDefinitionFormat_Type;  /* RIC_Format_Type */
845
static int hf_e2ap_ric_InsertIndication_List_02;  /* SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item */
846
static int hf_e2ap_ric_InsertIndication_List_item_02;  /* RANFunctionDefinition_Insert_Indication_Item */
847
static int hf_e2ap_ric_CallProcessIDFormat_Type;  /* RIC_Format_Type */
848
static int hf_e2ap_ric_InsertIndication_Name;     /* RIC_InsertIndication_Name */
849
static int hf_e2ap_ran_InsertIndicationParameters_List;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item */
850
static int hf_e2ap_ran_InsertIndicationParameters_List_item;  /* InsertIndication_RANParameter_Item */
851
static int hf_e2ap_ric_ControlStyle_List_02;      /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item */
852
static int hf_e2ap_ric_ControlStyle_List_item_02;  /* RANFunctionDefinition_Control_Item */
853
static int hf_e2ap_ric_ControlStyle_Type;         /* RIC_Style_Type */
854
static int hf_e2ap_ric_ControlStyle_Name;         /* RIC_Style_Name */
855
static int hf_e2ap_ric_ControlAction_List_01;     /* SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item */
856
static int hf_e2ap_ric_ControlAction_List_item_01;  /* RANFunctionDefinition_Control_Action_Item */
857
static int hf_e2ap_ric_ControlHeaderFormat_Type;  /* RIC_Format_Type */
858
static int hf_e2ap_ric_ControlMessageFormat_Type;  /* RIC_Format_Type */
859
static int hf_e2ap_ric_ControlOutcomeFormat_Type;  /* RIC_Format_Type */
860
static int hf_e2ap_ran_ControlOutcomeParameters_List;  /* SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item */
861
static int hf_e2ap_ran_ControlOutcomeParameters_List_item;  /* ControlOutcome_RANParameter_Item */
862
static int hf_e2ap_ric_ControlAction_Name;        /* RIC_ControlAction_Name */
863
static int hf_e2ap_ran_ControlActionParameters_List;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item */
864
static int hf_e2ap_ran_ControlActionParameters_List_item;  /* ControlAction_RANParameter_Item */
865
static int hf_e2ap_ric_PolicyStyle_List;          /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item */
866
static int hf_e2ap_ric_PolicyStyle_List_item;     /* RANFunctionDefinition_Policy_Item */
867
static int hf_e2ap_ric_PolicyStyle_Type;          /* RIC_Style_Type */
868
static int hf_e2ap_ric_PolicyStyle_Name;          /* RIC_Style_Name */
869
static int hf_e2ap_ric_PolicyAction_List;         /* SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item */
870
static int hf_e2ap_ric_PolicyAction_List_item;    /* RANFunctionDefinition_Policy_Action_Item */
871
static int hf_e2ap_ric_PolicyAction_Name;         /* RIC_ControlAction_Name */
872
static int hf_e2ap_ran_PolicyActionParameters_List;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item */
873
static int hf_e2ap_ran_PolicyActionParameters_List_item;  /* PolicyAction_RANParameter_Item */
874
static int hf_e2ap_ran_PolicyConditionParameters_List;  /* SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item */
875
static int hf_e2ap_ran_PolicyConditionParameters_List_item;  /* PolicyCondition_RANParameter_Item */
876
static int hf_e2ap_measName;                      /* MeasurementTypeName */
877
static int hf_e2ap_measID;                        /* MeasurementTypeID */
878
static int hf_e2ap_noLabel;                       /* T_noLabel */
879
static int hf_e2ap_plmnID;                        /* PLMNIdentity */
880
static int hf_e2ap_sliceID;                       /* S_NSSAI */
881
static int hf_e2ap_fiveQI;                        /* FiveQI */
882
static int hf_e2ap_qFI;                           /* QosFlowIdentifier */
883
static int hf_e2ap_qCI;                           /* QCI */
884
static int hf_e2ap_qCImax;                        /* QCI */
885
static int hf_e2ap_qCImin;                        /* QCI */
886
static int hf_e2ap_aRPmax;                        /* INTEGER_1_15_ */
887
static int hf_e2ap_aRPmin;                        /* INTEGER_1_15_ */
888
static int hf_e2ap_bitrateRange;                  /* INTEGER_1_65535_ */
889
static int hf_e2ap_layerMU_MIMO;                  /* INTEGER_1_65535_ */
890
static int hf_e2ap_sUM;                           /* T_sUM */
891
static int hf_e2ap_distBinX;                      /* INTEGER_1_65535_ */
892
static int hf_e2ap_distBinY;                      /* INTEGER_1_65535_ */
893
static int hf_e2ap_distBinZ;                      /* INTEGER_1_65535_ */
894
static int hf_e2ap_preLabelOverride;              /* T_preLabelOverride */
895
static int hf_e2ap_startEndInd;                   /* T_startEndInd */
896
static int hf_e2ap_min;                           /* T_min */
897
static int hf_e2ap_max;                           /* T_max */
898
static int hf_e2ap_avg;                           /* T_avg */
899
static int hf_e2ap_ssbIndex;                      /* INTEGER_1_65535_ */
900
static int hf_e2ap_nonGoB_BFmode_Index;           /* INTEGER_1_65535_ */
901
static int hf_e2ap_mIMO_mode_Index;               /* INTEGER_1_2_ */
902
static int hf_e2ap_testType;                      /* TestCond_Type */
903
static int hf_e2ap_testExpr;                      /* TestCond_Expression */
904
static int hf_e2ap_testValue;                     /* TestCond_Value */
905
static int hf_e2ap_gBR;                           /* T_gBR */
906
static int hf_e2ap_aMBR;                          /* T_aMBR */
907
static int hf_e2ap_isStat;                        /* T_isStat */
908
static int hf_e2ap_isCatM;                        /* T_isCatM */
909
static int hf_e2ap_rSRP;                          /* T_rSRP */
910
static int hf_e2ap_rSRQ;                          /* T_rSRQ */
911
static int hf_e2ap_ul_rSRP;                       /* T_ul_rSRP */
912
static int hf_e2ap_cQI;                           /* T_cQI */
913
static int hf_e2ap_fiveQI_01;                     /* T_fiveQI */
914
static int hf_e2ap_qCI_01;                        /* T_qCI */
915
static int hf_e2ap_sNSSAI;                        /* T_sNSSAI */
916
static int hf_e2ap_valueEnum;                     /* INTEGER */
917
static int hf_e2ap_valueBool;                     /* BOOLEAN */
918
static int hf_e2ap_valuePrtS;                     /* PrintableString */
919
static int hf_e2ap_binRangeListX;                 /* BinRangeList */
920
static int hf_e2ap_binRangeListY;                 /* BinRangeList */
921
static int hf_e2ap_binRangeListZ;                 /* BinRangeList */
922
static int hf_e2ap_BinRangeList_item;             /* BinRangeItem */
923
static int hf_e2ap_binIndex;                      /* BinIndex */
924
static int hf_e2ap_startValue;                    /* BinRangeValue */
925
static int hf_e2ap_endValue;                      /* BinRangeValue */
926
static int hf_e2ap_DistMeasurementBinRangeList_item;  /* DistMeasurementBinRangeItem */
927
static int hf_e2ap_measType;                      /* MeasurementType */
928
static int hf_e2ap_binRangeDef;                   /* BinRangeDefinition */
929
static int hf_e2ap_MeasurementInfoList_item;      /* MeasurementInfoItem */
930
static int hf_e2ap_labelInfoList;                 /* LabelInfoList */
931
static int hf_e2ap_LabelInfoList_item;            /* LabelInfoItem */
932
static int hf_e2ap_measLabel;                     /* MeasurementLabel */
933
static int hf_e2ap_MeasurementData_item;          /* MeasurementDataItem */
934
static int hf_e2ap_measRecord;                    /* MeasurementRecord */
935
static int hf_e2ap_incompleteFlag;                /* T_incompleteFlag */
936
static int hf_e2ap_MeasurementRecord_item;        /* MeasurementRecordItem */
937
static int hf_e2ap_integer;                       /* INTEGER_0_4294967295 */
938
static int hf_e2ap_real;                          /* REAL */
939
static int hf_e2ap_noValue;                       /* NULL */
940
static int hf_e2ap_MeasurementInfo_Action_List_item;  /* MeasurementInfo_Action_Item */
941
static int hf_e2ap_MeasurementCondList_item;      /* MeasurementCondItem */
942
static int hf_e2ap_matchingCond;                  /* MatchingCondList */
943
static int hf_e2ap_MeasurementCondUEidList_item;  /* MeasurementCondUEidItem */
944
static int hf_e2ap_matchingUEidList;              /* MatchingUEidList */
945
static int hf_e2ap_matchingUEidPerGP;             /* MatchingUEidPerGP */
946
static int hf_e2ap_MatchingCondList_item;         /* MatchingCondItem */
947
static int hf_e2ap_matchingCondChoice;            /* MatchingCondItem_Choice */
948
static int hf_e2ap_testCondInfo;                  /* TestCondInfo */
949
static int hf_e2ap_MatchingUEidList_item;         /* MatchingUEidItem */
950
static int hf_e2ap_MatchingUEidPerGP_item;        /* MatchingUEidPerGP_Item */
951
static int hf_e2ap_matchedPerGP;                  /* T_matchedPerGP */
952
static int hf_e2ap_noUEmatched;                   /* T_noUEmatched */
953
static int hf_e2ap_oneOrMoreUEmatched;            /* MatchingUEidList_PerGP */
954
static int hf_e2ap_MatchingUEidList_PerGP_item;   /* MatchingUEidItem_PerGP */
955
static int hf_e2ap_MatchingUeCondPerSubList_item;  /* MatchingUeCondPerSubItem */
956
static int hf_e2ap_MatchingUEidPerSubList_item;   /* MatchingUEidPerSubItem */
957
static int hf_e2ap_UEMeasurementReportList_item;  /* UEMeasurementReportItem */
958
static int hf_e2ap_measReport;                    /* E2SM_KPM_IndicationMessage_Format1 */
959
static int hf_e2ap_eventDefinition_formats;       /* T_eventDefinition_formats */
960
static int hf_e2ap_eventDefinition_Format1;       /* E2SM_KPM_EventTriggerDefinition_Format1 */
961
static int hf_e2ap_reportingPeriod;               /* INTEGER_1_4294967295 */
962
static int hf_e2ap_actionDefinition_formats;      /* T_actionDefinition_formats */
963
static int hf_e2ap_actionDefinition_Format1_01;   /* E2SM_KPM_ActionDefinition_Format1 */
964
static int hf_e2ap_actionDefinition_Format2_01;   /* E2SM_KPM_ActionDefinition_Format2 */
965
static int hf_e2ap_actionDefinition_Format3_01;   /* E2SM_KPM_ActionDefinition_Format3 */
966
static int hf_e2ap_actionDefinition_Format4_01;   /* E2SM_KPM_ActionDefinition_Format4 */
967
static int hf_e2ap_actionDefinition_Format5;      /* E2SM_KPM_ActionDefinition_Format5 */
968
static int hf_e2ap_measInfoList;                  /* MeasurementInfoList */
969
static int hf_e2ap_granulPeriod;                  /* GranularityPeriod */
970
static int hf_e2ap_distMeasBinRangeInfo;          /* DistMeasurementBinRangeList */
971
static int hf_e2ap_subscriptInfo;                 /* E2SM_KPM_ActionDefinition_Format1 */
972
static int hf_e2ap_measCondList;                  /* MeasurementCondList */
973
static int hf_e2ap_matchingUeCondList;            /* MatchingUeCondPerSubList */
974
static int hf_e2ap_subscriptionInfo;              /* E2SM_KPM_ActionDefinition_Format1 */
975
static int hf_e2ap_matchingUEidList_01;           /* MatchingUEidPerSubList */
976
static int hf_e2ap_indicationHeader_formats;      /* T_indicationHeader_formats */
977
static int hf_e2ap_indicationHeader_Format1_01;   /* E2SM_KPM_IndicationHeader_Format1 */
978
static int hf_e2ap_colletStartTime;               /* T_colletStartTime */
979
static int hf_e2ap_fileFormatversion;             /* PrintableString_SIZE_0_15_ */
980
static int hf_e2ap_senderName;                    /* PrintableString_SIZE_0_400_ */
981
static int hf_e2ap_senderType;                    /* PrintableString_SIZE_0_8_ */
982
static int hf_e2ap_vendorName;                    /* PrintableString_SIZE_0_32_ */
983
static int hf_e2ap_indicationMessage_formats;     /* T_indicationMessage_formats */
984
static int hf_e2ap_indicationMessage_Format1_01;  /* E2SM_KPM_IndicationMessage_Format1 */
985
static int hf_e2ap_indicationMessage_Format2_01;  /* E2SM_KPM_IndicationMessage_Format2 */
986
static int hf_e2ap_indicationMessage_Format3_01;  /* E2SM_KPM_IndicationMessage_Format3 */
987
static int hf_e2ap_measData;                      /* MeasurementData */
988
static int hf_e2ap_measCondUEidList;              /* MeasurementCondUEidList */
989
static int hf_e2ap_ueMeasReportList;              /* UEMeasurementReportList */
990
static int hf_e2ap_ric_EventTriggerStyle_List_01;  /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item */
991
static int hf_e2ap_ric_EventTriggerStyle_List_item_01;  /* RIC_EventTriggerStyle_Item */
992
static int hf_e2ap_ric_ReportStyle_List_01;       /* SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item */
993
static int hf_e2ap_ric_ReportStyle_List_item_01;  /* RIC_ReportStyle_Item */
994
static int hf_e2ap_ric_ActionFormat_Type;         /* RIC_Format_Type */
995
static int hf_e2ap_measInfo_Action_List;          /* MeasurementInfo_Action_List */
996
static int hf_e2ap_eventDefinition_Format1_01;    /* E2SM_NI_EventTriggerDefinition_Format1 */
997
static int hf_e2ap_interface_type;                /* NI_Type */
998
static int hf_e2ap_interface_ID;                  /* NI_Identifier */
999
static int hf_e2ap_interfaceDirection;            /* NI_Direction */
1000
static int hf_e2ap_interfaceMessageType;          /* NI_MessageType */
1001
static int hf_e2ap_interfaceProtocolIE_List;      /* SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item */
1002
static int hf_e2ap_interfaceProtocolIE_List_item;  /* NI_ProtocolIE_Item */
1003
static int hf_e2ap_action_Definition_Format;      /* E2SM_NI_ActionDefinitionFormat */
1004
static int hf_e2ap_actionDefinition_Format1_02;   /* E2SM_NI_ActionDefinition_Format1 */
1005
static int hf_e2ap_actionDefinition_Format2_02;   /* E2SM_NI_ActionDefinition_Format2 */
1006
static int hf_e2ap_actionParameter_List;          /* SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item */
1007
static int hf_e2ap_actionParameter_List_item;     /* RANparameter_Item */
1008
static int hf_e2ap_ranUEgroup_List;               /* SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item */
1009
static int hf_e2ap_ranUEgroup_List_item;          /* RANueGroup_Item */
1010
static int hf_e2ap_indicationHeader_Format1_02;   /* E2SM_NI_IndicationHeader_Format1 */
1011
static int hf_e2ap_timestamp;                     /* NI_TimeStamp */
1012
static int hf_e2ap_indicationMessage_Format1_02;  /* E2SM_NI_IndicationMessage_Format1 */
1013
static int hf_e2ap_interfaceMessage;              /* NI_Message */
1014
static int hf_e2ap_callProcessID_Format1_01;      /* E2SM_NI_CallProcessID_Format1 */
1015
static int hf_e2ap_callProcessID_Format2;         /* E2SM_NI_CallProcessID_Format2 */
1016
static int hf_e2ap_callProcess_ID;                /* RANcallProcess_ID_number */
1017
static int hf_e2ap_callProcess_ID_format2;        /* RANcallProcess_ID_string */
1018
static int hf_e2ap_controlHeader_Format1_01;      /* E2SM_NI_ControlHeader_Format1 */
1019
static int hf_e2ap_interface_Direction;           /* NI_Direction */
1020
static int hf_e2ap_ric_Control_Message_Priority;  /* RIC_Control_Message_Priority */
1021
static int hf_e2ap_controlMessage_Format1_01;     /* E2SM_NI_ControlMessage_Format1 */
1022
static int hf_e2ap_controlOutcome_Format1_01;     /* E2SM_NI_ControlOutcome_Format1 */
1023
static int hf_e2ap_outcomeElement_List;           /* SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item */
1024
static int hf_e2ap_outcomeElement_List_item;      /* RANparameter_Item */
1025
static int hf_e2ap_ni_Type_List;                  /* SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item */
1026
static int hf_e2ap_ni_Type_List_item;             /* E2SM_NI_RANfunction_Item */
1027
static int hf_e2ap_ric_EventTriggerStyle_List_02;  /* SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List */
1028
static int hf_e2ap_ric_EventTriggerStyle_List_item_02;  /* RIC_EventTriggerStyle_List */
1029
static int hf_e2ap_ric_ReportStyle_List_02;       /* SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List */
1030
static int hf_e2ap_ric_ReportStyle_List_item_02;  /* RIC_ReportStyle_List */
1031
static int hf_e2ap_ric_InsertStyle_List_03;       /* SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List */
1032
static int hf_e2ap_ric_InsertStyle_List_item_03;  /* RIC_InsertStyle_List */
1033
static int hf_e2ap_ric_ControlStyle_List_03;      /* SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List */
1034
static int hf_e2ap_ric_ControlStyle_List_item_03;  /* RIC_ControlStyle_List */
1035
static int hf_e2ap_ric_PolicyStyle_List_01;       /* SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List */
1036
static int hf_e2ap_ric_PolicyStyle_List_item_01;  /* RIC_PolicyStyle_List */
1037
static int hf_e2ap_global_ng_RAN_ID;              /* Global_ng_RAN_ID */
1038
static int hf_e2ap_global_eNB_ID_01;              /* Global_eNB_ID */
1039
static int hf_e2ap_global_en_gNB_ID_01;           /* Global_en_gNB_ID */
1040
static int hf_e2ap_global_gNB_DU_ID;              /* Global_gNB_DU_ID */
1041
static int hf_e2ap_global_gNB_CU_UP_ID;           /* Global_gNB_CU_UP_ID */
1042
static int hf_e2ap_s1MessageType;                 /* NI_MessageTypeS1 */
1043
static int hf_e2ap_x2MessageType;                 /* NI_MessageTypeX2 */
1044
static int hf_e2ap_ngMessageType;                 /* NI_MessageTypeNG */
1045
static int hf_e2ap_xnMessageType;                 /* NI_MessageTypeXn */
1046
static int hf_e2ap_f1MessageType;                 /* NI_MessageTypeF1 */
1047
static int hf_e2ap_e1MessageType;                 /* NI_MessageTypeE1 */
1048
static int hf_e2ap_typeOfMessage;                 /* TypeOfMessage */
1049
static int hf_e2ap_interfaceProtocolIE_ID;        /* NI_ProtocolIE_ID */
1050
static int hf_e2ap_interfaceProtocolIE_Test;      /* NI_ProtocolIE_Test */
1051
static int hf_e2ap_interfaceProtocolIE_Value;     /* NI_ProtocolIE_Value */
1052
static int hf_e2ap_ranImperativePolicy_List;      /* SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item */
1053
static int hf_e2ap_ranImperativePolicy_List_item;  /* RANparameter_Item */
1054
static int hf_e2ap_ranParameter_ID_01;            /* RANparameter_ID */
1055
static int hf_e2ap_ranParameter_Value_01;         /* RANparameter_Value */
1056
static int hf_e2ap_ranParameter_Name;             /* RANparameter_Name */
1057
static int hf_e2ap_ranParameter_Type_01;          /* RANparameter_Type */
1058
static int hf_e2ap_ranUEgroupID;                  /* RANueGroupID */
1059
static int hf_e2ap_ranUEgroupDefinition;          /* RANueGroupDefinition */
1060
static int hf_e2ap_ranPolicy;                     /* RANimperativePolicy */
1061
static int hf_e2ap_ranUEgroupDef_List;            /* SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item */
1062
static int hf_e2ap_ranUEgroupDef_List_item;       /* RANueGroupDef_Item */
1063
static int hf_e2ap_ranParameter_Test;             /* RANparameter_Test_Condition */
1064
static int hf_e2ap_ric_ControlFormat_Type;        /* RIC_Format_Type */
1065
static int hf_e2ap_ric_ControlOutcomeRanParaDef_List;  /* SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item */
1066
static int hf_e2ap_ric_ControlOutcomeRanParaDef_List_item;  /* RANparameterDef_Item */
1067
static int hf_e2ap_ric_InsertActionFormat_Type;   /* RIC_Format_Type */
1068
static int hf_e2ap_ric_InsertRanParameterDef_List;  /* SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item */
1069
static int hf_e2ap_ric_InsertRanParameterDef_List_item;  /* RANparameterDef_Item */
1070
static int hf_e2ap_ric_PolicyActionFormat_Type;   /* RIC_Format_Type */
1071
static int hf_e2ap_ric_PolicyRanParameterDef_List;  /* SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item */
1072
static int hf_e2ap_ric_PolicyRanParameterDef_List_item;  /* RANparameterDef_Item */
1073
static int hf_e2ap_ric_ReportRanParameterDef_List;  /* SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item */
1074
static int hf_e2ap_ric_ReportRanParameterDef_List_item;  /* RANparameterDef_Item */
1075
1076
static int hf_e2ap_unmapped_ran_function_id;
1077
static int hf_e2ap_ran_function_name_not_recognised;
1078
static int hf_e2ap_ran_function_setup_frame;
1079
/* TODO: for each RAN Function, also link forward to where setup is referenced (if at all?).  Maybe just first usage? */
1080
1081
static int hf_e2ap_dissector_version;
1082
static int hf_e2ap_frame_version;
1083
1084
static int hf_e2ap_timestamp_string;
1085
1086
1087
/* Initialize the subtree pointers */
1088
static int ett_e2ap;
1089
1090
static expert_field ei_e2ap_ran_function_names_no_match;
1091
static expert_field ei_e2ap_ran_function_id_not_mapped;
1092
static expert_field ei_e2ap_ran_function_dissector_mismatch;
1093
static expert_field ei_e2ap_ran_function_max_dissectors_registered;
1094
1095
static int ett_e2ap_ProtocolIE_Container;
1096
static int ett_e2ap_ProtocolIE_Field;
1097
static int ett_e2ap_Cause;
1098
static int ett_e2ap_CriticalityDiagnostics;
1099
static int ett_e2ap_CriticalityDiagnostics_IE_List;
1100
static int ett_e2ap_CriticalityDiagnostics_IE_Item;
1101
static int ett_e2ap_E2nodeComponentConfiguration;
1102
static int ett_e2ap_E2nodeComponentConfigurationAck;
1103
static int ett_e2ap_E2nodeComponentID;
1104
static int ett_e2ap_E2nodeComponentInterfaceE1;
1105
static int ett_e2ap_E2nodeComponentInterfaceF1;
1106
static int ett_e2ap_E2nodeComponentInterfaceNG;
1107
static int ett_e2ap_E2nodeComponentInterfaceS1;
1108
static int ett_e2ap_E2nodeComponentInterfaceX2;
1109
static int ett_e2ap_E2nodeComponentInterfaceXn;
1110
static int ett_e2ap_E2nodeComponentInterfaceW1;
1111
static int ett_e2ap_ENB_ID;
1112
static int ett_e2ap_ENB_ID_Choice;
1113
static int ett_e2ap_ENGNB_ID;
1114
static int ett_e2ap_GlobalE2node_ID;
1115
static int ett_e2ap_GlobalE2node_en_gNB_ID;
1116
static int ett_e2ap_GlobalE2node_eNB_ID;
1117
static int ett_e2ap_GlobalE2node_gNB_ID;
1118
static int ett_e2ap_GlobalE2node_ng_eNB_ID;
1119
static int ett_e2ap_GlobalENB_ID;
1120
static int ett_e2ap_GlobalenGNB_ID;
1121
static int ett_e2ap_GlobalgNB_ID;
1122
static int ett_e2ap_GlobalngeNB_ID;
1123
static int ett_e2ap_GlobalNG_RANNode_ID;
1124
static int ett_e2ap_GlobalRIC_ID;
1125
static int ett_e2ap_GNB_ID_Choice;
1126
static int ett_e2ap_RICrequestID;
1127
static int ett_e2ap_RICsubsequentAction;
1128
static int ett_e2ap_TNLinformation;
1129
static int ett_e2ap_RICsubscriptionRequest;
1130
static int ett_e2ap_RICsubscriptionDetails;
1131
static int ett_e2ap_RICactions_ToBeSetup_List;
1132
static int ett_e2ap_RICaction_ToBeSetup_Item;
1133
static int ett_e2ap_RICsubscriptionResponse;
1134
static int ett_e2ap_RICaction_Admitted_List;
1135
static int ett_e2ap_RICaction_Admitted_Item;
1136
static int ett_e2ap_RICaction_NotAdmitted_List;
1137
static int ett_e2ap_RICaction_NotAdmitted_Item;
1138
static int ett_e2ap_RICsubscriptionFailure;
1139
static int ett_e2ap_RICsubscriptionDeleteRequest;
1140
static int ett_e2ap_RICsubscriptionDeleteResponse;
1141
static int ett_e2ap_RICsubscriptionDeleteFailure;
1142
static int ett_e2ap_RICsubscriptionDeleteRequired;
1143
static int ett_e2ap_RICsubscription_List_withCause;
1144
static int ett_e2ap_RICsubscription_withCause_Item;
1145
static int ett_e2ap_RICsubscriptionModificationRequest;
1146
static int ett_e2ap_RICactions_ToBeRemovedForModification_List;
1147
static int ett_e2ap_RICaction_ToBeRemovedForModification_Item;
1148
static int ett_e2ap_RICactions_ToBeModifiedForModification_List;
1149
static int ett_e2ap_RICaction_ToBeModifiedForModification_Item;
1150
static int ett_e2ap_RICactions_ToBeAddedForModification_List;
1151
static int ett_e2ap_RICaction_ToBeAddedForModification_Item;
1152
static int ett_e2ap_RICsubscriptionModificationResponse;
1153
static int ett_e2ap_RICactions_RemovedForModification_List;
1154
static int ett_e2ap_RICaction_RemovedForModification_Item;
1155
static int ett_e2ap_RICactions_FailedToBeRemovedForModification_List;
1156
static int ett_e2ap_RICaction_FailedToBeRemovedForModification_Item;
1157
static int ett_e2ap_RICactions_ModifiedForModification_List;
1158
static int ett_e2ap_RICaction_ModifiedForModification_Item;
1159
static int ett_e2ap_RICactions_FailedToBeModifiedForModification_List;
1160
static int ett_e2ap_RICaction_FailedToBeModifiedForModification_Item;
1161
static int ett_e2ap_RICactions_AddedForModification_List;
1162
static int ett_e2ap_RICaction_AddedForModification_Item;
1163
static int ett_e2ap_RICactions_FailedToBeAddedForModification_List;
1164
static int ett_e2ap_RICaction_FailedToBeAddedForModification_Item;
1165
static int ett_e2ap_RICsubscriptionModificationFailure;
1166
static int ett_e2ap_RICsubscriptionModificationRequired;
1167
static int ett_e2ap_RICactions_RequiredToBeModified_List;
1168
static int ett_e2ap_RICaction_RequiredToBeModified_Item;
1169
static int ett_e2ap_RICactions_RequiredToBeRemoved_List;
1170
static int ett_e2ap_RICaction_RequiredToBeRemoved_Item;
1171
static int ett_e2ap_RICsubscriptionModificationConfirm;
1172
static int ett_e2ap_RICactions_ConfirmedForModification_List;
1173
static int ett_e2ap_RICaction_ConfirmedForModification_Item;
1174
static int ett_e2ap_RICactions_RefusedToBeModified_List;
1175
static int ett_e2ap_RICaction_RefusedToBeModified_Item;
1176
static int ett_e2ap_RICactions_ConfirmedForRemoval_List;
1177
static int ett_e2ap_RICaction_ConfirmedForRemoval_Item;
1178
static int ett_e2ap_RICactions_RefusedToBeRemoved_List;
1179
static int ett_e2ap_RICaction_RefusedToBeRemoved_Item;
1180
static int ett_e2ap_RICsubscriptionModificationRefuse;
1181
static int ett_e2ap_RICindication;
1182
static int ett_e2ap_RICcontrolRequest;
1183
static int ett_e2ap_RICcontrolAcknowledge;
1184
static int ett_e2ap_RICcontrolFailure;
1185
static int ett_e2ap_RICQueryRequest;
1186
static int ett_e2ap_RICQueryResponse;
1187
static int ett_e2ap_RICQueryFailure;
1188
static int ett_e2ap_ErrorIndication;
1189
static int ett_e2ap_E2setupRequest;
1190
static int ett_e2ap_E2setupResponse;
1191
static int ett_e2ap_E2setupFailure;
1192
static int ett_e2ap_E2connectionUpdate;
1193
static int ett_e2ap_E2connectionUpdate_List;
1194
static int ett_e2ap_E2connectionUpdate_Item;
1195
static int ett_e2ap_E2connectionUpdateRemove_List;
1196
static int ett_e2ap_E2connectionUpdateRemove_Item;
1197
static int ett_e2ap_E2connectionUpdateAcknowledge;
1198
static int ett_e2ap_E2connectionSetupFailed_List;
1199
static int ett_e2ap_E2connectionSetupFailed_Item;
1200
static int ett_e2ap_E2connectionUpdateFailure;
1201
static int ett_e2ap_E2nodeConfigurationUpdate;
1202
static int ett_e2ap_E2nodeComponentConfigAddition_List;
1203
static int ett_e2ap_E2nodeComponentConfigAddition_Item;
1204
static int ett_e2ap_E2nodeComponentConfigUpdate_List;
1205
static int ett_e2ap_E2nodeComponentConfigUpdate_Item;
1206
static int ett_e2ap_E2nodeComponentConfigRemoval_List;
1207
static int ett_e2ap_E2nodeComponentConfigRemoval_Item;
1208
static int ett_e2ap_E2nodeTNLassociationRemoval_List;
1209
static int ett_e2ap_E2nodeTNLassociationRemoval_Item;
1210
static int ett_e2ap_E2nodeConfigurationUpdateAcknowledge;
1211
static int ett_e2ap_E2nodeComponentConfigAdditionAck_List;
1212
static int ett_e2ap_E2nodeComponentConfigAdditionAck_Item;
1213
static int ett_e2ap_E2nodeComponentConfigUpdateAck_List;
1214
static int ett_e2ap_E2nodeComponentConfigUpdateAck_Item;
1215
static int ett_e2ap_E2nodeComponentConfigRemovalAck_List;
1216
static int ett_e2ap_E2nodeComponentConfigRemovalAck_Item;
1217
static int ett_e2ap_E2nodeConfigurationUpdateFailure;
1218
static int ett_e2ap_ResetRequest;
1219
static int ett_e2ap_ResetResponse;
1220
static int ett_e2ap_RICserviceUpdate;
1221
static int ett_e2ap_RANfunctions_List;
1222
static int ett_e2ap_RANfunction_Item;
1223
static int ett_e2ap_RANfunctionsID_List;
1224
static int ett_e2ap_RANfunctionID_Item;
1225
static int ett_e2ap_RICserviceUpdateAcknowledge;
1226
static int ett_e2ap_RANfunctionsIDcause_List;
1227
static int ett_e2ap_RANfunctionIDcause_Item;
1228
static int ett_e2ap_RICserviceUpdateFailure;
1229
static int ett_e2ap_RICserviceQuery;
1230
static int ett_e2ap_E2RemovalRequest;
1231
static int ett_e2ap_E2RemovalResponse;
1232
static int ett_e2ap_E2RemovalFailure;
1233
static int ett_e2ap_E2AP_PDU;
1234
static int ett_e2ap_InitiatingMessage;
1235
static int ett_e2ap_SuccessfulOutcome;
1236
static int ett_e2ap_UnsuccessfulOutcome;
1237
static int ett_e2ap_CGI;
1238
static int ett_e2ap_InterfaceIdentifier;
1239
static int ett_e2ap_InterfaceID_NG;
1240
static int ett_e2ap_InterfaceID_Xn;
1241
static int ett_e2ap_InterfaceID_F1;
1242
static int ett_e2ap_InterfaceID_E1;
1243
static int ett_e2ap_InterfaceID_S1;
1244
static int ett_e2ap_InterfaceID_X2;
1245
static int ett_e2ap_T_nodeType;
1246
static int ett_e2ap_InterfaceID_W1;
1247
static int ett_e2ap_Interface_MessageID;
1248
static int ett_e2ap_RANfunction_Name;
1249
static int ett_e2ap_RRC_MessageID;
1250
static int ett_e2ap_T_rrcType;
1251
static int ett_e2ap_ServingCell_ARFCN;
1252
static int ett_e2ap_ServingCell_PCI;
1253
static int ett_e2ap_UEID;
1254
static int ett_e2ap_UEID_GNB;
1255
static int ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_List;
1256
static int ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_Item;
1257
static int ett_e2ap_UEID_GNB_CU_F1AP_ID_List;
1258
static int ett_e2ap_UEID_GNB_CU_CP_F1AP_ID_Item;
1259
static int ett_e2ap_UEID_GNB_DU;
1260
static int ett_e2ap_UEID_GNB_CU_UP;
1261
static int ett_e2ap_UEID_NG_ENB;
1262
static int ett_e2ap_UEID_NG_ENB_DU;
1263
static int ett_e2ap_UEID_EN_GNB;
1264
static int ett_e2ap_UEID_ENB;
1265
static int ett_e2ap_GUMMEI;
1266
static int ett_e2ap_EUTRA_CGI;
1267
static int ett_e2ap_GlobalGNB_ID;
1268
static int ett_e2ap_GlobalNgENB_ID;
1269
static int ett_e2ap_GNB_ID;
1270
static int ett_e2ap_GUAMI;
1271
static int ett_e2ap_NgENB_ID;
1272
static int ett_e2ap_NR_CGI;
1273
static int ett_e2ap_S_NSSAI;
1274
static int ett_e2ap_GlobalNGRANNodeID;
1275
static int ett_e2ap_NR_ARFCN;
1276
static int ett_e2ap_NRFrequencyBand_List;
1277
static int ett_e2ap_NRFrequencyBandItem;
1278
static int ett_e2ap_NRFrequencyInfo;
1279
static int ett_e2ap_SupportedSULBandList;
1280
static int ett_e2ap_SupportedSULFreqBandItem;
1281
static int ett_e2ap_NeighborCell_List;
1282
static int ett_e2ap_NeighborCell_Item;
1283
static int ett_e2ap_NeighborCell_Item_Choice_NR;
1284
static int ett_e2ap_NeighborCell_Item_Choice_E_UTRA;
1285
static int ett_e2ap_NeighborRelation_Info;
1286
static int ett_e2ap_EventTrigger_Cell_Info;
1287
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item;
1288
static int ett_e2ap_EventTrigger_Cell_Info_Item;
1289
static int ett_e2ap_T_cellType;
1290
static int ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual;
1291
static int ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Group;
1292
static int ett_e2ap_EventTrigger_UE_Info;
1293
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item;
1294
static int ett_e2ap_EventTrigger_UE_Info_Item;
1295
static int ett_e2ap_T_ueType;
1296
static int ett_e2ap_EventTrigger_UE_Info_Item_Choice_Individual;
1297
static int ett_e2ap_EventTrigger_UE_Info_Item_Choice_Group;
1298
static int ett_e2ap_EventTrigger_UEevent_Info;
1299
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item;
1300
static int ett_e2ap_EventTrigger_UEevent_Info_Item;
1301
static int ett_e2ap_RANParameter_Definition;
1302
static int ett_e2ap_RANParameter_Definition_Choice;
1303
static int ett_e2ap_RANParameter_Definition_Choice_LIST;
1304
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item;
1305
static int ett_e2ap_RANParameter_Definition_Choice_LIST_Item;
1306
static int ett_e2ap_RANParameter_Definition_Choice_STRUCTURE;
1307
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item;
1308
static int ett_e2ap_RANParameter_Definition_Choice_STRUCTURE_Item;
1309
static int ett_e2ap_RANParameter_Value;
1310
static int ett_e2ap_RANParameter_ValueType;
1311
static int ett_e2ap_RANParameter_ValueType_Choice_ElementTrue;
1312
static int ett_e2ap_RANParameter_ValueType_Choice_ElementFalse;
1313
static int ett_e2ap_RANParameter_ValueType_Choice_Structure;
1314
static int ett_e2ap_RANParameter_ValueType_Choice_List;
1315
static int ett_e2ap_RANParameter_STRUCTURE;
1316
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item;
1317
static int ett_e2ap_RANParameter_STRUCTURE_Item;
1318
static int ett_e2ap_RANParameter_LIST;
1319
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE;
1320
static int ett_e2ap_RANParameter_Testing;
1321
static int ett_e2ap_RANParameter_TestingCondition;
1322
static int ett_e2ap_RANParameter_Testing_Item;
1323
static int ett_e2ap_T_ranParameter_Type;
1324
static int ett_e2ap_RANParameter_Testing_Item_Choice_List;
1325
static int ett_e2ap_RANParameter_Testing_Item_Choice_Structure;
1326
static int ett_e2ap_RANParameter_Testing_Item_Choice_ElementTrue;
1327
static int ett_e2ap_RANParameter_Testing_Item_Choice_ElementFalse;
1328
static int ett_e2ap_RANParameter_Testing_LIST;
1329
static int ett_e2ap_RANParameter_Testing_STRUCTURE;
1330
static int ett_e2ap_RIC_PolicyAction;
1331
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item;
1332
static int ett_e2ap_RIC_PolicyAction_RANParameter_Item;
1333
static int ett_e2ap_E2SM_RC_EventTrigger;
1334
static int ett_e2ap_T_ric_eventTrigger_formats;
1335
static int ett_e2ap_E2SM_RC_EventTrigger_Format1;
1336
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item;
1337
static int ett_e2ap_E2SM_RC_EventTrigger_Format1_Item;
1338
static int ett_e2ap_MessageType_Choice;
1339
static int ett_e2ap_MessageType_Choice_NI;
1340
static int ett_e2ap_MessageType_Choice_RRC;
1341
static int ett_e2ap_E2SM_RC_EventTrigger_Format2;
1342
static int ett_e2ap_E2SM_RC_EventTrigger_Format3;
1343
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item;
1344
static int ett_e2ap_E2SM_RC_EventTrigger_Format3_Item;
1345
static int ett_e2ap_E2SM_RC_EventTrigger_Format4;
1346
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item;
1347
static int ett_e2ap_E2SM_RC_EventTrigger_Format4_Item;
1348
static int ett_e2ap_TriggerType_Choice;
1349
static int ett_e2ap_TriggerType_Choice_RRCstate;
1350
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item;
1351
static int ett_e2ap_TriggerType_Choice_RRCstate_Item;
1352
static int ett_e2ap_TriggerType_Choice_UEID;
1353
static int ett_e2ap_TriggerType_Choice_L2state;
1354
static int ett_e2ap_E2SM_RC_EventTrigger_Format5;
1355
static int ett_e2ap_E2SM_RC_ActionDefinition;
1356
static int ett_e2ap_T_ric_actionDefinition_formats;
1357
static int ett_e2ap_E2SM_RC_ActionDefinition_Format1;
1358
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item;
1359
static int ett_e2ap_E2SM_RC_ActionDefinition_Format1_Item;
1360
static int ett_e2ap_E2SM_RC_ActionDefinition_Format2;
1361
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item;
1362
static int ett_e2ap_E2SM_RC_ActionDefinition_Format2_Item;
1363
static int ett_e2ap_E2SM_RC_ActionDefinition_Format3;
1364
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item;
1365
static int ett_e2ap_E2SM_RC_ActionDefinition_Format3_Item;
1366
static int ett_e2ap_E2SM_RC_ActionDefinition_Format4;
1367
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item;
1368
static int ett_e2ap_E2SM_RC_ActionDefinition_Format4_Style_Item;
1369
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item;
1370
static int ett_e2ap_E2SM_RC_ActionDefinition_Format4_Indication_Item;
1371
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item;
1372
static int ett_e2ap_E2SM_RC_ActionDefinition_Format4_RANP_Item;
1373
static int ett_e2ap_E2SM_RC_IndicationHeader;
1374
static int ett_e2ap_T_ric_indicationHeader_formats;
1375
static int ett_e2ap_E2SM_RC_IndicationHeader_Format1;
1376
static int ett_e2ap_E2SM_RC_IndicationHeader_Format2;
1377
static int ett_e2ap_E2SM_RC_IndicationHeader_Format3;
1378
static int ett_e2ap_E2SM_RC_IndicationMessage;
1379
static int ett_e2ap_T_ric_indicationMessage_formats;
1380
static int ett_e2ap_E2SM_RC_IndicationMessage_Format1;
1381
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item;
1382
static int ett_e2ap_E2SM_RC_IndicationMessage_Format1_Item;
1383
static int ett_e2ap_E2SM_RC_IndicationMessage_Format2;
1384
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item;
1385
static int ett_e2ap_E2SM_RC_IndicationMessage_Format2_Item;
1386
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item;
1387
static int ett_e2ap_E2SM_RC_IndicationMessage_Format2_RANParameter_Item;
1388
static int ett_e2ap_E2SM_RC_IndicationMessage_Format3;
1389
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item;
1390
static int ett_e2ap_E2SM_RC_IndicationMessage_Format3_Item;
1391
static int ett_e2ap_E2SM_RC_IndicationMessage_Format4;
1392
static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE;
1393
static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell;
1394
static int ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemUE;
1395
static int ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemCell;
1396
static int ett_e2ap_E2SM_RC_IndicationMessage_Format5;
1397
static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item;
1398
static int ett_e2ap_E2SM_RC_IndicationMessage_Format5_Item;
1399
static int ett_e2ap_E2SM_RC_IndicationMessage_Format6;
1400
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item;
1401
static int ett_e2ap_E2SM_RC_IndicationMessage_Format6_Style_Item;
1402
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item;
1403
static int ett_e2ap_E2SM_RC_IndicationMessage_Format6_Indication_Item;
1404
static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item;
1405
static int ett_e2ap_E2SM_RC_IndicationMessage_Format6_RANP_Item;
1406
static int ett_e2ap_E2SM_RC_CallProcessID;
1407
static int ett_e2ap_T_ric_callProcessID_formats;
1408
static int ett_e2ap_E2SM_RC_CallProcessID_Format1;
1409
static int ett_e2ap_E2SM_RC_ControlHeader;
1410
static int ett_e2ap_T_ric_controlHeader_formats;
1411
static int ett_e2ap_E2SM_RC_ControlHeader_Format1;
1412
static int ett_e2ap_E2SM_RC_ControlHeader_Format2;
1413
static int ett_e2ap_E2SM_RC_ControlMessage;
1414
static int ett_e2ap_T_ric_controlMessage_formats;
1415
static int ett_e2ap_E2SM_RC_ControlMessage_Format1;
1416
static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item;
1417
static int ett_e2ap_E2SM_RC_ControlMessage_Format1_Item;
1418
static int ett_e2ap_E2SM_RC_ControlMessage_Format2;
1419
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item;
1420
static int ett_e2ap_E2SM_RC_ControlMessage_Format2_Style_Item;
1421
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item;
1422
static int ett_e2ap_E2SM_RC_ControlMessage_Format2_ControlAction_Item;
1423
static int ett_e2ap_E2SM_RC_ControlOutcome;
1424
static int ett_e2ap_T_ric_controlOutcome_formats;
1425
static int ett_e2ap_E2SM_RC_ControlOutcome_Format1;
1426
static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item;
1427
static int ett_e2ap_E2SM_RC_ControlOutcome_Format1_Item;
1428
static int ett_e2ap_E2SM_RC_ControlOutcome_Format2;
1429
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item;
1430
static int ett_e2ap_E2SM_RC_ControlOutcome_Format2_Style_Item;
1431
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
1432
static int ett_e2ap_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
1433
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item;
1434
static int ett_e2ap_E2SM_RC_ControlOutcome_Format2_RANP_Item;
1435
static int ett_e2ap_E2SM_RC_ControlOutcome_Format3;
1436
static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item;
1437
static int ett_e2ap_E2SM_RC_ControlOutcome_Format3_Item;
1438
static int ett_e2ap_E2SM_RC_RANFunctionDefinition;
1439
static int ett_e2ap_RANFunctionDefinition_EventTrigger;
1440
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item;
1441
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item;
1442
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item;
1443
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item;
1444
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item;
1445
static int ett_e2ap_RANFunctionDefinition_EventTrigger_Style_Item;
1446
static int ett_e2ap_L2Parameters_RANParameter_Item;
1447
static int ett_e2ap_UEIdentification_RANParameter_Item;
1448
static int ett_e2ap_CellIdentification_RANParameter_Item;
1449
static int ett_e2ap_RANFunctionDefinition_EventTrigger_CallProcess_Item;
1450
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item;
1451
static int ett_e2ap_RANFunctionDefinition_EventTrigger_Breakpoint_Item;
1452
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item;
1453
static int ett_e2ap_CallProcessBreakpoint_RANParameter_Item;
1454
static int ett_e2ap_RANFunctionDefinition_Report;
1455
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item;
1456
static int ett_e2ap_RANFunctionDefinition_Report_Item;
1457
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item;
1458
static int ett_e2ap_Report_RANParameter_Item;
1459
static int ett_e2ap_RANFunctionDefinition_Insert;
1460
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item;
1461
static int ett_e2ap_RANFunctionDefinition_Insert_Item;
1462
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item;
1463
static int ett_e2ap_RANFunctionDefinition_Insert_Indication_Item;
1464
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item;
1465
static int ett_e2ap_InsertIndication_RANParameter_Item;
1466
static int ett_e2ap_RANFunctionDefinition_Control;
1467
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item;
1468
static int ett_e2ap_RANFunctionDefinition_Control_Item;
1469
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item;
1470
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item;
1471
static int ett_e2ap_ControlOutcome_RANParameter_Item;
1472
static int ett_e2ap_RANFunctionDefinition_Control_Action_Item;
1473
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item;
1474
static int ett_e2ap_ControlAction_RANParameter_Item;
1475
static int ett_e2ap_RANFunctionDefinition_Policy;
1476
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item;
1477
static int ett_e2ap_RANFunctionDefinition_Policy_Item;
1478
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item;
1479
static int ett_e2ap_RANFunctionDefinition_Policy_Action_Item;
1480
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item;
1481
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item;
1482
static int ett_e2ap_PolicyAction_RANParameter_Item;
1483
static int ett_e2ap_PolicyCondition_RANParameter_Item;
1484
static int ett_e2ap_BinRangeValue;
1485
static int ett_e2ap_MeasurementType;
1486
static int ett_e2ap_MeasurementLabel;
1487
static int ett_e2ap_TestCondInfo;
1488
static int ett_e2ap_TestCond_Type;
1489
static int ett_e2ap_TestCond_Value;
1490
static int ett_e2ap_BinRangeDefinition;
1491
static int ett_e2ap_BinRangeList;
1492
static int ett_e2ap_BinRangeItem;
1493
static int ett_e2ap_DistMeasurementBinRangeList;
1494
static int ett_e2ap_DistMeasurementBinRangeItem;
1495
static int ett_e2ap_MeasurementInfoList;
1496
static int ett_e2ap_MeasurementInfoItem;
1497
static int ett_e2ap_LabelInfoList;
1498
static int ett_e2ap_LabelInfoItem;
1499
static int ett_e2ap_MeasurementData;
1500
static int ett_e2ap_MeasurementDataItem;
1501
static int ett_e2ap_MeasurementRecord;
1502
static int ett_e2ap_MeasurementRecordItem;
1503
static int ett_e2ap_MeasurementInfo_Action_List;
1504
static int ett_e2ap_MeasurementInfo_Action_Item;
1505
static int ett_e2ap_MeasurementCondList;
1506
static int ett_e2ap_MeasurementCondItem;
1507
static int ett_e2ap_MeasurementCondUEidList;
1508
static int ett_e2ap_MeasurementCondUEidItem;
1509
static int ett_e2ap_MatchingCondList;
1510
static int ett_e2ap_MatchingCondItem;
1511
static int ett_e2ap_MatchingCondItem_Choice;
1512
static int ett_e2ap_MatchingUEidList;
1513
static int ett_e2ap_MatchingUEidItem;
1514
static int ett_e2ap_MatchingUEidPerGP;
1515
static int ett_e2ap_MatchingUEidPerGP_Item;
1516
static int ett_e2ap_T_matchedPerGP;
1517
static int ett_e2ap_MatchingUEidList_PerGP;
1518
static int ett_e2ap_MatchingUEidItem_PerGP;
1519
static int ett_e2ap_MatchingUeCondPerSubList;
1520
static int ett_e2ap_MatchingUeCondPerSubItem;
1521
static int ett_e2ap_MatchingUEidPerSubList;
1522
static int ett_e2ap_MatchingUEidPerSubItem;
1523
static int ett_e2ap_UEMeasurementReportList;
1524
static int ett_e2ap_UEMeasurementReportItem;
1525
static int ett_e2ap_E2SM_KPM_EventTriggerDefinition;
1526
static int ett_e2ap_T_eventDefinition_formats;
1527
static int ett_e2ap_E2SM_KPM_EventTriggerDefinition_Format1;
1528
static int ett_e2ap_E2SM_KPM_ActionDefinition;
1529
static int ett_e2ap_T_actionDefinition_formats;
1530
static int ett_e2ap_E2SM_KPM_ActionDefinition_Format1;
1531
static int ett_e2ap_E2SM_KPM_ActionDefinition_Format2;
1532
static int ett_e2ap_E2SM_KPM_ActionDefinition_Format3;
1533
static int ett_e2ap_E2SM_KPM_ActionDefinition_Format4;
1534
static int ett_e2ap_E2SM_KPM_ActionDefinition_Format5;
1535
static int ett_e2ap_E2SM_KPM_IndicationHeader;
1536
static int ett_e2ap_T_indicationHeader_formats;
1537
static int ett_e2ap_E2SM_KPM_IndicationHeader_Format1;
1538
static int ett_e2ap_E2SM_KPM_IndicationMessage;
1539
static int ett_e2ap_T_indicationMessage_formats;
1540
static int ett_e2ap_E2SM_KPM_IndicationMessage_Format1;
1541
static int ett_e2ap_E2SM_KPM_IndicationMessage_Format2;
1542
static int ett_e2ap_E2SM_KPM_IndicationMessage_Format3;
1543
static int ett_e2ap_E2SM_KPM_RANfunction_Description;
1544
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item;
1545
static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item;
1546
static int ett_e2ap_RIC_EventTriggerStyle_Item;
1547
static int ett_e2ap_RIC_ReportStyle_Item;
1548
static int ett_e2ap_E2SM_NI_EventTriggerDefinition;
1549
static int ett_e2ap_E2SM_NI_EventTriggerDefinition_Format1;
1550
static int ett_e2ap_SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item;
1551
static int ett_e2ap_E2SM_NI_ActionDefinition;
1552
static int ett_e2ap_E2SM_NI_ActionDefinitionFormat;
1553
static int ett_e2ap_E2SM_NI_ActionDefinition_Format1;
1554
static int ett_e2ap_SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item;
1555
static int ett_e2ap_E2SM_NI_ActionDefinition_Format2;
1556
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item;
1557
static int ett_e2ap_E2SM_NI_IndicationHeader;
1558
static int ett_e2ap_E2SM_NI_IndicationHeader_Format1;
1559
static int ett_e2ap_E2SM_NI_IndicationMessage;
1560
static int ett_e2ap_E2SM_NI_IndicationMessage_Format1;
1561
static int ett_e2ap_E2SM_NI_CallProcessID;
1562
static int ett_e2ap_E2SM_NI_CallProcessID_Format1;
1563
static int ett_e2ap_E2SM_NI_CallProcessID_Format2;
1564
static int ett_e2ap_E2SM_NI_ControlHeader;
1565
static int ett_e2ap_E2SM_NI_ControlHeader_Format1;
1566
static int ett_e2ap_E2SM_NI_ControlMessage;
1567
static int ett_e2ap_E2SM_NI_ControlMessage_Format1;
1568
static int ett_e2ap_E2SM_NI_ControlOutcome;
1569
static int ett_e2ap_E2SM_NI_ControlOutcome_Format1;
1570
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item;
1571
static int ett_e2ap_E2SM_NI_RANfunction_Description;
1572
static int ett_e2ap_SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item;
1573
static int ett_e2ap_E2SM_NI_RANfunction_Item;
1574
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List;
1575
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List;
1576
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List;
1577
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List;
1578
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List;
1579
static int ett_e2ap_Global_gNB_DU_ID;
1580
static int ett_e2ap_Global_gNB_CU_UP_ID;
1581
static int ett_e2ap_NI_Identifier;
1582
static int ett_e2ap_NI_MessageType;
1583
static int ett_e2ap_NI_MessageTypeApproach1;
1584
static int ett_e2ap_NI_ProtocolIE_Item;
1585
static int ett_e2ap_NI_ProtocolIE_Value;
1586
static int ett_e2ap_RANimperativePolicy;
1587
static int ett_e2ap_RANparameter_Item;
1588
static int ett_e2ap_RANparameterDef_Item;
1589
static int ett_e2ap_RANparameter_Value;
1590
static int ett_e2ap_RANueGroup_Item;
1591
static int ett_e2ap_RANueGroupDefinition;
1592
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item;
1593
static int ett_e2ap_RANueGroupDef_Item;
1594
static int ett_e2ap_RIC_ControlStyle_List;
1595
static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item;
1596
static int ett_e2ap_RIC_EventTriggerStyle_List;
1597
static int ett_e2ap_RIC_InsertStyle_List;
1598
static int ett_e2ap_RIC_PolicyStyle_List;
1599
static int ett_e2ap_RIC_ReportStyle_List;
1600
1601
1602
/* Forward declarations */
1603
static unsigned dissect_e2ap_RANfunction_Name(tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1604
1605
1606
static int dissect_E2SM_KPM_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1607
static int dissect_E2SM_KPM_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1608
static int dissect_E2SM_KPM_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1609
static int dissect_E2SM_KPM_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1610
static int dissect_E2SM_KPM_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1611
1612
static int dissect_E2SM_RC_EventTrigger_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1613
static int dissect_E2SM_RC_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1614
static int dissect_E2SM_RC_RANFunctionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1615
static int dissect_E2SM_RC_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1616
static int dissect_E2SM_RC_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1617
static int dissect_E2SM_RC_CallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1618
static int dissect_E2SM_RC_ControlHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1619
static int dissect_E2SM_RC_ControlMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1620
static int dissect_E2SM_RC_ControlOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1621
1622
static int dissect_E2SM_NI_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1623
static int dissect_E2SM_NI_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1624
static int dissect_E2SM_NI_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1625
static int dissect_E2SM_NI_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1626
static int dissect_E2SM_NI_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1627
static int dissect_E2SM_NI_CallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1628
static int dissect_E2SM_NI_ControlHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1629
static int dissect_E2SM_NI_ControlMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1630
static int dissect_E2SM_NI_ControlOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
1631
1632
enum {
1633
  INITIATING_MESSAGE,
1634
  SUCCESSFUL_OUTCOME,
1635
  UNSUCCESSFUL_OUTCOME
1636
};
1637
1638
1639
/* E2AP stats - Tap interface */
1640
1641
static void set_stats_message_type(packet_info *pinfo, int type);
1642
1643
static const char * const st_str_packets      = "Total Packets";
1644
static const char * const st_str_packet_types = "E2AP Packet Types";
1645
1646
static int st_node_packets = -1;
1647
static int st_node_packet_types = -1;
1648
static int e2ap_tap;
1649
1650
struct e2ap_tap_t {
1651
    int e2ap_mtype;
1652
};
1653
1654
0
#define MTYPE_E2_CONNECTION_UPDATE             1
1655
0
#define MTYPE_E2_CONNECTION_UPDATE_ACK         2
1656
0
#define MTYPE_E2_CONNECTION_UPDATE_FAIL        3
1657
0
#define MTYPE_E2_CONFIGURATION_UPDATE          4
1658
0
#define MTYPE_E2_CONFIGURATION_UPDATE_ACK      5
1659
0
#define MTYPE_E2_CONFIGURATION_UPDATE_FAIL     6
1660
0
#define MTYPE_E2_SETUP_FAIL                    7
1661
14
#define MTYPE_E2_SETUP_REQUEST                 8
1662
0
#define MTYPE_E2_SETUP_RESPONSE                9
1663
4
#define MTYPE_ERROR_INDICATION                 10
1664
12
#define MTYPE_RESET_REQUEST                    11
1665
4
#define MTYPE_RESET_RESPONSE                   12
1666
2
#define MTYPE_RIC_CONTROL_ACK                  13
1667
34
#define MTYPE_RIC_CONTROL_FAIL                 14
1668
20
#define MTYPE_RIC_CONTROL_REQUEST              15
1669
42
#define MTYPE_RIC_IND                          16
1670
8
#define MTYPE_RIC_SERVICE_QUERY                17
1671
0
#define MTYPE_RIC_SERVICE_UPDATE               18
1672
0
#define MTYPE_RIC_SERVICE_UPDATE_ACK           19
1673
0
#define MTYPE_RIC_SERVICE_UPDATE_FAIL          20
1674
0
#define MTYPE_RIC_SUBSCRIPTION_FAIL            21
1675
0
#define MTYPE_RIC_SUBSCRIPTION_REQUEST         22
1676
0
#define MTYPE_RIC_SUBSCRIPTION_RESPONSE        23
1677
2
#define MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL     24
1678
0
#define MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST  25
1679
0
#define MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE 26
1680
0
#define MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED 27
1681
2
#define MTYPE_RIC_QUERY_REQUEST                28
1682
0
#define MTYPE_RIC_QUERY_RESPONSE               29
1683
0
#define MTYPE_RIC_QUERY_FAILURE                30
1684
1685
/* Value Strings. TODO: ext? */
1686
static const value_string mtype_names[] = {
1687
    { MTYPE_E2_CONNECTION_UPDATE,                "E2connectionUpdate"},
1688
    { MTYPE_E2_CONNECTION_UPDATE_ACK,            "E2connectionUpdateAcknowledge"},
1689
    { MTYPE_E2_CONNECTION_UPDATE_FAIL,           "E2connectionUpdateFailure"},
1690
    { MTYPE_E2_CONFIGURATION_UPDATE,             "E2nodeConfigurationUpdate"},
1691
    { MTYPE_E2_CONFIGURATION_UPDATE_ACK,         "E2nodeConfigurationUpdateAcknowledge"},
1692
    { MTYPE_E2_CONFIGURATION_UPDATE_FAIL,        "E2nodeConfigurationUpdateFailure"},
1693
    { MTYPE_E2_SETUP_FAIL,                       "E2setupFailure"},
1694
    { MTYPE_E2_SETUP_REQUEST,                    "E2setupRequest"},
1695
    { MTYPE_E2_SETUP_RESPONSE,                   "E2setupResponse"},
1696
    { MTYPE_ERROR_INDICATION,                    "ErrorIndication"},
1697
    { MTYPE_RESET_REQUEST,                       "ResetRequest"},
1698
    { MTYPE_RESET_RESPONSE,                      "ResetResponse"},
1699
    { MTYPE_RIC_CONTROL_ACK,                     "RICcontrolAcknowledge"},
1700
    { MTYPE_RIC_CONTROL_FAIL,                    "RICcontrolFailure"},
1701
    { MTYPE_RIC_CONTROL_REQUEST,                 "RICcontrolRequest"},
1702
    { MTYPE_RIC_IND,                             "RICindication"},
1703
    { MTYPE_RIC_SERVICE_QUERY,                   "RICserviceQuery"},
1704
    { MTYPE_RIC_SERVICE_UPDATE,                  "RICserviceUpdate"},
1705
    { MTYPE_RIC_SERVICE_UPDATE_ACK,              "RICserviceUpdateAcknowledge"},
1706
    { MTYPE_RIC_SERVICE_UPDATE_FAIL,             "RICserviceUpdateFailure"},
1707
    { MTYPE_RIC_SUBSCRIPTION_FAIL,               "RICsubscriptionFailure"},
1708
    { MTYPE_RIC_SUBSCRIPTION_REQUEST,            "RICsubscriptionRequest"},
1709
    { MTYPE_RIC_SUBSCRIPTION_RESPONSE,           "RICsubscriptionResponse"},
1710
    { MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL,        "RICsubscriptionDeleteFailure"},
1711
    { MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST,     "RICsubscriptionDeleteRequest"},
1712
    { MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE,    "RICsubscriptionDeleteResponse"},
1713
    { MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED,    "RICsubscriptionDeleteRequired"},
1714
    { MTYPE_RIC_QUERY_REQUEST,                   "RICQueryRequest"},
1715
    { MTYPE_RIC_QUERY_RESPONSE,                  "RICQueryResponse"},
1716
    { MTYPE_RIC_QUERY_FAILURE,                   "RICQueryFailure"},
1717
    { 0,  NULL }
1718
};
1719
1720
/* Temporary private info to remember while dissecting frame */
1721
struct e2ap_private_data {
1722
  uint32_t procedure_code;
1723
  uint32_t protocol_ie_id;
1724
  uint32_t message_type;
1725
1726
  uint32_t ran_function_id;
1727
  uint32_t gnb_id_len;
1728
#define MAX_GNB_ID_BYTES 6
1729
  uint8_t gnb_id_bytes[MAX_GNB_ID_BYTES];
1730
  dissector_handle_t component_configuration_dissector;
1731
  struct e2ap_tap_t *stats_tap;
1732
  proto_tree *top_tree;
1733
};
1734
1735
/* Lookup temporary private info */
1736
static struct e2ap_private_data*
1737
e2ap_get_private_data(packet_info *pinfo)
1738
2.00k
{
1739
2.00k
  struct e2ap_private_data *e2ap_data = (struct e2ap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_e2ap, 0);
1740
2.00k
  if (!e2ap_data) {
1741
84
    e2ap_data = wmem_new0(pinfo->pool, struct e2ap_private_data);
1742
84
    p_add_proto_data(pinfo->pool, pinfo, proto_e2ap, 0, e2ap_data);
1743
84
  }
1744
2.00k
  return e2ap_data;
1745
2.00k
}
1746
1747
static void set_message_label(asn1_ctx_t *actx, int type)
1748
72
{
1749
72
  struct e2ap_private_data *priv_data = e2ap_get_private_data(actx->pinfo);
1750
72
  const char *label = val_to_str_const(type, mtype_names, "Unknown");
1751
72
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, label);
1752
72
  proto_item_append_text(priv_data->top_tree, " (%s)", label);
1753
72
}
1754
1755
/****************************************************************************************************************/
1756
/* These are the strings that we look for at the beginning of RAN Function Description to identify RAN Function */
1757
/* Static table mapping from string -> ran_function */
1758
static const char* const g_ran_function_name_table[MAX_RANFUNCTIONS] =
1759
{
1760
    "ORAN-E2SM-KPM",
1761
    "ORAN-E2SM-RC",
1762
    "ORAN-E2SM-NI",
1763
    "{",              /* For now, CCC is the only JSON-based RAN Function, so just match opening */
1764
    "ORAN-E2SM-LLC"
1765
};
1766
1767
1768
1769
/* Per-conversation mapping: ranFunctionId -> ran_function+dissector */
1770
typedef struct {
1771
    uint32_t                       setup_frame;
1772
    uint32_t                       ran_function_id;
1773
    ran_function_t                 ran_function;
1774
    char                           oid[MAX_OID_LEN];       // i.e., OID from setupRequest
1775
    const ran_function_dissector_t *dissector;
1776
} ran_function_id_mapping_t;
1777
1778
typedef struct  {
1779
5
#define MAX_RANFUNCTION_ENTRIES 8
1780
    uint32_t                  num_entries;
1781
    ran_function_id_mapping_t entries[MAX_RANFUNCTION_ENTRIES];
1782
} ran_functionid_table_t;
1783
1784
static const char *ran_function_to_str(ran_function_t ran_function)
1785
0
{
1786
0
    switch (ran_function) {
1787
0
        case KPM_RANFUNCTIONS:
1788
0
            return "KPM";
1789
0
        case RC_RANFUNCTIONS:
1790
0
            return "RC";
1791
0
        case NI_RANFUNCTIONS:
1792
0
            return "NI";
1793
0
        case CCC_RANFUNCTIONS:
1794
0
            return "CCC";
1795
0
        case LLC_RANFUNCTIONS:
1796
0
            return "LLC";
1797
1798
0
        default:
1799
0
            return "Unknown";
1800
0
    }
1801
0
}
1802
1803
/* Table of RAN Function tables, indexed by gnbId (bytes) */
1804
typedef struct {
1805
1
#define MAX_GNBS 6
1806
    uint32_t num_gnbs;
1807
    struct {
1808
        uint8_t id_value[MAX_GNB_ID_BYTES];
1809
        uint32_t id_len;
1810
        ran_functionid_table_t *ran_function_table;
1811
    } gnb[MAX_GNBS];
1812
} gnb_ran_functions_t;
1813
1814
static gnb_ran_functions_t s_gnb_ran_functions_table;
1815
1816
1817
/* Table of available dissectors for each RAN function */
1818
typedef struct {
1819
    uint32_t                        num_available_dissectors;
1820
176
#define MAX_DISSECTORS_PER_RAN_FUNCTION 8
1821
    const ran_function_dissector_t* ran_function_dissectors[MAX_DISSECTORS_PER_RAN_FUNCTION];
1822
} ran_function_available_dissectors_t;
1823
1824
/* Available dissectors should be set here */
1825
static ran_function_available_dissectors_t g_ran_functions_available_dissectors[MAX_RANFUNCTIONS];
1826
1827
/* Will be called from outside this file by separate dissectors */
1828
void register_e2ap_ran_function_dissector(ran_function_t ran_function, const ran_function_dissector_t *dissector)
1829
176
{
1830
176
    if ((ran_function >= MIN_RANFUNCTIONS) && (ran_function < MAX_RANFUNCTIONS)) {
1831
176
        ran_function_available_dissectors_t *available_dissectors = &g_ran_functions_available_dissectors[ran_function];
1832
176
        if (available_dissectors->num_available_dissectors < MAX_DISSECTORS_PER_RAN_FUNCTION) {
1833
176
            available_dissectors->ran_function_dissectors[available_dissectors->num_available_dissectors++] = dissector;
1834
176
        }
1835
176
    }
1836
176
}
1837
1838
1839
/* Get RANfunctionID table from conversation data - create new if necessary */
1840
static ran_functionid_table_t* get_ran_functionid_table(packet_info *pinfo)
1841
24
{
1842
24
    conversation_t *p_conv;
1843
24
    ran_functionid_table_t *p_conv_data = NULL;
1844
1845
    /* Lookup conversation */
1846
24
    p_conv = find_conversation(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
1847
24
                               conversation_pt_to_endpoint_type(pinfo->ptype),
1848
24
                               pinfo->destport, pinfo->srcport, 0);
1849
24
    if (!p_conv) {
1850
        /* None, so create new data and set */
1851
5
        p_conv = conversation_new(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
1852
5
                                  conversation_pt_to_endpoint_type(pinfo->ptype),
1853
5
                                  pinfo->destport, pinfo->srcport, 0);
1854
5
        p_conv_data = (ran_functionid_table_t*)wmem_new0(wmem_file_scope(), ran_functionid_table_t);
1855
5
        conversation_add_proto_data(p_conv, proto_e2ap, p_conv_data);
1856
5
    }
1857
19
    else {
1858
        /* Will return existing conversation data */
1859
19
        p_conv_data = (ran_functionid_table_t*)conversation_get_proto_data(p_conv, proto_e2ap);
1860
19
    }
1861
1862
24
    return p_conv_data;
1863
24
}
1864
1865
1866
/* Store new RANfunctionID -> Service Model mapping in table */
1867
void e2ap_store_ran_function_mapping(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, const char *name)
1868
5
{
1869
5
    struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
1870
5
    ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
1871
1872
    /* Need these pointers not to be NULL */
1873
5
    if (!name || !table) {
1874
0
      return;
1875
0
    }
1876
1877
    /* Stop if already reached table limit */
1878
5
    if (table->num_entries == MAX_RANFUNCTION_ENTRIES) {
1879
0
        proto_tree_add_expert_format(tree, pinfo, &ei_e2ap_ran_function_max_dissectors_registered,
1880
0
                                     tvb, 0, 0,
1881
0
                                     "Dissector wants to register for %s, but max (%u) already reached",
1882
0
                                     name, MAX_RANFUNCTION_ENTRIES);
1883
0
        return;
1884
0
    }
1885
1886
5
    uint32_t ran_function_id = e2ap_data->ran_function_id;
1887
1888
5
    ran_function_t                 ran_function = MAX_RANFUNCTIONS;  /* i.e. invalid */
1889
5
    const ran_function_dissector_t *ran_function_dissector = NULL;
1890
1891
    /* Check known RAN function names */
1892
20
    for (int n=MIN_RANFUNCTIONS; n < MAX_RANFUNCTIONS; n++) {
1893
20
        if (strcmp(name, g_ran_function_name_table[n]) == 0) {
1894
5
            ran_function = n;
1895
1896
            /* Don't know OID yet, so for now, just choose first/only one */
1897
            /* TODO: is latest one likely to be more compatible? First fields (at least) come from E2SM.. */
1898
5
            if (g_ran_functions_available_dissectors[n].num_available_dissectors) {
1899
5
                ran_function_dissector = g_ran_functions_available_dissectors[n].ran_function_dissectors[0];
1900
5
            }
1901
5
            break;
1902
5
        }
1903
20
    }
1904
1905
    /* Nothing to do if no matches */
1906
5
    if (ran_function == MAX_RANFUNCTIONS) {
1907
0
        return;
1908
0
    }
1909
1910
    /* If ID already mapped, can stop here */
1911
7
    for (unsigned n=0; n < table->num_entries; n++) {
1912
4
        if (table->entries[n].ran_function_id == ran_function_id) {
1913
2
            return;
1914
2
        }
1915
4
    }
1916
1917
    /* OK, store this new entry */
1918
3
    unsigned idx = table->num_entries++;
1919
3
    table->entries[idx].setup_frame = pinfo->num;
1920
3
    table->entries[idx].ran_function_id = ran_function_id;
1921
3
    table->entries[idx].ran_function = ran_function;
1922
3
    table->entries[idx].dissector = ran_function_dissector;
1923
1924
    /* When add first entry, also want to set up table from gnbId -> table */
1925
3
    if (idx == 0) {
1926
2
        unsigned id_len = e2ap_data->gnb_id_len;
1927
2
        uint8_t *id_value = &e2ap_data->gnb_id_bytes[0];
1928
1929
2
        bool found = false;
1930
2
        for (unsigned n=0; n<s_gnb_ran_functions_table.num_gnbs; n++) {
1931
1
            if ((s_gnb_ran_functions_table.gnb[n].id_len == id_len) &&
1932
1
                (memcmp(s_gnb_ran_functions_table.gnb[n].id_value, id_value, id_len) == 0)) {
1933
                /* Already have an entry for this gnb. */
1934
1
                found = true;
1935
1
                break;
1936
1
            }
1937
1
        }
1938
1939
2
        if (!found) {
1940
            /* Add entry (if room for 1 more) */
1941
1
            uint32_t new_idx = s_gnb_ran_functions_table.num_gnbs;
1942
1
            if (new_idx < MAX_GNBS-1) {
1943
1
                s_gnb_ran_functions_table.gnb[new_idx].id_len = id_len;
1944
1
                memcpy(s_gnb_ran_functions_table.gnb[new_idx].id_value, id_value, id_len);
1945
1
                s_gnb_ran_functions_table.gnb[new_idx].ran_function_table = table;
1946
1947
1
                s_gnb_ran_functions_table.num_gnbs++;
1948
1
            }
1949
1
        }
1950
2
    }
1951
3
}
1952
1953
/* Look for Service Model function pointers, based on current RANFunctionID from frame */
1954
static const ran_function_dissector_t* lookup_ranfunction_dissector(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb)
1955
10
{
1956
    /* Get ranFunctionID from this frame */
1957
10
    struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
1958
10
    unsigned ran_function_id = e2ap_data->ran_function_id;
1959
1960
    /* Get ranFunction table corresponding to this frame's conversation */
1961
10
    ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
1962
10
    if (!table) {
1963
        /* There is no ran function table associated with this frame's conversation info */
1964
1
        return NULL;
1965
1
    }
1966
1967
    /* Find the entry in this table corresponding to ran_function_id */
1968
15
    for (unsigned n=0; n < table->num_entries; n++) {
1969
6
        if (ran_function_id == table->entries[n].ran_function_id) {
1970
0
            if (tree) {
1971
                /* Point back at the setup frame where this ranfunction was mapped */
1972
0
                proto_item *ti = proto_tree_add_uint(tree, hf_e2ap_ran_function_setup_frame,
1973
0
                                                     tvb, 0, 0, table->entries[n].setup_frame);
1974
                /* Show that mapping */
1975
0
                proto_item_append_text(ti, " (%u -> %s)", table->entries[n].ran_function_id, ran_function_to_str(table->entries[n].ran_function));
1976
0
                proto_item_set_generated(ti);
1977
1978
                /* Also take the chance to compare signalled and available dissector */
1979
0
                char *frame_version = oid_resolved_from_string(pinfo->pool, table->entries[n].oid);
1980
0
                ti = proto_tree_add_string(tree, hf_e2ap_frame_version, tvb, 0, 0, frame_version);
1981
0
                proto_item_set_generated(ti);
1982
1983
                /* N.B. in case of RC, this won't work! Would also be nice to include minor_version, but string wouldn't match */
1984
0
                char dissector_version[16];
1985
0
                snprintf(dissector_version, 16, "%s v%u",
1986
0
                         ran_function_to_str(table->entries[n].ran_function),
1987
0
                         table->entries[n].dissector->major_version);
1988
0
                ti = proto_tree_add_string(tree, hf_e2ap_dissector_version, tvb, 0, 0, dissector_version);
1989
0
                proto_item_set_generated(ti);
1990
1991
0
                if ((table->entries[n].ran_function != RC_RANFUNCTIONS) && (strcmp(frame_version, dissector_version) != 0)) {
1992
                    /* Expert info for version mismatch!  Have given up on RC though... */
1993
0
                    expert_add_info_format(pinfo, ti, &ei_e2ap_ran_function_dissector_mismatch,
1994
0
                                           "Dissector version mismatch - frame is %s but dissector is %s",
1995
0
                                           frame_version, dissector_version);
1996
0
                }
1997
0
            }
1998
1999
            /* Return the dissector */
2000
0
            return table->entries[n].dissector;
2001
0
        }
2002
6
    }
2003
2004
9
    if (tree) {
2005
        /* No match found.. */
2006
9
        proto_item *ti = proto_tree_add_item(tree, hf_e2ap_unmapped_ran_function_id, tvb, 0, 0, ENC_NA);
2007
9
        expert_add_info_format(pinfo, ti, &ei_e2ap_ran_function_id_not_mapped,
2008
9
                               "Service Model not mapped for FunctionID %u", ran_function_id);
2009
9
    }
2010
2011
9
    return NULL;
2012
9
}
2013
2014
/* Return the oid associated with this frame's conversation */
2015
static char* lookup_ranfunction_oid(packet_info *pinfo)
2016
2
{
2017
    /* Get ranFunctionID from this frame */
2018
2
    struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
2019
2
    unsigned ran_function_id = e2ap_data->ran_function_id;
2020
2021
    /* Get ranFunction table corresponding to this frame's conversation */
2022
2
    ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
2023
2
    if (!table) {
2024
        /* There is no ran function table associated with this frame's conversation info */
2025
0
        return NULL;
2026
0
    }
2027
2028
    /* Find the entry in this table corresponding to ran_function_id */
2029
4
    for (unsigned n=0; n < table->num_entries; n++) {
2030
4
        if (ran_function_id == table->entries[n].ran_function_id) {
2031
2
            return (char*)(table->entries[n].oid);
2032
2
        }
2033
4
    }
2034
2035
    /* Not found */
2036
0
    return NULL;
2037
2
}
2038
2039
2040
/* We now know the OID - can we set a dissector that is an exact match from what has been signalled? */
2041
static void update_dissector_using_oid(packet_info *pinfo, ran_function_t ran_function)
2042
2
{
2043
2
    char *frame_oid = lookup_ranfunction_oid(pinfo);
2044
2
    if (frame_oid == NULL) {
2045
        /* TODO: error? */
2046
0
        return;
2047
0
    }
2048
2049
2
    bool found = false;
2050
2051
    /* Look at available dissectors for this RAN function */
2052
2
    ran_function_available_dissectors_t *available = &g_ran_functions_available_dissectors[ran_function];
2053
2
    if (!available->num_available_dissectors) {
2054
        /* Oops - none available at all! */
2055
0
        return;
2056
0
    }
2057
2058
    /* Get mapping in use */
2059
2
    struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
2060
2
    unsigned ran_function_id = e2ap_data->ran_function_id;
2061
2
    ran_function_id_mapping_t *mapping = NULL;
2062
2
    ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
2063
2
    if (!table) {
2064
0
        return;
2065
0
    }
2066
2067
    /* Find the entry in this table corresponding to ran_function_id */
2068
6
    for (unsigned n=0; n < table->num_entries; n++) {
2069
4
        if (ran_function_id == table->entries[n].ran_function_id) {
2070
2
            mapping = &(table->entries[n]);
2071
2
        }
2072
4
    }
2073
2074
2
    if (!mapping) {
2075
0
        return;
2076
0
    }
2077
2078
    /* Set dissector pointer in ran_function_id_mapping_t */
2079
2
    if (ran_function != RC_RANFUNCTIONS) {
2080
12
        for (uint32_t n=0; n < available->num_available_dissectors; n++) {
2081
            /* If exact match, set it */
2082
10
            if (strcmp(frame_oid, available->ran_function_dissectors[n]->oid) == 0) {
2083
0
                mapping->dissector = available->ran_function_dissectors[n];
2084
0
                found = true;
2085
0
                break;
2086
0
            }
2087
10
        }
2088
2
    }
2089
0
    else {
2090
        /* Special case for RC, which doesn't differentiate versions by OID. Lookup preference instead */
2091
0
        for (uint32_t n=0; n < available->num_available_dissectors; n++) {
2092
0
            if (available->ran_function_dissectors[n]->major_version == e2ap_rc_version_pref_choice) {
2093
0
                mapping->dissector = available->ran_function_dissectors[n];
2094
0
                found = true;
2095
0
                break;
2096
0
            }
2097
0
        }
2098
2099
0
    }
2100
2101
    /* If not exact match, just set to first one available (TODO: closest above better?) */
2102
2
    if (!found) {
2103
2
        mapping->dissector = available->ran_function_dissectors[0];
2104
2
    }
2105
2
}
2106
2107
2108
/* Update RANfunctionID -> Service Model mapping in table (now that we know OID) */
2109
void e2ap_update_ran_function_mapping(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, const char *oid)
2110
5
{
2111
    /* Copy OID into table entry (so may be used to choose and be compared with chosen available dissector */
2112
5
    struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
2113
5
    ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
2114
    /* Make sure we have private and table data to compare */
2115
5
    if (!e2ap_data || !table) {
2116
0
        return;
2117
0
    }
2118
5
    ran_function_t ran_function = MAX_RANFUNCTIONS;
2119
13
    for (unsigned n=0; n < table->num_entries; n++) {
2120
8
        if (e2ap_data->ran_function_id == table->entries[n].ran_function_id) {
2121
2
            ran_function = table->entries[n].ran_function;
2122
2
            if (!PINFO_FD_VISITED(pinfo)) {
2123
2
                (void) g_strlcpy(table->entries[n].oid, oid, MAX_OID_LEN);
2124
2
            }
2125
2
        }
2126
8
    }
2127
2128
    /* Look up version from oid and show as generated field */
2129
5
    char *version = oid_resolved_from_string(pinfo->pool, oid);
2130
5
    proto_item *ti = proto_tree_add_string(tree, hf_e2ap_frame_version, tvb, 0, 0, version);
2131
5
    proto_item_set_generated(ti);
2132
2133
    /* Can now pick most appropriate dissector for this RAN Function name, based upon this OID and the available dissectors */
2134
5
    if (ran_function < MAX_RANFUNCTIONS) {
2135
2
        if (!PINFO_FD_VISITED(pinfo)) {
2136
2
            update_dissector_using_oid(pinfo, ran_function);
2137
2
        }
2138
2
    }
2139
5
}
2140
2141
/* This will get used for E2nodeConfigurationUpdate, where we have a gnb-id but haven't seen E2setupRequest */
2142
static void update_conversation_from_gnb_id(asn1_ctx_t *actx)
2143
3
{
2144
3
    packet_info *pinfo = actx->pinfo;
2145
3
    struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
2146
2147
    /* Look for conversation data */
2148
3
    conversation_t *p_conv;
2149
3
    ran_functionid_table_t *p_conv_data = NULL;
2150
2151
    /* Lookup conversation */
2152
3
    p_conv = find_conversation(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
2153
3
                               conversation_pt_to_endpoint_type(pinfo->ptype),
2154
3
                               pinfo->destport, pinfo->srcport, 0);
2155
2156
3
    if (!p_conv) {
2157
        /* None, so create new data and set */
2158
1
        p_conv = conversation_new(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
2159
1
                                  conversation_pt_to_endpoint_type(pinfo->ptype),
2160
1
                                  pinfo->destport, pinfo->srcport, 0);
2161
1
        p_conv_data = (ran_functionid_table_t*)wmem_new0(wmem_file_scope(), ran_functionid_table_t);
2162
1
        conversation_add_proto_data(p_conv, proto_e2ap, p_conv_data);
2163
2164
        /* Look to see if we already know about the mappings in effect on this gNB */
2165
1
        unsigned id_len = e2ap_data->gnb_id_len;
2166
1
        uint8_t *id_value = &e2ap_data->gnb_id_bytes[0];
2167
2168
2
        for (unsigned n=0; n<s_gnb_ran_functions_table.num_gnbs; n++) {
2169
1
            if ((s_gnb_ran_functions_table.gnb[n].id_len == id_len) &&
2170
0
                (memcmp(s_gnb_ran_functions_table.gnb[n].id_value, id_value, id_len) == 0)) {
2171
2172
                /* Have an entry for this gnb.  Set direct pointer to existing data (used by original conversation). */
2173
                /* N.B. This means that no further updates for the gNB are expected on different conversations.. */
2174
0
                p_conv_data = s_gnb_ran_functions_table.gnb[n].ran_function_table;
2175
0
                conversation_add_proto_data(p_conv, proto_e2ap, p_conv_data);
2176
2177
                /* TODO: may want to try to add a generated field to pass back to E2setupRequest where RAN function mappings were first seen? */
2178
0
                break;
2179
0
            }
2180
1
        }
2181
1
    }
2182
3
}
2183
2184
static dissector_handle_t json_handle;
2185
2186
static int dissect_E2SM_NI_JSON_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2187
5
{
2188
    /* Send to JSON dissector */
2189
5
    return call_dissector_only(json_handle, tvb, pinfo, tree, NULL);
2190
5
}
2191
2192
2193
/* Dissector tables */
2194
static dissector_table_t e2ap_ies_dissector_table;
2195
2196
static dissector_table_t e2ap_extension_dissector_table;
2197
static dissector_table_t e2ap_proc_imsg_dissector_table;
2198
static dissector_table_t e2ap_proc_sout_dissector_table;
2199
static dissector_table_t e2ap_proc_uout_dissector_table;
2200
static dissector_table_t e2ap_n2_ie_type_dissector_table;
2201
2202
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
2203
2204
/* Currently not used
2205
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
2206
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
2207
*/
2208
2209
2210
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
2211
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
2212
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
2213
2214
2215
/*--- Cyclic dependencies ---*/
2216
2217
/* ProtocolIE-Field/value -> ProtocolIE-Field/value */
2218
static unsigned dissect_e2ap_T_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2219
2220
/* InitiatingMessage/value -> InitiatingMessage/value */
2221
static unsigned dissect_e2ap_InitiatingMessage_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2222
2223
/* SuccessfulOutcome/value -> SuccessfulOutcome/value */
2224
static unsigned dissect_e2ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2225
2226
/* UnsuccessfulOutcome/value -> UnsuccessfulOutcome/value */
2227
static unsigned dissect_e2ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2228
2229
/* RANParameter-Testing-Item -> RANParameter-Testing-Item/ranParameter-Type -> RANParameter-Testing-Item-Choice-List -> RANParameter-Testing-LIST -> RANParameter-Testing-Item */
2230
/* RANParameter-Testing-Item -> RANParameter-Testing-Item/ranParameter-Type -> RANParameter-Testing-Item-Choice-Structure -> RANParameter-Testing-STRUCTURE -> RANParameter-Testing-Item */
2231
static unsigned dissect_e2ap_RANParameter_Testing_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2232
2233
/* RANParameter-Definition -> RANParameter-Definition-Choice -> RANParameter-Definition-Choice-LIST -> RANParameter-Definition-Choice-LIST/ranParameter-List -> RANParameter-Definition-Choice-LIST-Item -> RANParameter-Definition */
2234
/* RANParameter-Definition -> RANParameter-Definition-Choice -> RANParameter-Definition-Choice-STRUCTURE -> RANParameter-Definition-Choice-STRUCTURE/ranParameter-STRUCTURE -> RANParameter-Definition-Choice-STRUCTURE-Item -> RANParameter-Definition */
2235
static unsigned dissect_e2ap_RANParameter_Definition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2236
2237
/* RANParameter-ValueType -> RANParameter-ValueType-Choice-Structure -> RANParameter-STRUCTURE -> RANParameter-STRUCTURE/sequence-of-ranParameters -> RANParameter-STRUCTURE-Item -> RANParameter-ValueType */
2238
static unsigned dissect_e2ap_RANParameter_ValueType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2239
2240
2241
2242
static const value_string e2ap_Criticality_vals[] = {
2243
  {   0, "reject" },
2244
  {   1, "ignore" },
2245
  {   2, "notify" },
2246
  { 0, NULL }
2247
};
2248
2249
2250
static unsigned
2251
1.13k
dissect_e2ap_Criticality(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2252
1.13k
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2253
1.13k
                                     3, NULL, false, 0, NULL);
2254
2255
1.13k
  return offset;
2256
1.13k
}
2257
2258
2259
static const value_string e2ap_ProcedureCode_vals[] = {
2260
  { id_E2setup, "id-E2setup" },
2261
  { id_ErrorIndication, "id-ErrorIndication" },
2262
  { id_Reset, "id-Reset" },
2263
  { id_RICcontrol, "id-RICcontrol" },
2264
  { id_RICindication, "id-RICindication" },
2265
  { id_RICserviceQuery, "id-RICserviceQuery" },
2266
  { id_RICserviceUpdate, "id-RICserviceUpdate" },
2267
  { id_RICsubscription, "id-RICsubscription" },
2268
  { id_RICsubscriptionDelete, "id-RICsubscriptionDelete" },
2269
  { id_E2nodeConfigurationUpdate, "id-E2nodeConfigurationUpdate" },
2270
  { id_E2connectionUpdate, "id-E2connectionUpdate" },
2271
  { id_RICsubscriptionDeleteRequired, "id-RICsubscriptionDeleteRequired" },
2272
  { id_E2removal, "id-E2removal" },
2273
  { id_RICsubscriptionModification, "id-RICsubscriptionModification" },
2274
  { id_RICsubscriptionModificationRequired, "id-RICsubscriptionModificationRequired" },
2275
  { id_RICquery, "id-RICquery" },
2276
  { 0, NULL }
2277
};
2278
2279
static value_string_ext e2ap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(e2ap_ProcedureCode_vals);
2280
2281
2282
static unsigned
2283
87
dissect_e2ap_ProcedureCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2284
87
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
2285
87
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2286
87
                                                            0U, 255U, &e2ap_data->procedure_code, false);
2287
2288
  //col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s", val_to_str(actx->pinfo->pool, e2ap_data->procedure_code, e2ap_ProcedureCode_vals, "Unknown"));
2289
2290
87
  return offset;
2291
87
}
2292
2293
2294
static const value_string e2ap_ProtocolIE_ID_vals[] = {
2295
  { id_Cause, "id-Cause" },
2296
  { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
2297
  { id_GlobalE2node_ID, "id-GlobalE2node-ID" },
2298
  { id_GlobalRIC_ID, "id-GlobalRIC-ID" },
2299
  { id_RANfunctionID, "id-RANfunctionID" },
2300
  { id_RANfunctionID_Item, "id-RANfunctionID-Item" },
2301
  { id_RANfunctionIEcause_Item, "id-RANfunctionIEcause-Item" },
2302
  { id_RANfunction_Item, "id-RANfunction-Item" },
2303
  { id_RANfunctionsAccepted, "id-RANfunctionsAccepted" },
2304
  { id_RANfunctionsAdded, "id-RANfunctionsAdded" },
2305
  { id_RANfunctionsDeleted, "id-RANfunctionsDeleted" },
2306
  { id_RANfunctionsModified, "id-RANfunctionsModified" },
2307
  { id_RANfunctionsRejected, "id-RANfunctionsRejected" },
2308
  { id_RICaction_Admitted_Item, "id-RICaction-Admitted-Item" },
2309
  { id_RICactionID, "id-RICactionID" },
2310
  { id_RICaction_NotAdmitted_Item, "id-RICaction-NotAdmitted-Item" },
2311
  { id_RICactions_Admitted, "id-RICactions-Admitted" },
2312
  { id_RICactions_NotAdmitted, "id-RICactions-NotAdmitted" },
2313
  { id_RICaction_ToBeSetup_Item, "id-RICaction-ToBeSetup-Item" },
2314
  { id_RICcallProcessID, "id-RICcallProcessID" },
2315
  { id_RICcontrolAckRequest, "id-RICcontrolAckRequest" },
2316
  { id_RICcontrolHeader, "id-RICcontrolHeader" },
2317
  { id_RICcontrolMessage, "id-RICcontrolMessage" },
2318
  { id_RICcontrolStatus, "id-RICcontrolStatus" },
2319
  { id_RICindicationHeader, "id-RICindicationHeader" },
2320
  { id_RICindicationMessage, "id-RICindicationMessage" },
2321
  { id_RICindicationSN, "id-RICindicationSN" },
2322
  { id_RICindicationType, "id-RICindicationType" },
2323
  { id_RICrequestID, "id-RICrequestID" },
2324
  { id_RICsubscriptionDetails, "id-RICsubscriptionDetails" },
2325
  { id_TimeToWait, "id-TimeToWait" },
2326
  { id_RICcontrolOutcome, "id-RICcontrolOutcome" },
2327
  { id_E2nodeComponentConfigUpdate, "id-E2nodeComponentConfigUpdate" },
2328
  { id_E2nodeComponentConfigUpdate_Item, "id-E2nodeComponentConfigUpdate-Item" },
2329
  { id_E2nodeComponentConfigUpdateAck, "id-E2nodeComponentConfigUpdateAck" },
2330
  { id_E2nodeComponentConfigUpdateAck_Item, "id-E2nodeComponentConfigUpdateAck-Item" },
2331
  { id_E2connectionSetup, "id-E2connectionSetup" },
2332
  { id_E2connectionSetupFailed, "id-E2connectionSetupFailed" },
2333
  { id_E2connectionSetupFailed_Item, "id-E2connectionSetupFailed-Item" },
2334
  { id_E2connectionFailed_Item, "id-E2connectionFailed-Item" },
2335
  { id_E2connectionUpdate_Item, "id-E2connectionUpdate-Item" },
2336
  { id_E2connectionUpdateAdd, "id-E2connectionUpdateAdd" },
2337
  { id_E2connectionUpdateModify, "id-E2connectionUpdateModify" },
2338
  { id_E2connectionUpdateRemove, "id-E2connectionUpdateRemove" },
2339
  { id_E2connectionUpdateRemove_Item, "id-E2connectionUpdateRemove-Item" },
2340
  { id_TNLinformation, "id-TNLinformation" },
2341
  { id_TransactionID, "id-TransactionID" },
2342
  { id_E2nodeComponentConfigAddition, "id-E2nodeComponentConfigAddition" },
2343
  { id_E2nodeComponentConfigAddition_Item, "id-E2nodeComponentConfigAddition-Item" },
2344
  { id_E2nodeComponentConfigAdditionAck, "id-E2nodeComponentConfigAdditionAck" },
2345
  { id_E2nodeComponentConfigAdditionAck_Item, "id-E2nodeComponentConfigAdditionAck-Item" },
2346
  { id_E2nodeComponentConfigRemoval, "id-E2nodeComponentConfigRemoval" },
2347
  { id_E2nodeComponentConfigRemoval_Item, "id-E2nodeComponentConfigRemoval-Item" },
2348
  { id_E2nodeComponentConfigRemovalAck, "id-E2nodeComponentConfigRemovalAck" },
2349
  { id_E2nodeComponentConfigRemovalAck_Item, "id-E2nodeComponentConfigRemovalAck-Item" },
2350
  { id_E2nodeTNLassociationRemoval, "id-E2nodeTNLassociationRemoval" },
2351
  { id_E2nodeTNLassociationRemoval_Item, "id-E2nodeTNLassociationRemoval-Item" },
2352
  { id_RICsubscriptionToBeRemoved, "id-RICsubscriptionToBeRemoved" },
2353
  { id_RICsubscription_withCause_Item, "id-RICsubscription-withCause-Item" },
2354
  { id_RICsubscriptionStartTime, "id-RICsubscriptionStartTime" },
2355
  { id_RICsubscriptionEndTime, "id-RICsubscriptionEndTime" },
2356
  { id_RICeventTriggerDefinitionToBeModified, "id-RICeventTriggerDefinitionToBeModified" },
2357
  { id_RICactionsToBeRemovedForModification_List, "id-RICactionsToBeRemovedForModification-List" },
2358
  { id_RICaction_ToBeRemovedForModification_Item, "id-RICaction-ToBeRemovedForModification-Item" },
2359
  { id_RICactionsToBeModifiedForModification_List, "id-RICactionsToBeModifiedForModification-List" },
2360
  { id_RICaction_ToBeModifiedForModification_Item, "id-RICaction-ToBeModifiedForModification-Item" },
2361
  { id_RICactionsToBeAddedForModification_List, "id-RICactionsToBeAddedForModification-List" },
2362
  { id_RICaction_ToBeAddedForModification_Item, "id-RICaction-ToBeAddedForModification-Item" },
2363
  { id_RICactionsRemovedForModification_List, "id-RICactionsRemovedForModification-List" },
2364
  { id_RICaction_RemovedForModification_Item, "id-RICaction-RemovedForModification-Item" },
2365
  { id_RICactionsFailedToBeRemovedForModification_List, "id-RICactionsFailedToBeRemovedForModification-List" },
2366
  { id_RICaction_FailedToBeRemovedForModification_Item, "id-RICaction-FailedToBeRemovedForModification-Item" },
2367
  { id_RICactionsModifiedForModification_List, "id-RICactionsModifiedForModification-List" },
2368
  { id_RICaction_ModifiedForModification_Item, "id-RICaction-ModifiedForModification-Item" },
2369
  { id_RICactionsFailedToBeModifiedForModification_List, "id-RICactionsFailedToBeModifiedForModification-List" },
2370
  { id_RICaction_FailedToBeModifiedForModification_Item, "id-RICaction-FailedToBeModifiedForModification-Item" },
2371
  { id_RICactionsAddedForModification_List, "id-RICactionsAddedForModification-List" },
2372
  { id_RICaction_AddedForModification_Item, "id-RICaction-AddedForModification-Item" },
2373
  { id_RICactionsFailedToBeAddedForModification_List, "id-RICactionsFailedToBeAddedForModification-List" },
2374
  { id_RICaction_FailedToBeAddedForModification_Item, "id-RICaction-FailedToBeAddedForModification-Item" },
2375
  { id_RICactionsRequiredToBeModified_List, "id-RICactionsRequiredToBeModified-List" },
2376
  { id_RICaction_RequiredToBeModified_Item, "id-RICaction-RequiredToBeModified-Item" },
2377
  { id_RICactionsRequiredToBeRemoved_List, "id-RICactionsRequiredToBeRemoved-List" },
2378
  { id_RICaction_RequiredToBeRemoved_Item, "id-RICaction-RequiredToBeRemoved-Item" },
2379
  { id_RICactionsConfirmedForModification_List, "id-RICactionsConfirmedForModification-List" },
2380
  { id_RICaction_ConfirmedForModification_Item, "id-RICaction-ConfirmedForModification-Item" },
2381
  { id_RICactionsRefusedToBeModified_List, "id-RICactionsRefusedToBeModified-List" },
2382
  { id_RICaction_RefusedToBeModified_Item, "id-RICaction-RefusedToBeModified-Item" },
2383
  { id_RICactionsConfirmedForRemoval_List, "id-RICactionsConfirmedForRemoval-List" },
2384
  { id_RICaction_ConfirmedForRemoval_Item, "id-RICaction-ConfirmedForRemoval-Item" },
2385
  { id_RICactionsRefusedToBeRemoved_List, "id-RICactionsRefusedToBeRemoved-List" },
2386
  { id_RICaction_RefusedToBeRemoved_Item, "id-RICaction-RefusedToBeRemoved-Item" },
2387
  { id_RICqueryHeader, "id-RICqueryHeader" },
2388
  { id_RICqueryDefinition, "id-RICqueryDefinition" },
2389
  { id_RICqueryOutcome, "id-RICqueryOutcome" },
2390
  { 0, NULL }
2391
};
2392
2393
static value_string_ext e2ap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(e2ap_ProtocolIE_ID_vals);
2394
2395
2396
static unsigned
2397
1.04k
dissect_e2ap_ProtocolIE_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2398
1.04k
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
2399
1.04k
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2400
1.04k
                                                            0U, 65535U, &e2ap_data->protocol_ie_id, false);
2401
2402
2403
2404
1.04k
  if (tree) {
2405
1.04k
    proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
2406
1.04k
                           val_to_str_ext(actx->pinfo->pool, e2ap_data->protocol_ie_id, &e2ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
2407
1.04k
  }
2408
1.04k
  return offset;
2409
1.04k
}
2410
2411
2412
static const value_string e2ap_TriggeringMessage_vals[] = {
2413
  {   0, "initiating-message" },
2414
  {   1, "successful-outcome" },
2415
  {   2, "unsuccessfull-outcome" },
2416
  { 0, NULL }
2417
};
2418
2419
2420
static unsigned
2421
3
dissect_e2ap_TriggeringMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2422
3
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2423
3
                                     3, NULL, false, 0, NULL);
2424
2425
3
  return offset;
2426
3
}
2427
2428
2429
2430
static unsigned
2431
1.00k
dissect_e2ap_T_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2432
  // ProtocolIE-Field/value -> ProtocolIE-Field/value
2433
1.00k
  increment_dissection_depth_by_n(actx->pinfo, 1);
2434
1.00k
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue);
2435
2436
1.00k
  decrement_dissection_depth_by_n(actx->pinfo, 1);
2437
1.00k
  return offset;
2438
1.00k
}
2439
2440
2441
static const per_sequence_t ProtocolIE_Field_sequence[] = {
2442
  { &hf_e2ap_id             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_ID },
2443
  { &hf_e2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_Criticality },
2444
  { &hf_e2ap_value          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_T_value },
2445
  { NULL, 0, 0, NULL }
2446
};
2447
2448
static unsigned
2449
1.07k
dissect_e2ap_ProtocolIE_Field(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2450
1.07k
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2451
1.07k
                                   ett_e2ap_ProtocolIE_Field, ProtocolIE_Field_sequence);
2452
2453
1.07k
  return offset;
2454
1.07k
}
2455
2456
2457
static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
2458
  { &hf_e2ap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Field },
2459
};
2460
2461
static unsigned
2462
79
dissect_e2ap_ProtocolIE_Container(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2463
79
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2464
79
                                                  ett_e2ap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
2465
79
                                                  0, maxProtocolIEs, false);
2466
2467
79
  return offset;
2468
79
}
2469
2470
2471
2472
static unsigned
2473
168
dissect_e2ap_ProtocolIE_SingleContainer(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2474
168
  offset = dissect_e2ap_ProtocolIE_Field(tvb, offset, actx, tree, hf_index);
2475
2476
168
  return offset;
2477
168
}
2478
2479
2480
2481
static unsigned
2482
2
dissect_e2ap_AMFName(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2483
2
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
2484
2
                                          1, 150, true,
2485
2
                                          NULL);
2486
2487
2
  return offset;
2488
2
}
2489
2490
2491
static const value_string e2ap_CauseRICrequest_vals[] = {
2492
  {   0, "ran-function-id-invalid" },
2493
  {   1, "action-not-supported" },
2494
  {   2, "excessive-actions" },
2495
  {   3, "duplicate-action" },
2496
  {   4, "duplicate-event-trigger" },
2497
  {   5, "function-resource-limit" },
2498
  {   6, "request-id-unknown" },
2499
  {   7, "inconsistent-action-subsequent-action-sequence" },
2500
  {   8, "control-message-invalid" },
2501
  {   9, "ric-call-process-id-invalid" },
2502
  {  10, "control-timer-expired" },
2503
  {  11, "control-failed-to-execute" },
2504
  {  12, "system-not-ready" },
2505
  {  13, "unspecified" },
2506
  {  14, "ric-subscription-end-time-expired" },
2507
  {  15, "ric-subscription-end-time-invalid" },
2508
  {  16, "duplicate-ric-request-id" },
2509
  {  17, "eventTriggerNotSupported" },
2510
  {  18, "requested-information-unavailable" },
2511
  {  19, "invalid-information-request" },
2512
  { 0, NULL }
2513
};
2514
2515
2516
static unsigned
2517
23
dissect_e2ap_CauseRICrequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2518
23
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2519
23
                                     14, NULL, true, 6, NULL);
2520
2521
23
  return offset;
2522
23
}
2523
2524
2525
static const value_string e2ap_CauseRICservice_vals[] = {
2526
  {   0, "ran-function-not-supported" },
2527
  {   1, "excessive-functions" },
2528
  {   2, "ric-resource-limit" },
2529
  { 0, NULL }
2530
};
2531
2532
2533
static unsigned
2534
1
dissect_e2ap_CauseRICservice(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2535
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2536
1
                                     3, NULL, true, 0, NULL);
2537
2538
1
  return offset;
2539
1
}
2540
2541
2542
static const value_string e2ap_CauseE2node_vals[] = {
2543
  {   0, "e2node-component-unknown" },
2544
  { 0, NULL }
2545
};
2546
2547
2548
static unsigned
2549
1
dissect_e2ap_CauseE2node(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2550
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2551
1
                                     1, NULL, true, 0, NULL);
2552
2553
1
  return offset;
2554
1
}
2555
2556
2557
static const value_string e2ap_CauseTransport_vals[] = {
2558
  {   0, "unspecified" },
2559
  {   1, "transport-resource-unavailable" },
2560
  { 0, NULL }
2561
};
2562
2563
2564
static unsigned
2565
1
dissect_e2ap_CauseTransport(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2566
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2567
1
                                     2, NULL, true, 0, NULL);
2568
2569
1
  return offset;
2570
1
}
2571
2572
2573
static const value_string e2ap_CauseProtocol_vals[] = {
2574
  {   0, "transfer-syntax-error" },
2575
  {   1, "abstract-syntax-error-reject" },
2576
  {   2, "abstract-syntax-error-ignore-and-notify" },
2577
  {   3, "message-not-compatible-with-receiver-state" },
2578
  {   4, "semantic-error" },
2579
  {   5, "abstract-syntax-error-falsely-constructed-message" },
2580
  {   6, "unspecified" },
2581
  { 0, NULL }
2582
};
2583
2584
2585
static unsigned
2586
1
dissect_e2ap_CauseProtocol(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2587
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2588
1
                                     7, NULL, true, 0, NULL);
2589
2590
1
  return offset;
2591
1
}
2592
2593
2594
static const value_string e2ap_CauseMisc_vals[] = {
2595
  {   0, "control-processing-overload" },
2596
  {   1, "hardware-failure" },
2597
  {   2, "om-intervention" },
2598
  {   3, "unspecified" },
2599
  { 0, NULL }
2600
};
2601
2602
2603
static unsigned
2604
0
dissect_e2ap_CauseMisc(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2605
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2606
0
                                     4, NULL, true, 0, NULL);
2607
2608
0
  return offset;
2609
0
}
2610
2611
2612
static const value_string e2ap_Cause_vals[] = {
2613
  {   0, "ricRequest" },
2614
  {   1, "ricService" },
2615
  {   2, "e2Node" },
2616
  {   3, "transport" },
2617
  {   4, "protocol" },
2618
  {   5, "misc" },
2619
  { 0, NULL }
2620
};
2621
2622
static const per_choice_t Cause_choice[] = {
2623
  {   0, &hf_e2ap_ricRequest     , ASN1_EXTENSION_ROOT    , dissect_e2ap_CauseRICrequest },
2624
  {   1, &hf_e2ap_ricService     , ASN1_EXTENSION_ROOT    , dissect_e2ap_CauseRICservice },
2625
  {   2, &hf_e2ap_e2Node         , ASN1_EXTENSION_ROOT    , dissect_e2ap_CauseE2node },
2626
  {   3, &hf_e2ap_transport      , ASN1_EXTENSION_ROOT    , dissect_e2ap_CauseTransport },
2627
  {   4, &hf_e2ap_protocol       , ASN1_EXTENSION_ROOT    , dissect_e2ap_CauseProtocol },
2628
  {   5, &hf_e2ap_misc           , ASN1_EXTENSION_ROOT    , dissect_e2ap_CauseMisc },
2629
  { 0, NULL, 0, NULL }
2630
};
2631
2632
static unsigned
2633
31
dissect_e2ap_Cause(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2634
31
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2635
31
                                 ett_e2ap_Cause, Cause_choice,
2636
31
                                 NULL);
2637
2638
31
  return offset;
2639
31
}
2640
2641
2642
2643
static unsigned
2644
37
dissect_e2ap_INTEGER_0_65535(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2645
37
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2646
37
                                                            0U, 65535U, NULL, false);
2647
2648
37
  return offset;
2649
37
}
2650
2651
2652
static const per_sequence_t RICrequestID_sequence[] = {
2653
  { &hf_e2ap_ricRequestorID_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_0_65535 },
2654
  { &hf_e2ap_ricInstanceID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_0_65535 },
2655
  { NULL, 0, 0, NULL }
2656
};
2657
2658
static unsigned
2659
19
dissect_e2ap_RICrequestID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2660
19
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2661
19
                                   ett_e2ap_RICrequestID, RICrequestID_sequence);
2662
2663
19
  return offset;
2664
19
}
2665
2666
2667
static const value_string e2ap_TypeOfError_vals[] = {
2668
  {   0, "not-understood" },
2669
  {   1, "missing" },
2670
  { 0, NULL }
2671
};
2672
2673
2674
static unsigned
2675
35
dissect_e2ap_TypeOfError(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2676
35
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2677
35
                                     2, NULL, true, 0, NULL);
2678
2679
35
  return offset;
2680
35
}
2681
2682
2683
static const per_sequence_t CriticalityDiagnostics_IE_Item_sequence[] = {
2684
  { &hf_e2ap_iECriticality  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Criticality },
2685
  { &hf_e2ap_iE_ID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_ID },
2686
  { &hf_e2ap_typeOfError    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TypeOfError },
2687
  { NULL, 0, 0, NULL }
2688
};
2689
2690
static unsigned
2691
36
dissect_e2ap_CriticalityDiagnostics_IE_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2692
36
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2693
36
                                   ett_e2ap_CriticalityDiagnostics_IE_Item, CriticalityDiagnostics_IE_Item_sequence);
2694
2695
36
  return offset;
2696
36
}
2697
2698
2699
static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
2700
  { &hf_e2ap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_CriticalityDiagnostics_IE_Item },
2701
};
2702
2703
static unsigned
2704
4
dissect_e2ap_CriticalityDiagnostics_IE_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2705
4
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2706
4
                                                  ett_e2ap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
2707
4
                                                  1, maxnoofErrors, false);
2708
2709
4
  return offset;
2710
4
}
2711
2712
2713
static const per_sequence_t CriticalityDiagnostics_sequence[] = {
2714
  { &hf_e2ap_procedureCode  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_ProcedureCode },
2715
  { &hf_e2ap_triggeringMessage, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_TriggeringMessage },
2716
  { &hf_e2ap_procedureCriticality, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_Criticality },
2717
  { &hf_e2ap_ricRequestorID , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RICrequestID },
2718
  { &hf_e2ap_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_CriticalityDiagnostics_IE_List },
2719
  { NULL, 0, 0, NULL }
2720
};
2721
2722
static unsigned
2723
8
dissect_e2ap_CriticalityDiagnostics(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2724
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2725
8
                                   ett_e2ap_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
2726
2727
8
  return offset;
2728
8
}
2729
2730
2731
2732
static unsigned
2733
6
dissect_e2ap_T_e2nodeComponentRequestPart(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2734
6
  tvbuff_t *value_tvb;
2735
6
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2736
6
                                       NO_BOUND, NO_BOUND, false, &value_tvb);
2737
2738
6
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
2739
6
  if (e2ap_data->component_configuration_dissector) {
2740
4
    col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "|");
2741
4
    col_set_fence(actx->pinfo->cinfo, COL_PROTOCOL);
2742
4
    col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
2743
4
    call_dissector(e2ap_data->component_configuration_dissector, value_tvb, actx->pinfo, tree);
2744
4
    col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
2745
4
  }
2746
2747
2748
6
  return offset;
2749
6
}
2750
2751
2752
2753
static unsigned
2754
4
dissect_e2ap_T_e2nodeComponentResponsePart(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2755
4
  tvbuff_t *value_tvb;
2756
4
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2757
4
                                       NO_BOUND, NO_BOUND, false, &value_tvb);
2758
2759
4
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
2760
4
  if (e2ap_data->component_configuration_dissector) {
2761
3
    col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
2762
3
    call_dissector(e2ap_data->component_configuration_dissector, value_tvb, actx->pinfo, tree);
2763
3
    col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
2764
3
  }
2765
2766
2767
2768
4
  return offset;
2769
4
}
2770
2771
2772
static const per_sequence_t E2nodeComponentConfiguration_sequence[] = {
2773
  { &hf_e2ap_e2nodeComponentRequestPart, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_e2nodeComponentRequestPart },
2774
  { &hf_e2ap_e2nodeComponentResponsePart, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_e2nodeComponentResponsePart },
2775
  { NULL, 0, 0, NULL }
2776
};
2777
2778
static unsigned
2779
6
dissect_e2ap_E2nodeComponentConfiguration(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2780
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2781
6
                                   ett_e2ap_E2nodeComponentConfiguration, E2nodeComponentConfiguration_sequence);
2782
2783
6
  return offset;
2784
6
}
2785
2786
2787
static const value_string e2ap_T_updateOutcome_vals[] = {
2788
  {   0, "success" },
2789
  {   1, "failure" },
2790
  { 0, NULL }
2791
};
2792
2793
2794
static unsigned
2795
1
dissect_e2ap_T_updateOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2796
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2797
1
                                     2, NULL, true, 0, NULL);
2798
2799
1
  return offset;
2800
1
}
2801
2802
2803
static const per_sequence_t E2nodeComponentConfigurationAck_sequence[] = {
2804
  { &hf_e2ap_updateOutcome  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_updateOutcome },
2805
  { &hf_e2ap_failureCause   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_Cause },
2806
  { NULL, 0, 0, NULL }
2807
};
2808
2809
static unsigned
2810
1
dissect_e2ap_E2nodeComponentConfigurationAck(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2811
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2812
1
                                   ett_e2ap_E2nodeComponentConfigurationAck, E2nodeComponentConfigurationAck_sequence);
2813
2814
1
  return offset;
2815
1
}
2816
2817
2818
static const value_string e2ap_E2nodeComponentInterfaceType_vals[] = {
2819
  {   0, "ng" },
2820
  {   1, "xn" },
2821
  {   2, "e1" },
2822
  {   3, "f1" },
2823
  {   4, "w1" },
2824
  {   5, "s1" },
2825
  {   6, "x2" },
2826
  { 0, NULL }
2827
};
2828
2829
2830
static unsigned
2831
12
dissect_e2ap_E2nodeComponentInterfaceType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2832
12
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2833
12
                                     7, NULL, true, 0, NULL);
2834
2835
12
  return offset;
2836
12
}
2837
2838
2839
static const per_sequence_t E2nodeComponentInterfaceNG_sequence[] = {
2840
  { &hf_e2ap_amf_name       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_AMFName },
2841
  { NULL, 0, 0, NULL }
2842
};
2843
2844
static unsigned
2845
2
dissect_e2ap_E2nodeComponentInterfaceNG(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2846
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2847
2
                                   ett_e2ap_E2nodeComponentInterfaceNG, E2nodeComponentInterfaceNG_sequence);
2848
2849
2
  return offset;
2850
2
}
2851
2852
2853
2854
static unsigned
2855
2
dissect_e2ap_T_e2nodeComponentInterfaceTypeNG(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2856
2
  offset = dissect_e2ap_E2nodeComponentInterfaceNG(tvb, offset, actx, tree, hf_index);
2857
2858
  /* Store value in packet-private data */
2859
2
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
2860
2
  e2ap_data->component_configuration_dissector = find_dissector("ngap");
2861
2862
2863
2
  return offset;
2864
2
}
2865
2866
2867
2868
static unsigned
2869
21
dissect_e2ap_PLMN_Identity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2870
21
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2871
21
                                       3, 3, false, NULL);
2872
2873
21
  return offset;
2874
21
}
2875
2876
2877
2878
static unsigned
2879
6
dissect_e2ap_BIT_STRING_SIZE_22_32(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2880
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2881
6
                                     22, 32, false, NULL, 0, NULL, NULL);
2882
2883
6
  return offset;
2884
6
}
2885
2886
2887
static const value_string e2ap_GNB_ID_Choice_vals[] = {
2888
  {   0, "gnb-ID" },
2889
  { 0, NULL }
2890
};
2891
2892
static const per_choice_t GNB_ID_Choice_choice[] = {
2893
  {   0, &hf_e2ap_gnb_ID         , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_22_32 },
2894
  { 0, NULL, 0, NULL }
2895
};
2896
2897
static unsigned
2898
3
dissect_e2ap_GNB_ID_Choice(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2899
3
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2900
3
                                 ett_e2ap_GNB_ID_Choice, GNB_ID_Choice_choice,
2901
3
                                 NULL);
2902
2903
3
  return offset;
2904
3
}
2905
2906
2907
2908
static unsigned
2909
3
dissect_e2ap_T_gnb_id(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2910
3
  int start_offset = offset;
2911
3
  offset = dissect_e2ap_GNB_ID_Choice(tvb, offset, actx, tree, hf_index);
2912
2913
  /* Store value in packet-private data */
2914
3
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
2915
  /* Limit length, but really can't be > 5 bytes.. */
2916
3
  e2ap_data->gnb_id_len = MIN((offset-start_offset)/8, MAX_GNB_ID_BYTES);
2917
3
  tvb_memcpy(tvb, &e2ap_data->gnb_id_bytes, start_offset/8, e2ap_data->gnb_id_len);
2918
3
  update_conversation_from_gnb_id(actx);
2919
2920
2921
2922
2923
3
  return offset;
2924
3
}
2925
2926
2927
static const per_sequence_t GlobalgNB_ID_sequence[] = {
2928
  { &hf_e2ap_plmn_id        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMN_Identity },
2929
  { &hf_e2ap_gnb_id         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_gnb_id },
2930
  { NULL, 0, 0, NULL }
2931
};
2932
2933
static unsigned
2934
3
dissect_e2ap_GlobalgNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2935
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2936
3
                                   ett_e2ap_GlobalgNB_ID, GlobalgNB_ID_sequence);
2937
2938
3
  return offset;
2939
3
}
2940
2941
2942
2943
static unsigned
2944
12
dissect_e2ap_BIT_STRING_SIZE_20(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2945
12
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2946
12
                                     20, 20, false, NULL, 0, NULL, NULL);
2947
2948
12
  return offset;
2949
12
}
2950
2951
2952
2953
static unsigned
2954
1
dissect_e2ap_BIT_STRING_SIZE_18(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2955
1
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2956
1
                                     18, 18, false, NULL, 0, NULL, NULL);
2957
2958
1
  return offset;
2959
1
}
2960
2961
2962
2963
static unsigned
2964
0
dissect_e2ap_BIT_STRING_SIZE_21(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2965
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2966
0
                                     21, 21, false, NULL, 0, NULL, NULL);
2967
2968
0
  return offset;
2969
0
}
2970
2971
2972
static const value_string e2ap_ENB_ID_Choice_vals[] = {
2973
  {   0, "enb-ID-macro" },
2974
  {   1, "enb-ID-shortmacro" },
2975
  {   2, "enb-ID-longmacro" },
2976
  { 0, NULL }
2977
};
2978
2979
static const per_choice_t ENB_ID_Choice_choice[] = {
2980
  {   0, &hf_e2ap_enb_ID_macro   , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_20 },
2981
  {   1, &hf_e2ap_enb_ID_shortmacro, ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_18 },
2982
  {   2, &hf_e2ap_enb_ID_longmacro, ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_21 },
2983
  { 0, NULL, 0, NULL }
2984
};
2985
2986
static unsigned
2987
1
dissect_e2ap_ENB_ID_Choice(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2988
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2989
1
                                 ett_e2ap_ENB_ID_Choice, ENB_ID_Choice_choice,
2990
1
                                 NULL);
2991
2992
1
  return offset;
2993
1
}
2994
2995
2996
static const per_sequence_t GlobalngeNB_ID_sequence[] = {
2997
  { &hf_e2ap_plmn_id        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMN_Identity },
2998
  { &hf_e2ap_enb_id         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ENB_ID_Choice },
2999
  { NULL, 0, 0, NULL }
3000
};
3001
3002
static unsigned
3003
1
dissect_e2ap_GlobalngeNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3004
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3005
1
                                   ett_e2ap_GlobalngeNB_ID, GlobalngeNB_ID_sequence);
3006
3007
1
  return offset;
3008
1
}
3009
3010
3011
static const value_string e2ap_GlobalNG_RANNode_ID_vals[] = {
3012
  {   0, "gNB" },
3013
  {   1, "ng-eNB" },
3014
  { 0, NULL }
3015
};
3016
3017
static const per_choice_t GlobalNG_RANNode_ID_choice[] = {
3018
  {   0, &hf_e2ap_gNB_01         , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalgNB_ID },
3019
  {   1, &hf_e2ap_ng_eNB_01      , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalngeNB_ID },
3020
  { 0, NULL, 0, NULL }
3021
};
3022
3023
static unsigned
3024
0
dissect_e2ap_GlobalNG_RANNode_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3025
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3026
0
                                 ett_e2ap_GlobalNG_RANNode_ID, GlobalNG_RANNode_ID_choice,
3027
0
                                 NULL);
3028
3029
0
  return offset;
3030
0
}
3031
3032
3033
static const per_sequence_t E2nodeComponentInterfaceXn_sequence[] = {
3034
  { &hf_e2ap_global_NG_RAN_Node_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalNG_RANNode_ID },
3035
  { NULL, 0, 0, NULL }
3036
};
3037
3038
static unsigned
3039
0
dissect_e2ap_E2nodeComponentInterfaceXn(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3040
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3041
0
                                   ett_e2ap_E2nodeComponentInterfaceXn, E2nodeComponentInterfaceXn_sequence);
3042
3043
0
  return offset;
3044
0
}
3045
3046
3047
3048
static unsigned
3049
0
dissect_e2ap_T_e2nodeComponentInterfaceTypeXn(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3050
0
  offset = dissect_e2ap_E2nodeComponentInterfaceXn(tvb, offset, actx, tree, hf_index);
3051
3052
  /* Store value in packet-private data */
3053
0
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
3054
0
  e2ap_data->component_configuration_dissector = find_dissector("xnap");
3055
3056
3057
0
  return offset;
3058
0
}
3059
3060
3061
3062
static unsigned
3063
0
dissect_e2ap_GNB_CU_UP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3064
0
  offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
3065
0
                                                            0U, UINT64_C(68719476735), NULL, false);
3066
3067
0
  return offset;
3068
0
}
3069
3070
3071
static const per_sequence_t E2nodeComponentInterfaceE1_sequence[] = {
3072
  { &hf_e2ap_gNB_CU_UP_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_CU_UP_ID },
3073
  { NULL, 0, 0, NULL }
3074
};
3075
3076
static unsigned
3077
0
dissect_e2ap_E2nodeComponentInterfaceE1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3078
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3079
0
                                   ett_e2ap_E2nodeComponentInterfaceE1, E2nodeComponentInterfaceE1_sequence);
3080
3081
0
  return offset;
3082
0
}
3083
3084
3085
3086
static unsigned
3087
0
dissect_e2ap_T_e2nodeComponentInterfaceTypeE1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3088
0
  offset = dissect_e2ap_E2nodeComponentInterfaceE1(tvb, offset, actx, tree, hf_index);
3089
3090
  /* Store value in packet-private data */
3091
0
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
3092
0
  e2ap_data->component_configuration_dissector = find_dissector("e1ap");
3093
3094
3095
0
  return offset;
3096
0
}
3097
3098
3099
3100
static unsigned
3101
1
dissect_e2ap_GNB_DU_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3102
1
  offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
3103
1
                                                            0U, UINT64_C(68719476735), NULL, false);
3104
3105
1
  return offset;
3106
1
}
3107
3108
3109
static const per_sequence_t E2nodeComponentInterfaceF1_sequence[] = {
3110
  { &hf_e2ap_gNB_DU_ID      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_DU_ID },
3111
  { NULL, 0, 0, NULL }
3112
};
3113
3114
static unsigned
3115
0
dissect_e2ap_E2nodeComponentInterfaceF1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3116
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3117
0
                                   ett_e2ap_E2nodeComponentInterfaceF1, E2nodeComponentInterfaceF1_sequence);
3118
3119
0
  return offset;
3120
0
}
3121
3122
3123
3124
static unsigned
3125
0
dissect_e2ap_T_e2nodeComponentInterfaceTypeF1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3126
0
  offset = dissect_e2ap_E2nodeComponentInterfaceF1(tvb, offset, actx, tree, hf_index);
3127
3128
  /* Store value in packet-private data */
3129
0
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
3130
0
  e2ap_data->component_configuration_dissector = find_dissector("f1ap");
3131
3132
3133
3134
0
  return offset;
3135
0
}
3136
3137
3138
3139
static unsigned
3140
1
dissect_e2ap_NGENB_DU_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3141
1
  offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
3142
1
                                                            0U, UINT64_C(68719476735), NULL, false);
3143
3144
1
  return offset;
3145
1
}
3146
3147
3148
static const per_sequence_t E2nodeComponentInterfaceW1_sequence[] = {
3149
  { &hf_e2ap_ng_eNB_DU_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NGENB_DU_ID },
3150
  { NULL, 0, 0, NULL }
3151
};
3152
3153
static unsigned
3154
1
dissect_e2ap_E2nodeComponentInterfaceW1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3155
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3156
1
                                   ett_e2ap_E2nodeComponentInterfaceW1, E2nodeComponentInterfaceW1_sequence);
3157
3158
1
  return offset;
3159
1
}
3160
3161
3162
3163
static unsigned
3164
5
dissect_e2ap_MMEname(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3165
5
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
3166
5
                                          1, 150, true,
3167
5
                                          NULL);
3168
3169
5
  return offset;
3170
5
}
3171
3172
3173
static const per_sequence_t E2nodeComponentInterfaceS1_sequence[] = {
3174
  { &hf_e2ap_mme_name       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MMEname },
3175
  { NULL, 0, 0, NULL }
3176
};
3177
3178
static unsigned
3179
5
dissect_e2ap_E2nodeComponentInterfaceS1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3180
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3181
5
                                   ett_e2ap_E2nodeComponentInterfaceS1, E2nodeComponentInterfaceS1_sequence);
3182
3183
5
  return offset;
3184
5
}
3185
3186
3187
3188
static unsigned
3189
5
dissect_e2ap_T_e2nodeComponentInterfaceTypeS1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3190
5
  offset = dissect_e2ap_E2nodeComponentInterfaceS1(tvb, offset, actx, tree, hf_index);
3191
3192
  /* Store value in packet-private data */
3193
5
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
3194
5
  e2ap_data->component_configuration_dissector = find_dissector("s1ap");
3195
3196
3197
5
  return offset;
3198
5
}
3199
3200
3201
3202
static unsigned
3203
0
dissect_e2ap_BIT_STRING_SIZE_28(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3204
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3205
0
                                     28, 28, false, NULL, 0, NULL, NULL);
3206
3207
0
  return offset;
3208
0
}
3209
3210
3211
static const value_string e2ap_ENB_ID_vals[] = {
3212
  {   0, "macro-eNB-ID" },
3213
  {   1, "home-eNB-ID" },
3214
  {   2, "short-Macro-eNB-ID" },
3215
  {   3, "long-Macro-eNB-ID" },
3216
  { 0, NULL }
3217
};
3218
3219
static const per_choice_t ENB_ID_choice[] = {
3220
  {   0, &hf_e2ap_macro_eNB_ID   , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_20 },
3221
  {   1, &hf_e2ap_home_eNB_ID    , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_28 },
3222
  {   2, &hf_e2ap_short_Macro_eNB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_BIT_STRING_SIZE_18 },
3223
  {   3, &hf_e2ap_long_Macro_eNB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_BIT_STRING_SIZE_21 },
3224
  { 0, NULL, 0, NULL }
3225
};
3226
3227
static unsigned
3228
3
dissect_e2ap_ENB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3229
3
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3230
3
                                 ett_e2ap_ENB_ID, ENB_ID_choice,
3231
3
                                 NULL);
3232
3233
3
  return offset;
3234
3
}
3235
3236
3237
static const per_sequence_t GlobalENB_ID_sequence[] = {
3238
  { &hf_e2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMN_Identity },
3239
  { &hf_e2ap_eNB_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ENB_ID },
3240
  { NULL, 0, 0, NULL }
3241
};
3242
3243
static unsigned
3244
3
dissect_e2ap_GlobalENB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3245
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3246
3
                                   ett_e2ap_GlobalENB_ID, GlobalENB_ID_sequence);
3247
3248
3
  return offset;
3249
3
}
3250
3251
3252
static const value_string e2ap_ENGNB_ID_vals[] = {
3253
  {   0, "gNB-ID" },
3254
  { 0, NULL }
3255
};
3256
3257
static const per_choice_t ENGNB_ID_choice[] = {
3258
  {   0, &hf_e2ap_gnb_id_bit_string, ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_22_32 },
3259
  { 0, NULL, 0, NULL }
3260
};
3261
3262
static unsigned
3263
5
dissect_e2ap_ENGNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3264
5
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3265
5
                                 ett_e2ap_ENGNB_ID, ENGNB_ID_choice,
3266
5
                                 NULL);
3267
3268
5
  return offset;
3269
5
}
3270
3271
3272
static const per_sequence_t GlobalenGNB_ID_sequence[] = {
3273
  { &hf_e2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMN_Identity },
3274
  { &hf_e2ap_eNGNB_ID_choice, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ENGNB_ID },
3275
  { NULL, 0, 0, NULL }
3276
};
3277
3278
static unsigned
3279
5
dissect_e2ap_GlobalenGNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3280
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3281
5
                                   ett_e2ap_GlobalenGNB_ID, GlobalenGNB_ID_sequence);
3282
3283
5
  return offset;
3284
5
}
3285
3286
3287
static const per_sequence_t E2nodeComponentInterfaceX2_sequence[] = {
3288
  { &hf_e2ap_global_eNB_ID  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GlobalENB_ID },
3289
  { &hf_e2ap_global_en_gNB_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GlobalenGNB_ID },
3290
  { NULL, 0, 0, NULL }
3291
};
3292
3293
static unsigned
3294
1
dissect_e2ap_E2nodeComponentInterfaceX2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3295
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3296
1
                                   ett_e2ap_E2nodeComponentInterfaceX2, E2nodeComponentInterfaceX2_sequence);
3297
3298
1
  return offset;
3299
1
}
3300
3301
3302
3303
static unsigned
3304
1
dissect_e2ap_T_e2nodeComponentInterfaceTypeX2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3305
1
  offset = dissect_e2ap_E2nodeComponentInterfaceX2(tvb, offset, actx, tree, hf_index);
3306
3307
  /* Store value in packet-private data */
3308
1
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
3309
1
  e2ap_data->component_configuration_dissector = find_dissector("x2ap");
3310
3311
3312
3313
3314
3315
1
  return offset;
3316
1
}
3317
3318
3319
static const value_string e2ap_E2nodeComponentID_vals[] = {
3320
  {   0, "e2nodeComponentInterfaceTypeNG" },
3321
  {   1, "e2nodeComponentInterfaceTypeXn" },
3322
  {   2, "e2nodeComponentInterfaceTypeE1" },
3323
  {   3, "e2nodeComponentInterfaceTypeF1" },
3324
  {   4, "e2nodeComponentInterfaceTypeW1" },
3325
  {   5, "e2nodeComponentInterfaceTypeS1" },
3326
  {   6, "e2nodeComponentInterfaceTypeX2" },
3327
  { 0, NULL }
3328
};
3329
3330
static const per_choice_t E2nodeComponentID_choice[] = {
3331
  {   0, &hf_e2ap_e2nodeComponentInterfaceTypeNG, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_e2nodeComponentInterfaceTypeNG },
3332
  {   1, &hf_e2ap_e2nodeComponentInterfaceTypeXn, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_e2nodeComponentInterfaceTypeXn },
3333
  {   2, &hf_e2ap_e2nodeComponentInterfaceTypeE1, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_e2nodeComponentInterfaceTypeE1 },
3334
  {   3, &hf_e2ap_e2nodeComponentInterfaceTypeF1, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_e2nodeComponentInterfaceTypeF1 },
3335
  {   4, &hf_e2ap_e2nodeComponentInterfaceTypeW1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2nodeComponentInterfaceW1 },
3336
  {   5, &hf_e2ap_e2nodeComponentInterfaceTypeS1, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_e2nodeComponentInterfaceTypeS1 },
3337
  {   6, &hf_e2ap_e2nodeComponentInterfaceTypeX2, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_e2nodeComponentInterfaceTypeX2 },
3338
  { 0, NULL, 0, NULL }
3339
};
3340
3341
static unsigned
3342
12
dissect_e2ap_E2nodeComponentID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3343
12
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3344
12
                                 ett_e2ap_E2nodeComponentID, E2nodeComponentID_choice,
3345
12
                                 NULL);
3346
3347
12
  return offset;
3348
12
}
3349
3350
3351
static const per_sequence_t GlobalE2node_gNB_ID_sequence[] = {
3352
  { &hf_e2ap_global_gNB_ID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalgNB_ID },
3353
  { &hf_e2ap_global_en_gNB_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GlobalenGNB_ID },
3354
  { &hf_e2ap_gNB_CU_UP_ID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GNB_CU_UP_ID },
3355
  { &hf_e2ap_gNB_DU_ID      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GNB_DU_ID },
3356
  { NULL, 0, 0, NULL }
3357
};
3358
3359
static unsigned
3360
3
dissect_e2ap_GlobalE2node_gNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3361
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3362
3
                                   ett_e2ap_GlobalE2node_gNB_ID, GlobalE2node_gNB_ID_sequence);
3363
3364
3
  return offset;
3365
3
}
3366
3367
3368
static const per_sequence_t GlobalE2node_en_gNB_ID_sequence[] = {
3369
  { &hf_e2ap_global_en_gNB_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalenGNB_ID },
3370
  { &hf_e2ap_en_gNB_CU_UP_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GNB_CU_UP_ID },
3371
  { &hf_e2ap_en_gNB_DU_ID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GNB_DU_ID },
3372
  { NULL, 0, 0, NULL }
3373
};
3374
3375
static unsigned
3376
4
dissect_e2ap_GlobalE2node_en_gNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3377
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3378
4
                                   ett_e2ap_GlobalE2node_en_gNB_ID, GlobalE2node_en_gNB_ID_sequence);
3379
3380
4
  return offset;
3381
4
}
3382
3383
3384
static const per_sequence_t GlobalE2node_ng_eNB_ID_sequence[] = {
3385
  { &hf_e2ap_global_ng_eNB_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalngeNB_ID },
3386
  { &hf_e2ap_global_eNB_ID  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GlobalENB_ID },
3387
  { &hf_e2ap_ngENB_DU_ID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NGENB_DU_ID },
3388
  { NULL, 0, 0, NULL }
3389
};
3390
3391
static unsigned
3392
1
dissect_e2ap_GlobalE2node_ng_eNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3393
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3394
1
                                   ett_e2ap_GlobalE2node_ng_eNB_ID, GlobalE2node_ng_eNB_ID_sequence);
3395
3396
1
  return offset;
3397
1
}
3398
3399
3400
static const per_sequence_t GlobalE2node_eNB_ID_sequence[] = {
3401
  { &hf_e2ap_global_eNB_ID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalENB_ID },
3402
  { NULL, 0, 0, NULL }
3403
};
3404
3405
static unsigned
3406
1
dissect_e2ap_GlobalE2node_eNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3407
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3408
1
                                   ett_e2ap_GlobalE2node_eNB_ID, GlobalE2node_eNB_ID_sequence);
3409
3410
1
  return offset;
3411
1
}
3412
3413
3414
static const value_string e2ap_GlobalE2node_ID_vals[] = {
3415
  {   0, "gNB" },
3416
  {   1, "en-gNB" },
3417
  {   2, "ng-eNB" },
3418
  {   3, "eNB" },
3419
  { 0, NULL }
3420
};
3421
3422
static const per_choice_t GlobalE2node_ID_choice[] = {
3423
  {   0, &hf_e2ap_gNB            , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalE2node_gNB_ID },
3424
  {   1, &hf_e2ap_en_gNB         , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalE2node_en_gNB_ID },
3425
  {   2, &hf_e2ap_ng_eNB         , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalE2node_ng_eNB_ID },
3426
  {   3, &hf_e2ap_eNB            , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalE2node_eNB_ID },
3427
  { 0, NULL, 0, NULL }
3428
};
3429
3430
static unsigned
3431
9
dissect_e2ap_GlobalE2node_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3432
9
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3433
9
                                 ett_e2ap_GlobalE2node_ID, GlobalE2node_ID_choice,
3434
9
                                 NULL);
3435
3436
9
  return offset;
3437
9
}
3438
3439
3440
static const per_sequence_t GlobalRIC_ID_sequence[] = {
3441
  { &hf_e2ap_pLMN_Identity  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMN_Identity },
3442
  { &hf_e2ap_ric_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_BIT_STRING_SIZE_20 },
3443
  { NULL, 0, 0, NULL }
3444
};
3445
3446
static unsigned
3447
9
dissect_e2ap_GlobalRIC_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3448
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3449
9
                                   ett_e2ap_GlobalRIC_ID, GlobalRIC_ID_sequence);
3450
3451
9
  return offset;
3452
9
}
3453
3454
3455
3456
static unsigned
3457
8
dissect_e2ap_RANfunctionDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3458
8
  tvbuff_t *parameter_tvb;
3459
3460
  /* We know that the next thing is a RANFunction-Name, but it's wrapped up in a sequence,
3461
     so can't silently/hiddenly call ranFunctionName here... */
3462
3463
8
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3464
8
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3465
3466
3467
  /* Looking for shortName string near beginning of tvb */
3468
8
  bool found = false;
3469
  /* For each RAN function name.. */
3470
8
  int n, found_index = MIN_RANFUNCTIONS;
3471
43
  for (n=KPM_RANFUNCTIONS; n<MAX_RANFUNCTIONS && !found; n++) {
3472
35
    uint32_t tvb_len = tvb_captured_length(parameter_tvb);
3473
35
    unsigned name_len = (int)strlen(g_ran_function_name_table[n]);
3474
    /* For each of several byte positions.. */
3475
640
    for (int m=0; (m<30) && ((m+name_len+1))<tvb_len; m++) {
3476
      /* Have we found a match on the name? */
3477
610
      if (tvb_strneql(parameter_tvb, m, g_ran_function_name_table[n], name_len) == 0) {
3478
        /* We don't yet know the OID (should be OK),
3479
     so for now, call with the last/only available dissector for this RAN Function name */
3480
3481
5
        if (g_ran_functions_available_dissectors[n].num_available_dissectors) {
3482
    /* Choose the one with the highest major version number */
3483
5
    unsigned best_index=0, highest_version=0;
3484
30
    for (unsigned d=0; d < g_ran_functions_available_dissectors[n].num_available_dissectors; d++) {
3485
25
      if (g_ran_functions_available_dissectors[n].ran_function_dissectors[d]->major_version > highest_version) {
3486
25
        best_index = d;
3487
25
        highest_version = g_ran_functions_available_dissectors[n].ran_function_dissectors[d]->major_version;
3488
25
      }
3489
25
    }
3490
    /* Use it */
3491
5
    g_ran_functions_available_dissectors[n].ran_function_dissectors[best_index]->functions.ran_function_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3492
5
          found = true;
3493
5
          found_index = n;
3494
5
          break;
3495
5
        }
3496
5
      }
3497
610
    }
3498
35
  }
3499
3500
8
  if (found && (found_index==CCC_RANFUNCTIONS)) {
3501
    // ranFunctionName, for this ranFunction, is inside the JSON.  Rather than try to retrive it,
3502
    // just use this proxy that ought to appear at the start...  OID should get set in the normal way.
3503
5
    if (!actx->pinfo->fd->visited) {
3504
5
      e2ap_store_ran_function_mapping(actx->pinfo, tree, parameter_tvb, "{" /*"ORAN-E2SM-CCC"*/);
3505
5
    }
3506
5
  }
3507
3508
8
  if (!found) {
3509
3
    proto_item *ti = proto_tree_add_item(tree, hf_e2ap_ran_function_name_not_recognised, tvb, 0, 0, ENC_NA);
3510
3
    expert_add_info_format(actx->pinfo, ti, &ei_e2ap_ran_function_names_no_match,
3511
3
                           "ShortName does not match any known Service Model");
3512
3
  }
3513
3514
3515
8
  return offset;
3516
8
}
3517
3518
3519
3520
static unsigned
3521
27
dissect_e2ap_RANfunctionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3522
27
  uint32_t value;
3523
27
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3524
27
                                                            0U, 4095U, &value, false);
3525
3526
  /* Store value in packet-private data */
3527
27
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
3528
27
  e2ap_data->ran_function_id = value;
3529
3530
3531
3532
27
  return offset;
3533
27
}
3534
3535
3536
3537
static unsigned
3538
8
dissect_e2ap_RANfunctionOID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3539
8
  tvbuff_t *parameter_tvb;
3540
8
    offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
3541
8
                                          1, 1000, true,
3542
8
                                          &parameter_tvb);
3543
3544
  /* Now complete mapping with OID string */
3545
8
  e2ap_update_ran_function_mapping(actx->pinfo, tree, parameter_tvb,
3546
8
                                   (char*)tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0,
3547
8
                                   tvb_captured_length(parameter_tvb), ENC_ASCII));
3548
3549
3550
3551
3552
3553
8
  return offset;
3554
8
}
3555
3556
3557
3558
static unsigned
3559
9
dissect_e2ap_RANfunctionRevision(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3560
9
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3561
9
                                                            0U, 4095U, NULL, false);
3562
3563
9
  return offset;
3564
9
}
3565
3566
3567
3568
static unsigned
3569
3
dissect_e2ap_RICactionDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3570
3
  tvbuff_t *parameter_tvb;
3571
3
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3572
3
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3573
3574
3
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3575
3
  if (dissector) {
3576
0
    if (dissector->functions.ran_action_definition_dissector) {
3577
0
      dissector->functions.ran_action_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3578
0
    }
3579
0
  }
3580
3581
3582
3
  return offset;
3583
3
}
3584
3585
3586
3587
static unsigned
3588
2
dissect_e2ap_RICactionExecutionOrder(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3589
2
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3590
2
                                                            0U, 255U, NULL, true);
3591
3592
2
  return offset;
3593
2
}
3594
3595
3596
3597
static unsigned
3598
22
dissect_e2ap_RICactionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3599
22
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3600
22
                                                            0U, 255U, NULL, false);
3601
3602
22
  return offset;
3603
22
}
3604
3605
3606
static const value_string e2ap_RICactionType_vals[] = {
3607
  {   0, "report" },
3608
  {   1, "insert" },
3609
  {   2, "policy" },
3610
  { 0, NULL }
3611
};
3612
3613
3614
static unsigned
3615
3
dissect_e2ap_RICactionType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3616
3
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3617
3
                                     3, NULL, true, 0, NULL);
3618
3619
3
  return offset;
3620
3
}
3621
3622
3623
3624
static unsigned
3625
0
dissect_e2ap_RICcallProcessID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3626
0
  tvbuff_t *parameter_tvb;
3627
0
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3628
0
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3629
3630
0
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3631
0
  if (dissector) {
3632
0
    if (dissector->functions.ran_callprocessid_dissector) {
3633
0
      dissector->functions.ran_callprocessid_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3634
0
    }
3635
0
  }
3636
3637
3638
3639
3640
0
  return offset;
3641
0
}
3642
3643
3644
static const value_string e2ap_RICcontrolAckRequest_vals[] = {
3645
  {   0, "noAck" },
3646
  {   1, "ack" },
3647
  { 0, NULL }
3648
};
3649
3650
3651
static unsigned
3652
3
dissect_e2ap_RICcontrolAckRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3653
3
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3654
3
                                     2, NULL, true, 0, NULL);
3655
3656
3
  return offset;
3657
3
}
3658
3659
3660
3661
static unsigned
3662
0
dissect_e2ap_RICcontrolHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3663
0
  tvbuff_t *parameter_tvb;
3664
0
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3665
0
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3666
3667
0
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3668
0
  if (dissector) {
3669
0
    if (dissector->functions.ric_control_header_dissector) {
3670
0
      dissector->functions.ric_control_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3671
0
    }
3672
0
  }
3673
3674
3675
0
  return offset;
3676
0
}
3677
3678
3679
3680
static unsigned
3681
1
dissect_e2ap_RICcontrolMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3682
1
  tvbuff_t *parameter_tvb;
3683
1
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3684
1
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3685
3686
1
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3687
1
  if (dissector) {
3688
0
    if (dissector->functions.ric_control_message_dissector) {
3689
0
      dissector->functions.ric_control_message_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3690
0
    }
3691
0
  }
3692
3693
3694
1
  return offset;
3695
1
}
3696
3697
3698
3699
static unsigned
3700
4
dissect_e2ap_RICcontrolOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3701
4
  tvbuff_t *parameter_tvb;
3702
4
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3703
4
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3704
3705
4
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3706
4
  if (dissector) {
3707
0
    if (dissector->functions.ric_control_outcome_dissector) {
3708
0
        dissector->functions.ric_control_outcome_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3709
0
    }
3710
0
  }
3711
3712
3713
4
  return offset;
3714
4
}
3715
3716
3717
3718
static unsigned
3719
0
dissect_e2ap_RICeventTriggerDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3720
0
  tvbuff_t *parameter_tvb;
3721
0
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3722
0
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3723
3724
0
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3725
0
  if (dissector) {
3726
0
    if (dissector->functions.ran_event_trigger_dissector) {
3727
0
      dissector->functions.ran_event_trigger_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3728
0
    }
3729
0
  }
3730
3731
3732
0
  return offset;
3733
0
}
3734
3735
3736
3737
static unsigned
3738
3
dissect_e2ap_RICindicationHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3739
3
  tvbuff_t *parameter_tvb;
3740
3
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3741
3
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3742
3743
3
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3744
3
  if (dissector) {
3745
0
    if (dissector->functions.ran_indication_header_dissector) {
3746
0
      dissector->functions.ran_indication_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3747
0
    }
3748
0
  }
3749
3750
3751
3
  return offset;
3752
3
}
3753
3754
3755
3756
static unsigned
3757
1
dissect_e2ap_RICindicationMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3758
1
  tvbuff_t *parameter_tvb;
3759
1
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3760
1
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3761
3762
1
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3763
1
  if (dissector) {
3764
0
    if (dissector->functions.ran_indication_message_dissector) {
3765
0
      dissector->functions.ran_indication_message_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3766
0
    }
3767
0
  }
3768
3769
3770
1
  return offset;
3771
1
}
3772
3773
3774
3775
static unsigned
3776
0
dissect_e2ap_RICindicationSN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3777
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3778
0
                                                            0U, 65535U, NULL, false);
3779
3780
0
  return offset;
3781
0
}
3782
3783
3784
static const value_string e2ap_RICindicationType_vals[] = {
3785
  {   0, "report" },
3786
  {   1, "insert" },
3787
  { 0, NULL }
3788
};
3789
3790
3791
static unsigned
3792
1
dissect_e2ap_RICindicationType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3793
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3794
1
                                     2, NULL, true, 0, NULL);
3795
3796
1
  return offset;
3797
1
}
3798
3799
3800
3801
static unsigned
3802
1
dissect_e2ap_RICsubscriptionTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3803
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3804
1
                                       8, 8, false, NULL);
3805
3806
1
  return offset;
3807
1
}
3808
3809
3810
static const value_string e2ap_RICsubsequentActionType_vals[] = {
3811
  {   0, "continue" },
3812
  {   1, "wait" },
3813
  { 0, NULL }
3814
};
3815
3816
3817
static unsigned
3818
0
dissect_e2ap_RICsubsequentActionType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3819
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3820
0
                                     2, NULL, true, 0, NULL);
3821
3822
0
  return offset;
3823
0
}
3824
3825
3826
static const value_string e2ap_RICtimeToWait_vals[] = {
3827
  {   0, "w1ms" },
3828
  {   1, "w2ms" },
3829
  {   2, "w5ms" },
3830
  {   3, "w10ms" },
3831
  {   4, "w20ms" },
3832
  {   5, "w30ms" },
3833
  {   6, "w40ms" },
3834
  {   7, "w50ms" },
3835
  {   8, "w100ms" },
3836
  {   9, "w200ms" },
3837
  {  10, "w500ms" },
3838
  {  11, "w1s" },
3839
  {  12, "w2s" },
3840
  {  13, "w5s" },
3841
  {  14, "w10s" },
3842
  {  15, "w20s" },
3843
  {  16, "w60s" },
3844
  { 0, NULL }
3845
};
3846
3847
3848
static unsigned
3849
3
dissect_e2ap_RICtimeToWait(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3850
3
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3851
3
                                     17, NULL, true, 0, NULL);
3852
3853
3
  return offset;
3854
3
}
3855
3856
3857
static const per_sequence_t RICsubsequentAction_sequence[] = {
3858
  { &hf_e2ap_ricSubsequentActionType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICsubsequentActionType },
3859
  { &hf_e2ap_ricTimeToWait  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICtimeToWait },
3860
  { NULL, 0, 0, NULL }
3861
};
3862
3863
static unsigned
3864
0
dissect_e2ap_RICsubsequentAction(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3865
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3866
0
                                   ett_e2ap_RICsubsequentAction, RICsubsequentAction_sequence);
3867
3868
0
  return offset;
3869
0
}
3870
3871
3872
3873
static unsigned
3874
0
dissect_e2ap_RICqueryHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3875
0
  tvbuff_t *parameter_tvb;
3876
0
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3877
0
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3878
3879
0
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3880
0
  if (dissector) {
3881
0
    if (dissector->functions.ric_query_header_dissector) {
3882
0
      dissector->functions.ric_query_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3883
0
    }
3884
0
  }
3885
3886
3887
3888
3889
0
  return offset;
3890
0
}
3891
3892
3893
3894
static unsigned
3895
6
dissect_e2ap_RICqueryDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3896
6
  tvbuff_t *parameter_tvb;
3897
6
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3898
6
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3899
3900
6
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3901
6
  if (dissector) {
3902
0
    if (dissector->functions.ric_query_definition_dissector) {
3903
0
      dissector->functions.ric_query_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3904
0
    }
3905
0
  }
3906
3907
3908
6
  return offset;
3909
6
}
3910
3911
3912
3913
static unsigned
3914
1
dissect_e2ap_RICqueryOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3915
1
  tvbuff_t *parameter_tvb;
3916
1
    offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3917
1
                                       NO_BOUND, NO_BOUND, false, &parameter_tvb);
3918
3919
1
  const ran_function_dissector_t* dissector = lookup_ranfunction_dissector(actx->pinfo, tree, parameter_tvb);
3920
1
  if (dissector) {
3921
0
    if (dissector->functions.ric_query_outcome_dissector) {
3922
0
      dissector->functions.ric_query_outcome_dissector(parameter_tvb, actx->pinfo, tree, NULL);
3923
0
    }
3924
0
  }
3925
3926
3927
1
  return offset;
3928
1
}
3929
3930
3931
static const value_string e2ap_TimeToWait_vals[] = {
3932
  {   0, "v1s" },
3933
  {   1, "v2s" },
3934
  {   2, "v5s" },
3935
  {   3, "v10s" },
3936
  {   4, "v20s" },
3937
  {   5, "v60s" },
3938
  { 0, NULL }
3939
};
3940
3941
3942
static unsigned
3943
1
dissect_e2ap_TimeToWait(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3944
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3945
1
                                     6, NULL, true, 0, NULL);
3946
3947
1
  return offset;
3948
1
}
3949
3950
3951
3952
static unsigned
3953
9
dissect_e2ap_T_tnlAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3954
9
  tvbuff_t *value_tvb = NULL;
3955
9
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3956
9
                                     1, 160, true, NULL, 0, &value_tvb, NULL);
3957
3958
9
  if (value_tvb && tvb_captured_length(value_tvb)==4) {
3959
0
    proto_item_append_text(tree, " (%s", tvb_ip_to_str(actx->pinfo->pool, value_tvb, 0));
3960
0
  }
3961
9
  else if (value_tvb && tvb_captured_length(value_tvb)==16) {
3962
0
    proto_item_append_text(tree, " (%s", tvb_ip6_to_str(actx->pinfo->pool, value_tvb, 0));
3963
0
  }
3964
9
  else if (value_tvb && tvb_captured_length(value_tvb)==20) {
3965
    /* IPv4 address followed by IPv6 address */
3966
0
    proto_item_append_text(tree, " (%s, %s", tvb_ip_to_str(actx->pinfo->pool, value_tvb, 0),
3967
0
                           tvb_ip6_to_str(actx->pinfo->pool, value_tvb, 4));
3968
0
  }
3969
9
  else {
3970
9
    proto_item_append_text(tree, " (");
3971
9
  }
3972
3973
3974
9
  return offset;
3975
9
}
3976
3977
3978
3979
static unsigned
3980
5
dissect_e2ap_T_tnlPort(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3981
5
  proto_item_append_text(tree, ":%u)", tvb_get_bits16(tvb, offset, 16, ENC_BIG_ENDIAN));
3982
5
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3983
5
                                     16, 16, false, NULL, 0, NULL, NULL);
3984
3985
3986
3987
3988
5
  return offset;
3989
5
}
3990
3991
3992
static const per_sequence_t TNLinformation_sequence[] = {
3993
  { &hf_e2ap_tnlAddress     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_tnlAddress },
3994
  { &hf_e2ap_tnlPort        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_tnlPort },
3995
  { NULL, 0, 0, NULL }
3996
};
3997
3998
static unsigned
3999
9
dissect_e2ap_TNLinformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4000
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4001
9
                                   ett_e2ap_TNLinformation, TNLinformation_sequence);
4002
4003
9
  return offset;
4004
9
}
4005
4006
4007
static const value_string e2ap_TNLusage_vals[] = {
4008
  {   0, "ric-service" },
4009
  {   1, "support-function" },
4010
  {   2, "both" },
4011
  { 0, NULL }
4012
};
4013
4014
4015
static unsigned
4016
1
dissect_e2ap_TNLusage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4017
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4018
1
                                     3, NULL, true, 0, NULL);
4019
4020
1
  return offset;
4021
1
}
4022
4023
4024
4025
static unsigned
4026
1
dissect_e2ap_TransactionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4027
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4028
1
                                                            0U, 255U, NULL, true);
4029
4030
1
  return offset;
4031
1
}
4032
4033
4034
static const per_sequence_t RICsubscriptionRequest_sequence[] = {
4035
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4036
  { NULL, 0, 0, NULL }
4037
};
4038
4039
static unsigned
4040
0
dissect_e2ap_RICsubscriptionRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4041
0
  set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_REQUEST);
4042
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_REQUEST);
4043
4044
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4045
0
                                   ett_e2ap_RICsubscriptionRequest, RICsubscriptionRequest_sequence);
4046
4047
0
  return offset;
4048
0
}
4049
4050
4051
static const per_sequence_t RICactions_ToBeSetup_List_sequence_of[1] = {
4052
  { &hf_e2ap_RICactions_ToBeSetup_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4053
};
4054
4055
static unsigned
4056
0
dissect_e2ap_RICactions_ToBeSetup_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4057
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4058
0
                                                  ett_e2ap_RICactions_ToBeSetup_List, RICactions_ToBeSetup_List_sequence_of,
4059
0
                                                  1, maxofRICactionID, false);
4060
4061
0
  return offset;
4062
0
}
4063
4064
4065
static const per_sequence_t RICsubscriptionDetails_sequence[] = {
4066
  { &hf_e2ap_ricEventTriggerDefinition, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICeventTriggerDefinition },
4067
  { &hf_e2ap_ricAction_ToBeSetup_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactions_ToBeSetup_List },
4068
  { NULL, 0, 0, NULL }
4069
};
4070
4071
static unsigned
4072
0
dissect_e2ap_RICsubscriptionDetails(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4073
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4074
0
                                   ett_e2ap_RICsubscriptionDetails, RICsubscriptionDetails_sequence);
4075
4076
0
  return offset;
4077
0
}
4078
4079
4080
static const per_sequence_t RICaction_ToBeSetup_Item_sequence[] = {
4081
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4082
  { &hf_e2ap_ricActionType  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionType },
4083
  { &hf_e2ap_ricActionDefinition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RICactionDefinition },
4084
  { &hf_e2ap_ricSubsequentAction, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RICsubsequentAction },
4085
  { &hf_e2ap_ricActionExecutionOrder, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RICactionExecutionOrder },
4086
  { NULL, 0, 0, NULL }
4087
};
4088
4089
static unsigned
4090
1
dissect_e2ap_RICaction_ToBeSetup_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4091
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4092
1
                                   ett_e2ap_RICaction_ToBeSetup_Item, RICaction_ToBeSetup_Item_sequence);
4093
4094
1
  return offset;
4095
1
}
4096
4097
4098
static const per_sequence_t RICsubscriptionResponse_sequence[] = {
4099
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4100
  { NULL, 0, 0, NULL }
4101
};
4102
4103
static unsigned
4104
0
dissect_e2ap_RICsubscriptionResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4105
0
  set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_RESPONSE);
4106
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_RESPONSE);
4107
4108
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4109
0
                                   ett_e2ap_RICsubscriptionResponse, RICsubscriptionResponse_sequence);
4110
4111
0
  return offset;
4112
0
}
4113
4114
4115
static const per_sequence_t RICaction_Admitted_List_sequence_of[1] = {
4116
  { &hf_e2ap_RICaction_Admitted_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4117
};
4118
4119
static unsigned
4120
0
dissect_e2ap_RICaction_Admitted_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4121
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4122
0
                                                  ett_e2ap_RICaction_Admitted_List, RICaction_Admitted_List_sequence_of,
4123
0
                                                  1, maxofRICactionID, false);
4124
4125
0
  return offset;
4126
0
}
4127
4128
4129
static const per_sequence_t RICaction_Admitted_Item_sequence[] = {
4130
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4131
  { NULL, 0, 0, NULL }
4132
};
4133
4134
static unsigned
4135
1
dissect_e2ap_RICaction_Admitted_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4136
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4137
1
                                   ett_e2ap_RICaction_Admitted_Item, RICaction_Admitted_Item_sequence);
4138
4139
1
  return offset;
4140
1
}
4141
4142
4143
static const per_sequence_t RICaction_NotAdmitted_List_sequence_of[1] = {
4144
  { &hf_e2ap_RICaction_NotAdmitted_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4145
};
4146
4147
static unsigned
4148
0
dissect_e2ap_RICaction_NotAdmitted_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4149
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4150
0
                                                  ett_e2ap_RICaction_NotAdmitted_List, RICaction_NotAdmitted_List_sequence_of,
4151
0
                                                  0, maxofRICactionID, false);
4152
4153
0
  return offset;
4154
0
}
4155
4156
4157
static const per_sequence_t RICaction_NotAdmitted_Item_sequence[] = {
4158
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4159
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4160
  { NULL, 0, 0, NULL }
4161
};
4162
4163
static unsigned
4164
2
dissect_e2ap_RICaction_NotAdmitted_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4165
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4166
2
                                   ett_e2ap_RICaction_NotAdmitted_Item, RICaction_NotAdmitted_Item_sequence);
4167
4168
2
  return offset;
4169
2
}
4170
4171
4172
static const per_sequence_t RICsubscriptionFailure_sequence[] = {
4173
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4174
  { NULL, 0, 0, NULL }
4175
};
4176
4177
static unsigned
4178
0
dissect_e2ap_RICsubscriptionFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4179
0
  set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_FAIL);
4180
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_FAIL);
4181
4182
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4183
0
                                   ett_e2ap_RICsubscriptionFailure, RICsubscriptionFailure_sequence);
4184
4185
0
  return offset;
4186
0
}
4187
4188
4189
static const per_sequence_t RICsubscriptionDeleteRequest_sequence[] = {
4190
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4191
  { NULL, 0, 0, NULL }
4192
};
4193
4194
static unsigned
4195
0
dissect_e2ap_RICsubscriptionDeleteRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4196
0
  set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST);
4197
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST);
4198
4199
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4200
0
                                   ett_e2ap_RICsubscriptionDeleteRequest, RICsubscriptionDeleteRequest_sequence);
4201
4202
0
  return offset;
4203
0
}
4204
4205
4206
static const per_sequence_t RICsubscriptionDeleteResponse_sequence[] = {
4207
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4208
  { NULL, 0, 0, NULL }
4209
};
4210
4211
static unsigned
4212
0
dissect_e2ap_RICsubscriptionDeleteResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4213
0
  set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE);
4214
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE);
4215
4216
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4217
0
                                   ett_e2ap_RICsubscriptionDeleteResponse, RICsubscriptionDeleteResponse_sequence);
4218
4219
0
  return offset;
4220
0
}
4221
4222
4223
static const per_sequence_t RICsubscriptionDeleteFailure_sequence[] = {
4224
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4225
  { NULL, 0, 0, NULL }
4226
};
4227
4228
static unsigned
4229
1
dissect_e2ap_RICsubscriptionDeleteFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4230
1
  set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL);
4231
1
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL);
4232
4233
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4234
1
                                   ett_e2ap_RICsubscriptionDeleteFailure, RICsubscriptionDeleteFailure_sequence);
4235
4236
1
  return offset;
4237
1
}
4238
4239
4240
static const per_sequence_t RICsubscriptionDeleteRequired_sequence[] = {
4241
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4242
  { NULL, 0, 0, NULL }
4243
};
4244
4245
static unsigned
4246
0
dissect_e2ap_RICsubscriptionDeleteRequired(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4247
0
  set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED);
4248
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED);
4249
4250
4251
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4252
0
                                   ett_e2ap_RICsubscriptionDeleteRequired, RICsubscriptionDeleteRequired_sequence);
4253
4254
0
  return offset;
4255
0
}
4256
4257
4258
static const per_sequence_t RICsubscription_List_withCause_sequence_of[1] = {
4259
  { &hf_e2ap_RICsubscription_List_withCause_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4260
};
4261
4262
static unsigned
4263
0
dissect_e2ap_RICsubscription_List_withCause(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4264
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4265
0
                                                  ett_e2ap_RICsubscription_List_withCause, RICsubscription_List_withCause_sequence_of,
4266
0
                                                  1, maxofRICrequestID, false);
4267
4268
0
  return offset;
4269
0
}
4270
4271
4272
static const per_sequence_t RICsubscription_withCause_Item_sequence[] = {
4273
  { &hf_e2ap_ricRequestID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICrequestID },
4274
  { &hf_e2ap_ranFunctionID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionID },
4275
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4276
  { NULL, 0, 0, NULL }
4277
};
4278
4279
static unsigned
4280
16
dissect_e2ap_RICsubscription_withCause_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4281
16
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4282
16
                                   ett_e2ap_RICsubscription_withCause_Item, RICsubscription_withCause_Item_sequence);
4283
4284
16
  return offset;
4285
16
}
4286
4287
4288
static const per_sequence_t RICsubscriptionModificationRequest_sequence[] = {
4289
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4290
  { NULL, 0, 0, NULL }
4291
};
4292
4293
static unsigned
4294
0
dissect_e2ap_RICsubscriptionModificationRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4295
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4296
0
                                   ett_e2ap_RICsubscriptionModificationRequest, RICsubscriptionModificationRequest_sequence);
4297
4298
0
  return offset;
4299
0
}
4300
4301
4302
static const per_sequence_t RICactions_ToBeRemovedForModification_List_sequence_of[1] = {
4303
  { &hf_e2ap_RICactions_ToBeRemovedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4304
};
4305
4306
static unsigned
4307
1
dissect_e2ap_RICactions_ToBeRemovedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4308
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4309
1
                                                  ett_e2ap_RICactions_ToBeRemovedForModification_List, RICactions_ToBeRemovedForModification_List_sequence_of,
4310
1
                                                  0, maxofRICactionID, false);
4311
4312
1
  return offset;
4313
1
}
4314
4315
4316
static const per_sequence_t RICaction_ToBeRemovedForModification_Item_sequence[] = {
4317
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4318
  { NULL, 0, 0, NULL }
4319
};
4320
4321
static unsigned
4322
0
dissect_e2ap_RICaction_ToBeRemovedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4323
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4324
0
                                   ett_e2ap_RICaction_ToBeRemovedForModification_Item, RICaction_ToBeRemovedForModification_Item_sequence);
4325
4326
0
  return offset;
4327
0
}
4328
4329
4330
static const per_sequence_t RICactions_ToBeModifiedForModification_List_sequence_of[1] = {
4331
  { &hf_e2ap_RICactions_ToBeModifiedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4332
};
4333
4334
static unsigned
4335
1
dissect_e2ap_RICactions_ToBeModifiedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4336
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4337
1
                                                  ett_e2ap_RICactions_ToBeModifiedForModification_List, RICactions_ToBeModifiedForModification_List_sequence_of,
4338
1
                                                  0, maxofRICactionID, false);
4339
4340
1
  return offset;
4341
1
}
4342
4343
4344
static const per_sequence_t RICaction_ToBeModifiedForModification_Item_sequence[] = {
4345
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4346
  { &hf_e2ap_ricActionDefinition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RICactionDefinition },
4347
  { &hf_e2ap_ricActionExecutionOrder, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RICactionExecutionOrder },
4348
  { &hf_e2ap_ricSubsequentAction, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RICsubsequentAction },
4349
  { NULL, 0, 0, NULL }
4350
};
4351
4352
static unsigned
4353
0
dissect_e2ap_RICaction_ToBeModifiedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4354
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4355
0
                                   ett_e2ap_RICaction_ToBeModifiedForModification_Item, RICaction_ToBeModifiedForModification_Item_sequence);
4356
4357
0
  return offset;
4358
0
}
4359
4360
4361
static const per_sequence_t RICactions_ToBeAddedForModification_List_sequence_of[1] = {
4362
  { &hf_e2ap_RICactions_ToBeAddedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4363
};
4364
4365
static unsigned
4366
1
dissect_e2ap_RICactions_ToBeAddedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4367
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4368
1
                                                  ett_e2ap_RICactions_ToBeAddedForModification_List, RICactions_ToBeAddedForModification_List_sequence_of,
4369
1
                                                  0, maxofRICactionID, false);
4370
4371
1
  return offset;
4372
1
}
4373
4374
4375
static const per_sequence_t RICaction_ToBeAddedForModification_Item_sequence[] = {
4376
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4377
  { &hf_e2ap_ricActionType  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionType },
4378
  { &hf_e2ap_ricActionDefinition, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionDefinition },
4379
  { &hf_e2ap_ricActionExecutionOrder, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionExecutionOrder },
4380
  { &hf_e2ap_ricSubsequentAction, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RICsubsequentAction },
4381
  { NULL, 0, 0, NULL }
4382
};
4383
4384
static unsigned
4385
2
dissect_e2ap_RICaction_ToBeAddedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4386
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4387
2
                                   ett_e2ap_RICaction_ToBeAddedForModification_Item, RICaction_ToBeAddedForModification_Item_sequence);
4388
4389
2
  return offset;
4390
2
}
4391
4392
4393
static const per_sequence_t RICsubscriptionModificationResponse_sequence[] = {
4394
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4395
  { NULL, 0, 0, NULL }
4396
};
4397
4398
static unsigned
4399
0
dissect_e2ap_RICsubscriptionModificationResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4400
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4401
0
                                   ett_e2ap_RICsubscriptionModificationResponse, RICsubscriptionModificationResponse_sequence);
4402
4403
0
  return offset;
4404
0
}
4405
4406
4407
static const per_sequence_t RICactions_RemovedForModification_List_sequence_of[1] = {
4408
  { &hf_e2ap_RICactions_RemovedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4409
};
4410
4411
static unsigned
4412
0
dissect_e2ap_RICactions_RemovedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4413
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4414
0
                                                  ett_e2ap_RICactions_RemovedForModification_List, RICactions_RemovedForModification_List_sequence_of,
4415
0
                                                  0, maxofRICactionID, false);
4416
4417
0
  return offset;
4418
0
}
4419
4420
4421
static const per_sequence_t RICaction_RemovedForModification_Item_sequence[] = {
4422
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4423
  { NULL, 0, 0, NULL }
4424
};
4425
4426
static unsigned
4427
1
dissect_e2ap_RICaction_RemovedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4428
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4429
1
                                   ett_e2ap_RICaction_RemovedForModification_Item, RICaction_RemovedForModification_Item_sequence);
4430
4431
1
  return offset;
4432
1
}
4433
4434
4435
static const per_sequence_t RICactions_FailedToBeRemovedForModification_List_sequence_of[1] = {
4436
  { &hf_e2ap_RICactions_FailedToBeRemovedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4437
};
4438
4439
static unsigned
4440
1
dissect_e2ap_RICactions_FailedToBeRemovedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4441
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4442
1
                                                  ett_e2ap_RICactions_FailedToBeRemovedForModification_List, RICactions_FailedToBeRemovedForModification_List_sequence_of,
4443
1
                                                  0, maxofRICactionID, false);
4444
4445
1
  return offset;
4446
1
}
4447
4448
4449
static const per_sequence_t RICaction_FailedToBeRemovedForModification_Item_sequence[] = {
4450
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4451
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4452
  { NULL, 0, 0, NULL }
4453
};
4454
4455
static unsigned
4456
2
dissect_e2ap_RICaction_FailedToBeRemovedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4457
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4458
2
                                   ett_e2ap_RICaction_FailedToBeRemovedForModification_Item, RICaction_FailedToBeRemovedForModification_Item_sequence);
4459
4460
2
  return offset;
4461
2
}
4462
4463
4464
static const per_sequence_t RICactions_ModifiedForModification_List_sequence_of[1] = {
4465
  { &hf_e2ap_RICactions_ModifiedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4466
};
4467
4468
static unsigned
4469
0
dissect_e2ap_RICactions_ModifiedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4470
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4471
0
                                                  ett_e2ap_RICactions_ModifiedForModification_List, RICactions_ModifiedForModification_List_sequence_of,
4472
0
                                                  0, maxofRICactionID, false);
4473
4474
0
  return offset;
4475
0
}
4476
4477
4478
static const per_sequence_t RICaction_ModifiedForModification_Item_sequence[] = {
4479
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4480
  { NULL, 0, 0, NULL }
4481
};
4482
4483
static unsigned
4484
1
dissect_e2ap_RICaction_ModifiedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4485
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4486
1
                                   ett_e2ap_RICaction_ModifiedForModification_Item, RICaction_ModifiedForModification_Item_sequence);
4487
4488
1
  return offset;
4489
1
}
4490
4491
4492
static const per_sequence_t RICactions_FailedToBeModifiedForModification_List_sequence_of[1] = {
4493
  { &hf_e2ap_RICactions_FailedToBeModifiedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4494
};
4495
4496
static unsigned
4497
2
dissect_e2ap_RICactions_FailedToBeModifiedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4498
2
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4499
2
                                                  ett_e2ap_RICactions_FailedToBeModifiedForModification_List, RICactions_FailedToBeModifiedForModification_List_sequence_of,
4500
2
                                                  0, maxofRICactionID, false);
4501
4502
2
  return offset;
4503
2
}
4504
4505
4506
static const per_sequence_t RICaction_FailedToBeModifiedForModification_Item_sequence[] = {
4507
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4508
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4509
  { NULL, 0, 0, NULL }
4510
};
4511
4512
static unsigned
4513
0
dissect_e2ap_RICaction_FailedToBeModifiedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4514
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4515
0
                                   ett_e2ap_RICaction_FailedToBeModifiedForModification_Item, RICaction_FailedToBeModifiedForModification_Item_sequence);
4516
4517
0
  return offset;
4518
0
}
4519
4520
4521
static const per_sequence_t RICactions_AddedForModification_List_sequence_of[1] = {
4522
  { &hf_e2ap_RICactions_AddedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4523
};
4524
4525
static unsigned
4526
0
dissect_e2ap_RICactions_AddedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4527
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4528
0
                                                  ett_e2ap_RICactions_AddedForModification_List, RICactions_AddedForModification_List_sequence_of,
4529
0
                                                  0, maxofRICactionID, false);
4530
4531
0
  return offset;
4532
0
}
4533
4534
4535
static const per_sequence_t RICaction_AddedForModification_Item_sequence[] = {
4536
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4537
  { NULL, 0, 0, NULL }
4538
};
4539
4540
static unsigned
4541
3
dissect_e2ap_RICaction_AddedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4542
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4543
3
                                   ett_e2ap_RICaction_AddedForModification_Item, RICaction_AddedForModification_Item_sequence);
4544
4545
3
  return offset;
4546
3
}
4547
4548
4549
static const per_sequence_t RICactions_FailedToBeAddedForModification_List_sequence_of[1] = {
4550
  { &hf_e2ap_RICactions_FailedToBeAddedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4551
};
4552
4553
static unsigned
4554
0
dissect_e2ap_RICactions_FailedToBeAddedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4555
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4556
0
                                                  ett_e2ap_RICactions_FailedToBeAddedForModification_List, RICactions_FailedToBeAddedForModification_List_sequence_of,
4557
0
                                                  0, maxofRICactionID, false);
4558
4559
0
  return offset;
4560
0
}
4561
4562
4563
static const per_sequence_t RICaction_FailedToBeAddedForModification_Item_sequence[] = {
4564
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4565
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4566
  { NULL, 0, 0, NULL }
4567
};
4568
4569
static unsigned
4570
1
dissect_e2ap_RICaction_FailedToBeAddedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4571
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4572
1
                                   ett_e2ap_RICaction_FailedToBeAddedForModification_Item, RICaction_FailedToBeAddedForModification_Item_sequence);
4573
4574
1
  return offset;
4575
1
}
4576
4577
4578
static const per_sequence_t RICsubscriptionModificationFailure_sequence[] = {
4579
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4580
  { NULL, 0, 0, NULL }
4581
};
4582
4583
static unsigned
4584
5
dissect_e2ap_RICsubscriptionModificationFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4585
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4586
5
                                   ett_e2ap_RICsubscriptionModificationFailure, RICsubscriptionModificationFailure_sequence);
4587
4588
5
  return offset;
4589
5
}
4590
4591
4592
static const per_sequence_t RICsubscriptionModificationRequired_sequence[] = {
4593
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4594
  { NULL, 0, 0, NULL }
4595
};
4596
4597
static unsigned
4598
1
dissect_e2ap_RICsubscriptionModificationRequired(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4599
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4600
1
                                   ett_e2ap_RICsubscriptionModificationRequired, RICsubscriptionModificationRequired_sequence);
4601
4602
1
  return offset;
4603
1
}
4604
4605
4606
static const per_sequence_t RICactions_RequiredToBeModified_List_sequence_of[1] = {
4607
  { &hf_e2ap_RICactions_RequiredToBeModified_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4608
};
4609
4610
static unsigned
4611
0
dissect_e2ap_RICactions_RequiredToBeModified_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4612
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4613
0
                                                  ett_e2ap_RICactions_RequiredToBeModified_List, RICactions_RequiredToBeModified_List_sequence_of,
4614
0
                                                  0, maxofRICactionID, false);
4615
4616
0
  return offset;
4617
0
}
4618
4619
4620
static const per_sequence_t RICaction_RequiredToBeModified_Item_sequence[] = {
4621
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4622
  { &hf_e2ap_ricTimeToWait  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICtimeToWait },
4623
  { NULL, 0, 0, NULL }
4624
};
4625
4626
static unsigned
4627
3
dissect_e2ap_RICaction_RequiredToBeModified_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4628
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4629
3
                                   ett_e2ap_RICaction_RequiredToBeModified_Item, RICaction_RequiredToBeModified_Item_sequence);
4630
4631
3
  return offset;
4632
3
}
4633
4634
4635
static const per_sequence_t RICactions_RequiredToBeRemoved_List_sequence_of[1] = {
4636
  { &hf_e2ap_RICactions_RequiredToBeRemoved_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4637
};
4638
4639
static unsigned
4640
0
dissect_e2ap_RICactions_RequiredToBeRemoved_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4641
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4642
0
                                                  ett_e2ap_RICactions_RequiredToBeRemoved_List, RICactions_RequiredToBeRemoved_List_sequence_of,
4643
0
                                                  0, maxofRICactionID, false);
4644
4645
0
  return offset;
4646
0
}
4647
4648
4649
static const per_sequence_t RICaction_RequiredToBeRemoved_Item_sequence[] = {
4650
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4651
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4652
  { NULL, 0, 0, NULL }
4653
};
4654
4655
static unsigned
4656
0
dissect_e2ap_RICaction_RequiredToBeRemoved_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4657
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4658
0
                                   ett_e2ap_RICaction_RequiredToBeRemoved_Item, RICaction_RequiredToBeRemoved_Item_sequence);
4659
4660
0
  return offset;
4661
0
}
4662
4663
4664
static const per_sequence_t RICsubscriptionModificationConfirm_sequence[] = {
4665
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4666
  { NULL, 0, 0, NULL }
4667
};
4668
4669
static unsigned
4670
0
dissect_e2ap_RICsubscriptionModificationConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4671
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4672
0
                                   ett_e2ap_RICsubscriptionModificationConfirm, RICsubscriptionModificationConfirm_sequence);
4673
4674
0
  return offset;
4675
0
}
4676
4677
4678
static const per_sequence_t RICactions_ConfirmedForModification_List_sequence_of[1] = {
4679
  { &hf_e2ap_RICactions_ConfirmedForModification_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4680
};
4681
4682
static unsigned
4683
2
dissect_e2ap_RICactions_ConfirmedForModification_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4684
2
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4685
2
                                                  ett_e2ap_RICactions_ConfirmedForModification_List, RICactions_ConfirmedForModification_List_sequence_of,
4686
2
                                                  0, maxofRICactionID, false);
4687
4688
2
  return offset;
4689
2
}
4690
4691
4692
static const per_sequence_t RICaction_ConfirmedForModification_Item_sequence[] = {
4693
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4694
  { NULL, 0, 0, NULL }
4695
};
4696
4697
static unsigned
4698
1
dissect_e2ap_RICaction_ConfirmedForModification_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4699
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4700
1
                                   ett_e2ap_RICaction_ConfirmedForModification_Item, RICaction_ConfirmedForModification_Item_sequence);
4701
4702
1
  return offset;
4703
1
}
4704
4705
4706
static const per_sequence_t RICactions_RefusedToBeModified_List_sequence_of[1] = {
4707
  { &hf_e2ap_RICactions_RefusedToBeModified_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4708
};
4709
4710
static unsigned
4711
0
dissect_e2ap_RICactions_RefusedToBeModified_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4712
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4713
0
                                                  ett_e2ap_RICactions_RefusedToBeModified_List, RICactions_RefusedToBeModified_List_sequence_of,
4714
0
                                                  0, maxofRICactionID, false);
4715
4716
0
  return offset;
4717
0
}
4718
4719
4720
static const per_sequence_t RICaction_RefusedToBeModified_Item_sequence[] = {
4721
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4722
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4723
  { NULL, 0, 0, NULL }
4724
};
4725
4726
static unsigned
4727
0
dissect_e2ap_RICaction_RefusedToBeModified_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4728
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4729
0
                                   ett_e2ap_RICaction_RefusedToBeModified_Item, RICaction_RefusedToBeModified_Item_sequence);
4730
4731
0
  return offset;
4732
0
}
4733
4734
4735
static const per_sequence_t RICactions_ConfirmedForRemoval_List_sequence_of[1] = {
4736
  { &hf_e2ap_RICactions_ConfirmedForRemoval_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4737
};
4738
4739
static unsigned
4740
1
dissect_e2ap_RICactions_ConfirmedForRemoval_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4741
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4742
1
                                                  ett_e2ap_RICactions_ConfirmedForRemoval_List, RICactions_ConfirmedForRemoval_List_sequence_of,
4743
1
                                                  0, maxofRICactionID, false);
4744
4745
1
  return offset;
4746
1
}
4747
4748
4749
static const per_sequence_t RICaction_ConfirmedForRemoval_Item_sequence[] = {
4750
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4751
  { NULL, 0, 0, NULL }
4752
};
4753
4754
static unsigned
4755
0
dissect_e2ap_RICaction_ConfirmedForRemoval_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4756
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4757
0
                                   ett_e2ap_RICaction_ConfirmedForRemoval_Item, RICaction_ConfirmedForRemoval_Item_sequence);
4758
4759
0
  return offset;
4760
0
}
4761
4762
4763
static const per_sequence_t RICactions_RefusedToBeRemoved_List_sequence_of[1] = {
4764
  { &hf_e2ap_RICactions_RefusedToBeRemoved_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
4765
};
4766
4767
static unsigned
4768
1
dissect_e2ap_RICactions_RefusedToBeRemoved_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4769
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4770
1
                                                  ett_e2ap_RICactions_RefusedToBeRemoved_List, RICactions_RefusedToBeRemoved_List_sequence_of,
4771
1
                                                  0, maxofRICactionID, false);
4772
4773
1
  return offset;
4774
1
}
4775
4776
4777
static const per_sequence_t RICaction_RefusedToBeRemoved_Item_sequence[] = {
4778
  { &hf_e2ap_ricActionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RICactionID },
4779
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
4780
  { NULL, 0, 0, NULL }
4781
};
4782
4783
static unsigned
4784
3
dissect_e2ap_RICaction_RefusedToBeRemoved_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4785
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4786
3
                                   ett_e2ap_RICaction_RefusedToBeRemoved_Item, RICaction_RefusedToBeRemoved_Item_sequence);
4787
4788
3
  return offset;
4789
3
}
4790
4791
4792
static const per_sequence_t RICsubscriptionModificationRefuse_sequence[] = {
4793
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4794
  { NULL, 0, 0, NULL }
4795
};
4796
4797
static unsigned
4798
0
dissect_e2ap_RICsubscriptionModificationRefuse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4799
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4800
0
                                   ett_e2ap_RICsubscriptionModificationRefuse, RICsubscriptionModificationRefuse_sequence);
4801
4802
0
  return offset;
4803
0
}
4804
4805
4806
static const per_sequence_t RICindication_sequence[] = {
4807
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4808
  { NULL, 0, 0, NULL }
4809
};
4810
4811
static unsigned
4812
21
dissect_e2ap_RICindication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4813
21
  set_message_label(actx, MTYPE_RIC_IND);
4814
21
  set_stats_message_type(actx->pinfo, MTYPE_RIC_IND);
4815
4816
21
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4817
21
                                   ett_e2ap_RICindication, RICindication_sequence);
4818
4819
21
  return offset;
4820
21
}
4821
4822
4823
static const per_sequence_t RICcontrolRequest_sequence[] = {
4824
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4825
  { NULL, 0, 0, NULL }
4826
};
4827
4828
static unsigned
4829
10
dissect_e2ap_RICcontrolRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4830
10
  set_message_label(actx, MTYPE_RIC_CONTROL_REQUEST);
4831
10
  set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_REQUEST);
4832
4833
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4834
10
                                   ett_e2ap_RICcontrolRequest, RICcontrolRequest_sequence);
4835
4836
10
  return offset;
4837
10
}
4838
4839
4840
static const per_sequence_t RICcontrolAcknowledge_sequence[] = {
4841
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4842
  { NULL, 0, 0, NULL }
4843
};
4844
4845
static unsigned
4846
1
dissect_e2ap_RICcontrolAcknowledge(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4847
1
  set_message_label(actx, MTYPE_RIC_CONTROL_ACK);
4848
1
  set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_ACK);
4849
4850
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4851
1
                                   ett_e2ap_RICcontrolAcknowledge, RICcontrolAcknowledge_sequence);
4852
4853
1
  return offset;
4854
1
}
4855
4856
4857
static const per_sequence_t RICcontrolFailure_sequence[] = {
4858
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4859
  { NULL, 0, 0, NULL }
4860
};
4861
4862
static unsigned
4863
17
dissect_e2ap_RICcontrolFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4864
17
  set_message_label(actx, MTYPE_RIC_CONTROL_FAIL);
4865
17
  set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_FAIL);
4866
4867
17
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4868
17
                                   ett_e2ap_RICcontrolFailure, RICcontrolFailure_sequence);
4869
4870
17
  return offset;
4871
17
}
4872
4873
4874
static const per_sequence_t RICQueryRequest_sequence[] = {
4875
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4876
  { NULL, 0, 0, NULL }
4877
};
4878
4879
static unsigned
4880
1
dissect_e2ap_RICQueryRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4881
1
  set_message_label(actx, MTYPE_RIC_QUERY_REQUEST);
4882
1
  set_stats_message_type(actx->pinfo, MTYPE_RIC_QUERY_REQUEST);
4883
4884
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4885
1
                                   ett_e2ap_RICQueryRequest, RICQueryRequest_sequence);
4886
4887
1
  return offset;
4888
1
}
4889
4890
4891
static const per_sequence_t RICQueryResponse_sequence[] = {
4892
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4893
  { NULL, 0, 0, NULL }
4894
};
4895
4896
static unsigned
4897
0
dissect_e2ap_RICQueryResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4898
0
  set_message_label(actx, MTYPE_RIC_QUERY_RESPONSE);
4899
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_QUERY_RESPONSE);
4900
4901
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4902
0
                                   ett_e2ap_RICQueryResponse, RICQueryResponse_sequence);
4903
4904
0
  return offset;
4905
0
}
4906
4907
4908
static const per_sequence_t RICQueryFailure_sequence[] = {
4909
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4910
  { NULL, 0, 0, NULL }
4911
};
4912
4913
static unsigned
4914
0
dissect_e2ap_RICQueryFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4915
0
  set_message_label(actx, MTYPE_RIC_QUERY_FAILURE);
4916
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_QUERY_FAILURE);
4917
4918
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4919
0
                                   ett_e2ap_RICQueryFailure, RICQueryFailure_sequence);
4920
4921
0
  return offset;
4922
0
}
4923
4924
4925
static const per_sequence_t ErrorIndication_sequence[] = {
4926
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4927
  { NULL, 0, 0, NULL }
4928
};
4929
4930
static unsigned
4931
2
dissect_e2ap_ErrorIndication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4932
2
  set_message_label(actx, MTYPE_ERROR_INDICATION);
4933
2
  set_stats_message_type(actx->pinfo, MTYPE_ERROR_INDICATION);
4934
4935
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4936
2
                                   ett_e2ap_ErrorIndication, ErrorIndication_sequence);
4937
4938
2
  return offset;
4939
2
}
4940
4941
4942
static const per_sequence_t E2setupRequest_sequence[] = {
4943
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4944
  { NULL, 0, 0, NULL }
4945
};
4946
4947
static unsigned
4948
7
dissect_e2ap_E2setupRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4949
7
  set_message_label(actx, MTYPE_E2_SETUP_REQUEST);
4950
7
  set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_REQUEST);
4951
4952
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4953
7
                                   ett_e2ap_E2setupRequest, E2setupRequest_sequence);
4954
4955
7
  return offset;
4956
7
}
4957
4958
4959
static const per_sequence_t E2setupResponse_sequence[] = {
4960
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4961
  { NULL, 0, 0, NULL }
4962
};
4963
4964
static unsigned
4965
0
dissect_e2ap_E2setupResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4966
0
  set_message_label(actx, MTYPE_E2_SETUP_RESPONSE);
4967
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_RESPONSE);
4968
4969
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4970
0
                                   ett_e2ap_E2setupResponse, E2setupResponse_sequence);
4971
4972
0
  return offset;
4973
0
}
4974
4975
4976
static const per_sequence_t E2setupFailure_sequence[] = {
4977
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4978
  { NULL, 0, 0, NULL }
4979
};
4980
4981
static unsigned
4982
0
dissect_e2ap_E2setupFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4983
0
  set_message_label(actx, MTYPE_E2_SETUP_FAIL);
4984
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_FAIL);
4985
4986
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4987
0
                                   ett_e2ap_E2setupFailure, E2setupFailure_sequence);
4988
4989
0
  return offset;
4990
0
}
4991
4992
4993
static const per_sequence_t E2connectionUpdate_sequence[] = {
4994
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
4995
  { NULL, 0, 0, NULL }
4996
};
4997
4998
static unsigned
4999
0
dissect_e2ap_E2connectionUpdate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5000
0
  set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE);
5001
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE);
5002
5003
5004
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5005
0
                                   ett_e2ap_E2connectionUpdate, E2connectionUpdate_sequence);
5006
5007
0
  return offset;
5008
0
}
5009
5010
5011
static const per_sequence_t E2connectionUpdate_List_sequence_of[1] = {
5012
  { &hf_e2ap_E2connectionUpdate_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5013
};
5014
5015
static unsigned
5016
2
dissect_e2ap_E2connectionUpdate_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5017
2
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5018
2
                                                  ett_e2ap_E2connectionUpdate_List, E2connectionUpdate_List_sequence_of,
5019
2
                                                  1, maxofTNLA, false);
5020
5021
2
  return offset;
5022
2
}
5023
5024
5025
static const per_sequence_t E2connectionUpdate_Item_sequence[] = {
5026
  { &hf_e2ap_tnlInformation , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TNLinformation },
5027
  { &hf_e2ap_tnlUsage       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TNLusage },
5028
  { NULL, 0, 0, NULL }
5029
};
5030
5031
static unsigned
5032
1
dissect_e2ap_E2connectionUpdate_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5033
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5034
1
                                   ett_e2ap_E2connectionUpdate_Item, E2connectionUpdate_Item_sequence);
5035
5036
1
  return offset;
5037
1
}
5038
5039
5040
static const per_sequence_t E2connectionUpdateRemove_List_sequence_of[1] = {
5041
  { &hf_e2ap_E2connectionUpdateRemove_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5042
};
5043
5044
static unsigned
5045
1
dissect_e2ap_E2connectionUpdateRemove_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5046
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5047
1
                                                  ett_e2ap_E2connectionUpdateRemove_List, E2connectionUpdateRemove_List_sequence_of,
5048
1
                                                  1, maxofTNLA, false);
5049
5050
1
  return offset;
5051
1
}
5052
5053
5054
static const per_sequence_t E2connectionUpdateRemove_Item_sequence[] = {
5055
  { &hf_e2ap_tnlInformation , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TNLinformation },
5056
  { NULL, 0, 0, NULL }
5057
};
5058
5059
static unsigned
5060
3
dissect_e2ap_E2connectionUpdateRemove_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5061
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5062
3
                                   ett_e2ap_E2connectionUpdateRemove_Item, E2connectionUpdateRemove_Item_sequence);
5063
5064
3
  return offset;
5065
3
}
5066
5067
5068
static const per_sequence_t E2connectionUpdateAcknowledge_sequence[] = {
5069
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5070
  { NULL, 0, 0, NULL }
5071
};
5072
5073
static unsigned
5074
0
dissect_e2ap_E2connectionUpdateAcknowledge(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5075
0
  set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE_ACK);
5076
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE_ACK);
5077
5078
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5079
0
                                   ett_e2ap_E2connectionUpdateAcknowledge, E2connectionUpdateAcknowledge_sequence);
5080
5081
0
  return offset;
5082
0
}
5083
5084
5085
static const per_sequence_t E2connectionSetupFailed_List_sequence_of[1] = {
5086
  { &hf_e2ap_E2connectionSetupFailed_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5087
};
5088
5089
static unsigned
5090
0
dissect_e2ap_E2connectionSetupFailed_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5091
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5092
0
                                                  ett_e2ap_E2connectionSetupFailed_List, E2connectionSetupFailed_List_sequence_of,
5093
0
                                                  1, maxofTNLA, false);
5094
5095
0
  return offset;
5096
0
}
5097
5098
5099
static const per_sequence_t E2connectionSetupFailed_Item_sequence[] = {
5100
  { &hf_e2ap_tnlInformation , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TNLinformation },
5101
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
5102
  { NULL, 0, 0, NULL }
5103
};
5104
5105
static unsigned
5106
1
dissect_e2ap_E2connectionSetupFailed_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5107
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5108
1
                                   ett_e2ap_E2connectionSetupFailed_Item, E2connectionSetupFailed_Item_sequence);
5109
5110
1
  return offset;
5111
1
}
5112
5113
5114
static const per_sequence_t E2connectionUpdateFailure_sequence[] = {
5115
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5116
  { NULL, 0, 0, NULL }
5117
};
5118
5119
static unsigned
5120
0
dissect_e2ap_E2connectionUpdateFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5121
0
  set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE_FAIL);
5122
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE_FAIL);
5123
5124
5125
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5126
0
                                   ett_e2ap_E2connectionUpdateFailure, E2connectionUpdateFailure_sequence);
5127
5128
0
  return offset;
5129
0
}
5130
5131
5132
static const per_sequence_t E2nodeConfigurationUpdate_sequence[] = {
5133
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5134
  { NULL, 0, 0, NULL }
5135
};
5136
5137
static unsigned
5138
0
dissect_e2ap_E2nodeConfigurationUpdate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5139
0
  set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE);
5140
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE);
5141
5142
5143
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5144
0
                                   ett_e2ap_E2nodeConfigurationUpdate, E2nodeConfigurationUpdate_sequence);
5145
5146
0
  return offset;
5147
0
}
5148
5149
5150
static const per_sequence_t E2nodeComponentConfigAddition_List_sequence_of[1] = {
5151
  { &hf_e2ap_E2nodeComponentConfigAddition_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5152
};
5153
5154
static unsigned
5155
0
dissect_e2ap_E2nodeComponentConfigAddition_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5156
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5157
0
                                                  ett_e2ap_E2nodeComponentConfigAddition_List, E2nodeComponentConfigAddition_List_sequence_of,
5158
0
                                                  1, maxofE2nodeComponents, false);
5159
5160
0
  return offset;
5161
0
}
5162
5163
5164
static const per_sequence_t E2nodeComponentConfigAddition_Item_sequence[] = {
5165
  { &hf_e2ap_e2nodeComponentInterfaceType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentInterfaceType },
5166
  { &hf_e2ap_e2nodeComponentID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentID },
5167
  { &hf_e2ap_e2nodeComponentConfiguration, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentConfiguration },
5168
  { NULL, 0, 0, NULL }
5169
};
5170
5171
static unsigned
5172
7
dissect_e2ap_E2nodeComponentConfigAddition_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5173
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5174
7
                                   ett_e2ap_E2nodeComponentConfigAddition_Item, E2nodeComponentConfigAddition_Item_sequence);
5175
5176
7
  return offset;
5177
7
}
5178
5179
5180
static const per_sequence_t E2nodeComponentConfigUpdate_List_sequence_of[1] = {
5181
  { &hf_e2ap_E2nodeComponentConfigUpdate_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5182
};
5183
5184
static unsigned
5185
1
dissect_e2ap_E2nodeComponentConfigUpdate_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5186
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5187
1
                                                  ett_e2ap_E2nodeComponentConfigUpdate_List, E2nodeComponentConfigUpdate_List_sequence_of,
5188
1
                                                  1, maxofE2nodeComponents, false);
5189
5190
1
  return offset;
5191
1
}
5192
5193
5194
static const per_sequence_t E2nodeComponentConfigUpdate_Item_sequence[] = {
5195
  { &hf_e2ap_e2nodeComponentInterfaceType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentInterfaceType },
5196
  { &hf_e2ap_e2nodeComponentID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentID },
5197
  { &hf_e2ap_e2nodeComponentConfiguration, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentConfiguration },
5198
  { NULL, 0, 0, NULL }
5199
};
5200
5201
static unsigned
5202
0
dissect_e2ap_E2nodeComponentConfigUpdate_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5203
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5204
0
                                   ett_e2ap_E2nodeComponentConfigUpdate_Item, E2nodeComponentConfigUpdate_Item_sequence);
5205
5206
0
  return offset;
5207
0
}
5208
5209
5210
static const per_sequence_t E2nodeComponentConfigRemoval_List_sequence_of[1] = {
5211
  { &hf_e2ap_E2nodeComponentConfigRemoval_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5212
};
5213
5214
static unsigned
5215
3
dissect_e2ap_E2nodeComponentConfigRemoval_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5216
3
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5217
3
                                                  ett_e2ap_E2nodeComponentConfigRemoval_List, E2nodeComponentConfigRemoval_List_sequence_of,
5218
3
                                                  1, maxofE2nodeComponents, false);
5219
5220
3
  return offset;
5221
3
}
5222
5223
5224
static const per_sequence_t E2nodeComponentConfigRemoval_Item_sequence[] = {
5225
  { &hf_e2ap_e2nodeComponentInterfaceType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentInterfaceType },
5226
  { &hf_e2ap_e2nodeComponentID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentID },
5227
  { NULL, 0, 0, NULL }
5228
};
5229
5230
static unsigned
5231
2
dissect_e2ap_E2nodeComponentConfigRemoval_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5232
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5233
2
                                   ett_e2ap_E2nodeComponentConfigRemoval_Item, E2nodeComponentConfigRemoval_Item_sequence);
5234
5235
2
  return offset;
5236
2
}
5237
5238
5239
static const per_sequence_t E2nodeTNLassociationRemoval_List_sequence_of[1] = {
5240
  { &hf_e2ap_E2nodeTNLassociationRemoval_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5241
};
5242
5243
static unsigned
5244
1
dissect_e2ap_E2nodeTNLassociationRemoval_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5245
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5246
1
                                                  ett_e2ap_E2nodeTNLassociationRemoval_List, E2nodeTNLassociationRemoval_List_sequence_of,
5247
1
                                                  1, maxofTNLA, false);
5248
5249
1
  return offset;
5250
1
}
5251
5252
5253
static const per_sequence_t E2nodeTNLassociationRemoval_Item_sequence[] = {
5254
  { &hf_e2ap_tnlInformation , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TNLinformation },
5255
  { &hf_e2ap_tnlInformationRIC, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TNLinformation },
5256
  { NULL, 0, 0, NULL }
5257
};
5258
5259
static unsigned
5260
1
dissect_e2ap_E2nodeTNLassociationRemoval_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5261
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5262
1
                                   ett_e2ap_E2nodeTNLassociationRemoval_Item, E2nodeTNLassociationRemoval_Item_sequence);
5263
5264
1
  return offset;
5265
1
}
5266
5267
5268
static const per_sequence_t E2nodeConfigurationUpdateAcknowledge_sequence[] = {
5269
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5270
  { NULL, 0, 0, NULL }
5271
};
5272
5273
static unsigned
5274
0
dissect_e2ap_E2nodeConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5275
0
  set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE_ACK);
5276
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE_ACK);
5277
5278
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5279
0
                                   ett_e2ap_E2nodeConfigurationUpdateAcknowledge, E2nodeConfigurationUpdateAcknowledge_sequence);
5280
5281
0
  return offset;
5282
0
}
5283
5284
5285
static const per_sequence_t E2nodeComponentConfigAdditionAck_List_sequence_of[1] = {
5286
  { &hf_e2ap_E2nodeComponentConfigAdditionAck_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5287
};
5288
5289
static unsigned
5290
1
dissect_e2ap_E2nodeComponentConfigAdditionAck_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5291
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5292
1
                                                  ett_e2ap_E2nodeComponentConfigAdditionAck_List, E2nodeComponentConfigAdditionAck_List_sequence_of,
5293
1
                                                  1, maxofE2nodeComponents, false);
5294
5295
1
  return offset;
5296
1
}
5297
5298
5299
static const per_sequence_t E2nodeComponentConfigAdditionAck_Item_sequence[] = {
5300
  { &hf_e2ap_e2nodeComponentInterfaceType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentInterfaceType },
5301
  { &hf_e2ap_e2nodeComponentID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentID },
5302
  { &hf_e2ap_e2nodeComponentConfigurationAck, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentConfigurationAck },
5303
  { NULL, 0, 0, NULL }
5304
};
5305
5306
static unsigned
5307
1
dissect_e2ap_E2nodeComponentConfigAdditionAck_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5308
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5309
1
                                   ett_e2ap_E2nodeComponentConfigAdditionAck_Item, E2nodeComponentConfigAdditionAck_Item_sequence);
5310
5311
1
  return offset;
5312
1
}
5313
5314
5315
static const per_sequence_t E2nodeComponentConfigUpdateAck_List_sequence_of[1] = {
5316
  { &hf_e2ap_E2nodeComponentConfigUpdateAck_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5317
};
5318
5319
static unsigned
5320
0
dissect_e2ap_E2nodeComponentConfigUpdateAck_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5321
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5322
0
                                                  ett_e2ap_E2nodeComponentConfigUpdateAck_List, E2nodeComponentConfigUpdateAck_List_sequence_of,
5323
0
                                                  1, maxofE2nodeComponents, false);
5324
5325
0
  return offset;
5326
0
}
5327
5328
5329
static const per_sequence_t E2nodeComponentConfigUpdateAck_Item_sequence[] = {
5330
  { &hf_e2ap_e2nodeComponentInterfaceType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentInterfaceType },
5331
  { &hf_e2ap_e2nodeComponentID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentID },
5332
  { &hf_e2ap_e2nodeComponentConfigurationAck, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentConfigurationAck },
5333
  { NULL, 0, 0, NULL }
5334
};
5335
5336
static unsigned
5337
1
dissect_e2ap_E2nodeComponentConfigUpdateAck_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5338
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5339
1
                                   ett_e2ap_E2nodeComponentConfigUpdateAck_Item, E2nodeComponentConfigUpdateAck_Item_sequence);
5340
5341
1
  return offset;
5342
1
}
5343
5344
5345
static const per_sequence_t E2nodeComponentConfigRemovalAck_List_sequence_of[1] = {
5346
  { &hf_e2ap_E2nodeComponentConfigRemovalAck_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5347
};
5348
5349
static unsigned
5350
1
dissect_e2ap_E2nodeComponentConfigRemovalAck_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5351
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5352
1
                                                  ett_e2ap_E2nodeComponentConfigRemovalAck_List, E2nodeComponentConfigRemovalAck_List_sequence_of,
5353
1
                                                  1, maxofE2nodeComponents, false);
5354
5355
1
  return offset;
5356
1
}
5357
5358
5359
static const per_sequence_t E2nodeComponentConfigRemovalAck_Item_sequence[] = {
5360
  { &hf_e2ap_e2nodeComponentInterfaceType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentInterfaceType },
5361
  { &hf_e2ap_e2nodeComponentID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentID },
5362
  { &hf_e2ap_e2nodeComponentConfigurationAck, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2nodeComponentConfigurationAck },
5363
  { NULL, 0, 0, NULL }
5364
};
5365
5366
static unsigned
5367
1
dissect_e2ap_E2nodeComponentConfigRemovalAck_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5368
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5369
1
                                   ett_e2ap_E2nodeComponentConfigRemovalAck_Item, E2nodeComponentConfigRemovalAck_Item_sequence);
5370
5371
1
  return offset;
5372
1
}
5373
5374
5375
static const per_sequence_t E2nodeConfigurationUpdateFailure_sequence[] = {
5376
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5377
  { NULL, 0, 0, NULL }
5378
};
5379
5380
static unsigned
5381
0
dissect_e2ap_E2nodeConfigurationUpdateFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5382
0
  set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
5383
0
  set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
5384
5385
5386
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5387
0
                                   ett_e2ap_E2nodeConfigurationUpdateFailure, E2nodeConfigurationUpdateFailure_sequence);
5388
5389
0
  return offset;
5390
0
}
5391
5392
5393
static const per_sequence_t ResetRequest_sequence[] = {
5394
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5395
  { NULL, 0, 0, NULL }
5396
};
5397
5398
static unsigned
5399
6
dissect_e2ap_ResetRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5400
6
  set_message_label(actx, MTYPE_RESET_REQUEST);
5401
6
  set_stats_message_type(actx->pinfo, MTYPE_RESET_REQUEST);
5402
5403
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5404
6
                                   ett_e2ap_ResetRequest, ResetRequest_sequence);
5405
5406
6
  return offset;
5407
6
}
5408
5409
5410
static const per_sequence_t ResetResponse_sequence[] = {
5411
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5412
  { NULL, 0, 0, NULL }
5413
};
5414
5415
static unsigned
5416
2
dissect_e2ap_ResetResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5417
2
  set_message_label(actx, MTYPE_RESET_RESPONSE);
5418
2
  set_stats_message_type(actx->pinfo, MTYPE_RESET_RESPONSE);
5419
5420
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5421
2
                                   ett_e2ap_ResetResponse, ResetResponse_sequence);
5422
5423
2
  return offset;
5424
2
}
5425
5426
5427
static const per_sequence_t RICserviceUpdate_sequence[] = {
5428
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5429
  { NULL, 0, 0, NULL }
5430
};
5431
5432
static unsigned
5433
0
dissect_e2ap_RICserviceUpdate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5434
0
  set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE);
5435
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE);
5436
5437
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5438
0
                                   ett_e2ap_RICserviceUpdate, RICserviceUpdate_sequence);
5439
5440
0
  return offset;
5441
0
}
5442
5443
5444
static const per_sequence_t RANfunctions_List_sequence_of[1] = {
5445
  { &hf_e2ap_RANfunctions_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5446
};
5447
5448
static unsigned
5449
2
dissect_e2ap_RANfunctions_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5450
2
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5451
2
                                                  ett_e2ap_RANfunctions_List, RANfunctions_List_sequence_of,
5452
2
                                                  1, maxofRANfunctionID, false);
5453
5454
2
  return offset;
5455
2
}
5456
5457
5458
static const per_sequence_t RANfunction_Item_sequence[] = {
5459
  { &hf_e2ap_ranFunctionID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionID },
5460
  { &hf_e2ap_ranFunctionDefinition, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionDefinition },
5461
  { &hf_e2ap_ranFunctionRevision, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionRevision },
5462
  { &hf_e2ap_ranFunctionOID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionOID },
5463
  { NULL, 0, 0, NULL }
5464
};
5465
5466
static unsigned
5467
8
dissect_e2ap_RANfunction_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5468
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5469
8
                                   ett_e2ap_RANfunction_Item, RANfunction_Item_sequence);
5470
5471
8
  return offset;
5472
8
}
5473
5474
5475
static const per_sequence_t RANfunctionsID_List_sequence_of[1] = {
5476
  { &hf_e2ap_RANfunctionsID_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5477
};
5478
5479
static unsigned
5480
6
dissect_e2ap_RANfunctionsID_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5481
6
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5482
6
                                                  ett_e2ap_RANfunctionsID_List, RANfunctionsID_List_sequence_of,
5483
6
                                                  1, maxofRANfunctionID, false);
5484
5485
6
  return offset;
5486
6
}
5487
5488
5489
static const per_sequence_t RANfunctionID_Item_sequence[] = {
5490
  { &hf_e2ap_ranFunctionID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionID },
5491
  { &hf_e2ap_ranFunctionRevision, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionRevision },
5492
  { NULL, 0, 0, NULL }
5493
};
5494
5495
static unsigned
5496
1
dissect_e2ap_RANfunctionID_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5497
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5498
1
                                   ett_e2ap_RANfunctionID_Item, RANfunctionID_Item_sequence);
5499
5500
1
  return offset;
5501
1
}
5502
5503
5504
static const per_sequence_t RICserviceUpdateAcknowledge_sequence[] = {
5505
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5506
  { NULL, 0, 0, NULL }
5507
};
5508
5509
static unsigned
5510
0
dissect_e2ap_RICserviceUpdateAcknowledge(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5511
0
  set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE_ACK);
5512
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE_ACK);
5513
5514
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5515
0
                                   ett_e2ap_RICserviceUpdateAcknowledge, RICserviceUpdateAcknowledge_sequence);
5516
5517
0
  return offset;
5518
0
}
5519
5520
5521
static const per_sequence_t RANfunctionsIDcause_List_sequence_of[1] = {
5522
  { &hf_e2ap_RANfunctionsIDcause_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_SingleContainer },
5523
};
5524
5525
static unsigned
5526
0
dissect_e2ap_RANfunctionsIDcause_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5527
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5528
0
                                                  ett_e2ap_RANfunctionsIDcause_List, RANfunctionsIDcause_List_sequence_of,
5529
0
                                                  1, maxofRANfunctionID, false);
5530
5531
0
  return offset;
5532
0
}
5533
5534
5535
static const per_sequence_t RANfunctionIDcause_Item_sequence[] = {
5536
  { &hf_e2ap_ranFunctionID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunctionID },
5537
  { &hf_e2ap_cause          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_Cause },
5538
  { NULL, 0, 0, NULL }
5539
};
5540
5541
static unsigned
5542
2
dissect_e2ap_RANfunctionIDcause_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5543
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5544
2
                                   ett_e2ap_RANfunctionIDcause_Item, RANfunctionIDcause_Item_sequence);
5545
5546
2
  return offset;
5547
2
}
5548
5549
5550
static const per_sequence_t RICserviceUpdateFailure_sequence[] = {
5551
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5552
  { NULL, 0, 0, NULL }
5553
};
5554
5555
static unsigned
5556
0
dissect_e2ap_RICserviceUpdateFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5557
0
  set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE_FAIL);
5558
0
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE_FAIL);
5559
5560
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5561
0
                                   ett_e2ap_RICserviceUpdateFailure, RICserviceUpdateFailure_sequence);
5562
5563
0
  return offset;
5564
0
}
5565
5566
5567
static const per_sequence_t RICserviceQuery_sequence[] = {
5568
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5569
  { NULL, 0, 0, NULL }
5570
};
5571
5572
static unsigned
5573
4
dissect_e2ap_RICserviceQuery(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5574
4
  set_message_label(actx, MTYPE_RIC_SERVICE_QUERY);
5575
4
  set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_QUERY);
5576
5577
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5578
4
                                   ett_e2ap_RICserviceQuery, RICserviceQuery_sequence);
5579
5580
4
  return offset;
5581
4
}
5582
5583
5584
static const per_sequence_t E2RemovalRequest_sequence[] = {
5585
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5586
  { NULL, 0, 0, NULL }
5587
};
5588
5589
static unsigned
5590
1
dissect_e2ap_E2RemovalRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5591
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5592
1
                                   ett_e2ap_E2RemovalRequest, E2RemovalRequest_sequence);
5593
5594
1
  return offset;
5595
1
}
5596
5597
5598
static const per_sequence_t E2RemovalResponse_sequence[] = {
5599
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5600
  { NULL, 0, 0, NULL }
5601
};
5602
5603
static unsigned
5604
0
dissect_e2ap_E2RemovalResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5605
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5606
0
                                   ett_e2ap_E2RemovalResponse, E2RemovalResponse_sequence);
5607
5608
0
  return offset;
5609
0
}
5610
5611
5612
static const per_sequence_t E2RemovalFailure_sequence[] = {
5613
  { &hf_e2ap_protocolIEs    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProtocolIE_Container },
5614
  { NULL, 0, 0, NULL }
5615
};
5616
5617
static unsigned
5618
0
dissect_e2ap_E2RemovalFailure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5619
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5620
0
                                   ett_e2ap_E2RemovalFailure, E2RemovalFailure_sequence);
5621
5622
0
  return offset;
5623
0
}
5624
5625
5626
5627
static unsigned
5628
54
dissect_e2ap_InitiatingMessage_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5629
  // InitiatingMessage/value -> InitiatingMessage/value
5630
54
  increment_dissection_depth_by_n(actx->pinfo, 1);
5631
54
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
5632
54
  e2ap_data->message_type = INITIATING_MESSAGE;
5633
54
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
5634
5635
54
  decrement_dissection_depth_by_n(actx->pinfo, 1);
5636
54
  return offset;
5637
54
}
5638
5639
5640
static const per_sequence_t InitiatingMessage_sequence[] = {
5641
  { &hf_e2ap_procedureCode  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProcedureCode },
5642
  { &hf_e2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_Criticality },
5643
  { &hf_e2ap_initiatingMessagevalue, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_InitiatingMessage_value },
5644
  { NULL, 0, 0, NULL }
5645
};
5646
5647
static unsigned
5648
54
dissect_e2ap_InitiatingMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5649
54
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5650
54
                                   ett_e2ap_InitiatingMessage, InitiatingMessage_sequence);
5651
5652
54
  return offset;
5653
54
}
5654
5655
5656
5657
static unsigned
5658
4
dissect_e2ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5659
  // SuccessfulOutcome/value -> SuccessfulOutcome/value
5660
4
  increment_dissection_depth_by_n(actx->pinfo, 1);
5661
4
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
5662
4
  e2ap_data->message_type = SUCCESSFUL_OUTCOME;
5663
4
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
5664
5665
4
  decrement_dissection_depth_by_n(actx->pinfo, 1);
5666
4
  return offset;
5667
4
}
5668
5669
5670
static const per_sequence_t SuccessfulOutcome_sequence[] = {
5671
  { &hf_e2ap_procedureCode  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProcedureCode },
5672
  { &hf_e2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_Criticality },
5673
  { &hf_e2ap_successfulOutcome_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_SuccessfulOutcome_value },
5674
  { NULL, 0, 0, NULL }
5675
};
5676
5677
static unsigned
5678
4
dissect_e2ap_SuccessfulOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5679
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5680
4
                                   ett_e2ap_SuccessfulOutcome, SuccessfulOutcome_sequence);
5681
5682
4
  return offset;
5683
4
}
5684
5685
5686
5687
static unsigned
5688
26
dissect_e2ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5689
  // UnsuccessfulOutcome/value -> UnsuccessfulOutcome/value
5690
26
  increment_dissection_depth_by_n(actx->pinfo, 1);
5691
26
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
5692
26
  e2ap_data->message_type = UNSUCCESSFUL_OUTCOME;
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
26
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue);
5711
5712
26
  decrement_dissection_depth_by_n(actx->pinfo, 1);
5713
26
  return offset;
5714
26
}
5715
5716
5717
static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
5718
  { &hf_e2ap_procedureCode  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ProcedureCode },
5719
  { &hf_e2ap_criticality    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_Criticality },
5720
  { &hf_e2ap_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_UnsuccessfulOutcome_value },
5721
  { NULL, 0, 0, NULL }
5722
};
5723
5724
static unsigned
5725
26
dissect_e2ap_UnsuccessfulOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5726
26
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5727
26
                                   ett_e2ap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
5728
5729
26
  return offset;
5730
26
}
5731
5732
5733
static const value_string e2ap_E2AP_PDU_vals[] = {
5734
  {   0, "initiatingMessage" },
5735
  {   1, "successfulOutcome" },
5736
  {   2, "unsuccessfulOutcome" },
5737
  { 0, NULL }
5738
};
5739
5740
static const per_choice_t E2AP_PDU_choice[] = {
5741
  {   0, &hf_e2ap_initiatingMessage, ASN1_EXTENSION_ROOT    , dissect_e2ap_InitiatingMessage },
5742
  {   1, &hf_e2ap_successfulOutcome, ASN1_EXTENSION_ROOT    , dissect_e2ap_SuccessfulOutcome },
5743
  {   2, &hf_e2ap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT    , dissect_e2ap_UnsuccessfulOutcome },
5744
  { 0, NULL, 0, NULL }
5745
};
5746
5747
static unsigned
5748
84
dissect_e2ap_E2AP_PDU(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5749
84
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5750
84
                                 ett_e2ap_E2AP_PDU, E2AP_PDU_choice,
5751
84
                                 NULL);
5752
5753
84
  return offset;
5754
84
}
5755
5756
5757
5758
static unsigned
5759
0
dissect_e2ap_PLMNIdentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5760
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5761
0
                                       3, 3, false, NULL);
5762
5763
0
  return offset;
5764
0
}
5765
5766
5767
5768
static unsigned
5769
0
dissect_e2ap_NRCellIdentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5770
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5771
0
                                     36, 36, false, NULL, 0, NULL, NULL);
5772
5773
0
  return offset;
5774
0
}
5775
5776
5777
static const per_sequence_t NR_CGI_sequence[] = {
5778
  { &hf_e2ap_pLMNIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMNIdentity },
5779
  { &hf_e2ap_nRCellIdentity , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NRCellIdentity },
5780
  { NULL, 0, 0, NULL }
5781
};
5782
5783
static unsigned
5784
0
dissect_e2ap_NR_CGI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5785
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5786
0
                                   ett_e2ap_NR_CGI, NR_CGI_sequence);
5787
5788
0
  return offset;
5789
0
}
5790
5791
5792
5793
static unsigned
5794
0
dissect_e2ap_EUTRACellIdentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5795
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5796
0
                                     28, 28, false, NULL, 0, NULL, NULL);
5797
5798
0
  return offset;
5799
0
}
5800
5801
5802
static const per_sequence_t EUTRA_CGI_sequence[] = {
5803
  { &hf_e2ap_pLMNIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMNIdentity },
5804
  { &hf_e2ap_eUTRACellIdentity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_EUTRACellIdentity },
5805
  { NULL, 0, 0, NULL }
5806
};
5807
5808
static unsigned
5809
0
dissect_e2ap_EUTRA_CGI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5810
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5811
0
                                   ett_e2ap_EUTRA_CGI, EUTRA_CGI_sequence);
5812
5813
0
  return offset;
5814
0
}
5815
5816
5817
static const value_string e2ap_CGI_vals[] = {
5818
  {   0, "nR-CGI" },
5819
  {   1, "eUTRA-CGI" },
5820
  { 0, NULL }
5821
};
5822
5823
static const per_choice_t CGI_choice[] = {
5824
  {   0, &hf_e2ap_nR_CGI         , ASN1_EXTENSION_ROOT    , dissect_e2ap_NR_CGI },
5825
  {   1, &hf_e2ap_eUTRA_CGI      , ASN1_EXTENSION_ROOT    , dissect_e2ap_EUTRA_CGI },
5826
  { 0, NULL, 0, NULL }
5827
};
5828
5829
static unsigned
5830
0
dissect_e2ap_CGI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5831
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5832
0
                                 ett_e2ap_CGI, CGI_choice,
5833
0
                                 NULL);
5834
5835
0
  return offset;
5836
0
}
5837
5838
5839
5840
static unsigned
5841
0
dissect_e2ap_AMFRegionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5842
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5843
0
                                     8, 8, false, NULL, 0, NULL, NULL);
5844
5845
0
  return offset;
5846
0
}
5847
5848
5849
5850
static unsigned
5851
0
dissect_e2ap_AMFSetID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5852
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5853
0
                                     10, 10, false, NULL, 0, NULL, NULL);
5854
5855
0
  return offset;
5856
0
}
5857
5858
5859
5860
static unsigned
5861
0
dissect_e2ap_AMFPointer(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5862
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5863
0
                                     6, 6, false, NULL, 0, NULL, NULL);
5864
5865
0
  return offset;
5866
0
}
5867
5868
5869
static const per_sequence_t GUAMI_sequence[] = {
5870
  { &hf_e2ap_pLMNIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMNIdentity },
5871
  { &hf_e2ap_aMFRegionID    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_AMFRegionID },
5872
  { &hf_e2ap_aMFSetID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_AMFSetID },
5873
  { &hf_e2ap_aMFPointer     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_AMFPointer },
5874
  { NULL, 0, 0, NULL }
5875
};
5876
5877
static unsigned
5878
0
dissect_e2ap_GUAMI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5879
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5880
0
                                   ett_e2ap_GUAMI, GUAMI_sequence);
5881
5882
0
  return offset;
5883
0
}
5884
5885
5886
static const per_sequence_t InterfaceID_NG_sequence[] = {
5887
  { &hf_e2ap_guami          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GUAMI },
5888
  { NULL, 0, 0, NULL }
5889
};
5890
5891
static unsigned
5892
0
dissect_e2ap_InterfaceID_NG(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5893
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5894
0
                                   ett_e2ap_InterfaceID_NG, InterfaceID_NG_sequence);
5895
5896
0
  return offset;
5897
0
}
5898
5899
5900
static const value_string e2ap_GNB_ID_vals[] = {
5901
  {   0, "gNB-ID" },
5902
  { 0, NULL }
5903
};
5904
5905
static const per_choice_t GNB_ID_choice[] = {
5906
  {   0, &hf_e2ap_gNB_ID         , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_22_32 },
5907
  { 0, NULL, 0, NULL }
5908
};
5909
5910
static unsigned
5911
0
dissect_e2ap_GNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5912
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5913
0
                                 ett_e2ap_GNB_ID, GNB_ID_choice,
5914
0
                                 NULL);
5915
5916
0
  return offset;
5917
0
}
5918
5919
5920
static const per_sequence_t GlobalGNB_ID_sequence[] = {
5921
  { &hf_e2ap_pLMNIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMNIdentity },
5922
  { &hf_e2ap_gNB_ID_choice  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_ID },
5923
  { NULL, 0, 0, NULL }
5924
};
5925
5926
static unsigned
5927
0
dissect_e2ap_GlobalGNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5928
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5929
0
                                   ett_e2ap_GlobalGNB_ID, GlobalGNB_ID_sequence);
5930
5931
0
  return offset;
5932
0
}
5933
5934
5935
static const value_string e2ap_NgENB_ID_vals[] = {
5936
  {   0, "macroNgENB-ID" },
5937
  {   1, "shortMacroNgENB-ID" },
5938
  {   2, "longMacroNgENB-ID" },
5939
  { 0, NULL }
5940
};
5941
5942
static const per_choice_t NgENB_ID_choice[] = {
5943
  {   0, &hf_e2ap_macroNgENB_ID  , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_20 },
5944
  {   1, &hf_e2ap_shortMacroNgENB_ID, ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_18 },
5945
  {   2, &hf_e2ap_longMacroNgENB_ID, ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING_SIZE_21 },
5946
  { 0, NULL, 0, NULL }
5947
};
5948
5949
static unsigned
5950
0
dissect_e2ap_NgENB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5951
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5952
0
                                 ett_e2ap_NgENB_ID, NgENB_ID_choice,
5953
0
                                 NULL);
5954
5955
0
  return offset;
5956
0
}
5957
5958
5959
static const per_sequence_t GlobalNgENB_ID_sequence[] = {
5960
  { &hf_e2ap_pLMNIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMNIdentity },
5961
  { &hf_e2ap_ngENB_ID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NgENB_ID },
5962
  { NULL, 0, 0, NULL }
5963
};
5964
5965
static unsigned
5966
0
dissect_e2ap_GlobalNgENB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5967
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5968
0
                                   ett_e2ap_GlobalNgENB_ID, GlobalNgENB_ID_sequence);
5969
5970
0
  return offset;
5971
0
}
5972
5973
5974
static const value_string e2ap_GlobalNGRANNodeID_vals[] = {
5975
  {   0, "gNB" },
5976
  {   1, "ng-eNB" },
5977
  { 0, NULL }
5978
};
5979
5980
static const per_choice_t GlobalNGRANNodeID_choice[] = {
5981
  {   0, &hf_e2ap_gNB_02         , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalGNB_ID },
5982
  {   1, &hf_e2ap_ng_eNB_02      , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalNgENB_ID },
5983
  { 0, NULL, 0, NULL }
5984
};
5985
5986
static unsigned
5987
0
dissect_e2ap_GlobalNGRANNodeID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5988
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5989
0
                                 ett_e2ap_GlobalNGRANNodeID, GlobalNGRANNodeID_choice,
5990
0
                                 NULL);
5991
5992
0
  return offset;
5993
0
}
5994
5995
5996
static const per_sequence_t InterfaceID_Xn_sequence[] = {
5997
  { &hf_e2ap_global_NG_RAN_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalNGRANNodeID },
5998
  { NULL, 0, 0, NULL }
5999
};
6000
6001
static unsigned
6002
0
dissect_e2ap_InterfaceID_Xn(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6003
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6004
0
                                   ett_e2ap_InterfaceID_Xn, InterfaceID_Xn_sequence);
6005
6006
0
  return offset;
6007
0
}
6008
6009
6010
static const per_sequence_t InterfaceID_F1_sequence[] = {
6011
  { &hf_e2ap_globalGNB_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalGNB_ID },
6012
  { &hf_e2ap_gNB_DU_ID      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_DU_ID },
6013
  { NULL, 0, 0, NULL }
6014
};
6015
6016
static unsigned
6017
0
dissect_e2ap_InterfaceID_F1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6018
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6019
0
                                   ett_e2ap_InterfaceID_F1, InterfaceID_F1_sequence);
6020
6021
0
  return offset;
6022
0
}
6023
6024
6025
static const per_sequence_t InterfaceID_E1_sequence[] = {
6026
  { &hf_e2ap_globalGNB_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalGNB_ID },
6027
  { &hf_e2ap_gNB_CU_UP_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_CU_UP_ID },
6028
  { NULL, 0, 0, NULL }
6029
};
6030
6031
static unsigned
6032
0
dissect_e2ap_InterfaceID_E1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6033
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6034
0
                                   ett_e2ap_InterfaceID_E1, InterfaceID_E1_sequence);
6035
6036
0
  return offset;
6037
0
}
6038
6039
6040
6041
static unsigned
6042
0
dissect_e2ap_MME_Group_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6043
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6044
0
                                       2, 2, false, NULL);
6045
6046
0
  return offset;
6047
0
}
6048
6049
6050
6051
static unsigned
6052
0
dissect_e2ap_MME_Code(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6053
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6054
0
                                       1, 1, false, NULL);
6055
6056
0
  return offset;
6057
0
}
6058
6059
6060
static const per_sequence_t GUMMEI_sequence[] = {
6061
  { &hf_e2ap_pLMN_Identity_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PLMNIdentity },
6062
  { &hf_e2ap_mME_Group_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MME_Group_ID },
6063
  { &hf_e2ap_mME_Code       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MME_Code },
6064
  { NULL, 0, 0, NULL }
6065
};
6066
6067
static unsigned
6068
0
dissect_e2ap_GUMMEI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6069
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6070
0
                                   ett_e2ap_GUMMEI, GUMMEI_sequence);
6071
6072
0
  return offset;
6073
0
}
6074
6075
6076
static const per_sequence_t InterfaceID_S1_sequence[] = {
6077
  { &hf_e2ap_gUMMEI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GUMMEI },
6078
  { NULL, 0, 0, NULL }
6079
};
6080
6081
static unsigned
6082
0
dissect_e2ap_InterfaceID_S1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6083
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6084
0
                                   ett_e2ap_InterfaceID_S1, InterfaceID_S1_sequence);
6085
6086
0
  return offset;
6087
0
}
6088
6089
6090
static const value_string e2ap_T_nodeType_vals[] = {
6091
  {   0, "global-eNB-ID" },
6092
  {   1, "global-en-gNB-ID" },
6093
  { 0, NULL }
6094
};
6095
6096
static const per_choice_t T_nodeType_choice[] = {
6097
  {   0, &hf_e2ap_global_eNB_ID  , ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalENB_ID },
6098
  {   1, &hf_e2ap_global_en_gNB_ID, ASN1_EXTENSION_ROOT    , dissect_e2ap_GlobalenGNB_ID },
6099
  { 0, NULL, 0, NULL }
6100
};
6101
6102
static unsigned
6103
0
dissect_e2ap_T_nodeType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6104
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6105
0
                                 ett_e2ap_T_nodeType, T_nodeType_choice,
6106
0
                                 NULL);
6107
6108
0
  return offset;
6109
0
}
6110
6111
6112
static const per_sequence_t InterfaceID_X2_sequence[] = {
6113
  { &hf_e2ap_nodeType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_nodeType },
6114
  { NULL, 0, 0, NULL }
6115
};
6116
6117
static unsigned
6118
0
dissect_e2ap_InterfaceID_X2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6119
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6120
0
                                   ett_e2ap_InterfaceID_X2, InterfaceID_X2_sequence);
6121
6122
0
  return offset;
6123
0
}
6124
6125
6126
static const per_sequence_t InterfaceID_W1_sequence[] = {
6127
  { &hf_e2ap_global_ng_eNB_ID_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalNgENB_ID },
6128
  { &hf_e2ap_ng_eNB_DU_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NGENB_DU_ID },
6129
  { NULL, 0, 0, NULL }
6130
};
6131
6132
static unsigned
6133
0
dissect_e2ap_InterfaceID_W1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6134
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6135
0
                                   ett_e2ap_InterfaceID_W1, InterfaceID_W1_sequence);
6136
6137
0
  return offset;
6138
0
}
6139
6140
6141
static const value_string e2ap_InterfaceIdentifier_vals[] = {
6142
  {   0, "nG" },
6143
  {   1, "xN" },
6144
  {   2, "f1" },
6145
  {   3, "e1" },
6146
  {   4, "s1" },
6147
  {   5, "x2" },
6148
  {   6, "w1" },
6149
  { 0, NULL }
6150
};
6151
6152
static const per_choice_t InterfaceIdentifier_choice[] = {
6153
  {   0, &hf_e2ap_nG             , ASN1_EXTENSION_ROOT    , dissect_e2ap_InterfaceID_NG },
6154
  {   1, &hf_e2ap_xN             , ASN1_EXTENSION_ROOT    , dissect_e2ap_InterfaceID_Xn },
6155
  {   2, &hf_e2ap_f1             , ASN1_EXTENSION_ROOT    , dissect_e2ap_InterfaceID_F1 },
6156
  {   3, &hf_e2ap_e1             , ASN1_EXTENSION_ROOT    , dissect_e2ap_InterfaceID_E1 },
6157
  {   4, &hf_e2ap_s1             , ASN1_EXTENSION_ROOT    , dissect_e2ap_InterfaceID_S1 },
6158
  {   5, &hf_e2ap_x2             , ASN1_EXTENSION_ROOT    , dissect_e2ap_InterfaceID_X2 },
6159
  {   6, &hf_e2ap_w1             , ASN1_EXTENSION_ROOT    , dissect_e2ap_InterfaceID_W1 },
6160
  { 0, NULL, 0, NULL }
6161
};
6162
6163
static unsigned
6164
0
dissect_e2ap_InterfaceIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6165
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6166
0
                                 ett_e2ap_InterfaceIdentifier, InterfaceIdentifier_choice,
6167
0
                                 NULL);
6168
6169
0
  return offset;
6170
0
}
6171
6172
6173
6174
static unsigned
6175
0
dissect_e2ap_INTEGER(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6176
0
  offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
6177
6178
0
  return offset;
6179
0
}
6180
6181
6182
static const value_string e2ap_T_messageType_vals[] = {
6183
  {   0, "initiatingMessage" },
6184
  {   1, "successfulOutcome" },
6185
  {   2, "unsuccessfulOutcome" },
6186
  { 0, NULL }
6187
};
6188
6189
6190
static unsigned
6191
0
dissect_e2ap_T_messageType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6192
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6193
0
                                     3, NULL, true, 0, NULL);
6194
6195
0
  return offset;
6196
0
}
6197
6198
6199
static const per_sequence_t Interface_MessageID_sequence[] = {
6200
  { &hf_e2ap_interfaceProcedureID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER },
6201
  { &hf_e2ap_messageType    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_messageType },
6202
  { NULL, 0, 0, NULL }
6203
};
6204
6205
static unsigned
6206
0
dissect_e2ap_Interface_MessageID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6207
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6208
0
                                   ett_e2ap_Interface_MessageID, Interface_MessageID_sequence);
6209
6210
0
  return offset;
6211
0
}
6212
6213
6214
static const value_string e2ap_InterfaceType_vals[] = {
6215
  {   0, "nG" },
6216
  {   1, "xn" },
6217
  {   2, "f1" },
6218
  {   3, "e1" },
6219
  {   4, "s1" },
6220
  {   5, "x2" },
6221
  {   6, "w1" },
6222
  { 0, NULL }
6223
};
6224
6225
6226
static unsigned
6227
0
dissect_e2ap_InterfaceType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6228
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6229
0
                                     7, NULL, true, 0, NULL);
6230
6231
0
  return offset;
6232
0
}
6233
6234
6235
6236
static unsigned
6237
0
dissect_e2ap_T_ranFunction_ShortName(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6238
0
  tvbuff_t *value_tvb;
6239
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
6240
0
                                          1, 150, true,
6241
0
                                          &value_tvb);
6242
6243
0
  if (!actx->pinfo->fd->visited) {
6244
    /* N.B. too early to work out exact dissector, as don't have OID yet */
6245
0
    e2ap_store_ran_function_mapping(actx->pinfo, tree, value_tvb,
6246
0
                                    (char*)tvb_get_string_enc(actx->pinfo->pool, value_tvb, 0, tvb_captured_length(value_tvb), ENC_ASCII));
6247
0
  }
6248
6249
6250
0
  return offset;
6251
0
}
6252
6253
6254
6255
static unsigned
6256
0
dissect_e2ap_PrintableString_SIZE_1_1000_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6257
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
6258
0
                                          1, 1000, true,
6259
0
                                          NULL);
6260
6261
0
  return offset;
6262
0
}
6263
6264
6265
6266
static unsigned
6267
0
dissect_e2ap_PrintableString_SIZE_1_150_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6268
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
6269
0
                                          1, 150, true,
6270
0
                                          NULL);
6271
6272
0
  return offset;
6273
0
}
6274
6275
6276
static const per_sequence_t RANfunction_Name_sequence[] = {
6277
  { &hf_e2ap_ranFunction_ShortName, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ranFunction_ShortName },
6278
  { &hf_e2ap_ranFunction_E2SM_OID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PrintableString_SIZE_1_1000_ },
6279
  { &hf_e2ap_ranFunction_Description, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_PrintableString_SIZE_1_150_ },
6280
  { &hf_e2ap_ranFunction_Instance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER },
6281
  { NULL, 0, 0, NULL }
6282
};
6283
6284
static unsigned
6285
0
dissect_e2ap_RANfunction_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6286
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6287
0
                                   ett_e2ap_RANfunction_Name, RANfunction_Name_sequence);
6288
6289
0
  return offset;
6290
0
}
6291
6292
6293
6294
static unsigned
6295
0
dissect_e2ap_RIC_Format_Type(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6296
0
  offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
6297
6298
0
  return offset;
6299
0
}
6300
6301
6302
6303
static unsigned
6304
0
dissect_e2ap_RIC_Style_Type(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6305
0
  offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
6306
6307
0
  return offset;
6308
0
}
6309
6310
6311
6312
static unsigned
6313
0
dissect_e2ap_RIC_Style_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6314
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
6315
0
                                          1, 150, true,
6316
0
                                          NULL);
6317
6318
0
  return offset;
6319
0
}
6320
6321
6322
static const value_string e2ap_RRCclass_LTE_vals[] = {
6323
  {   0, "bCCH-BCH" },
6324
  {   1, "bCCH-BCH-MBMS" },
6325
  {   2, "bCCH-DL-SCH" },
6326
  {   3, "bCCH-DL-SCH-BR" },
6327
  {   4, "bCCH-DL-SCH-MBMS" },
6328
  {   5, "mCCH" },
6329
  {   6, "pCCH" },
6330
  {   7, "dL-CCCH" },
6331
  {   8, "dL-DCCH" },
6332
  {   9, "uL-CCCH" },
6333
  {  10, "uL-DCCH" },
6334
  {  11, "sC-MCCH" },
6335
  { 0, NULL }
6336
};
6337
6338
6339
static unsigned
6340
0
dissect_e2ap_RRCclass_LTE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6341
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6342
0
                                     12, NULL, true, 0, NULL);
6343
6344
0
  return offset;
6345
0
}
6346
6347
6348
static const value_string e2ap_RRCclass_NR_vals[] = {
6349
  {   0, "bCCH-BCH" },
6350
  {   1, "bCCH-DL-SCH" },
6351
  {   2, "dL-CCCH" },
6352
  {   3, "dL-DCCH" },
6353
  {   4, "pCCH" },
6354
  {   5, "uL-CCCH" },
6355
  {   6, "uL-CCCH1" },
6356
  {   7, "uL-DCCH" },
6357
  { 0, NULL }
6358
};
6359
6360
6361
static unsigned
6362
0
dissect_e2ap_RRCclass_NR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6363
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6364
0
                                     8, NULL, true, 0, NULL);
6365
6366
0
  return offset;
6367
0
}
6368
6369
6370
static const value_string e2ap_T_rrcType_vals[] = {
6371
  {   0, "lTE" },
6372
  {   1, "nR" },
6373
  { 0, NULL }
6374
};
6375
6376
static const per_choice_t T_rrcType_choice[] = {
6377
  {   0, &hf_e2ap_lTE            , ASN1_EXTENSION_ROOT    , dissect_e2ap_RRCclass_LTE },
6378
  {   1, &hf_e2ap_nR             , ASN1_EXTENSION_ROOT    , dissect_e2ap_RRCclass_NR },
6379
  { 0, NULL, 0, NULL }
6380
};
6381
6382
static unsigned
6383
0
dissect_e2ap_T_rrcType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6384
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6385
0
                                 ett_e2ap_T_rrcType, T_rrcType_choice,
6386
0
                                 NULL);
6387
6388
0
  return offset;
6389
0
}
6390
6391
6392
static const per_sequence_t RRC_MessageID_sequence[] = {
6393
  { &hf_e2ap_rrcType        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_rrcType },
6394
  { &hf_e2ap_messageID      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER },
6395
  { NULL, 0, 0, NULL }
6396
};
6397
6398
static unsigned
6399
0
dissect_e2ap_RRC_MessageID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6400
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6401
0
                                   ett_e2ap_RRC_MessageID, RRC_MessageID_sequence);
6402
6403
0
  return offset;
6404
0
}
6405
6406
6407
6408
static unsigned
6409
0
dissect_e2ap_INTEGER_0_maxNRARFCN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6410
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6411
0
                                                            0U, maxNRARFCN, NULL, false);
6412
6413
0
  return offset;
6414
0
}
6415
6416
6417
static const per_sequence_t NR_ARFCN_sequence[] = {
6418
  { &hf_e2ap_nRARFCN        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_0_maxNRARFCN },
6419
  { NULL, 0, 0, NULL }
6420
};
6421
6422
static unsigned
6423
0
dissect_e2ap_NR_ARFCN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6424
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6425
0
                                   ett_e2ap_NR_ARFCN, NR_ARFCN_sequence);
6426
6427
0
  return offset;
6428
0
}
6429
6430
6431
6432
static unsigned
6433
0
dissect_e2ap_E_UTRA_ARFCN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6434
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6435
0
                                                            0U, maxEARFCN, NULL, false);
6436
6437
0
  return offset;
6438
0
}
6439
6440
6441
static const value_string e2ap_ServingCell_ARFCN_vals[] = {
6442
  {   0, "nR" },
6443
  {   1, "eUTRA" },
6444
  { 0, NULL }
6445
};
6446
6447
static const per_choice_t ServingCell_ARFCN_choice[] = {
6448
  {   0, &hf_e2ap_nR_01          , ASN1_EXTENSION_ROOT    , dissect_e2ap_NR_ARFCN },
6449
  {   1, &hf_e2ap_eUTRA          , ASN1_EXTENSION_ROOT    , dissect_e2ap_E_UTRA_ARFCN },
6450
  { 0, NULL, 0, NULL }
6451
};
6452
6453
static unsigned
6454
0
dissect_e2ap_ServingCell_ARFCN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6455
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6456
0
                                 ett_e2ap_ServingCell_ARFCN, ServingCell_ARFCN_choice,
6457
0
                                 NULL);
6458
6459
0
  return offset;
6460
0
}
6461
6462
6463
6464
static unsigned
6465
0
dissect_e2ap_NR_PCI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6466
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6467
0
                                                            0U, 1007U, NULL, false);
6468
6469
0
  return offset;
6470
0
}
6471
6472
6473
6474
static unsigned
6475
0
dissect_e2ap_E_UTRA_PCI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6476
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6477
0
                                                            0U, 503U, NULL, true);
6478
6479
0
  return offset;
6480
0
}
6481
6482
6483
static const value_string e2ap_ServingCell_PCI_vals[] = {
6484
  {   0, "nR" },
6485
  {   1, "eUTRA" },
6486
  { 0, NULL }
6487
};
6488
6489
static const per_choice_t ServingCell_PCI_choice[] = {
6490
  {   0, &hf_e2ap_nR_02          , ASN1_EXTENSION_ROOT    , dissect_e2ap_NR_PCI },
6491
  {   1, &hf_e2ap_eUTRA_01       , ASN1_EXTENSION_ROOT    , dissect_e2ap_E_UTRA_PCI },
6492
  { 0, NULL, 0, NULL }
6493
};
6494
6495
static unsigned
6496
0
dissect_e2ap_ServingCell_PCI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6497
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6498
0
                                 ett_e2ap_ServingCell_PCI, ServingCell_PCI_choice,
6499
0
                                 NULL);
6500
6501
0
  return offset;
6502
0
}
6503
6504
6505
6506
static unsigned
6507
0
dissect_e2ap_AMF_UE_NGAP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6508
0
  offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
6509
0
                                                            0U, UINT64_C(1099511627775), NULL, false);
6510
6511
0
  return offset;
6512
0
}
6513
6514
6515
6516
static unsigned
6517
0
dissect_e2ap_GNB_CU_UE_F1AP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6518
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6519
0
                                                            0U, 4294967295U, NULL, false);
6520
6521
0
  return offset;
6522
0
}
6523
6524
6525
static const per_sequence_t UEID_GNB_CU_CP_F1AP_ID_Item_sequence[] = {
6526
  { &hf_e2ap_gNB_CU_UE_F1AP_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_CU_UE_F1AP_ID },
6527
  { NULL, 0, 0, NULL }
6528
};
6529
6530
static unsigned
6531
0
dissect_e2ap_UEID_GNB_CU_CP_F1AP_ID_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6532
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6533
0
                                   ett_e2ap_UEID_GNB_CU_CP_F1AP_ID_Item, UEID_GNB_CU_CP_F1AP_ID_Item_sequence);
6534
6535
0
  return offset;
6536
0
}
6537
6538
6539
static const per_sequence_t UEID_GNB_CU_F1AP_ID_List_sequence_of[1] = {
6540
  { &hf_e2ap_UEID_GNB_CU_F1AP_ID_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID_GNB_CU_CP_F1AP_ID_Item },
6541
};
6542
6543
static unsigned
6544
0
dissect_e2ap_UEID_GNB_CU_F1AP_ID_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6545
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6546
0
                                                  ett_e2ap_UEID_GNB_CU_F1AP_ID_List, UEID_GNB_CU_F1AP_ID_List_sequence_of,
6547
0
                                                  1, maxF1APid, false);
6548
6549
0
  return offset;
6550
0
}
6551
6552
6553
6554
static unsigned
6555
0
dissect_e2ap_GNB_CU_CP_UE_E1AP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6556
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6557
0
                                                            0U, 4294967295U, NULL, false);
6558
6559
0
  return offset;
6560
0
}
6561
6562
6563
static const per_sequence_t UEID_GNB_CU_CP_E1AP_ID_Item_sequence[] = {
6564
  { &hf_e2ap_gNB_CU_CP_UE_E1AP_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_CU_CP_UE_E1AP_ID },
6565
  { NULL, 0, 0, NULL }
6566
};
6567
6568
static unsigned
6569
0
dissect_e2ap_UEID_GNB_CU_CP_E1AP_ID_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6570
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6571
0
                                   ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_Item, UEID_GNB_CU_CP_E1AP_ID_Item_sequence);
6572
6573
0
  return offset;
6574
0
}
6575
6576
6577
static const per_sequence_t UEID_GNB_CU_CP_E1AP_ID_List_sequence_of[1] = {
6578
  { &hf_e2ap_UEID_GNB_CU_CP_E1AP_ID_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID_GNB_CU_CP_E1AP_ID_Item },
6579
};
6580
6581
static unsigned
6582
0
dissect_e2ap_UEID_GNB_CU_CP_E1AP_ID_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6583
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6584
0
                                                  ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_List, UEID_GNB_CU_CP_E1AP_ID_List_sequence_of,
6585
0
                                                  1, maxE1APid, false);
6586
6587
0
  return offset;
6588
0
}
6589
6590
6591
6592
static unsigned
6593
0
dissect_e2ap_RANUEID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6594
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6595
0
                                       8, 8, false, NULL);
6596
6597
0
  return offset;
6598
0
}
6599
6600
6601
6602
static unsigned
6603
0
dissect_e2ap_NG_RANnodeUEXnAPID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6604
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6605
0
                                                            0U, 4294967295U, NULL, false);
6606
6607
0
  return offset;
6608
0
}
6609
6610
6611
static const per_sequence_t UEID_GNB_sequence[] = {
6612
  { &hf_e2ap_amf_UE_NGAP_ID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_AMF_UE_NGAP_ID },
6613
  { &hf_e2ap_guami          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GUAMI },
6614
  { &hf_e2ap_gNB_CU_UE_F1AP_ID_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_UEID_GNB_CU_F1AP_ID_List },
6615
  { &hf_e2ap_gNB_CU_CP_UE_E1AP_ID_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_UEID_GNB_CU_CP_E1AP_ID_List },
6616
  { &hf_e2ap_ran_UEID       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANUEID },
6617
  { &hf_e2ap_m_NG_RAN_UE_XnAP_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NG_RANnodeUEXnAPID },
6618
  { &hf_e2ap_globalGNB_ID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GlobalGNB_ID },
6619
  { &hf_e2ap_globalNG_RANNode_ID, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_GlobalNGRANNodeID },
6620
  { NULL, 0, 0, NULL }
6621
};
6622
6623
static unsigned
6624
0
dissect_e2ap_UEID_GNB(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6625
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6626
0
                                   ett_e2ap_UEID_GNB, UEID_GNB_sequence);
6627
6628
0
  return offset;
6629
0
}
6630
6631
6632
static const per_sequence_t UEID_GNB_DU_sequence[] = {
6633
  { &hf_e2ap_gNB_CU_UE_F1AP_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_CU_UE_F1AP_ID },
6634
  { &hf_e2ap_ran_UEID       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANUEID },
6635
  { NULL, 0, 0, NULL }
6636
};
6637
6638
static unsigned
6639
0
dissect_e2ap_UEID_GNB_DU(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6640
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6641
0
                                   ett_e2ap_UEID_GNB_DU, UEID_GNB_DU_sequence);
6642
6643
0
  return offset;
6644
0
}
6645
6646
6647
static const per_sequence_t UEID_GNB_CU_UP_sequence[] = {
6648
  { &hf_e2ap_gNB_CU_CP_UE_E1AP_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_CU_CP_UE_E1AP_ID },
6649
  { &hf_e2ap_ran_UEID       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANUEID },
6650
  { NULL, 0, 0, NULL }
6651
};
6652
6653
static unsigned
6654
0
dissect_e2ap_UEID_GNB_CU_UP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6655
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6656
0
                                   ett_e2ap_UEID_GNB_CU_UP, UEID_GNB_CU_UP_sequence);
6657
6658
0
  return offset;
6659
0
}
6660
6661
6662
6663
static unsigned
6664
0
dissect_e2ap_NGENB_CU_UE_W1AP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6665
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6666
0
                                                            0U, 4294967295U, NULL, false);
6667
6668
0
  return offset;
6669
0
}
6670
6671
6672
static const per_sequence_t UEID_NG_ENB_sequence[] = {
6673
  { &hf_e2ap_amf_UE_NGAP_ID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_AMF_UE_NGAP_ID },
6674
  { &hf_e2ap_guami          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GUAMI },
6675
  { &hf_e2ap_ng_eNB_CU_UE_W1AP_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NGENB_CU_UE_W1AP_ID },
6676
  { &hf_e2ap_m_NG_RAN_UE_XnAP_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NG_RANnodeUEXnAPID },
6677
  { &hf_e2ap_globalNgENB_ID , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GlobalNgENB_ID },
6678
  { &hf_e2ap_globalNG_RANNode_ID, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_GlobalNGRANNodeID },
6679
  { NULL, 0, 0, NULL }
6680
};
6681
6682
static unsigned
6683
0
dissect_e2ap_UEID_NG_ENB(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6684
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6685
0
                                   ett_e2ap_UEID_NG_ENB, UEID_NG_ENB_sequence);
6686
6687
0
  return offset;
6688
0
}
6689
6690
6691
static const per_sequence_t UEID_NG_ENB_DU_sequence[] = {
6692
  { &hf_e2ap_ng_eNB_CU_UE_W1AP_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NGENB_CU_UE_W1AP_ID },
6693
  { NULL, 0, 0, NULL }
6694
};
6695
6696
static unsigned
6697
0
dissect_e2ap_UEID_NG_ENB_DU(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6698
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6699
0
                                   ett_e2ap_UEID_NG_ENB_DU, UEID_NG_ENB_DU_sequence);
6700
6701
0
  return offset;
6702
0
}
6703
6704
6705
6706
static unsigned
6707
0
dissect_e2ap_ENB_UE_X2AP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6708
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6709
0
                                                            0U, 4095U, NULL, false);
6710
6711
0
  return offset;
6712
0
}
6713
6714
6715
6716
static unsigned
6717
0
dissect_e2ap_ENB_UE_X2AP_ID_Extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6718
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6719
0
                                                            0U, 4095U, NULL, true);
6720
6721
0
  return offset;
6722
0
}
6723
6724
6725
static const per_sequence_t UEID_EN_GNB_sequence[] = {
6726
  { &hf_e2ap_m_eNB_UE_X2AP_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ENB_UE_X2AP_ID },
6727
  { &hf_e2ap_m_eNB_UE_X2AP_ID_Extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_ENB_UE_X2AP_ID_Extension },
6728
  { &hf_e2ap_globalENB_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GlobalENB_ID },
6729
  { &hf_e2ap_gNB_CU_UE_F1AP_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GNB_CU_UE_F1AP_ID },
6730
  { &hf_e2ap_gNB_CU_CP_UE_E1AP_ID_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_UEID_GNB_CU_CP_E1AP_ID_List },
6731
  { &hf_e2ap_ran_UEID       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANUEID },
6732
  { NULL, 0, 0, NULL }
6733
};
6734
6735
static unsigned
6736
0
dissect_e2ap_UEID_EN_GNB(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6737
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6738
0
                                   ett_e2ap_UEID_EN_GNB, UEID_EN_GNB_sequence);
6739
6740
0
  return offset;
6741
0
}
6742
6743
6744
6745
static unsigned
6746
0
dissect_e2ap_MME_UE_S1AP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6747
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6748
0
                                                            0U, 4294967295U, NULL, false);
6749
6750
0
  return offset;
6751
0
}
6752
6753
6754
static const per_sequence_t UEID_ENB_sequence[] = {
6755
  { &hf_e2ap_mME_UE_S1AP_ID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MME_UE_S1AP_ID },
6756
  { &hf_e2ap_gUMMEI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GUMMEI },
6757
  { &hf_e2ap_m_eNB_UE_X2AP_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_ENB_UE_X2AP_ID },
6758
  { &hf_e2ap_m_eNB_UE_X2AP_ID_Extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_ENB_UE_X2AP_ID_Extension },
6759
  { &hf_e2ap_globalENB_ID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GlobalENB_ID },
6760
  { NULL, 0, 0, NULL }
6761
};
6762
6763
static unsigned
6764
0
dissect_e2ap_UEID_ENB(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6765
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6766
0
                                   ett_e2ap_UEID_ENB, UEID_ENB_sequence);
6767
6768
0
  return offset;
6769
0
}
6770
6771
6772
static const value_string e2ap_UEID_vals[] = {
6773
  {   0, "gNB-UEID" },
6774
  {   1, "gNB-DU-UEID" },
6775
  {   2, "gNB-CU-UP-UEID" },
6776
  {   3, "ng-eNB-UEID" },
6777
  {   4, "ng-eNB-DU-UEID" },
6778
  {   5, "en-gNB-UEID" },
6779
  {   6, "eNB-UEID" },
6780
  { 0, NULL }
6781
};
6782
6783
static const per_choice_t UEID_choice[] = {
6784
  {   0, &hf_e2ap_gNB_UEID       , ASN1_EXTENSION_ROOT    , dissect_e2ap_UEID_GNB },
6785
  {   1, &hf_e2ap_gNB_DU_UEID    , ASN1_EXTENSION_ROOT    , dissect_e2ap_UEID_GNB_DU },
6786
  {   2, &hf_e2ap_gNB_CU_UP_UEID , ASN1_EXTENSION_ROOT    , dissect_e2ap_UEID_GNB_CU_UP },
6787
  {   3, &hf_e2ap_ng_eNB_UEID    , ASN1_EXTENSION_ROOT    , dissect_e2ap_UEID_NG_ENB },
6788
  {   4, &hf_e2ap_ng_eNB_DU_UEID , ASN1_EXTENSION_ROOT    , dissect_e2ap_UEID_NG_ENB_DU },
6789
  {   5, &hf_e2ap_en_gNB_UEID    , ASN1_EXTENSION_ROOT    , dissect_e2ap_UEID_EN_GNB },
6790
  {   6, &hf_e2ap_eNB_UEID       , ASN1_EXTENSION_ROOT    , dissect_e2ap_UEID_ENB },
6791
  { 0, NULL, 0, NULL }
6792
};
6793
6794
static unsigned
6795
0
dissect_e2ap_UEID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6796
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6797
0
                                 ett_e2ap_UEID, UEID_choice,
6798
0
                                 NULL);
6799
6800
0
  return offset;
6801
0
}
6802
6803
6804
6805
static unsigned
6806
0
dissect_e2ap_QCI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6807
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6808
0
                                                            0U, 255U, NULL, false);
6809
6810
0
  return offset;
6811
0
}
6812
6813
6814
6815
static unsigned
6816
0
dissect_e2ap_E_UTRA_TAC(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6817
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6818
0
                                       2, 2, false, NULL);
6819
6820
0
  return offset;
6821
0
}
6822
6823
6824
6825
static unsigned
6826
0
dissect_e2ap_FiveQI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6827
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6828
0
                                                            0U, 255U, NULL, true);
6829
6830
0
  return offset;
6831
0
}
6832
6833
6834
6835
static unsigned
6836
0
dissect_e2ap_QosFlowIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6837
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6838
0
                                                            0U, 63U, NULL, true);
6839
6840
0
  return offset;
6841
0
}
6842
6843
6844
6845
static unsigned
6846
0
dissect_e2ap_SD(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6847
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6848
0
                                       3, 3, false, NULL);
6849
6850
0
  return offset;
6851
0
}
6852
6853
6854
6855
static unsigned
6856
0
dissect_e2ap_SST(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6857
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6858
0
                                       1, 1, false, NULL);
6859
6860
0
  return offset;
6861
0
}
6862
6863
6864
static const per_sequence_t S_NSSAI_sequence[] = {
6865
  { &hf_e2ap_sST            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SST },
6866
  { &hf_e2ap_sD             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SD },
6867
  { NULL, 0, 0, NULL }
6868
};
6869
6870
static unsigned
6871
0
dissect_e2ap_S_NSSAI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6872
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6873
0
                                   ett_e2ap_S_NSSAI, S_NSSAI_sequence);
6874
6875
0
  return offset;
6876
0
}
6877
6878
6879
6880
static unsigned
6881
0
dissect_e2ap_FiveGS_TAC(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6882
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6883
0
                                       3, 3, false, NULL);
6884
6885
0
  return offset;
6886
0
}
6887
6888
6889
6890
static unsigned
6891
0
dissect_e2ap_INTEGER_1_1024_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6892
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6893
0
                                                            1U, 1024U, NULL, true);
6894
6895
0
  return offset;
6896
0
}
6897
6898
6899
static const per_sequence_t SupportedSULFreqBandItem_sequence[] = {
6900
  { &hf_e2ap_freqBandIndicatorNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_1_1024_ },
6901
  { NULL, 0, 0, NULL }
6902
};
6903
6904
static unsigned
6905
0
dissect_e2ap_SupportedSULFreqBandItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6906
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6907
0
                                   ett_e2ap_SupportedSULFreqBandItem, SupportedSULFreqBandItem_sequence);
6908
6909
0
  return offset;
6910
0
}
6911
6912
6913
static const per_sequence_t SupportedSULBandList_sequence_of[1] = {
6914
  { &hf_e2ap_SupportedSULBandList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_SupportedSULFreqBandItem },
6915
};
6916
6917
static unsigned
6918
0
dissect_e2ap_SupportedSULBandList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6919
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6920
0
                                                  ett_e2ap_SupportedSULBandList, SupportedSULBandList_sequence_of,
6921
0
                                                  0, maxnoofNrCellBands, false);
6922
6923
0
  return offset;
6924
0
}
6925
6926
6927
static const per_sequence_t NRFrequencyBandItem_sequence[] = {
6928
  { &hf_e2ap_freqBandIndicatorNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_1_1024_ },
6929
  { &hf_e2ap_supportedSULBandList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SupportedSULBandList },
6930
  { NULL, 0, 0, NULL }
6931
};
6932
6933
static unsigned
6934
0
dissect_e2ap_NRFrequencyBandItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6935
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6936
0
                                   ett_e2ap_NRFrequencyBandItem, NRFrequencyBandItem_sequence);
6937
6938
0
  return offset;
6939
0
}
6940
6941
6942
static const per_sequence_t NRFrequencyBand_List_sequence_of[1] = {
6943
  { &hf_e2ap_NRFrequencyBand_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_NRFrequencyBandItem },
6944
};
6945
6946
static unsigned
6947
0
dissect_e2ap_NRFrequencyBand_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6948
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6949
0
                                                  ett_e2ap_NRFrequencyBand_List, NRFrequencyBand_List_sequence_of,
6950
0
                                                  1, maxnoofNrCellBands, false);
6951
6952
0
  return offset;
6953
0
}
6954
6955
6956
static const value_string e2ap_NRFrequencyShift7p5khz_vals[] = {
6957
  {   0, "false" },
6958
  {   1, "true" },
6959
  { 0, NULL }
6960
};
6961
6962
6963
static unsigned
6964
0
dissect_e2ap_NRFrequencyShift7p5khz(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6965
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6966
0
                                     2, NULL, true, 0, NULL);
6967
6968
0
  return offset;
6969
0
}
6970
6971
6972
static const per_sequence_t NRFrequencyInfo_sequence[] = {
6973
  { &hf_e2ap_nrARFCN        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NR_ARFCN },
6974
  { &hf_e2ap_frequencyBand_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NRFrequencyBand_List },
6975
  { &hf_e2ap_frequencyShift7p5khz, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NRFrequencyShift7p5khz },
6976
  { NULL, 0, 0, NULL }
6977
};
6978
6979
static unsigned
6980
0
dissect_e2ap_NRFrequencyInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6981
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6982
0
                                   ett_e2ap_NRFrequencyInfo, NRFrequencyInfo_sequence);
6983
6984
0
  return offset;
6985
0
}
6986
6987
6988
static const value_string e2ap_LogicalOR_vals[] = {
6989
  {   0, "true" },
6990
  {   1, "false" },
6991
  { 0, NULL }
6992
};
6993
6994
6995
static unsigned
6996
0
dissect_e2ap_LogicalOR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6997
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6998
0
                                     2, NULL, true, 0, NULL);
6999
7000
0
  return offset;
7001
0
}
7002
7003
7004
static const value_string e2ap_T_nR_mode_info_vals[] = {
7005
  {   0, "fdd" },
7006
  {   1, "tdd" },
7007
  { 0, NULL }
7008
};
7009
7010
7011
static unsigned
7012
0
dissect_e2ap_T_nR_mode_info(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7013
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7014
0
                                     2, NULL, true, 0, NULL);
7015
7016
0
  return offset;
7017
0
}
7018
7019
7020
static const value_string e2ap_T_x2_Xn_established_vals[] = {
7021
  {   0, "true" },
7022
  {   1, "false" },
7023
  { 0, NULL }
7024
};
7025
7026
7027
static unsigned
7028
0
dissect_e2ap_T_x2_Xn_established(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7029
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7030
0
                                     2, NULL, true, 0, NULL);
7031
7032
0
  return offset;
7033
0
}
7034
7035
7036
static const value_string e2ap_T_hO_validated_vals[] = {
7037
  {   0, "true" },
7038
  {   1, "false" },
7039
  { 0, NULL }
7040
};
7041
7042
7043
static unsigned
7044
0
dissect_e2ap_T_hO_validated(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7045
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7046
0
                                     2, NULL, true, 0, NULL);
7047
7048
0
  return offset;
7049
0
}
7050
7051
7052
7053
static unsigned
7054
0
dissect_e2ap_INTEGER_1_65535_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7055
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7056
0
                                                            1U, 65535U, NULL, true);
7057
7058
0
  return offset;
7059
0
}
7060
7061
7062
static const per_sequence_t NeighborCell_Item_Choice_NR_sequence[] = {
7063
  { &hf_e2ap_nR_CGI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NR_CGI },
7064
  { &hf_e2ap_nR_PCI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NR_PCI },
7065
  { &hf_e2ap_fiveGS_TAC     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_FiveGS_TAC },
7066
  { &hf_e2ap_nR_mode_info   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_nR_mode_info },
7067
  { &hf_e2ap_nR_FreqInfo    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NRFrequencyInfo },
7068
  { &hf_e2ap_x2_Xn_established, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_x2_Xn_established },
7069
  { &hf_e2ap_hO_validated   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_hO_validated },
7070
  { &hf_e2ap_version        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_1_65535_ },
7071
  { NULL, 0, 0, NULL }
7072
};
7073
7074
static unsigned
7075
0
dissect_e2ap_NeighborCell_Item_Choice_NR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7076
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7077
0
                                   ett_e2ap_NeighborCell_Item_Choice_NR, NeighborCell_Item_Choice_NR_sequence);
7078
7079
0
  return offset;
7080
0
}
7081
7082
7083
static const value_string e2ap_T_x2_Xn_established_01_vals[] = {
7084
  {   0, "true" },
7085
  {   1, "false" },
7086
  { 0, NULL }
7087
};
7088
7089
7090
static unsigned
7091
0
dissect_e2ap_T_x2_Xn_established_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7092
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7093
0
                                     2, NULL, true, 0, NULL);
7094
7095
0
  return offset;
7096
0
}
7097
7098
7099
static const value_string e2ap_T_hO_validated_01_vals[] = {
7100
  {   0, "true" },
7101
  {   1, "false" },
7102
  { 0, NULL }
7103
};
7104
7105
7106
static unsigned
7107
0
dissect_e2ap_T_hO_validated_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7108
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7109
0
                                     2, NULL, true, 0, NULL);
7110
7111
0
  return offset;
7112
0
}
7113
7114
7115
static const per_sequence_t NeighborCell_Item_Choice_E_UTRA_sequence[] = {
7116
  { &hf_e2ap_eUTRA_CGI      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_EUTRA_CGI },
7117
  { &hf_e2ap_eUTRA_PCI      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E_UTRA_PCI },
7118
  { &hf_e2ap_eUTRA_ARFCN    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E_UTRA_ARFCN },
7119
  { &hf_e2ap_eUTRA_TAC      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E_UTRA_TAC },
7120
  { &hf_e2ap_x2_Xn_established_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_x2_Xn_established_01 },
7121
  { &hf_e2ap_hO_validated_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_hO_validated_01 },
7122
  { &hf_e2ap_version        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_1_65535_ },
7123
  { NULL, 0, 0, NULL }
7124
};
7125
7126
static unsigned
7127
0
dissect_e2ap_NeighborCell_Item_Choice_E_UTRA(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7128
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7129
0
                                   ett_e2ap_NeighborCell_Item_Choice_E_UTRA, NeighborCell_Item_Choice_E_UTRA_sequence);
7130
7131
0
  return offset;
7132
0
}
7133
7134
7135
static const value_string e2ap_NeighborCell_Item_vals[] = {
7136
  {   0, "ranType-Choice-NR" },
7137
  {   1, "ranType-Choice-EUTRA" },
7138
  { 0, NULL }
7139
};
7140
7141
static const per_choice_t NeighborCell_Item_choice[] = {
7142
  {   0, &hf_e2ap_ranType_Choice_NR, ASN1_EXTENSION_ROOT    , dissect_e2ap_NeighborCell_Item_Choice_NR },
7143
  {   1, &hf_e2ap_ranType_Choice_EUTRA, ASN1_EXTENSION_ROOT    , dissect_e2ap_NeighborCell_Item_Choice_E_UTRA },
7144
  { 0, NULL, 0, NULL }
7145
};
7146
7147
static unsigned
7148
0
dissect_e2ap_NeighborCell_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7149
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7150
0
                                 ett_e2ap_NeighborCell_Item, NeighborCell_Item_choice,
7151
0
                                 NULL);
7152
7153
0
  return offset;
7154
0
}
7155
7156
7157
static const per_sequence_t NeighborCell_List_sequence_of[1] = {
7158
  { &hf_e2ap_NeighborCell_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_NeighborCell_Item },
7159
};
7160
7161
static unsigned
7162
0
dissect_e2ap_NeighborCell_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7163
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7164
0
                                                  ett_e2ap_NeighborCell_List, NeighborCell_List_sequence_of,
7165
0
                                                  1, maxnoofNeighbourCell, false);
7166
7167
0
  return offset;
7168
0
}
7169
7170
7171
static const per_sequence_t NeighborRelation_Info_sequence[] = {
7172
  { &hf_e2ap_servingCellPCI , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ServingCell_PCI },
7173
  { &hf_e2ap_servingCellARFCN, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ServingCell_ARFCN },
7174
  { &hf_e2ap_neighborCell_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NeighborCell_List },
7175
  { NULL, 0, 0, NULL }
7176
};
7177
7178
static unsigned
7179
0
dissect_e2ap_NeighborRelation_Info(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7180
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7181
0
                                   ett_e2ap_NeighborRelation_Info, NeighborRelation_Info_sequence);
7182
7183
0
  return offset;
7184
0
}
7185
7186
7187
static const value_string e2ap_RRC_State_vals[] = {
7188
  {   0, "rrc-connected" },
7189
  {   1, "rrc-inactive" },
7190
  {   2, "rrc-idle" },
7191
  {   3, "any" },
7192
  { 0, NULL }
7193
};
7194
7195
7196
static unsigned
7197
0
dissect_e2ap_RRC_State(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7198
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7199
0
                                     4, NULL, true, 0, NULL);
7200
7201
0
  return offset;
7202
0
}
7203
7204
7205
7206
static unsigned
7207
0
dissect_e2ap_RIC_EventTrigger_Cell_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7208
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7209
0
                                                            1U, 65535U, NULL, true);
7210
7211
0
  return offset;
7212
0
}
7213
7214
7215
static const per_sequence_t EventTrigger_Cell_Info_Item_Choice_Individual_sequence[] = {
7216
  { &hf_e2ap_cellGlobalID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_CGI },
7217
  { NULL, 0, 0, NULL }
7218
};
7219
7220
static unsigned
7221
0
dissect_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7222
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7223
0
                                   ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual, EventTrigger_Cell_Info_Item_Choice_Individual_sequence);
7224
7225
0
  return offset;
7226
0
}
7227
7228
7229
7230
static unsigned
7231
0
dissect_e2ap_RANParameter_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7232
0
  offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
7233
0
                                                            1U, UINT64_C(4294967296), NULL, true);
7234
7235
0
  return offset;
7236
0
}
7237
7238
7239
static const per_sequence_t RANParameter_Testing_LIST_sequence_of[1] = {
7240
  { &hf_e2ap_RANParameter_Testing_LIST_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing_Item },
7241
};
7242
7243
static unsigned
7244
0
dissect_e2ap_RANParameter_Testing_LIST(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7245
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7246
0
                                                  ett_e2ap_RANParameter_Testing_LIST, RANParameter_Testing_LIST_sequence_of,
7247
0
                                                  1, maxnoofItemsinList, false);
7248
7249
0
  return offset;
7250
0
}
7251
7252
7253
static const per_sequence_t RANParameter_Testing_Item_Choice_List_sequence[] = {
7254
  { &hf_e2ap_ranParameter_List_02, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing_LIST },
7255
  { NULL, 0, 0, NULL }
7256
};
7257
7258
static unsigned
7259
0
dissect_e2ap_RANParameter_Testing_Item_Choice_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7260
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7261
0
                                   ett_e2ap_RANParameter_Testing_Item_Choice_List, RANParameter_Testing_Item_Choice_List_sequence);
7262
7263
0
  return offset;
7264
0
}
7265
7266
7267
static const per_sequence_t RANParameter_Testing_STRUCTURE_sequence_of[1] = {
7268
  { &hf_e2ap_RANParameter_Testing_STRUCTURE_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing_Item },
7269
};
7270
7271
static unsigned
7272
0
dissect_e2ap_RANParameter_Testing_STRUCTURE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7273
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7274
0
                                                  ett_e2ap_RANParameter_Testing_STRUCTURE, RANParameter_Testing_STRUCTURE_sequence_of,
7275
0
                                                  1, maxnoofParametersinStructure, false);
7276
7277
0
  return offset;
7278
0
}
7279
7280
7281
static const per_sequence_t RANParameter_Testing_Item_Choice_Structure_sequence[] = {
7282
  { &hf_e2ap_ranParameter_Structure_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing_STRUCTURE },
7283
  { NULL, 0, 0, NULL }
7284
};
7285
7286
static unsigned
7287
0
dissect_e2ap_RANParameter_Testing_Item_Choice_Structure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7288
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7289
0
                                   ett_e2ap_RANParameter_Testing_Item_Choice_Structure, RANParameter_Testing_Item_Choice_Structure_sequence);
7290
7291
0
  return offset;
7292
0
}
7293
7294
7295
7296
static unsigned
7297
0
dissect_e2ap_BOOLEAN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7298
0
  offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
7299
7300
0
  return offset;
7301
0
}
7302
7303
7304
7305
static unsigned
7306
0
dissect_e2ap_REAL(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7307
0
  offset = dissect_per_real(tvb, offset, actx, tree, hf_index, NULL);
7308
7309
0
  return offset;
7310
0
}
7311
7312
7313
7314
static unsigned
7315
0
dissect_e2ap_BIT_STRING(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7316
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7317
0
                                     NO_BOUND, NO_BOUND, false, NULL, 0, NULL, NULL);
7318
7319
0
  return offset;
7320
0
}
7321
7322
7323
7324
static unsigned
7325
0
dissect_e2ap_OCTET_STRING(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7326
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
7327
0
                                       NO_BOUND, NO_BOUND, false, NULL);
7328
7329
0
  return offset;
7330
0
}
7331
7332
7333
7334
static unsigned
7335
0
dissect_e2ap_PrintableString(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7336
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
7337
0
                                          NO_BOUND, NO_BOUND, false,
7338
0
                                          NULL);
7339
7340
0
  return offset;
7341
0
}
7342
7343
7344
static const value_string e2ap_RANParameter_Value_vals[] = {
7345
  {   0, "valueBoolean" },
7346
  {   1, "valueInt" },
7347
  {   2, "valueReal" },
7348
  {   3, "valueBitS" },
7349
  {   4, "valueOctS" },
7350
  {   5, "valuePrintableString" },
7351
  { 0, NULL }
7352
};
7353
7354
static const per_choice_t RANParameter_Value_choice[] = {
7355
  {   0, &hf_e2ap_valueBoolean   , ASN1_EXTENSION_ROOT    , dissect_e2ap_BOOLEAN },
7356
  {   1, &hf_e2ap_valueInt       , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
7357
  {   2, &hf_e2ap_valueReal      , ASN1_EXTENSION_ROOT    , dissect_e2ap_REAL },
7358
  {   3, &hf_e2ap_valueBitS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING },
7359
  {   4, &hf_e2ap_valueOctS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_OCTET_STRING },
7360
  {   5, &hf_e2ap_valuePrintableString, ASN1_EXTENSION_ROOT    , dissect_e2ap_PrintableString },
7361
  { 0, NULL, 0, NULL }
7362
};
7363
7364
static unsigned
7365
0
dissect_e2ap_RANParameter_Value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7366
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7367
0
                                 ett_e2ap_RANParameter_Value, RANParameter_Value_choice,
7368
0
                                 NULL);
7369
7370
0
  return offset;
7371
0
}
7372
7373
7374
static const per_sequence_t RANParameter_Testing_Item_Choice_ElementTrue_sequence[] = {
7375
  { &hf_e2ap_ranParameter_value, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Value },
7376
  { NULL, 0, 0, NULL }
7377
};
7378
7379
static unsigned
7380
0
dissect_e2ap_RANParameter_Testing_Item_Choice_ElementTrue(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7381
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7382
0
                                   ett_e2ap_RANParameter_Testing_Item_Choice_ElementTrue, RANParameter_Testing_Item_Choice_ElementTrue_sequence);
7383
7384
0
  return offset;
7385
0
}
7386
7387
7388
static const value_string e2ap_T_ranP_Choice_comparison_vals[] = {
7389
  {   0, "equal" },
7390
  {   1, "difference" },
7391
  {   2, "greaterthan" },
7392
  {   3, "lessthan" },
7393
  {   4, "contains" },
7394
  {   5, "starts-with" },
7395
  { 0, NULL }
7396
};
7397
7398
7399
static unsigned
7400
0
dissect_e2ap_T_ranP_Choice_comparison(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7401
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7402
0
                                     6, NULL, true, 0, NULL);
7403
7404
0
  return offset;
7405
0
}
7406
7407
7408
static const value_string e2ap_T_ranP_Choice_presence_vals[] = {
7409
  {   0, "present" },
7410
  {   1, "configured" },
7411
  {   2, "rollover" },
7412
  {   3, "non-zero" },
7413
  { 0, NULL }
7414
};
7415
7416
7417
static unsigned
7418
0
dissect_e2ap_T_ranP_Choice_presence(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7419
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7420
0
                                     4, NULL, true, 0, NULL);
7421
7422
0
  return offset;
7423
0
}
7424
7425
7426
static const value_string e2ap_RANParameter_TestingCondition_vals[] = {
7427
  {   0, "ranP-Choice-comparison" },
7428
  {   1, "ranP-Choice-presence" },
7429
  { 0, NULL }
7430
};
7431
7432
static const per_choice_t RANParameter_TestingCondition_choice[] = {
7433
  {   0, &hf_e2ap_ranP_Choice_comparison, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_ranP_Choice_comparison },
7434
  {   1, &hf_e2ap_ranP_Choice_presence, ASN1_EXTENSION_ROOT    , dissect_e2ap_T_ranP_Choice_presence },
7435
  { 0, NULL, 0, NULL }
7436
};
7437
7438
static unsigned
7439
0
dissect_e2ap_RANParameter_TestingCondition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7440
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7441
0
                                 ett_e2ap_RANParameter_TestingCondition, RANParameter_TestingCondition_choice,
7442
0
                                 NULL);
7443
7444
0
  return offset;
7445
0
}
7446
7447
7448
static const per_sequence_t RANParameter_Testing_Item_Choice_ElementFalse_sequence[] = {
7449
  { &hf_e2ap_ranParameter_TestCondition, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_TestingCondition },
7450
  { &hf_e2ap_ranParameter_Value, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Value },
7451
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
7452
  { NULL, 0, 0, NULL }
7453
};
7454
7455
static unsigned
7456
0
dissect_e2ap_RANParameter_Testing_Item_Choice_ElementFalse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7457
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7458
0
                                   ett_e2ap_RANParameter_Testing_Item_Choice_ElementFalse, RANParameter_Testing_Item_Choice_ElementFalse_sequence);
7459
7460
0
  return offset;
7461
0
}
7462
7463
7464
static const value_string e2ap_T_ranParameter_Type_vals[] = {
7465
  {   0, "ranP-Choice-List" },
7466
  {   1, "ranP-Choice-Structure" },
7467
  {   2, "ranP-Choice-ElementTrue" },
7468
  {   3, "ranP-Choice-ElementFalse" },
7469
  { 0, NULL }
7470
};
7471
7472
static const per_choice_t T_ranParameter_Type_choice[] = {
7473
  {   0, &hf_e2ap_ranP_Choice_List_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_Testing_Item_Choice_List },
7474
  {   1, &hf_e2ap_ranP_Choice_Structure_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_Testing_Item_Choice_Structure },
7475
  {   2, &hf_e2ap_ranP_Choice_ElementTrue_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_Testing_Item_Choice_ElementTrue },
7476
  {   3, &hf_e2ap_ranP_Choice_ElementFalse_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_Testing_Item_Choice_ElementFalse },
7477
  { 0, NULL, 0, NULL }
7478
};
7479
7480
static unsigned
7481
0
dissect_e2ap_T_ranParameter_Type(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7482
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7483
0
                                 ett_e2ap_T_ranParameter_Type, T_ranParameter_Type_choice,
7484
0
                                 NULL);
7485
7486
0
  return offset;
7487
0
}
7488
7489
7490
static const per_sequence_t RANParameter_Testing_Item_sequence[] = {
7491
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
7492
  { &hf_e2ap_ranParameter_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ranParameter_Type },
7493
  { NULL, 0, 0, NULL }
7494
};
7495
7496
static unsigned
7497
0
dissect_e2ap_RANParameter_Testing_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7498
  // RANParameter-Testing-Item -> RANParameter-Testing-Item/ranParameter-Type -> RANParameter-Testing-Item-Choice-List -> RANParameter-Testing-LIST -> RANParameter-Testing-Item
7499
0
  increment_dissection_depth_by_n(actx->pinfo, 4);
7500
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7501
0
                                   ett_e2ap_RANParameter_Testing_Item, RANParameter_Testing_Item_sequence);
7502
7503
0
  decrement_dissection_depth_by_n(actx->pinfo, 4);
7504
0
  return offset;
7505
0
}
7506
7507
7508
static const per_sequence_t RANParameter_Testing_sequence_of[1] = {
7509
  { &hf_e2ap_RANParameter_Testing_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing_Item },
7510
};
7511
7512
static unsigned
7513
0
dissect_e2ap_RANParameter_Testing(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7514
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7515
0
                                                  ett_e2ap_RANParameter_Testing, RANParameter_Testing_sequence_of,
7516
0
                                                  1, maxnoofRANparamTest, false);
7517
7518
0
  return offset;
7519
0
}
7520
7521
7522
static const per_sequence_t EventTrigger_Cell_Info_Item_Choice_Group_sequence[] = {
7523
  { &hf_e2ap_ranParameterTesting, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing },
7524
  { NULL, 0, 0, NULL }
7525
};
7526
7527
static unsigned
7528
0
dissect_e2ap_EventTrigger_Cell_Info_Item_Choice_Group(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7529
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7530
0
                                   ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Group, EventTrigger_Cell_Info_Item_Choice_Group_sequence);
7531
7532
0
  return offset;
7533
0
}
7534
7535
7536
static const value_string e2ap_T_cellType_vals[] = {
7537
  {   0, "cellType-Choice-Individual" },
7538
  {   1, "cellType-Choice-Group" },
7539
  { 0, NULL }
7540
};
7541
7542
static const per_choice_t T_cellType_choice[] = {
7543
  {   0, &hf_e2ap_cellType_Choice_Individual, ASN1_EXTENSION_ROOT    , dissect_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual },
7544
  {   1, &hf_e2ap_cellType_Choice_Group, ASN1_EXTENSION_ROOT    , dissect_e2ap_EventTrigger_Cell_Info_Item_Choice_Group },
7545
  { 0, NULL, 0, NULL }
7546
};
7547
7548
static unsigned
7549
0
dissect_e2ap_T_cellType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7550
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7551
0
                                 ett_e2ap_T_cellType, T_cellType_choice,
7552
0
                                 NULL);
7553
7554
0
  return offset;
7555
0
}
7556
7557
7558
static const per_sequence_t EventTrigger_Cell_Info_Item_sequence[] = {
7559
  { &hf_e2ap_eventTriggerCellID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTrigger_Cell_ID },
7560
  { &hf_e2ap_cellType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_cellType },
7561
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
7562
  { NULL, 0, 0, NULL }
7563
};
7564
7565
static unsigned
7566
0
dissect_e2ap_EventTrigger_Cell_Info_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7567
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7568
0
                                   ett_e2ap_EventTrigger_Cell_Info_Item, EventTrigger_Cell_Info_Item_sequence);
7569
7570
0
  return offset;
7571
0
}
7572
7573
7574
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item_sequence_of[1] = {
7575
  { &hf_e2ap_cellInfo_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_EventTrigger_Cell_Info_Item },
7576
};
7577
7578
static unsigned
7579
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7580
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7581
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item, SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item_sequence_of,
7582
0
                                                  1, maxnoofCellInfo, false);
7583
7584
0
  return offset;
7585
0
}
7586
7587
7588
static const per_sequence_t EventTrigger_Cell_Info_sequence[] = {
7589
  { &hf_e2ap_cellInfo_List  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item },
7590
  { NULL, 0, 0, NULL }
7591
};
7592
7593
static unsigned
7594
0
dissect_e2ap_EventTrigger_Cell_Info(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7595
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7596
0
                                   ett_e2ap_EventTrigger_Cell_Info, EventTrigger_Cell_Info_sequence);
7597
7598
0
  return offset;
7599
0
}
7600
7601
7602
7603
static unsigned
7604
0
dissect_e2ap_RIC_EventTrigger_UE_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7605
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7606
0
                                                            1U, 65535U, NULL, true);
7607
7608
0
  return offset;
7609
0
}
7610
7611
7612
static const per_sequence_t EventTrigger_UE_Info_Item_Choice_Individual_sequence[] = {
7613
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
7614
  { &hf_e2ap_ranParameterTesting, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Testing },
7615
  { NULL, 0, 0, NULL }
7616
};
7617
7618
static unsigned
7619
0
dissect_e2ap_EventTrigger_UE_Info_Item_Choice_Individual(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7620
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7621
0
                                   ett_e2ap_EventTrigger_UE_Info_Item_Choice_Individual, EventTrigger_UE_Info_Item_Choice_Individual_sequence);
7622
7623
0
  return offset;
7624
0
}
7625
7626
7627
static const per_sequence_t EventTrigger_UE_Info_Item_Choice_Group_sequence[] = {
7628
  { &hf_e2ap_ranParameterTesting, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing },
7629
  { NULL, 0, 0, NULL }
7630
};
7631
7632
static unsigned
7633
0
dissect_e2ap_EventTrigger_UE_Info_Item_Choice_Group(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7634
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7635
0
                                   ett_e2ap_EventTrigger_UE_Info_Item_Choice_Group, EventTrigger_UE_Info_Item_Choice_Group_sequence);
7636
7637
0
  return offset;
7638
0
}
7639
7640
7641
static const value_string e2ap_T_ueType_vals[] = {
7642
  {   0, "ueType-Choice-Individual" },
7643
  {   1, "ueType-Choice-Group" },
7644
  { 0, NULL }
7645
};
7646
7647
static const per_choice_t T_ueType_choice[] = {
7648
  {   0, &hf_e2ap_ueType_Choice_Individual, ASN1_EXTENSION_ROOT    , dissect_e2ap_EventTrigger_UE_Info_Item_Choice_Individual },
7649
  {   1, &hf_e2ap_ueType_Choice_Group, ASN1_EXTENSION_ROOT    , dissect_e2ap_EventTrigger_UE_Info_Item_Choice_Group },
7650
  { 0, NULL, 0, NULL }
7651
};
7652
7653
static unsigned
7654
0
dissect_e2ap_T_ueType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7655
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7656
0
                                 ett_e2ap_T_ueType, T_ueType_choice,
7657
0
                                 NULL);
7658
7659
0
  return offset;
7660
0
}
7661
7662
7663
static const per_sequence_t EventTrigger_UE_Info_Item_sequence[] = {
7664
  { &hf_e2ap_eventTriggerUEID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTrigger_UE_ID },
7665
  { &hf_e2ap_ueType         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ueType },
7666
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
7667
  { NULL, 0, 0, NULL }
7668
};
7669
7670
static unsigned
7671
0
dissect_e2ap_EventTrigger_UE_Info_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7672
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7673
0
                                   ett_e2ap_EventTrigger_UE_Info_Item, EventTrigger_UE_Info_Item_sequence);
7674
7675
0
  return offset;
7676
0
}
7677
7678
7679
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item_sequence_of[1] = {
7680
  { &hf_e2ap_ueInfo_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_EventTrigger_UE_Info_Item },
7681
};
7682
7683
static unsigned
7684
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7685
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7686
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item, SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item_sequence_of,
7687
0
                                                  1, maxnoofUEInfo, false);
7688
7689
0
  return offset;
7690
0
}
7691
7692
7693
static const per_sequence_t EventTrigger_UE_Info_sequence[] = {
7694
  { &hf_e2ap_ueInfo_List    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item },
7695
  { NULL, 0, 0, NULL }
7696
};
7697
7698
static unsigned
7699
0
dissect_e2ap_EventTrigger_UE_Info(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7700
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7701
0
                                   ett_e2ap_EventTrigger_UE_Info, EventTrigger_UE_Info_sequence);
7702
7703
0
  return offset;
7704
0
}
7705
7706
7707
7708
static unsigned
7709
0
dissect_e2ap_RIC_EventTrigger_UEevent_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7710
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7711
0
                                                            1U, 65535U, NULL, true);
7712
7713
0
  return offset;
7714
0
}
7715
7716
7717
static const per_sequence_t EventTrigger_UEevent_Info_Item_sequence[] = {
7718
  { &hf_e2ap_ueEventID      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTrigger_UEevent_ID },
7719
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
7720
  { NULL, 0, 0, NULL }
7721
};
7722
7723
static unsigned
7724
0
dissect_e2ap_EventTrigger_UEevent_Info_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7725
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7726
0
                                   ett_e2ap_EventTrigger_UEevent_Info_Item, EventTrigger_UEevent_Info_Item_sequence);
7727
7728
0
  return offset;
7729
0
}
7730
7731
7732
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item_sequence_of[1] = {
7733
  { &hf_e2ap_ueEvent_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_EventTrigger_UEevent_Info_Item },
7734
};
7735
7736
static unsigned
7737
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7738
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7739
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item, SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item_sequence_of,
7740
0
                                                  1, maxnoofUEeventInfo, false);
7741
7742
0
  return offset;
7743
0
}
7744
7745
7746
static const per_sequence_t EventTrigger_UEevent_Info_sequence[] = {
7747
  { &hf_e2ap_ueEvent_List   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item },
7748
  { NULL, 0, 0, NULL }
7749
};
7750
7751
static unsigned
7752
0
dissect_e2ap_EventTrigger_UEevent_Info(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7753
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7754
0
                                   ett_e2ap_EventTrigger_UEevent_Info, EventTrigger_UEevent_Info_sequence);
7755
7756
0
  return offset;
7757
0
}
7758
7759
7760
7761
static unsigned
7762
0
dissect_e2ap_RANParameter_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7763
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
7764
0
                                          1, 150, true,
7765
0
                                          NULL);
7766
7767
0
  return offset;
7768
0
}
7769
7770
7771
static const per_sequence_t RANParameter_Definition_Choice_LIST_Item_sequence[] = {
7772
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
7773
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
7774
  { &hf_e2ap_ranParameter_Definition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
7775
  { NULL, 0, 0, NULL }
7776
};
7777
7778
static unsigned
7779
0
dissect_e2ap_RANParameter_Definition_Choice_LIST_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7780
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7781
0
                                   ett_e2ap_RANParameter_Definition_Choice_LIST_Item, RANParameter_Definition_Choice_LIST_Item_sequence);
7782
7783
0
  return offset;
7784
0
}
7785
7786
7787
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item_sequence_of[1] = {
7788
  { &hf_e2ap_ranParameter_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Definition_Choice_LIST_Item },
7789
};
7790
7791
static unsigned
7792
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7793
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7794
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item, SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item_sequence_of,
7795
0
                                                  1, maxnoofItemsinList, false);
7796
7797
0
  return offset;
7798
0
}
7799
7800
7801
static const per_sequence_t RANParameter_Definition_Choice_LIST_sequence[] = {
7802
  { &hf_e2ap_ranParameter_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item },
7803
  { NULL, 0, 0, NULL }
7804
};
7805
7806
static unsigned
7807
0
dissect_e2ap_RANParameter_Definition_Choice_LIST(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7808
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7809
0
                                   ett_e2ap_RANParameter_Definition_Choice_LIST, RANParameter_Definition_Choice_LIST_sequence);
7810
7811
0
  return offset;
7812
0
}
7813
7814
7815
static const per_sequence_t RANParameter_Definition_Choice_STRUCTURE_Item_sequence[] = {
7816
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
7817
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
7818
  { &hf_e2ap_ranParameter_Definition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
7819
  { NULL, 0, 0, NULL }
7820
};
7821
7822
static unsigned
7823
0
dissect_e2ap_RANParameter_Definition_Choice_STRUCTURE_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7824
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7825
0
                                   ett_e2ap_RANParameter_Definition_Choice_STRUCTURE_Item, RANParameter_Definition_Choice_STRUCTURE_Item_sequence);
7826
7827
0
  return offset;
7828
0
}
7829
7830
7831
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item_sequence_of[1] = {
7832
  { &hf_e2ap_ranParameter_STRUCTURE_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Definition_Choice_STRUCTURE_Item },
7833
};
7834
7835
static unsigned
7836
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7837
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7838
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item, SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item_sequence_of,
7839
0
                                                  1, maxnoofParametersinStructure, false);
7840
7841
0
  return offset;
7842
0
}
7843
7844
7845
static const per_sequence_t RANParameter_Definition_Choice_STRUCTURE_sequence[] = {
7846
  { &hf_e2ap_ranParameter_STRUCTURE, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item },
7847
  { NULL, 0, 0, NULL }
7848
};
7849
7850
static unsigned
7851
0
dissect_e2ap_RANParameter_Definition_Choice_STRUCTURE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7852
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7853
0
                                   ett_e2ap_RANParameter_Definition_Choice_STRUCTURE, RANParameter_Definition_Choice_STRUCTURE_sequence);
7854
7855
0
  return offset;
7856
0
}
7857
7858
7859
static const value_string e2ap_RANParameter_Definition_Choice_vals[] = {
7860
  {   0, "choiceLIST" },
7861
  {   1, "choiceSTRUCTURE" },
7862
  { 0, NULL }
7863
};
7864
7865
static const per_choice_t RANParameter_Definition_Choice_choice[] = {
7866
  {   0, &hf_e2ap_choiceLIST     , ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_Definition_Choice_LIST },
7867
  {   1, &hf_e2ap_choiceSTRUCTURE, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_Definition_Choice_STRUCTURE },
7868
  { 0, NULL, 0, NULL }
7869
};
7870
7871
static unsigned
7872
0
dissect_e2ap_RANParameter_Definition_Choice(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7873
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7874
0
                                 ett_e2ap_RANParameter_Definition_Choice, RANParameter_Definition_Choice_choice,
7875
0
                                 NULL);
7876
7877
0
  return offset;
7878
0
}
7879
7880
7881
static const per_sequence_t RANParameter_Definition_sequence[] = {
7882
  { &hf_e2ap_ranParameter_Definition_Choice, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Definition_Choice },
7883
  { NULL, 0, 0, NULL }
7884
};
7885
7886
static unsigned
7887
0
dissect_e2ap_RANParameter_Definition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7888
  // RANParameter-Definition -> RANParameter-Definition-Choice -> RANParameter-Definition-Choice-LIST -> RANParameter-Definition-Choice-LIST/ranParameter-List -> RANParameter-Definition-Choice-LIST-Item -> RANParameter-Definition
7889
0
  increment_dissection_depth_by_n(actx->pinfo, 5);
7890
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7891
0
                                   ett_e2ap_RANParameter_Definition, RANParameter_Definition_sequence);
7892
7893
0
  decrement_dissection_depth_by_n(actx->pinfo, 5);
7894
0
  return offset;
7895
0
}
7896
7897
7898
static const per_sequence_t RANParameter_ValueType_Choice_ElementTrue_sequence[] = {
7899
  { &hf_e2ap_ranParameter_value, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Value },
7900
  { NULL, 0, 0, NULL }
7901
};
7902
7903
static unsigned
7904
0
dissect_e2ap_RANParameter_ValueType_Choice_ElementTrue(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7905
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7906
0
                                   ett_e2ap_RANParameter_ValueType_Choice_ElementTrue, RANParameter_ValueType_Choice_ElementTrue_sequence);
7907
7908
0
  return offset;
7909
0
}
7910
7911
7912
static const per_sequence_t RANParameter_ValueType_Choice_ElementFalse_sequence[] = {
7913
  { &hf_e2ap_ranParameter_value, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Value },
7914
  { NULL, 0, 0, NULL }
7915
};
7916
7917
static unsigned
7918
0
dissect_e2ap_RANParameter_ValueType_Choice_ElementFalse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7919
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7920
0
                                   ett_e2ap_RANParameter_ValueType_Choice_ElementFalse, RANParameter_ValueType_Choice_ElementFalse_sequence);
7921
7922
0
  return offset;
7923
0
}
7924
7925
7926
static const per_sequence_t RANParameter_STRUCTURE_Item_sequence[] = {
7927
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
7928
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
7929
  { NULL, 0, 0, NULL }
7930
};
7931
7932
static unsigned
7933
0
dissect_e2ap_RANParameter_STRUCTURE_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7934
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7935
0
                                   ett_e2ap_RANParameter_STRUCTURE_Item, RANParameter_STRUCTURE_Item_sequence);
7936
7937
0
  return offset;
7938
0
}
7939
7940
7941
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item_sequence_of[1] = {
7942
  { &hf_e2ap_sequence_of_ranParameters_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_STRUCTURE_Item },
7943
};
7944
7945
static unsigned
7946
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7947
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7948
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item, SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item_sequence_of,
7949
0
                                                  1, maxnoofParametersinStructure, false);
7950
7951
0
  return offset;
7952
0
}
7953
7954
7955
static const per_sequence_t RANParameter_STRUCTURE_sequence[] = {
7956
  { &hf_e2ap_sequence_of_ranParameters, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item },
7957
  { NULL, 0, 0, NULL }
7958
};
7959
7960
static unsigned
7961
0
dissect_e2ap_RANParameter_STRUCTURE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7962
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7963
0
                                   ett_e2ap_RANParameter_STRUCTURE, RANParameter_STRUCTURE_sequence);
7964
7965
0
  return offset;
7966
0
}
7967
7968
7969
static const per_sequence_t RANParameter_ValueType_Choice_Structure_sequence[] = {
7970
  { &hf_e2ap_ranParameter_Structure, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_STRUCTURE },
7971
  { NULL, 0, 0, NULL }
7972
};
7973
7974
static unsigned
7975
0
dissect_e2ap_RANParameter_ValueType_Choice_Structure(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7976
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7977
0
                                   ett_e2ap_RANParameter_ValueType_Choice_Structure, RANParameter_ValueType_Choice_Structure_sequence);
7978
7979
0
  return offset;
7980
0
}
7981
7982
7983
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE_sequence_of[1] = {
7984
  { &hf_e2ap_list_of_ranParameter_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_STRUCTURE },
7985
};
7986
7987
static unsigned
7988
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7989
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7990
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE, SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE_sequence_of,
7991
0
                                                  1, maxnoofItemsinList, false);
7992
7993
0
  return offset;
7994
0
}
7995
7996
7997
static const per_sequence_t RANParameter_LIST_sequence[] = {
7998
  { &hf_e2ap_list_of_ranParameter, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE },
7999
  { NULL, 0, 0, NULL }
8000
};
8001
8002
static unsigned
8003
0
dissect_e2ap_RANParameter_LIST(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8004
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8005
0
                                   ett_e2ap_RANParameter_LIST, RANParameter_LIST_sequence);
8006
8007
0
  return offset;
8008
0
}
8009
8010
8011
static const per_sequence_t RANParameter_ValueType_Choice_List_sequence[] = {
8012
  { &hf_e2ap_ranParameter_List_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_LIST },
8013
  { NULL, 0, 0, NULL }
8014
};
8015
8016
static unsigned
8017
0
dissect_e2ap_RANParameter_ValueType_Choice_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8018
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8019
0
                                   ett_e2ap_RANParameter_ValueType_Choice_List, RANParameter_ValueType_Choice_List_sequence);
8020
8021
0
  return offset;
8022
0
}
8023
8024
8025
static const value_string e2ap_RANParameter_ValueType_vals[] = {
8026
  {   0, "ranP-Choice-ElementTrue" },
8027
  {   1, "ranP-Choice-ElementFalse" },
8028
  {   2, "ranP-Choice-Structure" },
8029
  {   3, "ranP-Choice-List" },
8030
  { 0, NULL }
8031
};
8032
8033
static const per_choice_t RANParameter_ValueType_choice[] = {
8034
  {   0, &hf_e2ap_ranP_Choice_ElementTrue, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_ValueType_Choice_ElementTrue },
8035
  {   1, &hf_e2ap_ranP_Choice_ElementFalse, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_ValueType_Choice_ElementFalse },
8036
  {   2, &hf_e2ap_ranP_Choice_Structure, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_ValueType_Choice_Structure },
8037
  {   3, &hf_e2ap_ranP_Choice_List, ASN1_EXTENSION_ROOT    , dissect_e2ap_RANParameter_ValueType_Choice_List },
8038
  { 0, NULL, 0, NULL }
8039
};
8040
8041
static unsigned
8042
0
dissect_e2ap_RANParameter_ValueType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8043
  // RANParameter-ValueType -> RANParameter-ValueType-Choice-Structure -> RANParameter-STRUCTURE -> RANParameter-STRUCTURE/sequence-of-ranParameters -> RANParameter-STRUCTURE-Item -> RANParameter-ValueType
8044
0
  increment_dissection_depth_by_n(actx->pinfo, 5);
8045
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8046
0
                                 ett_e2ap_RANParameter_ValueType, RANParameter_ValueType_choice,
8047
0
                                 NULL);
8048
8049
0
  decrement_dissection_depth_by_n(actx->pinfo, 5);
8050
0
  return offset;
8051
0
}
8052
8053
8054
8055
static unsigned
8056
0
dissect_e2ap_RAN_CallProcess_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8057
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8058
0
                                                            1U, 232U, NULL, true);
8059
8060
0
  return offset;
8061
0
}
8062
8063
8064
8065
static unsigned
8066
0
dissect_e2ap_RIC_CallProcessType_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8067
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8068
0
                                                            1U, 65535U, NULL, true);
8069
8070
0
  return offset;
8071
0
}
8072
8073
8074
8075
static unsigned
8076
0
dissect_e2ap_RIC_CallProcessType_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8077
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
8078
0
                                          1, 150, true,
8079
0
                                          NULL);
8080
8081
0
  return offset;
8082
0
}
8083
8084
8085
8086
static unsigned
8087
0
dissect_e2ap_RIC_CallProcessBreakpoint_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8088
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8089
0
                                                            1U, 65535U, NULL, true);
8090
8091
0
  return offset;
8092
0
}
8093
8094
8095
8096
static unsigned
8097
0
dissect_e2ap_RIC_CallProcessBreakpoint_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8098
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
8099
0
                                          1, 150, true,
8100
0
                                          NULL);
8101
8102
0
  return offset;
8103
0
}
8104
8105
8106
8107
static unsigned
8108
0
dissect_e2ap_RIC_ControlAction_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8109
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8110
0
                                                            1U, 65535U, NULL, true);
8111
8112
0
  return offset;
8113
0
}
8114
8115
8116
8117
static unsigned
8118
0
dissect_e2ap_RIC_ControlAction_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8119
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
8120
0
                                          1, 150, true,
8121
0
                                          NULL);
8122
8123
0
  return offset;
8124
0
}
8125
8126
8127
8128
static unsigned
8129
0
dissect_e2ap_RIC_EventTriggerCondition_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8130
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8131
0
                                                            1U, 65535U, NULL, true);
8132
8133
0
  return offset;
8134
0
}
8135
8136
8137
8138
static unsigned
8139
0
dissect_e2ap_RIC_InsertIndication_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8140
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8141
0
                                                            1U, 65535U, NULL, true);
8142
8143
0
  return offset;
8144
0
}
8145
8146
8147
8148
static unsigned
8149
0
dissect_e2ap_RIC_InsertIndication_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8150
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
8151
0
                                          1, 150, true,
8152
0
                                          NULL);
8153
8154
0
  return offset;
8155
0
}
8156
8157
8158
static const per_sequence_t RIC_PolicyAction_RANParameter_Item_sequence[] = {
8159
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
8160
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
8161
  { NULL, 0, 0, NULL }
8162
};
8163
8164
static unsigned
8165
0
dissect_e2ap_RIC_PolicyAction_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8166
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8167
0
                                   ett_e2ap_RIC_PolicyAction_RANParameter_Item, RIC_PolicyAction_RANParameter_Item_sequence);
8168
8169
0
  return offset;
8170
0
}
8171
8172
8173
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item_sequence_of[1] = {
8174
  { &hf_e2ap_ranParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_PolicyAction_RANParameter_Item },
8175
};
8176
8177
static unsigned
8178
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8179
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8180
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item_sequence_of,
8181
0
                                                  1, maxnoofAssociatedRANParameters, false);
8182
8183
0
  return offset;
8184
0
}
8185
8186
8187
static const value_string e2ap_T_ric_PolicyDecision_vals[] = {
8188
  {   0, "accept" },
8189
  {   1, "reject" },
8190
  { 0, NULL }
8191
};
8192
8193
8194
static unsigned
8195
0
dissect_e2ap_T_ric_PolicyDecision(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8196
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8197
0
                                     2, NULL, true, 0, NULL);
8198
8199
0
  return offset;
8200
0
}
8201
8202
8203
static const per_sequence_t RIC_PolicyAction_sequence[] = {
8204
  { &hf_e2ap_ric_PolicyAction_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_ID },
8205
  { &hf_e2ap_ranParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item },
8206
  { &hf_e2ap_ric_PolicyDecision, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_T_ric_PolicyDecision },
8207
  { NULL, 0, 0, NULL }
8208
};
8209
8210
static unsigned
8211
0
dissect_e2ap_RIC_PolicyAction(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8212
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8213
0
                                   ett_e2ap_RIC_PolicyAction, RIC_PolicyAction_sequence);
8214
8215
0
  return offset;
8216
0
}
8217
8218
8219
static const per_sequence_t MessageType_Choice_NI_sequence[] = {
8220
  { &hf_e2ap_nI_Type        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_InterfaceType },
8221
  { &hf_e2ap_nI_Identifier  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_InterfaceIdentifier },
8222
  { &hf_e2ap_nI_Message     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_Interface_MessageID },
8223
  { NULL, 0, 0, NULL }
8224
};
8225
8226
static unsigned
8227
0
dissect_e2ap_MessageType_Choice_NI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8228
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8229
0
                                   ett_e2ap_MessageType_Choice_NI, MessageType_Choice_NI_sequence);
8230
8231
0
  return offset;
8232
0
}
8233
8234
8235
static const per_sequence_t MessageType_Choice_RRC_sequence[] = {
8236
  { &hf_e2ap_rRC_Message    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RRC_MessageID },
8237
  { NULL, 0, 0, NULL }
8238
};
8239
8240
static unsigned
8241
0
dissect_e2ap_MessageType_Choice_RRC(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8242
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8243
0
                                   ett_e2ap_MessageType_Choice_RRC, MessageType_Choice_RRC_sequence);
8244
8245
0
  return offset;
8246
0
}
8247
8248
8249
static const value_string e2ap_MessageType_Choice_vals[] = {
8250
  {   0, "messageType-Choice-NI" },
8251
  {   1, "messageType-Choice-RRC" },
8252
  { 0, NULL }
8253
};
8254
8255
static const per_choice_t MessageType_Choice_choice[] = {
8256
  {   0, &hf_e2ap_messageType_Choice_NI, ASN1_EXTENSION_ROOT    , dissect_e2ap_MessageType_Choice_NI },
8257
  {   1, &hf_e2ap_messageType_Choice_RRC, ASN1_EXTENSION_ROOT    , dissect_e2ap_MessageType_Choice_RRC },
8258
  { 0, NULL, 0, NULL }
8259
};
8260
8261
static unsigned
8262
0
dissect_e2ap_MessageType_Choice(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8263
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8264
0
                                 ett_e2ap_MessageType_Choice, MessageType_Choice_choice,
8265
0
                                 NULL);
8266
8267
0
  return offset;
8268
0
}
8269
8270
8271
static const value_string e2ap_T_messageDirection_vals[] = {
8272
  {   0, "incoming" },
8273
  {   1, "outgoing" },
8274
  { 0, NULL }
8275
};
8276
8277
8278
static unsigned
8279
0
dissect_e2ap_T_messageDirection(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8280
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8281
0
                                     2, NULL, true, 0, NULL);
8282
8283
0
  return offset;
8284
0
}
8285
8286
8287
static const per_sequence_t E2SM_RC_EventTrigger_Format1_Item_sequence[] = {
8288
  { &hf_e2ap_ric_eventTriggerCondition_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTriggerCondition_ID },
8289
  { &hf_e2ap_messageType_01 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MessageType_Choice },
8290
  { &hf_e2ap_messageDirection, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_messageDirection },
8291
  { &hf_e2ap_associatedUEInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_UE_Info },
8292
  { &hf_e2ap_associatedUEEvent, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_UEevent_Info },
8293
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
8294
  { NULL, 0, 0, NULL }
8295
};
8296
8297
static unsigned
8298
0
dissect_e2ap_E2SM_RC_EventTrigger_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8299
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8300
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format1_Item, E2SM_RC_EventTrigger_Format1_Item_sequence);
8301
8302
0
  return offset;
8303
0
}
8304
8305
8306
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item_sequence_of[1] = {
8307
  { &hf_e2ap_message_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_EventTrigger_Format1_Item },
8308
};
8309
8310
static unsigned
8311
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8312
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8313
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item, SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item_sequence_of,
8314
0
                                                  1, maxnoofMessages, false);
8315
8316
0
  return offset;
8317
0
}
8318
8319
8320
static const per_sequence_t E2SM_RC_EventTrigger_Format1_sequence[] = {
8321
  { &hf_e2ap_message_List   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item },
8322
  { &hf_e2ap_globalAssociatedUEInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_UE_Info },
8323
  { NULL, 0, 0, NULL }
8324
};
8325
8326
static unsigned
8327
0
dissect_e2ap_E2SM_RC_EventTrigger_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8328
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8329
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format1, E2SM_RC_EventTrigger_Format1_sequence);
8330
8331
0
  return offset;
8332
0
}
8333
8334
8335
static const per_sequence_t E2SM_RC_EventTrigger_Format2_sequence[] = {
8336
  { &hf_e2ap_ric_callProcessType_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_CallProcessType_ID },
8337
  { &hf_e2ap_ric_callProcessBreakpoint_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_CallProcessBreakpoint_ID },
8338
  { &hf_e2ap_associatedE2NodeInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Testing },
8339
  { &hf_e2ap_associatedUEInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_UE_Info },
8340
  { NULL, 0, 0, NULL }
8341
};
8342
8343
static unsigned
8344
0
dissect_e2ap_E2SM_RC_EventTrigger_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8345
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8346
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format2, E2SM_RC_EventTrigger_Format2_sequence);
8347
8348
0
  return offset;
8349
0
}
8350
8351
8352
8353
static unsigned
8354
0
dissect_e2ap_INTEGER_1_512_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8355
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8356
0
                                                            1U, 512U, NULL, true);
8357
8358
0
  return offset;
8359
0
}
8360
8361
8362
static const per_sequence_t E2SM_RC_EventTrigger_Format3_Item_sequence[] = {
8363
  { &hf_e2ap_ric_eventTriggerCondition_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTriggerCondition_ID },
8364
  { &hf_e2ap_e2NodeInfoChange_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_1_512_ },
8365
  { &hf_e2ap_associatedCellInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_Cell_Info },
8366
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
8367
  { NULL, 0, 0, NULL }
8368
};
8369
8370
static unsigned
8371
0
dissect_e2ap_E2SM_RC_EventTrigger_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8372
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8373
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format3_Item, E2SM_RC_EventTrigger_Format3_Item_sequence);
8374
8375
0
  return offset;
8376
0
}
8377
8378
8379
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item_sequence_of[1] = {
8380
  { &hf_e2ap_e2NodeInfoChange_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_EventTrigger_Format3_Item },
8381
};
8382
8383
static unsigned
8384
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8385
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8386
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item, SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item_sequence_of,
8387
0
                                                  1, maxnoofE2InfoChanges, false);
8388
8389
0
  return offset;
8390
0
}
8391
8392
8393
static const per_sequence_t E2SM_RC_EventTrigger_Format3_sequence[] = {
8394
  { &hf_e2ap_e2NodeInfoChange_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item },
8395
  { NULL, 0, 0, NULL }
8396
};
8397
8398
static unsigned
8399
0
dissect_e2ap_E2SM_RC_EventTrigger_Format3(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8400
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8401
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format3, E2SM_RC_EventTrigger_Format3_sequence);
8402
8403
0
  return offset;
8404
0
}
8405
8406
8407
static const per_sequence_t TriggerType_Choice_RRCstate_Item_sequence[] = {
8408
  { &hf_e2ap_stateChangedTo , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RRC_State },
8409
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
8410
  { NULL, 0, 0, NULL }
8411
};
8412
8413
static unsigned
8414
0
dissect_e2ap_TriggerType_Choice_RRCstate_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8415
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8416
0
                                   ett_e2ap_TriggerType_Choice_RRCstate_Item, TriggerType_Choice_RRCstate_Item_sequence);
8417
8418
0
  return offset;
8419
0
}
8420
8421
8422
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item_sequence_of[1] = {
8423
  { &hf_e2ap_rrcState_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_TriggerType_Choice_RRCstate_Item },
8424
};
8425
8426
static unsigned
8427
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8428
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8429
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item, SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item_sequence_of,
8430
0
                                                  1, maxnoofRRCstate, false);
8431
8432
0
  return offset;
8433
0
}
8434
8435
8436
static const per_sequence_t TriggerType_Choice_RRCstate_sequence[] = {
8437
  { &hf_e2ap_rrcState_List  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item },
8438
  { NULL, 0, 0, NULL }
8439
};
8440
8441
static unsigned
8442
0
dissect_e2ap_TriggerType_Choice_RRCstate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8443
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8444
0
                                   ett_e2ap_TriggerType_Choice_RRCstate, TriggerType_Choice_RRCstate_sequence);
8445
8446
0
  return offset;
8447
0
}
8448
8449
8450
static const per_sequence_t TriggerType_Choice_UEID_sequence[] = {
8451
  { &hf_e2ap_ueIDchange_ID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_1_512_ },
8452
  { NULL, 0, 0, NULL }
8453
};
8454
8455
static unsigned
8456
0
dissect_e2ap_TriggerType_Choice_UEID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8457
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8458
0
                                   ett_e2ap_TriggerType_Choice_UEID, TriggerType_Choice_UEID_sequence);
8459
8460
0
  return offset;
8461
0
}
8462
8463
8464
static const per_sequence_t TriggerType_Choice_L2state_sequence[] = {
8465
  { &hf_e2ap_associatedL2variables, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Testing },
8466
  { NULL, 0, 0, NULL }
8467
};
8468
8469
static unsigned
8470
0
dissect_e2ap_TriggerType_Choice_L2state(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8471
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8472
0
                                   ett_e2ap_TriggerType_Choice_L2state, TriggerType_Choice_L2state_sequence);
8473
8474
0
  return offset;
8475
0
}
8476
8477
8478
static const value_string e2ap_TriggerType_Choice_vals[] = {
8479
  {   0, "triggerType-Choice-RRCstate" },
8480
  {   1, "triggerType-Choice-UEID" },
8481
  {   2, "triggerType-Choice-L2state" },
8482
  { 0, NULL }
8483
};
8484
8485
static const per_choice_t TriggerType_Choice_choice[] = {
8486
  {   0, &hf_e2ap_triggerType_Choice_RRCstate, ASN1_EXTENSION_ROOT    , dissect_e2ap_TriggerType_Choice_RRCstate },
8487
  {   1, &hf_e2ap_triggerType_Choice_UEID, ASN1_EXTENSION_ROOT    , dissect_e2ap_TriggerType_Choice_UEID },
8488
  {   2, &hf_e2ap_triggerType_Choice_L2state, ASN1_EXTENSION_ROOT    , dissect_e2ap_TriggerType_Choice_L2state },
8489
  { 0, NULL, 0, NULL }
8490
};
8491
8492
static unsigned
8493
0
dissect_e2ap_TriggerType_Choice(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8494
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8495
0
                                 ett_e2ap_TriggerType_Choice, TriggerType_Choice_choice,
8496
0
                                 NULL);
8497
8498
0
  return offset;
8499
0
}
8500
8501
8502
static const per_sequence_t E2SM_RC_EventTrigger_Format4_Item_sequence[] = {
8503
  { &hf_e2ap_ric_eventTriggerCondition_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTriggerCondition_ID },
8504
  { &hf_e2ap_triggerType    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TriggerType_Choice },
8505
  { &hf_e2ap_associatedUEInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_UE_Info },
8506
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
8507
  { NULL, 0, 0, NULL }
8508
};
8509
8510
static unsigned
8511
0
dissect_e2ap_E2SM_RC_EventTrigger_Format4_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8512
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8513
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format4_Item, E2SM_RC_EventTrigger_Format4_Item_sequence);
8514
8515
0
  return offset;
8516
0
}
8517
8518
8519
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item_sequence_of[1] = {
8520
  { &hf_e2ap_uEInfoChange_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_EventTrigger_Format4_Item },
8521
};
8522
8523
static unsigned
8524
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8525
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8526
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item, SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item_sequence_of,
8527
0
                                                  1, maxnoofUEInfoChanges, false);
8528
8529
0
  return offset;
8530
0
}
8531
8532
8533
static const per_sequence_t E2SM_RC_EventTrigger_Format4_sequence[] = {
8534
  { &hf_e2ap_uEInfoChange_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item },
8535
  { NULL, 0, 0, NULL }
8536
};
8537
8538
static unsigned
8539
0
dissect_e2ap_E2SM_RC_EventTrigger_Format4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8540
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8541
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format4, E2SM_RC_EventTrigger_Format4_sequence);
8542
8543
0
  return offset;
8544
0
}
8545
8546
8547
static const value_string e2ap_T_onDemand_vals[] = {
8548
  {   0, "true" },
8549
  { 0, NULL }
8550
};
8551
8552
8553
static unsigned
8554
0
dissect_e2ap_T_onDemand(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8555
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8556
0
                                     1, NULL, true, 0, NULL);
8557
8558
0
  return offset;
8559
0
}
8560
8561
8562
static const per_sequence_t E2SM_RC_EventTrigger_Format5_sequence[] = {
8563
  { &hf_e2ap_onDemand       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_onDemand },
8564
  { &hf_e2ap_associatedUEInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_UE_Info },
8565
  { &hf_e2ap_associatedCellInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_EventTrigger_Cell_Info },
8566
  { NULL, 0, 0, NULL }
8567
};
8568
8569
static unsigned
8570
0
dissect_e2ap_E2SM_RC_EventTrigger_Format5(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8571
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8572
0
                                   ett_e2ap_E2SM_RC_EventTrigger_Format5, E2SM_RC_EventTrigger_Format5_sequence);
8573
8574
0
  return offset;
8575
0
}
8576
8577
8578
static const value_string e2ap_T_ric_eventTrigger_formats_vals[] = {
8579
  {   0, "eventTrigger-Format1" },
8580
  {   1, "eventTrigger-Format2" },
8581
  {   2, "eventTrigger-Format3" },
8582
  {   3, "eventTrigger-Format4" },
8583
  {   4, "eventTrigger-Format5" },
8584
  { 0, NULL }
8585
};
8586
8587
static const per_choice_t T_ric_eventTrigger_formats_choice[] = {
8588
  {   0, &hf_e2ap_eventTrigger_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_EventTrigger_Format1 },
8589
  {   1, &hf_e2ap_eventTrigger_Format2, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_EventTrigger_Format2 },
8590
  {   2, &hf_e2ap_eventTrigger_Format3, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_EventTrigger_Format3 },
8591
  {   3, &hf_e2ap_eventTrigger_Format4, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_EventTrigger_Format4 },
8592
  {   4, &hf_e2ap_eventTrigger_Format5, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_EventTrigger_Format5 },
8593
  { 0, NULL, 0, NULL }
8594
};
8595
8596
static unsigned
8597
0
dissect_e2ap_T_ric_eventTrigger_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8598
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8599
0
                                 ett_e2ap_T_ric_eventTrigger_formats, T_ric_eventTrigger_formats_choice,
8600
0
                                 NULL);
8601
8602
0
  return offset;
8603
0
}
8604
8605
8606
static const per_sequence_t E2SM_RC_EventTrigger_sequence[] = {
8607
  { &hf_e2ap_ric_eventTrigger_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_eventTrigger_formats },
8608
  { NULL, 0, 0, NULL }
8609
};
8610
8611
static unsigned
8612
0
dissect_e2ap_E2SM_RC_EventTrigger(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8613
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8614
0
                                   ett_e2ap_E2SM_RC_EventTrigger, E2SM_RC_EventTrigger_sequence);
8615
8616
0
  return offset;
8617
0
}
8618
8619
8620
static const per_sequence_t E2SM_RC_ActionDefinition_Format1_Item_sequence[] = {
8621
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
8622
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
8623
  { NULL, 0, 0, NULL }
8624
};
8625
8626
static unsigned
8627
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8628
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8629
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format1_Item, E2SM_RC_ActionDefinition_Format1_Item_sequence);
8630
8631
0
  return offset;
8632
0
}
8633
8634
8635
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item_sequence_of[1] = {
8636
  { &hf_e2ap_ranP_ToBeReported_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ActionDefinition_Format1_Item },
8637
};
8638
8639
static unsigned
8640
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8641
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8642
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item, SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item_sequence_of,
8643
0
                                                  1, maxnoofParametersToReport, false);
8644
8645
0
  return offset;
8646
0
}
8647
8648
8649
static const per_sequence_t E2SM_RC_ActionDefinition_Format1_sequence[] = {
8650
  { &hf_e2ap_ranP_ToBeReported_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item },
8651
  { NULL, 0, 0, NULL }
8652
};
8653
8654
static unsigned
8655
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8656
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8657
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format1, E2SM_RC_ActionDefinition_Format1_sequence);
8658
8659
0
  return offset;
8660
0
}
8661
8662
8663
static const per_sequence_t E2SM_RC_ActionDefinition_Format2_Item_sequence[] = {
8664
  { &hf_e2ap_ric_PolicyAction, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_PolicyAction },
8665
  { &hf_e2ap_ric_PolicyConditionDefinition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Testing },
8666
  { NULL, 0, 0, NULL }
8667
};
8668
8669
static unsigned
8670
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format2_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8671
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8672
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format2_Item, E2SM_RC_ActionDefinition_Format2_Item_sequence);
8673
8674
0
  return offset;
8675
0
}
8676
8677
8678
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item_sequence_of[1] = {
8679
  { &hf_e2ap_ric_PolicyConditions_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ActionDefinition_Format2_Item },
8680
};
8681
8682
static unsigned
8683
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8684
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8685
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item, SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item_sequence_of,
8686
0
                                                  1, maxnoofPolicyConditions, false);
8687
8688
0
  return offset;
8689
0
}
8690
8691
8692
static const per_sequence_t E2SM_RC_ActionDefinition_Format2_sequence[] = {
8693
  { &hf_e2ap_ric_PolicyConditions_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item },
8694
  { NULL, 0, 0, NULL }
8695
};
8696
8697
static unsigned
8698
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8699
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8700
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format2, E2SM_RC_ActionDefinition_Format2_sequence);
8701
8702
0
  return offset;
8703
0
}
8704
8705
8706
static const per_sequence_t E2SM_RC_ActionDefinition_Format3_Item_sequence[] = {
8707
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
8708
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
8709
  { NULL, 0, 0, NULL }
8710
};
8711
8712
static unsigned
8713
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8714
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8715
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format3_Item, E2SM_RC_ActionDefinition_Format3_Item_sequence);
8716
8717
0
  return offset;
8718
0
}
8719
8720
8721
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item_sequence_of[1] = {
8722
  { &hf_e2ap_ranP_InsertIndication_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ActionDefinition_Format3_Item },
8723
};
8724
8725
static unsigned
8726
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8727
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8728
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item_sequence_of,
8729
0
                                                  1, maxnoofAssociatedRANParameters, false);
8730
8731
0
  return offset;
8732
0
}
8733
8734
8735
static const per_sequence_t E2SM_RC_ActionDefinition_Format3_sequence[] = {
8736
  { &hf_e2ap_ric_InsertIndication_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_InsertIndication_ID },
8737
  { &hf_e2ap_ranP_InsertIndication_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item },
8738
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_UEID },
8739
  { NULL, 0, 0, NULL }
8740
};
8741
8742
static unsigned
8743
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format3(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8744
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8745
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format3, E2SM_RC_ActionDefinition_Format3_sequence);
8746
8747
0
  return offset;
8748
0
}
8749
8750
8751
static const per_sequence_t E2SM_RC_ActionDefinition_Format4_RANP_Item_sequence[] = {
8752
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
8753
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
8754
  { NULL, 0, 0, NULL }
8755
};
8756
8757
static unsigned
8758
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format4_RANP_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8759
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8760
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format4_RANP_Item, E2SM_RC_ActionDefinition_Format4_RANP_Item_sequence);
8761
8762
0
  return offset;
8763
0
}
8764
8765
8766
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item_sequence_of[1] = {
8767
  { &hf_e2ap_ranP_InsertIndication_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ActionDefinition_Format4_RANP_Item },
8768
};
8769
8770
static unsigned
8771
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8772
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8773
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item_sequence_of,
8774
0
                                                  1, maxnoofAssociatedRANParameters, false);
8775
8776
0
  return offset;
8777
0
}
8778
8779
8780
static const per_sequence_t E2SM_RC_ActionDefinition_Format4_Indication_Item_sequence[] = {
8781
  { &hf_e2ap_ric_InsertIndication_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_InsertIndication_ID },
8782
  { &hf_e2ap_ranP_InsertIndication_List_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item },
8783
  { NULL, 0, 0, NULL }
8784
};
8785
8786
static unsigned
8787
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format4_Indication_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8788
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8789
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format4_Indication_Item, E2SM_RC_ActionDefinition_Format4_Indication_Item_sequence);
8790
8791
0
  return offset;
8792
0
}
8793
8794
8795
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item_sequence_of[1] = {
8796
  { &hf_e2ap_ric_InsertIndication_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ActionDefinition_Format4_Indication_Item },
8797
};
8798
8799
static unsigned
8800
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8801
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8802
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item, SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item_sequence_of,
8803
0
                                                  1, maxnoofInsertIndicationActions, false);
8804
8805
0
  return offset;
8806
0
}
8807
8808
8809
static const per_sequence_t E2SM_RC_ActionDefinition_Format4_Style_Item_sequence[] = {
8810
  { &hf_e2ap_requested_Insert_Style_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
8811
  { &hf_e2ap_ric_InsertIndication_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item },
8812
  { NULL, 0, 0, NULL }
8813
};
8814
8815
static unsigned
8816
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format4_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8817
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8818
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format4_Style_Item, E2SM_RC_ActionDefinition_Format4_Style_Item_sequence);
8819
8820
0
  return offset;
8821
0
}
8822
8823
8824
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item_sequence_of[1] = {
8825
  { &hf_e2ap_ric_InsertStyle_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ActionDefinition_Format4_Style_Item },
8826
};
8827
8828
static unsigned
8829
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8830
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8831
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item_sequence_of,
8832
0
                                                  1, maxnoofRICStyles, false);
8833
8834
0
  return offset;
8835
0
}
8836
8837
8838
static const per_sequence_t E2SM_RC_ActionDefinition_Format4_sequence[] = {
8839
  { &hf_e2ap_ric_InsertStyle_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item },
8840
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_UEID },
8841
  { NULL, 0, 0, NULL }
8842
};
8843
8844
static unsigned
8845
0
dissect_e2ap_E2SM_RC_ActionDefinition_Format4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8846
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8847
0
                                   ett_e2ap_E2SM_RC_ActionDefinition_Format4, E2SM_RC_ActionDefinition_Format4_sequence);
8848
8849
0
  return offset;
8850
0
}
8851
8852
8853
static const value_string e2ap_T_ric_actionDefinition_formats_vals[] = {
8854
  {   0, "actionDefinition-Format1" },
8855
  {   1, "actionDefinition-Format2" },
8856
  {   2, "actionDefinition-Format3" },
8857
  {   3, "actionDefinition-Format4" },
8858
  { 0, NULL }
8859
};
8860
8861
static const per_choice_t T_ric_actionDefinition_formats_choice[] = {
8862
  {   0, &hf_e2ap_actionDefinition_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_ActionDefinition_Format1 },
8863
  {   1, &hf_e2ap_actionDefinition_Format2, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_ActionDefinition_Format2 },
8864
  {   2, &hf_e2ap_actionDefinition_Format3, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_ActionDefinition_Format3 },
8865
  {   3, &hf_e2ap_actionDefinition_Format4, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_RC_ActionDefinition_Format4 },
8866
  { 0, NULL, 0, NULL }
8867
};
8868
8869
static unsigned
8870
0
dissect_e2ap_T_ric_actionDefinition_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8871
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8872
0
                                 ett_e2ap_T_ric_actionDefinition_formats, T_ric_actionDefinition_formats_choice,
8873
0
                                 NULL);
8874
8875
0
  return offset;
8876
0
}
8877
8878
8879
static const per_sequence_t E2SM_RC_ActionDefinition_sequence[] = {
8880
  { &hf_e2ap_ric_Style_Type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
8881
  { &hf_e2ap_ric_actionDefinition_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_actionDefinition_formats },
8882
  { NULL, 0, 0, NULL }
8883
};
8884
8885
static unsigned
8886
0
dissect_e2ap_E2SM_RC_ActionDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8887
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8888
0
                                   ett_e2ap_E2SM_RC_ActionDefinition, E2SM_RC_ActionDefinition_sequence);
8889
8890
0
  return offset;
8891
0
}
8892
8893
8894
static const per_sequence_t E2SM_RC_IndicationHeader_Format1_sequence[] = {
8895
  { &hf_e2ap_ric_eventTriggerCondition_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RIC_EventTriggerCondition_ID },
8896
  { NULL, 0, 0, NULL }
8897
};
8898
8899
static unsigned
8900
0
dissect_e2ap_E2SM_RC_IndicationHeader_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8901
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8902
0
                                   ett_e2ap_E2SM_RC_IndicationHeader_Format1, E2SM_RC_IndicationHeader_Format1_sequence);
8903
8904
0
  return offset;
8905
0
}
8906
8907
8908
static const per_sequence_t E2SM_RC_IndicationHeader_Format2_sequence[] = {
8909
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
8910
  { &hf_e2ap_ric_InsertStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
8911
  { &hf_e2ap_ric_InsertIndication_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_InsertIndication_ID },
8912
  { NULL, 0, 0, NULL }
8913
};
8914
8915
static unsigned
8916
0
dissect_e2ap_E2SM_RC_IndicationHeader_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8917
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8918
0
                                   ett_e2ap_E2SM_RC_IndicationHeader_Format2, E2SM_RC_IndicationHeader_Format2_sequence);
8919
8920
0
  return offset;
8921
0
}
8922
8923
8924
static const per_sequence_t E2SM_RC_IndicationHeader_Format3_sequence[] = {
8925
  { &hf_e2ap_ric_eventTriggerCondition_ID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RIC_EventTriggerCondition_ID },
8926
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_UEID },
8927
  { NULL, 0, 0, NULL }
8928
};
8929
8930
static unsigned
8931
0
dissect_e2ap_E2SM_RC_IndicationHeader_Format3(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8932
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8933
0
                                   ett_e2ap_E2SM_RC_IndicationHeader_Format3, E2SM_RC_IndicationHeader_Format3_sequence);
8934
8935
0
  return offset;
8936
0
}
8937
8938
8939
static const value_string e2ap_T_ric_indicationHeader_formats_vals[] = {
8940
  {   0, "indicationHeader-Format1" },
8941
  {   1, "indicationHeader-Format2" },
8942
  {   2, "indicationHeader-Format3" },
8943
  { 0, NULL }
8944
};
8945
8946
static const per_choice_t T_ric_indicationHeader_formats_choice[] = {
8947
  {   0, &hf_e2ap_indicationHeader_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_IndicationHeader_Format1 },
8948
  {   1, &hf_e2ap_indicationHeader_Format2, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_IndicationHeader_Format2 },
8949
  {   2, &hf_e2ap_indicationHeader_Format3, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_RC_IndicationHeader_Format3 },
8950
  { 0, NULL, 0, NULL }
8951
};
8952
8953
static unsigned
8954
0
dissect_e2ap_T_ric_indicationHeader_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8955
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8956
0
                                 ett_e2ap_T_ric_indicationHeader_formats, T_ric_indicationHeader_formats_choice,
8957
0
                                 NULL);
8958
8959
0
  return offset;
8960
0
}
8961
8962
8963
static const per_sequence_t E2SM_RC_IndicationHeader_sequence[] = {
8964
  { &hf_e2ap_ric_indicationHeader_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_indicationHeader_formats },
8965
  { NULL, 0, 0, NULL }
8966
};
8967
8968
static unsigned
8969
0
dissect_e2ap_E2SM_RC_IndicationHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8970
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8971
0
                                   ett_e2ap_E2SM_RC_IndicationHeader, E2SM_RC_IndicationHeader_sequence);
8972
8973
0
  return offset;
8974
0
}
8975
8976
8977
static const per_sequence_t E2SM_RC_IndicationMessage_Format1_Item_sequence[] = {
8978
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
8979
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
8980
  { NULL, 0, 0, NULL }
8981
};
8982
8983
static unsigned
8984
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8985
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8986
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format1_Item, E2SM_RC_IndicationMessage_Format1_Item_sequence);
8987
8988
0
  return offset;
8989
0
}
8990
8991
8992
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item_sequence_of[1] = {
8993
  { &hf_e2ap_ranP_Reported_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format1_Item },
8994
};
8995
8996
static unsigned
8997
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8998
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8999
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item_sequence_of,
9000
0
                                                  1, maxnoofAssociatedRANParameters, false);
9001
9002
0
  return offset;
9003
0
}
9004
9005
9006
static const per_sequence_t E2SM_RC_IndicationMessage_Format1_sequence[] = {
9007
  { &hf_e2ap_ranP_Reported_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item },
9008
  { NULL, 0, 0, NULL }
9009
};
9010
9011
static unsigned
9012
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9013
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9014
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format1, E2SM_RC_IndicationMessage_Format1_sequence);
9015
9016
0
  return offset;
9017
0
}
9018
9019
9020
static const per_sequence_t E2SM_RC_IndicationMessage_Format2_RANParameter_Item_sequence[] = {
9021
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9022
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
9023
  { NULL, 0, 0, NULL }
9024
};
9025
9026
static unsigned
9027
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format2_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9028
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9029
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format2_RANParameter_Item, E2SM_RC_IndicationMessage_Format2_RANParameter_Item_sequence);
9030
9031
0
  return offset;
9032
0
}
9033
9034
9035
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_sequence_of[1] = {
9036
  { &hf_e2ap_ranP_List_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format2_RANParameter_Item },
9037
};
9038
9039
static unsigned
9040
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9041
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9042
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_sequence_of,
9043
0
                                                  1, maxnoofAssociatedRANParameters, false);
9044
9045
0
  return offset;
9046
0
}
9047
9048
9049
static const per_sequence_t E2SM_RC_IndicationMessage_Format2_Item_sequence[] = {
9050
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
9051
  { &hf_e2ap_ranP_List      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item },
9052
  { NULL, 0, 0, NULL }
9053
};
9054
9055
static unsigned
9056
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format2_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9057
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9058
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format2_Item, E2SM_RC_IndicationMessage_Format2_Item_sequence);
9059
9060
0
  return offset;
9061
0
}
9062
9063
9064
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item_sequence_of[1] = {
9065
  { &hf_e2ap_ueParameter_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format2_Item },
9066
};
9067
9068
static unsigned
9069
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9070
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9071
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item, SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item_sequence_of,
9072
0
                                                  1, maxnoofUEID, false);
9073
9074
0
  return offset;
9075
0
}
9076
9077
9078
static const per_sequence_t E2SM_RC_IndicationMessage_Format2_sequence[] = {
9079
  { &hf_e2ap_ueParameter_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item },
9080
  { NULL, 0, 0, NULL }
9081
};
9082
9083
static unsigned
9084
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9085
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9086
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format2, E2SM_RC_IndicationMessage_Format2_sequence);
9087
9088
0
  return offset;
9089
0
}
9090
9091
9092
static const per_sequence_t E2SM_RC_IndicationMessage_Format3_Item_sequence[] = {
9093
  { &hf_e2ap_cellGlobal_ID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_CGI },
9094
  { &hf_e2ap_cellContextInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_OCTET_STRING },
9095
  { &hf_e2ap_cellDeleted    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_BOOLEAN },
9096
  { &hf_e2ap_neighborRelation_Table, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NeighborRelation_Info },
9097
  { NULL, 0, 0, NULL }
9098
};
9099
9100
static unsigned
9101
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9102
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9103
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format3_Item, E2SM_RC_IndicationMessage_Format3_Item_sequence);
9104
9105
0
  return offset;
9106
0
}
9107
9108
9109
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item_sequence_of[1] = {
9110
  { &hf_e2ap_cellInfo_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format3_Item },
9111
};
9112
9113
static unsigned
9114
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9115
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9116
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item, SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item_sequence_of,
9117
0
                                                  1, maxnoofCellID, false);
9118
9119
0
  return offset;
9120
0
}
9121
9122
9123
static const per_sequence_t E2SM_RC_IndicationMessage_Format3_sequence[] = {
9124
  { &hf_e2ap_cellInfo_List_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item },
9125
  { NULL, 0, 0, NULL }
9126
};
9127
9128
static unsigned
9129
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format3(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9130
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9131
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format3, E2SM_RC_IndicationMessage_Format3_sequence);
9132
9133
0
  return offset;
9134
0
}
9135
9136
9137
static const per_sequence_t E2SM_RC_IndicationMessage_Format4_ItemUE_sequence[] = {
9138
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
9139
  { &hf_e2ap_ueContextInfo  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_OCTET_STRING },
9140
  { &hf_e2ap_cellGlobal_ID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_CGI },
9141
  { NULL, 0, 0, NULL }
9142
};
9143
9144
static unsigned
9145
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format4_ItemUE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9146
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9147
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemUE, E2SM_RC_IndicationMessage_Format4_ItemUE_sequence);
9148
9149
0
  return offset;
9150
0
}
9151
9152
9153
static const per_sequence_t SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE_sequence_of[1] = {
9154
  { &hf_e2ap_ueInfo_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format4_ItemUE },
9155
};
9156
9157
static unsigned
9158
0
dissect_e2ap_SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9159
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9160
0
                                                  ett_e2ap_SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE, SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE_sequence_of,
9161
0
                                                  0, maxnoofUEID, false);
9162
9163
0
  return offset;
9164
0
}
9165
9166
9167
static const per_sequence_t E2SM_RC_IndicationMessage_Format4_ItemCell_sequence[] = {
9168
  { &hf_e2ap_cellGlobal_ID  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_CGI },
9169
  { &hf_e2ap_cellContextInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_OCTET_STRING },
9170
  { &hf_e2ap_neighborRelation_Table, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NeighborRelation_Info },
9171
  { NULL, 0, 0, NULL }
9172
};
9173
9174
static unsigned
9175
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format4_ItemCell(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9176
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9177
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemCell, E2SM_RC_IndicationMessage_Format4_ItemCell_sequence);
9178
9179
0
  return offset;
9180
0
}
9181
9182
9183
static const per_sequence_t SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell_sequence_of[1] = {
9184
  { &hf_e2ap_cellInfo_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format4_ItemCell },
9185
};
9186
9187
static unsigned
9188
0
dissect_e2ap_SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9189
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9190
0
                                                  ett_e2ap_SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell, SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell_sequence_of,
9191
0
                                                  0, maxnoofCellID, false);
9192
9193
0
  return offset;
9194
0
}
9195
9196
9197
static const per_sequence_t E2SM_RC_IndicationMessage_Format4_sequence[] = {
9198
  { &hf_e2ap_ueInfo_List_01 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE },
9199
  { &hf_e2ap_cellInfo_List_02, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell },
9200
  { NULL, 0, 0, NULL }
9201
};
9202
9203
static unsigned
9204
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9205
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9206
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format4, E2SM_RC_IndicationMessage_Format4_sequence);
9207
9208
0
  return offset;
9209
0
}
9210
9211
9212
static const per_sequence_t E2SM_RC_IndicationMessage_Format5_Item_sequence[] = {
9213
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9214
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
9215
  { NULL, 0, 0, NULL }
9216
};
9217
9218
static unsigned
9219
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format5_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9220
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9221
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format5_Item, E2SM_RC_IndicationMessage_Format5_Item_sequence);
9222
9223
0
  return offset;
9224
0
}
9225
9226
9227
static const per_sequence_t SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item_sequence_of[1] = {
9228
  { &hf_e2ap_ranP_Requested_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format5_Item },
9229
};
9230
9231
static unsigned
9232
0
dissect_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9233
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9234
0
                                                  ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item, SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item_sequence_of,
9235
0
                                                  0, maxnoofAssociatedRANParameters, false);
9236
9237
0
  return offset;
9238
0
}
9239
9240
9241
static const per_sequence_t E2SM_RC_IndicationMessage_Format5_sequence[] = {
9242
  { &hf_e2ap_ranP_Requested_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item },
9243
  { NULL, 0, 0, NULL }
9244
};
9245
9246
static unsigned
9247
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format5(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9248
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9249
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format5, E2SM_RC_IndicationMessage_Format5_sequence);
9250
9251
0
  return offset;
9252
0
}
9253
9254
9255
static const per_sequence_t E2SM_RC_IndicationMessage_Format6_RANP_Item_sequence[] = {
9256
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9257
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
9258
  { NULL, 0, 0, NULL }
9259
};
9260
9261
static unsigned
9262
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format6_RANP_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9263
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9264
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format6_RANP_Item, E2SM_RC_IndicationMessage_Format6_RANP_Item_sequence);
9265
9266
0
  return offset;
9267
0
}
9268
9269
9270
static const per_sequence_t SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item_sequence_of[1] = {
9271
  { &hf_e2ap_ranP_InsertIndication_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format6_RANP_Item },
9272
};
9273
9274
static unsigned
9275
0
dissect_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9276
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9277
0
                                                  ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item, SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item_sequence_of,
9278
0
                                                  0, maxnoofAssociatedRANParameters, false);
9279
9280
0
  return offset;
9281
0
}
9282
9283
9284
static const per_sequence_t E2SM_RC_IndicationMessage_Format6_Indication_Item_sequence[] = {
9285
  { &hf_e2ap_ric_InsertIndication_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_InsertIndication_ID },
9286
  { &hf_e2ap_ranP_InsertIndication_List_02, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item },
9287
  { NULL, 0, 0, NULL }
9288
};
9289
9290
static unsigned
9291
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format6_Indication_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9292
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9293
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format6_Indication_Item, E2SM_RC_IndicationMessage_Format6_Indication_Item_sequence);
9294
9295
0
  return offset;
9296
0
}
9297
9298
9299
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item_sequence_of[1] = {
9300
  { &hf_e2ap_ric_InsertIndication_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format6_Indication_Item },
9301
};
9302
9303
static unsigned
9304
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9305
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9306
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item, SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item_sequence_of,
9307
0
                                                  1, maxnoofInsertIndicationActions, false);
9308
9309
0
  return offset;
9310
0
}
9311
9312
9313
static const per_sequence_t E2SM_RC_IndicationMessage_Format6_Style_Item_sequence[] = {
9314
  { &hf_e2ap_indicated_Insert_Style_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
9315
  { &hf_e2ap_ric_InsertIndication_List_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item },
9316
  { NULL, 0, 0, NULL }
9317
};
9318
9319
static unsigned
9320
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format6_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9321
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9322
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format6_Style_Item, E2SM_RC_IndicationMessage_Format6_Style_Item_sequence);
9323
9324
0
  return offset;
9325
0
}
9326
9327
9328
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item_sequence_of[1] = {
9329
  { &hf_e2ap_ric_InsertStyle_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_IndicationMessage_Format6_Style_Item },
9330
};
9331
9332
static unsigned
9333
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9334
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9335
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item_sequence_of,
9336
0
                                                  1, maxnoofRICStyles, false);
9337
9338
0
  return offset;
9339
0
}
9340
9341
9342
static const per_sequence_t E2SM_RC_IndicationMessage_Format6_sequence[] = {
9343
  { &hf_e2ap_ric_InsertStyle_List_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item },
9344
  { NULL, 0, 0, NULL }
9345
};
9346
9347
static unsigned
9348
0
dissect_e2ap_E2SM_RC_IndicationMessage_Format6(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9349
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9350
0
                                   ett_e2ap_E2SM_RC_IndicationMessage_Format6, E2SM_RC_IndicationMessage_Format6_sequence);
9351
9352
0
  return offset;
9353
0
}
9354
9355
9356
static const value_string e2ap_T_ric_indicationMessage_formats_vals[] = {
9357
  {   0, "indicationMessage-Format1" },
9358
  {   1, "indicationMessage-Format2" },
9359
  {   2, "indicationMessage-Format3" },
9360
  {   3, "indicationMessage-Format4" },
9361
  {   4, "indicationMessage-Format5" },
9362
  {   5, "indicationMessage-Format6" },
9363
  { 0, NULL }
9364
};
9365
9366
static const per_choice_t T_ric_indicationMessage_formats_choice[] = {
9367
  {   0, &hf_e2ap_indicationMessage_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_IndicationMessage_Format1 },
9368
  {   1, &hf_e2ap_indicationMessage_Format2, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_IndicationMessage_Format2 },
9369
  {   2, &hf_e2ap_indicationMessage_Format3, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_IndicationMessage_Format3 },
9370
  {   3, &hf_e2ap_indicationMessage_Format4, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_IndicationMessage_Format4 },
9371
  {   4, &hf_e2ap_indicationMessage_Format5, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_IndicationMessage_Format5 },
9372
  {   5, &hf_e2ap_indicationMessage_Format6, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_RC_IndicationMessage_Format6 },
9373
  { 0, NULL, 0, NULL }
9374
};
9375
9376
static unsigned
9377
0
dissect_e2ap_T_ric_indicationMessage_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9378
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9379
0
                                 ett_e2ap_T_ric_indicationMessage_formats, T_ric_indicationMessage_formats_choice,
9380
0
                                 NULL);
9381
9382
0
  return offset;
9383
0
}
9384
9385
9386
static const per_sequence_t E2SM_RC_IndicationMessage_sequence[] = {
9387
  { &hf_e2ap_ric_indicationMessage_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_indicationMessage_formats },
9388
  { NULL, 0, 0, NULL }
9389
};
9390
9391
static unsigned
9392
0
dissect_e2ap_E2SM_RC_IndicationMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9393
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9394
0
                                   ett_e2ap_E2SM_RC_IndicationMessage, E2SM_RC_IndicationMessage_sequence);
9395
9396
0
  return offset;
9397
0
}
9398
9399
9400
static const per_sequence_t E2SM_RC_CallProcessID_Format1_sequence[] = {
9401
  { &hf_e2ap_ric_callProcess_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RAN_CallProcess_ID },
9402
  { NULL, 0, 0, NULL }
9403
};
9404
9405
static unsigned
9406
0
dissect_e2ap_E2SM_RC_CallProcessID_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9407
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9408
0
                                   ett_e2ap_E2SM_RC_CallProcessID_Format1, E2SM_RC_CallProcessID_Format1_sequence);
9409
9410
0
  return offset;
9411
0
}
9412
9413
9414
static const value_string e2ap_T_ric_callProcessID_formats_vals[] = {
9415
  {   0, "callProcessID-Format1" },
9416
  { 0, NULL }
9417
};
9418
9419
static const per_choice_t T_ric_callProcessID_formats_choice[] = {
9420
  {   0, &hf_e2ap_callProcessID_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_CallProcessID_Format1 },
9421
  { 0, NULL, 0, NULL }
9422
};
9423
9424
static unsigned
9425
0
dissect_e2ap_T_ric_callProcessID_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9426
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9427
0
                                 ett_e2ap_T_ric_callProcessID_formats, T_ric_callProcessID_formats_choice,
9428
0
                                 NULL);
9429
9430
0
  return offset;
9431
0
}
9432
9433
9434
static const per_sequence_t E2SM_RC_CallProcessID_sequence[] = {
9435
  { &hf_e2ap_ric_callProcessID_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_callProcessID_formats },
9436
  { NULL, 0, 0, NULL }
9437
};
9438
9439
static unsigned
9440
0
dissect_e2ap_E2SM_RC_CallProcessID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9441
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9442
0
                                   ett_e2ap_E2SM_RC_CallProcessID, E2SM_RC_CallProcessID_sequence);
9443
9444
0
  return offset;
9445
0
}
9446
9447
9448
static const value_string e2ap_T_ric_ControlDecision_vals[] = {
9449
  {   0, "accept" },
9450
  {   1, "reject" },
9451
  { 0, NULL }
9452
};
9453
9454
9455
static unsigned
9456
0
dissect_e2ap_T_ric_ControlDecision(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9457
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9458
0
                                     2, NULL, true, 0, NULL);
9459
9460
0
  return offset;
9461
0
}
9462
9463
9464
static const per_sequence_t E2SM_RC_ControlHeader_Format1_sequence[] = {
9465
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
9466
  { &hf_e2ap_ric_Style_Type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
9467
  { &hf_e2ap_ric_ControlAction_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_ID },
9468
  { &hf_e2ap_ric_ControlDecision, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_ric_ControlDecision },
9469
  { NULL, 0, 0, NULL }
9470
};
9471
9472
static unsigned
9473
0
dissect_e2ap_E2SM_RC_ControlHeader_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9474
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9475
0
                                   ett_e2ap_E2SM_RC_ControlHeader_Format1, E2SM_RC_ControlHeader_Format1_sequence);
9476
9477
0
  return offset;
9478
0
}
9479
9480
9481
static const value_string e2ap_T_ric_ControlDecision_01_vals[] = {
9482
  {   0, "accept" },
9483
  {   1, "reject" },
9484
  { 0, NULL }
9485
};
9486
9487
9488
static unsigned
9489
0
dissect_e2ap_T_ric_ControlDecision_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9490
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9491
0
                                     2, NULL, true, 0, NULL);
9492
9493
0
  return offset;
9494
0
}
9495
9496
9497
static const per_sequence_t E2SM_RC_ControlHeader_Format2_sequence[] = {
9498
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_UEID },
9499
  { &hf_e2ap_ric_ControlDecision_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_ric_ControlDecision_01 },
9500
  { NULL, 0, 0, NULL }
9501
};
9502
9503
static unsigned
9504
0
dissect_e2ap_E2SM_RC_ControlHeader_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9505
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9506
0
                                   ett_e2ap_E2SM_RC_ControlHeader_Format2, E2SM_RC_ControlHeader_Format2_sequence);
9507
9508
0
  return offset;
9509
0
}
9510
9511
9512
static const value_string e2ap_T_ric_controlHeader_formats_vals[] = {
9513
  {   0, "controlHeader-Format1" },
9514
  {   1, "controlHeader-Format2" },
9515
  { 0, NULL }
9516
};
9517
9518
static const per_choice_t T_ric_controlHeader_formats_choice[] = {
9519
  {   0, &hf_e2ap_controlHeader_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_ControlHeader_Format1 },
9520
  {   1, &hf_e2ap_controlHeader_Format2, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_RC_ControlHeader_Format2 },
9521
  { 0, NULL, 0, NULL }
9522
};
9523
9524
static unsigned
9525
0
dissect_e2ap_T_ric_controlHeader_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9526
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9527
0
                                 ett_e2ap_T_ric_controlHeader_formats, T_ric_controlHeader_formats_choice,
9528
0
                                 NULL);
9529
9530
0
  return offset;
9531
0
}
9532
9533
9534
static const per_sequence_t E2SM_RC_ControlHeader_sequence[] = {
9535
  { &hf_e2ap_ric_controlHeader_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_controlHeader_formats },
9536
  { NULL, 0, 0, NULL }
9537
};
9538
9539
static unsigned
9540
0
dissect_e2ap_E2SM_RC_ControlHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9541
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9542
0
                                   ett_e2ap_E2SM_RC_ControlHeader, E2SM_RC_ControlHeader_sequence);
9543
9544
0
  return offset;
9545
0
}
9546
9547
9548
static const per_sequence_t E2SM_RC_ControlMessage_Format1_Item_sequence[] = {
9549
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9550
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
9551
  { NULL, 0, 0, NULL }
9552
};
9553
9554
static unsigned
9555
0
dissect_e2ap_E2SM_RC_ControlMessage_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9556
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9557
0
                                   ett_e2ap_E2SM_RC_ControlMessage_Format1_Item, E2SM_RC_ControlMessage_Format1_Item_sequence);
9558
9559
0
  return offset;
9560
0
}
9561
9562
9563
static const per_sequence_t SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item_sequence_of[1] = {
9564
  { &hf_e2ap_ranP_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlMessage_Format1_Item },
9565
};
9566
9567
static unsigned
9568
0
dissect_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9569
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9570
0
                                                  ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item, SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item_sequence_of,
9571
0
                                                  0, maxnoofAssociatedRANParameters, false);
9572
9573
0
  return offset;
9574
0
}
9575
9576
9577
static const per_sequence_t E2SM_RC_ControlMessage_Format1_sequence[] = {
9578
  { &hf_e2ap_ranP_List_01   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item },
9579
  { NULL, 0, 0, NULL }
9580
};
9581
9582
static unsigned
9583
0
dissect_e2ap_E2SM_RC_ControlMessage_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9584
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9585
0
                                   ett_e2ap_E2SM_RC_ControlMessage_Format1, E2SM_RC_ControlMessage_Format1_sequence);
9586
9587
0
  return offset;
9588
0
}
9589
9590
9591
static const per_sequence_t E2SM_RC_ControlMessage_Format2_ControlAction_Item_sequence[] = {
9592
  { &hf_e2ap_ric_ControlAction_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_ID },
9593
  { &hf_e2ap_ranP_List_02   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlMessage_Format1 },
9594
  { NULL, 0, 0, NULL }
9595
};
9596
9597
static unsigned
9598
0
dissect_e2ap_E2SM_RC_ControlMessage_Format2_ControlAction_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9599
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9600
0
                                   ett_e2ap_E2SM_RC_ControlMessage_Format2_ControlAction_Item, E2SM_RC_ControlMessage_Format2_ControlAction_Item_sequence);
9601
9602
0
  return offset;
9603
0
}
9604
9605
9606
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_sequence_of[1] = {
9607
  { &hf_e2ap_ric_ControlAction_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlMessage_Format2_ControlAction_Item },
9608
};
9609
9610
static unsigned
9611
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9612
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9613
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item, SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_sequence_of,
9614
0
                                                  1, maxnoofMulCtrlActions, false);
9615
9616
0
  return offset;
9617
0
}
9618
9619
9620
static const per_sequence_t E2SM_RC_ControlMessage_Format2_Style_Item_sequence[] = {
9621
  { &hf_e2ap_indicated_Control_Style_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
9622
  { &hf_e2ap_ric_ControlAction_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item },
9623
  { NULL, 0, 0, NULL }
9624
};
9625
9626
static unsigned
9627
0
dissect_e2ap_E2SM_RC_ControlMessage_Format2_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9628
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9629
0
                                   ett_e2ap_E2SM_RC_ControlMessage_Format2_Style_Item, E2SM_RC_ControlMessage_Format2_Style_Item_sequence);
9630
9631
0
  return offset;
9632
0
}
9633
9634
9635
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item_sequence_of[1] = {
9636
  { &hf_e2ap_ric_ControlStyle_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlMessage_Format2_Style_Item },
9637
};
9638
9639
static unsigned
9640
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9641
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9642
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item_sequence_of,
9643
0
                                                  1, maxnoofRICStyles, false);
9644
9645
0
  return offset;
9646
0
}
9647
9648
9649
static const per_sequence_t E2SM_RC_ControlMessage_Format2_sequence[] = {
9650
  { &hf_e2ap_ric_ControlStyle_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item },
9651
  { NULL, 0, 0, NULL }
9652
};
9653
9654
static unsigned
9655
0
dissect_e2ap_E2SM_RC_ControlMessage_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9656
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9657
0
                                   ett_e2ap_E2SM_RC_ControlMessage_Format2, E2SM_RC_ControlMessage_Format2_sequence);
9658
9659
0
  return offset;
9660
0
}
9661
9662
9663
static const value_string e2ap_T_ric_controlMessage_formats_vals[] = {
9664
  {   0, "controlMessage-Format1" },
9665
  {   1, "controlMessage-Format2" },
9666
  { 0, NULL }
9667
};
9668
9669
static const per_choice_t T_ric_controlMessage_formats_choice[] = {
9670
  {   0, &hf_e2ap_controlMessage_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_ControlMessage_Format1 },
9671
  {   1, &hf_e2ap_controlMessage_Format2, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_RC_ControlMessage_Format2 },
9672
  { 0, NULL, 0, NULL }
9673
};
9674
9675
static unsigned
9676
0
dissect_e2ap_T_ric_controlMessage_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9677
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9678
0
                                 ett_e2ap_T_ric_controlMessage_formats, T_ric_controlMessage_formats_choice,
9679
0
                                 NULL);
9680
9681
0
  return offset;
9682
0
}
9683
9684
9685
static const per_sequence_t E2SM_RC_ControlMessage_sequence[] = {
9686
  { &hf_e2ap_ric_controlMessage_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_controlMessage_formats },
9687
  { NULL, 0, 0, NULL }
9688
};
9689
9690
static unsigned
9691
0
dissect_e2ap_E2SM_RC_ControlMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9692
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9693
0
                                   ett_e2ap_E2SM_RC_ControlMessage, E2SM_RC_ControlMessage_sequence);
9694
9695
0
  return offset;
9696
0
}
9697
9698
9699
static const per_sequence_t E2SM_RC_ControlOutcome_Format1_Item_sequence[] = {
9700
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9701
  { &hf_e2ap_ranParameter_value, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Value },
9702
  { NULL, 0, 0, NULL }
9703
};
9704
9705
static unsigned
9706
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9707
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9708
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format1_Item, E2SM_RC_ControlOutcome_Format1_Item_sequence);
9709
9710
0
  return offset;
9711
0
}
9712
9713
9714
static const per_sequence_t SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item_sequence_of[1] = {
9715
  { &hf_e2ap_ranP_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlOutcome_Format1_Item },
9716
};
9717
9718
static unsigned
9719
0
dissect_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9720
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9721
0
                                                  ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item, SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item_sequence_of,
9722
0
                                                  0, maxnoofRANOutcomeParameters, false);
9723
9724
0
  return offset;
9725
0
}
9726
9727
9728
static const per_sequence_t E2SM_RC_ControlOutcome_Format1_sequence[] = {
9729
  { &hf_e2ap_ranP_List_03   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item },
9730
  { NULL, 0, 0, NULL }
9731
};
9732
9733
static unsigned
9734
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9735
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9736
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format1, E2SM_RC_ControlOutcome_Format1_sequence);
9737
9738
0
  return offset;
9739
0
}
9740
9741
9742
static const per_sequence_t E2SM_RC_ControlOutcome_Format2_RANP_Item_sequence[] = {
9743
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9744
  { &hf_e2ap_ranParameter_value, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Value },
9745
  { NULL, 0, 0, NULL }
9746
};
9747
9748
static unsigned
9749
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format2_RANP_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9750
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9751
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format2_RANP_Item, E2SM_RC_ControlOutcome_Format2_RANP_Item_sequence);
9752
9753
0
  return offset;
9754
0
}
9755
9756
9757
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item_sequence_of[1] = {
9758
  { &hf_e2ap_ranP_List_item_03, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlOutcome_Format2_RANP_Item },
9759
};
9760
9761
static unsigned
9762
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9763
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9764
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item_sequence_of,
9765
0
                                                  1, maxnoofAssociatedRANParameters, false);
9766
9767
0
  return offset;
9768
0
}
9769
9770
9771
static const per_sequence_t E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_sequence[] = {
9772
  { &hf_e2ap_ric_ControlAction_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_ID },
9773
  { &hf_e2ap_ranP_List_04   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item },
9774
  { NULL, 0, 0, NULL }
9775
};
9776
9777
static unsigned
9778
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9779
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9780
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item, E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_sequence);
9781
9782
0
  return offset;
9783
0
}
9784
9785
9786
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_sequence_of[1] = {
9787
  { &hf_e2ap_ric_ControlOutcome_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item },
9788
};
9789
9790
static unsigned
9791
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9792
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9793
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item, SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_sequence_of,
9794
0
                                                  1, maxnoofMulCtrlActions, false);
9795
9796
0
  return offset;
9797
0
}
9798
9799
9800
static const per_sequence_t E2SM_RC_ControlOutcome_Format2_Style_Item_sequence[] = {
9801
  { &hf_e2ap_indicated_Control_Style_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
9802
  { &hf_e2ap_ric_ControlOutcome_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item },
9803
  { NULL, 0, 0, NULL }
9804
};
9805
9806
static unsigned
9807
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format2_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9808
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9809
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format2_Style_Item, E2SM_RC_ControlOutcome_Format2_Style_Item_sequence);
9810
9811
0
  return offset;
9812
0
}
9813
9814
9815
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item_sequence_of[1] = {
9816
  { &hf_e2ap_ric_ControlStyle_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlOutcome_Format2_Style_Item },
9817
};
9818
9819
static unsigned
9820
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9821
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9822
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item_sequence_of,
9823
0
                                                  1, maxnoofRICStyles, false);
9824
9825
0
  return offset;
9826
0
}
9827
9828
9829
static const per_sequence_t E2SM_RC_ControlOutcome_Format2_sequence[] = {
9830
  { &hf_e2ap_ric_ControlStyle_List_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item },
9831
  { NULL, 0, 0, NULL }
9832
};
9833
9834
static unsigned
9835
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9836
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9837
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format2, E2SM_RC_ControlOutcome_Format2_sequence);
9838
9839
0
  return offset;
9840
0
}
9841
9842
9843
static const per_sequence_t E2SM_RC_ControlOutcome_Format3_Item_sequence[] = {
9844
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9845
  { &hf_e2ap_ranParameter_valueType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ValueType },
9846
  { NULL, 0, 0, NULL }
9847
};
9848
9849
static unsigned
9850
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9851
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9852
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format3_Item, E2SM_RC_ControlOutcome_Format3_Item_sequence);
9853
9854
0
  return offset;
9855
0
}
9856
9857
9858
static const per_sequence_t SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item_sequence_of[1] = {
9859
  { &hf_e2ap_ranP_List_item_04, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_RC_ControlOutcome_Format3_Item },
9860
};
9861
9862
static unsigned
9863
0
dissect_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9864
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9865
0
                                                  ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item, SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item_sequence_of,
9866
0
                                                  0, maxnoofRANOutcomeParameters, false);
9867
9868
0
  return offset;
9869
0
}
9870
9871
9872
static const per_sequence_t E2SM_RC_ControlOutcome_Format3_sequence[] = {
9873
  { &hf_e2ap_ranP_List_05   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item },
9874
  { NULL, 0, 0, NULL }
9875
};
9876
9877
static unsigned
9878
0
dissect_e2ap_E2SM_RC_ControlOutcome_Format3(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9879
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9880
0
                                   ett_e2ap_E2SM_RC_ControlOutcome_Format3, E2SM_RC_ControlOutcome_Format3_sequence);
9881
9882
0
  return offset;
9883
0
}
9884
9885
9886
static const value_string e2ap_T_ric_controlOutcome_formats_vals[] = {
9887
  {   0, "controlOutcome-Format1" },
9888
  {   1, "controlOutcome-Format2" },
9889
  {   2, "controlOutcome-Format3" },
9890
  { 0, NULL }
9891
};
9892
9893
static const per_choice_t T_ric_controlOutcome_formats_choice[] = {
9894
  {   0, &hf_e2ap_controlOutcome_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_RC_ControlOutcome_Format1 },
9895
  {   1, &hf_e2ap_controlOutcome_Format2, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_RC_ControlOutcome_Format2 },
9896
  {   2, &hf_e2ap_controlOutcome_Format3, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_RC_ControlOutcome_Format3 },
9897
  { 0, NULL, 0, NULL }
9898
};
9899
9900
static unsigned
9901
0
dissect_e2ap_T_ric_controlOutcome_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9902
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9903
0
                                 ett_e2ap_T_ric_controlOutcome_formats, T_ric_controlOutcome_formats_choice,
9904
0
                                 NULL);
9905
9906
0
  return offset;
9907
0
}
9908
9909
9910
static const per_sequence_t E2SM_RC_ControlOutcome_sequence[] = {
9911
  { &hf_e2ap_ric_controlOutcome_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_ric_controlOutcome_formats },
9912
  { NULL, 0, 0, NULL }
9913
};
9914
9915
static unsigned
9916
0
dissect_e2ap_E2SM_RC_ControlOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9917
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9918
0
                                   ett_e2ap_E2SM_RC_ControlOutcome, E2SM_RC_ControlOutcome_sequence);
9919
9920
0
  return offset;
9921
0
}
9922
9923
9924
static const per_sequence_t RANFunctionDefinition_EventTrigger_Style_Item_sequence[] = {
9925
  { &hf_e2ap_ric_EventTriggerStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
9926
  { &hf_e2ap_ric_EventTriggerStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
9927
  { &hf_e2ap_ric_EventTriggerFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
9928
  { NULL, 0, 0, NULL }
9929
};
9930
9931
static unsigned
9932
0
dissect_e2ap_RANFunctionDefinition_EventTrigger_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9933
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9934
0
                                   ett_e2ap_RANFunctionDefinition_EventTrigger_Style_Item, RANFunctionDefinition_EventTrigger_Style_Item_sequence);
9935
9936
0
  return offset;
9937
0
}
9938
9939
9940
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item_sequence_of[1] = {
9941
  { &hf_e2ap_ric_EventTriggerStyle_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_EventTrigger_Style_Item },
9942
};
9943
9944
static unsigned
9945
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9946
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9947
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item_sequence_of,
9948
0
                                                  1, maxnoofRICStyles, false);
9949
9950
0
  return offset;
9951
0
}
9952
9953
9954
static const per_sequence_t L2Parameters_RANParameter_Item_sequence[] = {
9955
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9956
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
9957
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
9958
  { NULL, 0, 0, NULL }
9959
};
9960
9961
static unsigned
9962
0
dissect_e2ap_L2Parameters_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9963
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9964
0
                                   ett_e2ap_L2Parameters_RANParameter_Item, L2Parameters_RANParameter_Item_sequence);
9965
9966
0
  return offset;
9967
0
}
9968
9969
9970
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item_sequence_of[1] = {
9971
  { &hf_e2ap_ran_L2Parameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_L2Parameters_RANParameter_Item },
9972
};
9973
9974
static unsigned
9975
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9976
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9977
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item_sequence_of,
9978
0
                                                  1, maxnoofAssociatedRANParameters, false);
9979
9980
0
  return offset;
9981
0
}
9982
9983
9984
static const per_sequence_t CallProcessBreakpoint_RANParameter_Item_sequence[] = {
9985
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
9986
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
9987
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
9988
  { NULL, 0, 0, NULL }
9989
};
9990
9991
static unsigned
9992
0
dissect_e2ap_CallProcessBreakpoint_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9993
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9994
0
                                   ett_e2ap_CallProcessBreakpoint_RANParameter_Item, CallProcessBreakpoint_RANParameter_Item_sequence);
9995
9996
0
  return offset;
9997
0
}
9998
9999
10000
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item_sequence_of[1] = {
10001
  { &hf_e2ap_ran_CallProcessBreakpointParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_CallProcessBreakpoint_RANParameter_Item },
10002
};
10003
10004
static unsigned
10005
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10006
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10007
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item_sequence_of,
10008
0
                                                  1, maxnoofAssociatedRANParameters, false);
10009
10010
0
  return offset;
10011
0
}
10012
10013
10014
static const per_sequence_t RANFunctionDefinition_EventTrigger_Breakpoint_Item_sequence[] = {
10015
  { &hf_e2ap_callProcessBreakpoint_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_CallProcessBreakpoint_ID },
10016
  { &hf_e2ap_callProcessBreakpoint_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_CallProcessBreakpoint_Name },
10017
  { &hf_e2ap_ran_CallProcessBreakpointParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item },
10018
  { NULL, 0, 0, NULL }
10019
};
10020
10021
static unsigned
10022
0
dissect_e2ap_RANFunctionDefinition_EventTrigger_Breakpoint_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10023
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10024
0
                                   ett_e2ap_RANFunctionDefinition_EventTrigger_Breakpoint_Item, RANFunctionDefinition_EventTrigger_Breakpoint_Item_sequence);
10025
10026
0
  return offset;
10027
0
}
10028
10029
10030
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_sequence_of[1] = {
10031
  { &hf_e2ap_callProcessBreakpoints_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_EventTrigger_Breakpoint_Item },
10032
};
10033
10034
static unsigned
10035
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10036
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10037
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item, SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_sequence_of,
10038
0
                                                  1, maxnoofCallProcessBreakpoints, false);
10039
10040
0
  return offset;
10041
0
}
10042
10043
10044
static const per_sequence_t RANFunctionDefinition_EventTrigger_CallProcess_Item_sequence[] = {
10045
  { &hf_e2ap_callProcessType_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_CallProcessType_ID },
10046
  { &hf_e2ap_callProcessType_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_CallProcessType_Name },
10047
  { &hf_e2ap_callProcessBreakpoints_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item },
10048
  { NULL, 0, 0, NULL }
10049
};
10050
10051
static unsigned
10052
0
dissect_e2ap_RANFunctionDefinition_EventTrigger_CallProcess_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10053
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10054
0
                                   ett_e2ap_RANFunctionDefinition_EventTrigger_CallProcess_Item, RANFunctionDefinition_EventTrigger_CallProcess_Item_sequence);
10055
10056
0
  return offset;
10057
0
}
10058
10059
10060
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item_sequence_of[1] = {
10061
  { &hf_e2ap_ran_CallProcessTypes_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_EventTrigger_CallProcess_Item },
10062
};
10063
10064
static unsigned
10065
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10066
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10067
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item, SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item_sequence_of,
10068
0
                                                  1, maxnoofCallProcessTypes, false);
10069
10070
0
  return offset;
10071
0
}
10072
10073
10074
static const per_sequence_t UEIdentification_RANParameter_Item_sequence[] = {
10075
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10076
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10077
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10078
  { NULL, 0, 0, NULL }
10079
};
10080
10081
static unsigned
10082
0
dissect_e2ap_UEIdentification_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10083
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10084
0
                                   ett_e2ap_UEIdentification_RANParameter_Item, UEIdentification_RANParameter_Item_sequence);
10085
10086
0
  return offset;
10087
0
}
10088
10089
10090
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item_sequence_of[1] = {
10091
  { &hf_e2ap_ran_UEIdentificationParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_UEIdentification_RANParameter_Item },
10092
};
10093
10094
static unsigned
10095
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10096
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10097
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item_sequence_of,
10098
0
                                                  1, maxnoofAssociatedRANParameters, false);
10099
10100
0
  return offset;
10101
0
}
10102
10103
10104
static const per_sequence_t CellIdentification_RANParameter_Item_sequence[] = {
10105
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10106
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10107
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10108
  { NULL, 0, 0, NULL }
10109
};
10110
10111
static unsigned
10112
0
dissect_e2ap_CellIdentification_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10113
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10114
0
                                   ett_e2ap_CellIdentification_RANParameter_Item, CellIdentification_RANParameter_Item_sequence);
10115
10116
0
  return offset;
10117
0
}
10118
10119
10120
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item_sequence_of[1] = {
10121
  { &hf_e2ap_ran_CellIdentificationParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_CellIdentification_RANParameter_Item },
10122
};
10123
10124
static unsigned
10125
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10126
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10127
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item_sequence_of,
10128
0
                                                  1, maxnoofAssociatedRANParameters, false);
10129
10130
0
  return offset;
10131
0
}
10132
10133
10134
static const per_sequence_t RANFunctionDefinition_EventTrigger_sequence[] = {
10135
  { &hf_e2ap_ric_EventTriggerStyle_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item },
10136
  { &hf_e2ap_ran_L2Parameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item },
10137
  { &hf_e2ap_ran_CallProcessTypes_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item },
10138
  { &hf_e2ap_ran_UEIdentificationParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item },
10139
  { &hf_e2ap_ran_CellIdentificationParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item },
10140
  { NULL, 0, 0, NULL }
10141
};
10142
10143
static unsigned
10144
0
dissect_e2ap_RANFunctionDefinition_EventTrigger(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10145
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10146
0
                                   ett_e2ap_RANFunctionDefinition_EventTrigger, RANFunctionDefinition_EventTrigger_sequence);
10147
10148
0
  return offset;
10149
0
}
10150
10151
10152
static const per_sequence_t Report_RANParameter_Item_sequence[] = {
10153
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10154
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10155
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10156
  { NULL, 0, 0, NULL }
10157
};
10158
10159
static unsigned
10160
0
dissect_e2ap_Report_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10161
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10162
0
                                   ett_e2ap_Report_RANParameter_Item, Report_RANParameter_Item_sequence);
10163
10164
0
  return offset;
10165
0
}
10166
10167
10168
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item_sequence_of[1] = {
10169
  { &hf_e2ap_ran_ReportParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_Report_RANParameter_Item },
10170
};
10171
10172
static unsigned
10173
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10174
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10175
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item_sequence_of,
10176
0
                                                  1, maxnoofAssociatedRANParameters, false);
10177
10178
0
  return offset;
10179
0
}
10180
10181
10182
static const per_sequence_t RANFunctionDefinition_Report_Item_sequence[] = {
10183
  { &hf_e2ap_ric_ReportStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
10184
  { &hf_e2ap_ric_ReportStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
10185
  { &hf_e2ap_ric_SupportedEventTriggerStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
10186
  { &hf_e2ap_ric_ReportActionFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10187
  { &hf_e2ap_ric_IndicationHeaderFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10188
  { &hf_e2ap_ric_IndicationMessageFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10189
  { &hf_e2ap_ran_ReportParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item },
10190
  { NULL, 0, 0, NULL }
10191
};
10192
10193
static unsigned
10194
0
dissect_e2ap_RANFunctionDefinition_Report_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10195
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10196
0
                                   ett_e2ap_RANFunctionDefinition_Report_Item, RANFunctionDefinition_Report_Item_sequence);
10197
10198
0
  return offset;
10199
0
}
10200
10201
10202
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item_sequence_of[1] = {
10203
  { &hf_e2ap_ric_ReportStyle_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_Report_Item },
10204
};
10205
10206
static unsigned
10207
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10208
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10209
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item_sequence_of,
10210
0
                                                  1, maxnoofRICStyles, false);
10211
10212
0
  return offset;
10213
0
}
10214
10215
10216
static const per_sequence_t RANFunctionDefinition_Report_sequence[] = {
10217
  { &hf_e2ap_ric_ReportStyle_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item },
10218
  { NULL, 0, 0, NULL }
10219
};
10220
10221
static unsigned
10222
0
dissect_e2ap_RANFunctionDefinition_Report(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10223
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10224
0
                                   ett_e2ap_RANFunctionDefinition_Report, RANFunctionDefinition_Report_sequence);
10225
10226
0
  return offset;
10227
0
}
10228
10229
10230
static const per_sequence_t InsertIndication_RANParameter_Item_sequence[] = {
10231
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10232
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10233
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10234
  { NULL, 0, 0, NULL }
10235
};
10236
10237
static unsigned
10238
0
dissect_e2ap_InsertIndication_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10239
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10240
0
                                   ett_e2ap_InsertIndication_RANParameter_Item, InsertIndication_RANParameter_Item_sequence);
10241
10242
0
  return offset;
10243
0
}
10244
10245
10246
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item_sequence_of[1] = {
10247
  { &hf_e2ap_ran_InsertIndicationParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_InsertIndication_RANParameter_Item },
10248
};
10249
10250
static unsigned
10251
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10252
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10253
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item_sequence_of,
10254
0
                                                  1, maxnoofAssociatedRANParameters, false);
10255
10256
0
  return offset;
10257
0
}
10258
10259
10260
static const per_sequence_t RANFunctionDefinition_Insert_Indication_Item_sequence[] = {
10261
  { &hf_e2ap_ric_InsertIndication_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_InsertIndication_ID },
10262
  { &hf_e2ap_ric_InsertIndication_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_InsertIndication_Name },
10263
  { &hf_e2ap_ran_InsertIndicationParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item },
10264
  { NULL, 0, 0, NULL }
10265
};
10266
10267
static unsigned
10268
0
dissect_e2ap_RANFunctionDefinition_Insert_Indication_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10269
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10270
0
                                   ett_e2ap_RANFunctionDefinition_Insert_Indication_Item, RANFunctionDefinition_Insert_Indication_Item_sequence);
10271
10272
0
  return offset;
10273
0
}
10274
10275
10276
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item_sequence_of[1] = {
10277
  { &hf_e2ap_ric_InsertIndication_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_Insert_Indication_Item },
10278
};
10279
10280
static unsigned
10281
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10282
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10283
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item, SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item_sequence_of,
10284
0
                                                  1, maxnoofInsertIndication, false);
10285
10286
0
  return offset;
10287
0
}
10288
10289
10290
static const per_sequence_t RANFunctionDefinition_Insert_Item_sequence[] = {
10291
  { &hf_e2ap_ric_InsertStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
10292
  { &hf_e2ap_ric_InsertStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
10293
  { &hf_e2ap_ric_SupportedEventTriggerStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
10294
  { &hf_e2ap_ric_ActionDefinitionFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10295
  { &hf_e2ap_ric_InsertIndication_List_02, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item },
10296
  { &hf_e2ap_ric_IndicationHeaderFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10297
  { &hf_e2ap_ric_IndicationMessageFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10298
  { &hf_e2ap_ric_CallProcessIDFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10299
  { NULL, 0, 0, NULL }
10300
};
10301
10302
static unsigned
10303
0
dissect_e2ap_RANFunctionDefinition_Insert_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10304
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10305
0
                                   ett_e2ap_RANFunctionDefinition_Insert_Item, RANFunctionDefinition_Insert_Item_sequence);
10306
10307
0
  return offset;
10308
0
}
10309
10310
10311
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item_sequence_of[1] = {
10312
  { &hf_e2ap_ric_InsertStyle_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_Insert_Item },
10313
};
10314
10315
static unsigned
10316
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10317
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10318
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item_sequence_of,
10319
0
                                                  1, maxnoofRICStyles, false);
10320
10321
0
  return offset;
10322
0
}
10323
10324
10325
static const per_sequence_t RANFunctionDefinition_Insert_sequence[] = {
10326
  { &hf_e2ap_ric_InsertStyle_List_02, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item },
10327
  { NULL, 0, 0, NULL }
10328
};
10329
10330
static unsigned
10331
0
dissect_e2ap_RANFunctionDefinition_Insert(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10332
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10333
0
                                   ett_e2ap_RANFunctionDefinition_Insert, RANFunctionDefinition_Insert_sequence);
10334
10335
0
  return offset;
10336
0
}
10337
10338
10339
static const per_sequence_t ControlAction_RANParameter_Item_sequence[] = {
10340
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10341
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10342
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10343
  { NULL, 0, 0, NULL }
10344
};
10345
10346
static unsigned
10347
0
dissect_e2ap_ControlAction_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10348
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10349
0
                                   ett_e2ap_ControlAction_RANParameter_Item, ControlAction_RANParameter_Item_sequence);
10350
10351
0
  return offset;
10352
0
}
10353
10354
10355
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item_sequence_of[1] = {
10356
  { &hf_e2ap_ran_ControlActionParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ControlAction_RANParameter_Item },
10357
};
10358
10359
static unsigned
10360
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10361
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10362
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item_sequence_of,
10363
0
                                                  1, maxnoofAssociatedRANParameters, false);
10364
10365
0
  return offset;
10366
0
}
10367
10368
10369
static const per_sequence_t RANFunctionDefinition_Control_Action_Item_sequence[] = {
10370
  { &hf_e2ap_ric_ControlAction_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_ID },
10371
  { &hf_e2ap_ric_ControlAction_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_Name },
10372
  { &hf_e2ap_ran_ControlActionParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item },
10373
  { NULL, 0, 0, NULL }
10374
};
10375
10376
static unsigned
10377
0
dissect_e2ap_RANFunctionDefinition_Control_Action_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10378
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10379
0
                                   ett_e2ap_RANFunctionDefinition_Control_Action_Item, RANFunctionDefinition_Control_Action_Item_sequence);
10380
10381
0
  return offset;
10382
0
}
10383
10384
10385
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item_sequence_of[1] = {
10386
  { &hf_e2ap_ric_ControlAction_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_Control_Action_Item },
10387
};
10388
10389
static unsigned
10390
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10391
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10392
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item, SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item_sequence_of,
10393
0
                                                  1, maxnoofControlAction, false);
10394
10395
0
  return offset;
10396
0
}
10397
10398
10399
static const per_sequence_t ControlOutcome_RANParameter_Item_sequence[] = {
10400
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10401
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10402
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10403
  { NULL, 0, 0, NULL }
10404
};
10405
10406
static unsigned
10407
0
dissect_e2ap_ControlOutcome_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10408
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10409
0
                                   ett_e2ap_ControlOutcome_RANParameter_Item, ControlOutcome_RANParameter_Item_sequence);
10410
10411
0
  return offset;
10412
0
}
10413
10414
10415
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item_sequence_of[1] = {
10416
  { &hf_e2ap_ran_ControlOutcomeParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_ControlOutcome_RANParameter_Item },
10417
};
10418
10419
static unsigned
10420
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10421
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10422
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item_sequence_of,
10423
0
                                                  1, maxnoofRANOutcomeParameters, false);
10424
10425
0
  return offset;
10426
0
}
10427
10428
10429
static const per_sequence_t RANFunctionDefinition_Control_Item_sequence[] = {
10430
  { &hf_e2ap_ric_ControlStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
10431
  { &hf_e2ap_ric_ControlStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
10432
  { &hf_e2ap_ric_ControlAction_List_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item },
10433
  { &hf_e2ap_ric_ControlHeaderFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10434
  { &hf_e2ap_ric_ControlMessageFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10435
  { &hf_e2ap_ric_CallProcessIDFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RIC_Format_Type },
10436
  { &hf_e2ap_ric_ControlOutcomeFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10437
  { &hf_e2ap_ran_ControlOutcomeParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item },
10438
  { NULL, 0, 0, NULL }
10439
};
10440
10441
static unsigned
10442
0
dissect_e2ap_RANFunctionDefinition_Control_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10443
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10444
0
                                   ett_e2ap_RANFunctionDefinition_Control_Item, RANFunctionDefinition_Control_Item_sequence);
10445
10446
0
  return offset;
10447
0
}
10448
10449
10450
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item_sequence_of[1] = {
10451
  { &hf_e2ap_ric_ControlStyle_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_Control_Item },
10452
};
10453
10454
static unsigned
10455
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10456
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10457
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item_sequence_of,
10458
0
                                                  1, maxnoofRICStyles, false);
10459
10460
0
  return offset;
10461
0
}
10462
10463
10464
static const per_sequence_t RANFunctionDefinition_Control_sequence[] = {
10465
  { &hf_e2ap_ric_ControlStyle_List_02, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item },
10466
  { NULL, 0, 0, NULL }
10467
};
10468
10469
static unsigned
10470
0
dissect_e2ap_RANFunctionDefinition_Control(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10471
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10472
0
                                   ett_e2ap_RANFunctionDefinition_Control, RANFunctionDefinition_Control_sequence);
10473
10474
0
  return offset;
10475
0
}
10476
10477
10478
static const per_sequence_t PolicyAction_RANParameter_Item_sequence[] = {
10479
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10480
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10481
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10482
  { NULL, 0, 0, NULL }
10483
};
10484
10485
static unsigned
10486
0
dissect_e2ap_PolicyAction_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10487
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10488
0
                                   ett_e2ap_PolicyAction_RANParameter_Item, PolicyAction_RANParameter_Item_sequence);
10489
10490
0
  return offset;
10491
0
}
10492
10493
10494
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item_sequence_of[1] = {
10495
  { &hf_e2ap_ran_PolicyActionParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_PolicyAction_RANParameter_Item },
10496
};
10497
10498
static unsigned
10499
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10500
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10501
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item_sequence_of,
10502
0
                                                  1, maxnoofAssociatedRANParameters, false);
10503
10504
0
  return offset;
10505
0
}
10506
10507
10508
static const per_sequence_t PolicyCondition_RANParameter_Item_sequence[] = {
10509
  { &hf_e2ap_ranParameter_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_ID },
10510
  { &hf_e2ap_ranParameter_name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANParameter_Name },
10511
  { &hf_e2ap_ranParameter_Definition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_RANParameter_Definition },
10512
  { NULL, 0, 0, NULL }
10513
};
10514
10515
static unsigned
10516
0
dissect_e2ap_PolicyCondition_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10517
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10518
0
                                   ett_e2ap_PolicyCondition_RANParameter_Item, PolicyCondition_RANParameter_Item_sequence);
10519
10520
0
  return offset;
10521
0
}
10522
10523
10524
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item_sequence_of[1] = {
10525
  { &hf_e2ap_ran_PolicyConditionParameters_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_PolicyCondition_RANParameter_Item },
10526
};
10527
10528
static unsigned
10529
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10530
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10531
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item, SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item_sequence_of,
10532
0
                                                  1, maxnoofAssociatedRANParameters, false);
10533
10534
0
  return offset;
10535
0
}
10536
10537
10538
static const per_sequence_t RANFunctionDefinition_Policy_Action_Item_sequence[] = {
10539
  { &hf_e2ap_ric_PolicyAction_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_ID },
10540
  { &hf_e2ap_ric_PolicyAction_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlAction_Name },
10541
  { &hf_e2ap_ric_ActionDefinitionFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
10542
  { &hf_e2ap_ran_PolicyActionParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item },
10543
  { &hf_e2ap_ran_PolicyConditionParameters_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item },
10544
  { NULL, 0, 0, NULL }
10545
};
10546
10547
static unsigned
10548
0
dissect_e2ap_RANFunctionDefinition_Policy_Action_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10549
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10550
0
                                   ett_e2ap_RANFunctionDefinition_Policy_Action_Item, RANFunctionDefinition_Policy_Action_Item_sequence);
10551
10552
0
  return offset;
10553
0
}
10554
10555
10556
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item_sequence_of[1] = {
10557
  { &hf_e2ap_ric_PolicyAction_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_Policy_Action_Item },
10558
};
10559
10560
static unsigned
10561
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10562
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10563
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item, SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item_sequence_of,
10564
0
                                                  1, maxnoofPolicyAction, false);
10565
10566
0
  return offset;
10567
0
}
10568
10569
10570
static const per_sequence_t RANFunctionDefinition_Policy_Item_sequence[] = {
10571
  { &hf_e2ap_ric_PolicyStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
10572
  { &hf_e2ap_ric_PolicyStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
10573
  { &hf_e2ap_ric_SupportedEventTriggerStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
10574
  { &hf_e2ap_ric_PolicyAction_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item },
10575
  { NULL, 0, 0, NULL }
10576
};
10577
10578
static unsigned
10579
0
dissect_e2ap_RANFunctionDefinition_Policy_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10580
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10581
0
                                   ett_e2ap_RANFunctionDefinition_Policy_Item, RANFunctionDefinition_Policy_Item_sequence);
10582
10583
0
  return offset;
10584
0
}
10585
10586
10587
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item_sequence_of[1] = {
10588
  { &hf_e2ap_ric_PolicyStyle_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANFunctionDefinition_Policy_Item },
10589
};
10590
10591
static unsigned
10592
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10593
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10594
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item_sequence_of,
10595
0
                                                  1, maxnoofRICStyles, false);
10596
10597
0
  return offset;
10598
0
}
10599
10600
10601
static const per_sequence_t RANFunctionDefinition_Policy_sequence[] = {
10602
  { &hf_e2ap_ric_PolicyStyle_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item },
10603
  { NULL, 0, 0, NULL }
10604
};
10605
10606
static unsigned
10607
0
dissect_e2ap_RANFunctionDefinition_Policy(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10608
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10609
0
                                   ett_e2ap_RANFunctionDefinition_Policy, RANFunctionDefinition_Policy_sequence);
10610
10611
0
  return offset;
10612
0
}
10613
10614
10615
static const per_sequence_t E2SM_RC_RANFunctionDefinition_sequence[] = {
10616
  { &hf_e2ap_ranFunction_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunction_Name },
10617
  { &hf_e2ap_ranFunctionDefinition_EventTrigger, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANFunctionDefinition_EventTrigger },
10618
  { &hf_e2ap_ranFunctionDefinition_Report, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANFunctionDefinition_Report },
10619
  { &hf_e2ap_ranFunctionDefinition_Insert, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANFunctionDefinition_Insert },
10620
  { &hf_e2ap_ranFunctionDefinition_Control, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANFunctionDefinition_Control },
10621
  { &hf_e2ap_ranFunctionDefinition_Policy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RANFunctionDefinition_Policy },
10622
  { NULL, 0, 0, NULL }
10623
};
10624
10625
static unsigned
10626
0
dissect_e2ap_E2SM_RC_RANFunctionDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10627
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10628
0
                                   ett_e2ap_E2SM_RC_RANFunctionDefinition, E2SM_RC_RANFunctionDefinition_sequence);
10629
10630
0
  return offset;
10631
0
}
10632
10633
10634
10635
static unsigned
10636
0
dissect_e2ap_TimeStamp(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10637
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
10638
0
                                       8, 8, false, NULL);
10639
10640
0
  return offset;
10641
0
}
10642
10643
10644
10645
static unsigned
10646
0
dissect_e2ap_BinIndex(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10647
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10648
0
                                                            1U, 65535U, NULL, true);
10649
10650
0
  return offset;
10651
0
}
10652
10653
10654
static const value_string e2ap_BinRangeValue_vals[] = {
10655
  {   0, "valueInt" },
10656
  {   1, "valueReal" },
10657
  { 0, NULL }
10658
};
10659
10660
static const per_choice_t BinRangeValue_choice[] = {
10661
  {   0, &hf_e2ap_valueInt       , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
10662
  {   1, &hf_e2ap_valueReal      , ASN1_EXTENSION_ROOT    , dissect_e2ap_REAL },
10663
  { 0, NULL, 0, NULL }
10664
};
10665
10666
static unsigned
10667
0
dissect_e2ap_BinRangeValue(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10668
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10669
0
                                 ett_e2ap_BinRangeValue, BinRangeValue_choice,
10670
0
                                 NULL);
10671
10672
0
  return offset;
10673
0
}
10674
10675
10676
10677
static unsigned
10678
0
dissect_e2ap_GranularityPeriod(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10679
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10680
0
                                                            1U, 4294967295U, NULL, false);
10681
10682
0
  return offset;
10683
0
}
10684
10685
10686
10687
static unsigned
10688
0
dissect_e2ap_MeasurementTypeName(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10689
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
10690
0
                                          1, 150, true,
10691
0
                                          NULL);
10692
10693
0
  return offset;
10694
0
}
10695
10696
10697
10698
static unsigned
10699
0
dissect_e2ap_MeasurementTypeID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10700
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10701
0
                                                            1U, 65536U, NULL, true);
10702
10703
0
  return offset;
10704
0
}
10705
10706
10707
static const value_string e2ap_MeasurementType_vals[] = {
10708
  {   0, "measName" },
10709
  {   1, "measID" },
10710
  { 0, NULL }
10711
};
10712
10713
static const per_choice_t MeasurementType_choice[] = {
10714
  {   0, &hf_e2ap_measName       , ASN1_EXTENSION_ROOT    , dissect_e2ap_MeasurementTypeName },
10715
  {   1, &hf_e2ap_measID         , ASN1_EXTENSION_ROOT    , dissect_e2ap_MeasurementTypeID },
10716
  { 0, NULL, 0, NULL }
10717
};
10718
10719
static unsigned
10720
0
dissect_e2ap_MeasurementType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10721
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10722
0
                                 ett_e2ap_MeasurementType, MeasurementType_choice,
10723
0
                                 NULL);
10724
10725
0
  return offset;
10726
0
}
10727
10728
10729
static const value_string e2ap_T_noLabel_vals[] = {
10730
  {   0, "true" },
10731
  { 0, NULL }
10732
};
10733
10734
10735
static unsigned
10736
0
dissect_e2ap_T_noLabel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10737
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10738
0
                                     1, NULL, true, 0, NULL);
10739
10740
0
  return offset;
10741
0
}
10742
10743
10744
10745
static unsigned
10746
0
dissect_e2ap_INTEGER_1_15_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10747
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10748
0
                                                            1U, 15U, NULL, true);
10749
10750
0
  return offset;
10751
0
}
10752
10753
10754
static const value_string e2ap_T_sUM_vals[] = {
10755
  {   0, "true" },
10756
  { 0, NULL }
10757
};
10758
10759
10760
static unsigned
10761
0
dissect_e2ap_T_sUM(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10762
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10763
0
                                     1, NULL, true, 0, NULL);
10764
10765
0
  return offset;
10766
0
}
10767
10768
10769
static const value_string e2ap_T_preLabelOverride_vals[] = {
10770
  {   0, "true" },
10771
  { 0, NULL }
10772
};
10773
10774
10775
static unsigned
10776
0
dissect_e2ap_T_preLabelOverride(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10777
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10778
0
                                     1, NULL, true, 0, NULL);
10779
10780
0
  return offset;
10781
0
}
10782
10783
10784
static const value_string e2ap_T_startEndInd_vals[] = {
10785
  {   0, "start" },
10786
  {   1, "end" },
10787
  { 0, NULL }
10788
};
10789
10790
10791
static unsigned
10792
0
dissect_e2ap_T_startEndInd(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10793
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10794
0
                                     2, NULL, true, 0, NULL);
10795
10796
0
  return offset;
10797
0
}
10798
10799
10800
static const value_string e2ap_T_min_vals[] = {
10801
  {   0, "true" },
10802
  { 0, NULL }
10803
};
10804
10805
10806
static unsigned
10807
0
dissect_e2ap_T_min(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10808
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10809
0
                                     1, NULL, true, 0, NULL);
10810
10811
0
  return offset;
10812
0
}
10813
10814
10815
static const value_string e2ap_T_max_vals[] = {
10816
  {   0, "true" },
10817
  { 0, NULL }
10818
};
10819
10820
10821
static unsigned
10822
0
dissect_e2ap_T_max(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10823
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10824
0
                                     1, NULL, true, 0, NULL);
10825
10826
0
  return offset;
10827
0
}
10828
10829
10830
static const value_string e2ap_T_avg_vals[] = {
10831
  {   0, "true" },
10832
  { 0, NULL }
10833
};
10834
10835
10836
static unsigned
10837
0
dissect_e2ap_T_avg(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10838
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10839
0
                                     1, NULL, true, 0, NULL);
10840
10841
0
  return offset;
10842
0
}
10843
10844
10845
10846
static unsigned
10847
0
dissect_e2ap_INTEGER_1_2_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10848
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10849
0
                                                            1U, 2U, NULL, true);
10850
10851
0
  return offset;
10852
0
}
10853
10854
10855
static const per_sequence_t MeasurementLabel_sequence[] = {
10856
  { &hf_e2ap_noLabel        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_noLabel },
10857
  { &hf_e2ap_plmnID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_PLMNIdentity },
10858
  { &hf_e2ap_sliceID        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_S_NSSAI },
10859
  { &hf_e2ap_fiveQI         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_FiveQI },
10860
  { &hf_e2ap_qFI            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_QosFlowIdentifier },
10861
  { &hf_e2ap_qCI            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_QCI },
10862
  { &hf_e2ap_qCImax         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_QCI },
10863
  { &hf_e2ap_qCImin         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_QCI },
10864
  { &hf_e2ap_aRPmax         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_15_ },
10865
  { &hf_e2ap_aRPmin         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_15_ },
10866
  { &hf_e2ap_bitrateRange   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_65535_ },
10867
  { &hf_e2ap_layerMU_MIMO   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_65535_ },
10868
  { &hf_e2ap_sUM            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_sUM },
10869
  { &hf_e2ap_distBinX       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_65535_ },
10870
  { &hf_e2ap_distBinY       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_65535_ },
10871
  { &hf_e2ap_distBinZ       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_65535_ },
10872
  { &hf_e2ap_preLabelOverride, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_preLabelOverride },
10873
  { &hf_e2ap_startEndInd    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_startEndInd },
10874
  { &hf_e2ap_min            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_min },
10875
  { &hf_e2ap_max            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_max },
10876
  { &hf_e2ap_avg            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_avg },
10877
  { &hf_e2ap_ssbIndex       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_65535_ },
10878
  { &hf_e2ap_nonGoB_BFmode_Index, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_65535_ },
10879
  { &hf_e2ap_mIMO_mode_Index, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_INTEGER_1_2_ },
10880
  { NULL, 0, 0, NULL }
10881
};
10882
10883
static unsigned
10884
0
dissect_e2ap_MeasurementLabel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10885
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10886
0
                                   ett_e2ap_MeasurementLabel, MeasurementLabel_sequence);
10887
10888
0
  return offset;
10889
0
}
10890
10891
10892
static const value_string e2ap_T_gBR_vals[] = {
10893
  {   0, "true" },
10894
  { 0, NULL }
10895
};
10896
10897
10898
static unsigned
10899
0
dissect_e2ap_T_gBR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10900
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10901
0
                                     1, NULL, true, 0, NULL);
10902
10903
0
  return offset;
10904
0
}
10905
10906
10907
static const value_string e2ap_T_aMBR_vals[] = {
10908
  {   0, "true" },
10909
  { 0, NULL }
10910
};
10911
10912
10913
static unsigned
10914
0
dissect_e2ap_T_aMBR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10915
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10916
0
                                     1, NULL, true, 0, NULL);
10917
10918
0
  return offset;
10919
0
}
10920
10921
10922
static const value_string e2ap_T_isStat_vals[] = {
10923
  {   0, "true" },
10924
  { 0, NULL }
10925
};
10926
10927
10928
static unsigned
10929
0
dissect_e2ap_T_isStat(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10930
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10931
0
                                     1, NULL, true, 0, NULL);
10932
10933
0
  return offset;
10934
0
}
10935
10936
10937
static const value_string e2ap_T_isCatM_vals[] = {
10938
  {   0, "true" },
10939
  { 0, NULL }
10940
};
10941
10942
10943
static unsigned
10944
0
dissect_e2ap_T_isCatM(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10945
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10946
0
                                     1, NULL, true, 0, NULL);
10947
10948
0
  return offset;
10949
0
}
10950
10951
10952
static const value_string e2ap_T_rSRP_vals[] = {
10953
  {   0, "true" },
10954
  { 0, NULL }
10955
};
10956
10957
10958
static unsigned
10959
0
dissect_e2ap_T_rSRP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10960
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10961
0
                                     1, NULL, true, 0, NULL);
10962
10963
0
  return offset;
10964
0
}
10965
10966
10967
static const value_string e2ap_T_rSRQ_vals[] = {
10968
  {   0, "true" },
10969
  { 0, NULL }
10970
};
10971
10972
10973
static unsigned
10974
0
dissect_e2ap_T_rSRQ(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10975
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10976
0
                                     1, NULL, true, 0, NULL);
10977
10978
0
  return offset;
10979
0
}
10980
10981
10982
static const value_string e2ap_T_ul_rSRP_vals[] = {
10983
  {   0, "true" },
10984
  { 0, NULL }
10985
};
10986
10987
10988
static unsigned
10989
0
dissect_e2ap_T_ul_rSRP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10990
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
10991
0
                                     1, NULL, true, 0, NULL);
10992
10993
0
  return offset;
10994
0
}
10995
10996
10997
static const value_string e2ap_T_cQI_vals[] = {
10998
  {   0, "true" },
10999
  { 0, NULL }
11000
};
11001
11002
11003
static unsigned
11004
0
dissect_e2ap_T_cQI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11005
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11006
0
                                     1, NULL, true, 0, NULL);
11007
11008
0
  return offset;
11009
0
}
11010
11011
11012
static const value_string e2ap_T_fiveQI_vals[] = {
11013
  {   0, "true" },
11014
  { 0, NULL }
11015
};
11016
11017
11018
static unsigned
11019
0
dissect_e2ap_T_fiveQI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11020
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11021
0
                                     1, NULL, true, 0, NULL);
11022
11023
0
  return offset;
11024
0
}
11025
11026
11027
static const value_string e2ap_T_qCI_vals[] = {
11028
  {   0, "true" },
11029
  { 0, NULL }
11030
};
11031
11032
11033
static unsigned
11034
0
dissect_e2ap_T_qCI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11035
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11036
0
                                     1, NULL, true, 0, NULL);
11037
11038
0
  return offset;
11039
0
}
11040
11041
11042
static const value_string e2ap_T_sNSSAI_vals[] = {
11043
  {   0, "true" },
11044
  { 0, NULL }
11045
};
11046
11047
11048
static unsigned
11049
0
dissect_e2ap_T_sNSSAI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11050
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11051
0
                                     1, NULL, true, 0, NULL);
11052
11053
0
  return offset;
11054
0
}
11055
11056
11057
static const value_string e2ap_TestCond_Type_vals[] = {
11058
  {   0, "gBR" },
11059
  {   1, "aMBR" },
11060
  {   2, "isStat" },
11061
  {   3, "isCatM" },
11062
  {   4, "rSRP" },
11063
  {   5, "rSRQ" },
11064
  {   6, "ul-rSRP" },
11065
  {   7, "cQI" },
11066
  {   8, "fiveQI" },
11067
  {   9, "qCI" },
11068
  {  10, "sNSSAI" },
11069
  { 0, NULL }
11070
};
11071
11072
static const per_choice_t TestCond_Type_choice[] = {
11073
  {   0, &hf_e2ap_gBR            , ASN1_EXTENSION_ROOT    , dissect_e2ap_T_gBR },
11074
  {   1, &hf_e2ap_aMBR           , ASN1_EXTENSION_ROOT    , dissect_e2ap_T_aMBR },
11075
  {   2, &hf_e2ap_isStat         , ASN1_EXTENSION_ROOT    , dissect_e2ap_T_isStat },
11076
  {   3, &hf_e2ap_isCatM         , ASN1_EXTENSION_ROOT    , dissect_e2ap_T_isCatM },
11077
  {   4, &hf_e2ap_rSRP           , ASN1_EXTENSION_ROOT    , dissect_e2ap_T_rSRP },
11078
  {   5, &hf_e2ap_rSRQ           , ASN1_EXTENSION_ROOT    , dissect_e2ap_T_rSRQ },
11079
  {   6, &hf_e2ap_ul_rSRP        , ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_T_ul_rSRP },
11080
  {   7, &hf_e2ap_cQI            , ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_T_cQI },
11081
  {   8, &hf_e2ap_fiveQI_01      , ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_T_fiveQI },
11082
  {   9, &hf_e2ap_qCI_01         , ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_T_qCI },
11083
  {  10, &hf_e2ap_sNSSAI         , ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_T_sNSSAI },
11084
  { 0, NULL, 0, NULL }
11085
};
11086
11087
static unsigned
11088
0
dissect_e2ap_TestCond_Type(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11089
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11090
0
                                 ett_e2ap_TestCond_Type, TestCond_Type_choice,
11091
0
                                 NULL);
11092
11093
0
  return offset;
11094
0
}
11095
11096
11097
static const value_string e2ap_TestCond_Expression_vals[] = {
11098
  {   0, "equal" },
11099
  {   1, "greaterthan" },
11100
  {   2, "lessthan" },
11101
  {   3, "contains" },
11102
  {   4, "present" },
11103
  { 0, NULL }
11104
};
11105
11106
11107
static unsigned
11108
0
dissect_e2ap_TestCond_Expression(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11109
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11110
0
                                     5, NULL, true, 0, NULL);
11111
11112
0
  return offset;
11113
0
}
11114
11115
11116
static const value_string e2ap_TestCond_Value_vals[] = {
11117
  {   0, "valueInt" },
11118
  {   1, "valueEnum" },
11119
  {   2, "valueBool" },
11120
  {   3, "valueBitS" },
11121
  {   4, "valueOctS" },
11122
  {   5, "valuePrtS" },
11123
  {   6, "valueReal" },
11124
  { 0, NULL }
11125
};
11126
11127
static const per_choice_t TestCond_Value_choice[] = {
11128
  {   0, &hf_e2ap_valueInt       , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
11129
  {   1, &hf_e2ap_valueEnum      , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
11130
  {   2, &hf_e2ap_valueBool      , ASN1_EXTENSION_ROOT    , dissect_e2ap_BOOLEAN },
11131
  {   3, &hf_e2ap_valueBitS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING },
11132
  {   4, &hf_e2ap_valueOctS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_OCTET_STRING },
11133
  {   5, &hf_e2ap_valuePrtS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_PrintableString },
11134
  {   6, &hf_e2ap_valueReal      , ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_REAL },
11135
  { 0, NULL, 0, NULL }
11136
};
11137
11138
static unsigned
11139
0
dissect_e2ap_TestCond_Value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11140
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11141
0
                                 ett_e2ap_TestCond_Value, TestCond_Value_choice,
11142
0
                                 NULL);
11143
11144
0
  return offset;
11145
0
}
11146
11147
11148
static const per_sequence_t TestCondInfo_sequence[] = {
11149
  { &hf_e2ap_testType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TestCond_Type },
11150
  { &hf_e2ap_testExpr       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_TestCond_Expression },
11151
  { &hf_e2ap_testValue      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_TestCond_Value },
11152
  { NULL, 0, 0, NULL }
11153
};
11154
11155
static unsigned
11156
0
dissect_e2ap_TestCondInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11157
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11158
0
                                   ett_e2ap_TestCondInfo, TestCondInfo_sequence);
11159
11160
0
  return offset;
11161
0
}
11162
11163
11164
static const per_sequence_t BinRangeItem_sequence[] = {
11165
  { &hf_e2ap_binIndex       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_BinIndex },
11166
  { &hf_e2ap_startValue     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_BinRangeValue },
11167
  { &hf_e2ap_endValue       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_BinRangeValue },
11168
  { NULL, 0, 0, NULL }
11169
};
11170
11171
static unsigned
11172
0
dissect_e2ap_BinRangeItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11173
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11174
0
                                   ett_e2ap_BinRangeItem, BinRangeItem_sequence);
11175
11176
0
  return offset;
11177
0
}
11178
11179
11180
static const per_sequence_t BinRangeList_sequence_of[1] = {
11181
  { &hf_e2ap_BinRangeList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_BinRangeItem },
11182
};
11183
11184
static unsigned
11185
0
dissect_e2ap_BinRangeList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11186
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11187
0
                                                  ett_e2ap_BinRangeList, BinRangeList_sequence_of,
11188
0
                                                  1, maxnoofBin, false);
11189
11190
0
  return offset;
11191
0
}
11192
11193
11194
static const per_sequence_t BinRangeDefinition_sequence[] = {
11195
  { &hf_e2ap_binRangeListX  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_BinRangeList },
11196
  { &hf_e2ap_binRangeListY  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_BinRangeList },
11197
  { &hf_e2ap_binRangeListZ  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_BinRangeList },
11198
  { NULL, 0, 0, NULL }
11199
};
11200
11201
static unsigned
11202
0
dissect_e2ap_BinRangeDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11203
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11204
0
                                   ett_e2ap_BinRangeDefinition, BinRangeDefinition_sequence);
11205
11206
0
  return offset;
11207
0
}
11208
11209
11210
static const per_sequence_t DistMeasurementBinRangeItem_sequence[] = {
11211
  { &hf_e2ap_measType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementType },
11212
  { &hf_e2ap_binRangeDef    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_BinRangeDefinition },
11213
  { NULL, 0, 0, NULL }
11214
};
11215
11216
static unsigned
11217
0
dissect_e2ap_DistMeasurementBinRangeItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11218
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11219
0
                                   ett_e2ap_DistMeasurementBinRangeItem, DistMeasurementBinRangeItem_sequence);
11220
11221
0
  return offset;
11222
0
}
11223
11224
11225
static const per_sequence_t DistMeasurementBinRangeList_sequence_of[1] = {
11226
  { &hf_e2ap_DistMeasurementBinRangeList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_DistMeasurementBinRangeItem },
11227
};
11228
11229
static unsigned
11230
0
dissect_e2ap_DistMeasurementBinRangeList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11231
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11232
0
                                                  ett_e2ap_DistMeasurementBinRangeList, DistMeasurementBinRangeList_sequence_of,
11233
0
                                                  1, maxnoofMeasurementInfo, false);
11234
11235
0
  return offset;
11236
0
}
11237
11238
11239
static const per_sequence_t LabelInfoItem_sequence[] = {
11240
  { &hf_e2ap_measLabel      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementLabel },
11241
  { NULL, 0, 0, NULL }
11242
};
11243
11244
static unsigned
11245
0
dissect_e2ap_LabelInfoItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11246
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11247
0
                                   ett_e2ap_LabelInfoItem, LabelInfoItem_sequence);
11248
11249
0
  return offset;
11250
0
}
11251
11252
11253
static const per_sequence_t LabelInfoList_sequence_of[1] = {
11254
  { &hf_e2ap_LabelInfoList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_LabelInfoItem },
11255
};
11256
11257
static unsigned
11258
0
dissect_e2ap_LabelInfoList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11259
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11260
0
                                                  ett_e2ap_LabelInfoList, LabelInfoList_sequence_of,
11261
0
                                                  1, maxnoofLabelInfo, false);
11262
11263
0
  return offset;
11264
0
}
11265
11266
11267
static const per_sequence_t MeasurementInfoItem_sequence[] = {
11268
  { &hf_e2ap_measType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementType },
11269
  { &hf_e2ap_labelInfoList  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_LabelInfoList },
11270
  { NULL, 0, 0, NULL }
11271
};
11272
11273
static unsigned
11274
0
dissect_e2ap_MeasurementInfoItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11275
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11276
0
                                   ett_e2ap_MeasurementInfoItem, MeasurementInfoItem_sequence);
11277
11278
0
  return offset;
11279
0
}
11280
11281
11282
static const per_sequence_t MeasurementInfoList_sequence_of[1] = {
11283
  { &hf_e2ap_MeasurementInfoList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementInfoItem },
11284
};
11285
11286
static unsigned
11287
0
dissect_e2ap_MeasurementInfoList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11288
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11289
0
                                                  ett_e2ap_MeasurementInfoList, MeasurementInfoList_sequence_of,
11290
0
                                                  1, maxnoofMeasurementInfo, false);
11291
11292
0
  return offset;
11293
0
}
11294
11295
11296
11297
static unsigned
11298
0
dissect_e2ap_INTEGER_0_4294967295(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11299
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11300
0
                                                            0U, 4294967295U, NULL, false);
11301
11302
0
  return offset;
11303
0
}
11304
11305
11306
11307
static unsigned
11308
0
dissect_e2ap_NULL(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11309
0
  offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
11310
11311
0
  return offset;
11312
0
}
11313
11314
11315
static const value_string e2ap_MeasurementRecordItem_vals[] = {
11316
  {   0, "integer" },
11317
  {   1, "real" },
11318
  {   2, "noValue" },
11319
  { 0, NULL }
11320
};
11321
11322
static const per_choice_t MeasurementRecordItem_choice[] = {
11323
  {   0, &hf_e2ap_integer        , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER_0_4294967295 },
11324
  {   1, &hf_e2ap_real           , ASN1_EXTENSION_ROOT    , dissect_e2ap_REAL },
11325
  {   2, &hf_e2ap_noValue        , ASN1_EXTENSION_ROOT    , dissect_e2ap_NULL },
11326
  { 0, NULL, 0, NULL }
11327
};
11328
11329
static unsigned
11330
0
dissect_e2ap_MeasurementRecordItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11331
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11332
0
                                 ett_e2ap_MeasurementRecordItem, MeasurementRecordItem_choice,
11333
0
                                 NULL);
11334
11335
0
  return offset;
11336
0
}
11337
11338
11339
static const per_sequence_t MeasurementRecord_sequence_of[1] = {
11340
  { &hf_e2ap_MeasurementRecord_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementRecordItem },
11341
};
11342
11343
static unsigned
11344
0
dissect_e2ap_MeasurementRecord(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11345
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11346
0
                                                  ett_e2ap_MeasurementRecord, MeasurementRecord_sequence_of,
11347
0
                                                  1, maxnoofMeasurementValue, false);
11348
11349
0
  return offset;
11350
0
}
11351
11352
11353
static const value_string e2ap_T_incompleteFlag_vals[] = {
11354
  {   0, "true" },
11355
  { 0, NULL }
11356
};
11357
11358
11359
static unsigned
11360
0
dissect_e2ap_T_incompleteFlag(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11361
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11362
0
                                     1, NULL, true, 0, NULL);
11363
11364
0
  return offset;
11365
0
}
11366
11367
11368
static const per_sequence_t MeasurementDataItem_sequence[] = {
11369
  { &hf_e2ap_measRecord     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementRecord },
11370
  { &hf_e2ap_incompleteFlag , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_T_incompleteFlag },
11371
  { NULL, 0, 0, NULL }
11372
};
11373
11374
static unsigned
11375
0
dissect_e2ap_MeasurementDataItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11376
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11377
0
                                   ett_e2ap_MeasurementDataItem, MeasurementDataItem_sequence);
11378
11379
0
  return offset;
11380
0
}
11381
11382
11383
static const per_sequence_t MeasurementData_sequence_of[1] = {
11384
  { &hf_e2ap_MeasurementData_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementDataItem },
11385
};
11386
11387
static unsigned
11388
0
dissect_e2ap_MeasurementData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11389
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11390
0
                                                  ett_e2ap_MeasurementData, MeasurementData_sequence_of,
11391
0
                                                  1, maxnoofMeasurementRecord, false);
11392
11393
0
  return offset;
11394
0
}
11395
11396
11397
static const per_sequence_t MeasurementInfo_Action_Item_sequence[] = {
11398
  { &hf_e2ap_measName       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementTypeName },
11399
  { &hf_e2ap_measID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_MeasurementTypeID },
11400
  { &hf_e2ap_binRangeDef    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_BinRangeDefinition },
11401
  { NULL, 0, 0, NULL }
11402
};
11403
11404
static unsigned
11405
0
dissect_e2ap_MeasurementInfo_Action_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11406
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11407
0
                                   ett_e2ap_MeasurementInfo_Action_Item, MeasurementInfo_Action_Item_sequence);
11408
11409
0
  return offset;
11410
0
}
11411
11412
11413
static const per_sequence_t MeasurementInfo_Action_List_sequence_of[1] = {
11414
  { &hf_e2ap_MeasurementInfo_Action_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementInfo_Action_Item },
11415
};
11416
11417
static unsigned
11418
0
dissect_e2ap_MeasurementInfo_Action_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11419
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11420
0
                                                  ett_e2ap_MeasurementInfo_Action_List, MeasurementInfo_Action_List_sequence_of,
11421
0
                                                  1, maxnoofMeasurementInfo, false);
11422
11423
0
  return offset;
11424
0
}
11425
11426
11427
static const value_string e2ap_MatchingCondItem_Choice_vals[] = {
11428
  {   0, "measLabel" },
11429
  {   1, "testCondInfo" },
11430
  { 0, NULL }
11431
};
11432
11433
static const per_choice_t MatchingCondItem_Choice_choice[] = {
11434
  {   0, &hf_e2ap_measLabel      , ASN1_EXTENSION_ROOT    , dissect_e2ap_MeasurementLabel },
11435
  {   1, &hf_e2ap_testCondInfo   , ASN1_EXTENSION_ROOT    , dissect_e2ap_TestCondInfo },
11436
  { 0, NULL, 0, NULL }
11437
};
11438
11439
static unsigned
11440
0
dissect_e2ap_MatchingCondItem_Choice(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11441
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11442
0
                                 ett_e2ap_MatchingCondItem_Choice, MatchingCondItem_Choice_choice,
11443
0
                                 NULL);
11444
11445
0
  return offset;
11446
0
}
11447
11448
11449
static const per_sequence_t MatchingCondItem_sequence[] = {
11450
  { &hf_e2ap_matchingCondChoice, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingCondItem_Choice },
11451
  { &hf_e2ap_logicalOR      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
11452
  { NULL, 0, 0, NULL }
11453
};
11454
11455
static unsigned
11456
0
dissect_e2ap_MatchingCondItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11457
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11458
0
                                   ett_e2ap_MatchingCondItem, MatchingCondItem_sequence);
11459
11460
0
  return offset;
11461
0
}
11462
11463
11464
static const per_sequence_t MatchingCondList_sequence_of[1] = {
11465
  { &hf_e2ap_MatchingCondList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingCondItem },
11466
};
11467
11468
static unsigned
11469
0
dissect_e2ap_MatchingCondList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11470
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11471
0
                                                  ett_e2ap_MatchingCondList, MatchingCondList_sequence_of,
11472
0
                                                  1, maxnoofConditionInfo, false);
11473
11474
0
  return offset;
11475
0
}
11476
11477
11478
static const per_sequence_t MeasurementCondItem_sequence[] = {
11479
  { &hf_e2ap_measType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementType },
11480
  { &hf_e2ap_matchingCond   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingCondList },
11481
  { &hf_e2ap_binRangeDef    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_BinRangeDefinition },
11482
  { NULL, 0, 0, NULL }
11483
};
11484
11485
static unsigned
11486
0
dissect_e2ap_MeasurementCondItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11487
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11488
0
                                   ett_e2ap_MeasurementCondItem, MeasurementCondItem_sequence);
11489
11490
0
  return offset;
11491
0
}
11492
11493
11494
static const per_sequence_t MeasurementCondList_sequence_of[1] = {
11495
  { &hf_e2ap_MeasurementCondList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementCondItem },
11496
};
11497
11498
static unsigned
11499
0
dissect_e2ap_MeasurementCondList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11500
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11501
0
                                                  ett_e2ap_MeasurementCondList, MeasurementCondList_sequence_of,
11502
0
                                                  1, maxnoofMeasurementInfo, false);
11503
11504
0
  return offset;
11505
0
}
11506
11507
11508
static const per_sequence_t MatchingUEidItem_sequence[] = {
11509
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
11510
  { NULL, 0, 0, NULL }
11511
};
11512
11513
static unsigned
11514
0
dissect_e2ap_MatchingUEidItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11515
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11516
0
                                   ett_e2ap_MatchingUEidItem, MatchingUEidItem_sequence);
11517
11518
0
  return offset;
11519
0
}
11520
11521
11522
static const per_sequence_t MatchingUEidList_sequence_of[1] = {
11523
  { &hf_e2ap_MatchingUEidList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingUEidItem },
11524
};
11525
11526
static unsigned
11527
0
dissect_e2ap_MatchingUEidList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11528
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11529
0
                                                  ett_e2ap_MatchingUEidList, MatchingUEidList_sequence_of,
11530
0
                                                  1, maxnoofUEID, false);
11531
11532
0
  return offset;
11533
0
}
11534
11535
11536
static const value_string e2ap_T_noUEmatched_vals[] = {
11537
  {   0, "true" },
11538
  { 0, NULL }
11539
};
11540
11541
11542
static unsigned
11543
0
dissect_e2ap_T_noUEmatched(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11544
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11545
0
                                     1, NULL, true, 0, NULL);
11546
11547
0
  return offset;
11548
0
}
11549
11550
11551
static const per_sequence_t MatchingUEidItem_PerGP_sequence[] = {
11552
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
11553
  { NULL, 0, 0, NULL }
11554
};
11555
11556
static unsigned
11557
0
dissect_e2ap_MatchingUEidItem_PerGP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11558
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11559
0
                                   ett_e2ap_MatchingUEidItem_PerGP, MatchingUEidItem_PerGP_sequence);
11560
11561
0
  return offset;
11562
0
}
11563
11564
11565
static const per_sequence_t MatchingUEidList_PerGP_sequence_of[1] = {
11566
  { &hf_e2ap_MatchingUEidList_PerGP_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingUEidItem_PerGP },
11567
};
11568
11569
static unsigned
11570
0
dissect_e2ap_MatchingUEidList_PerGP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11571
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11572
0
                                                  ett_e2ap_MatchingUEidList_PerGP, MatchingUEidList_PerGP_sequence_of,
11573
0
                                                  1, maxnoofUEID, false);
11574
11575
0
  return offset;
11576
0
}
11577
11578
11579
static const value_string e2ap_T_matchedPerGP_vals[] = {
11580
  {   0, "noUEmatched" },
11581
  {   1, "oneOrMoreUEmatched" },
11582
  { 0, NULL }
11583
};
11584
11585
static const per_choice_t T_matchedPerGP_choice[] = {
11586
  {   0, &hf_e2ap_noUEmatched    , ASN1_EXTENSION_ROOT    , dissect_e2ap_T_noUEmatched },
11587
  {   1, &hf_e2ap_oneOrMoreUEmatched, ASN1_EXTENSION_ROOT    , dissect_e2ap_MatchingUEidList_PerGP },
11588
  { 0, NULL, 0, NULL }
11589
};
11590
11591
static unsigned
11592
0
dissect_e2ap_T_matchedPerGP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11593
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11594
0
                                 ett_e2ap_T_matchedPerGP, T_matchedPerGP_choice,
11595
0
                                 NULL);
11596
11597
0
  return offset;
11598
0
}
11599
11600
11601
static const per_sequence_t MatchingUEidPerGP_Item_sequence[] = {
11602
  { &hf_e2ap_matchedPerGP   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_matchedPerGP },
11603
  { NULL, 0, 0, NULL }
11604
};
11605
11606
static unsigned
11607
0
dissect_e2ap_MatchingUEidPerGP_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11608
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11609
0
                                   ett_e2ap_MatchingUEidPerGP_Item, MatchingUEidPerGP_Item_sequence);
11610
11611
0
  return offset;
11612
0
}
11613
11614
11615
static const per_sequence_t MatchingUEidPerGP_sequence_of[1] = {
11616
  { &hf_e2ap_MatchingUEidPerGP_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingUEidPerGP_Item },
11617
};
11618
11619
static unsigned
11620
0
dissect_e2ap_MatchingUEidPerGP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11621
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11622
0
                                                  ett_e2ap_MatchingUEidPerGP, MatchingUEidPerGP_sequence_of,
11623
0
                                                  1, maxnoofMeasurementRecord, false);
11624
11625
0
  return offset;
11626
0
}
11627
11628
11629
static const per_sequence_t MeasurementCondUEidItem_sequence[] = {
11630
  { &hf_e2ap_measType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementType },
11631
  { &hf_e2ap_matchingCond   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingCondList },
11632
  { &hf_e2ap_matchingUEidList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_MatchingUEidList },
11633
  { &hf_e2ap_matchingUEidPerGP, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_MatchingUEidPerGP },
11634
  { NULL, 0, 0, NULL }
11635
};
11636
11637
static unsigned
11638
0
dissect_e2ap_MeasurementCondUEidItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11639
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11640
0
                                   ett_e2ap_MeasurementCondUEidItem, MeasurementCondUEidItem_sequence);
11641
11642
0
  return offset;
11643
0
}
11644
11645
11646
static const per_sequence_t MeasurementCondUEidList_sequence_of[1] = {
11647
  { &hf_e2ap_MeasurementCondUEidList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementCondUEidItem },
11648
};
11649
11650
static unsigned
11651
0
dissect_e2ap_MeasurementCondUEidList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11652
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11653
0
                                                  ett_e2ap_MeasurementCondUEidList, MeasurementCondUEidList_sequence_of,
11654
0
                                                  1, maxnoofMeasurementInfo, false);
11655
11656
0
  return offset;
11657
0
}
11658
11659
11660
static const per_sequence_t MatchingUeCondPerSubItem_sequence[] = {
11661
  { &hf_e2ap_testCondInfo   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TestCondInfo },
11662
  { &hf_e2ap_logicalOR      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_LogicalOR },
11663
  { NULL, 0, 0, NULL }
11664
};
11665
11666
static unsigned
11667
0
dissect_e2ap_MatchingUeCondPerSubItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11668
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11669
0
                                   ett_e2ap_MatchingUeCondPerSubItem, MatchingUeCondPerSubItem_sequence);
11670
11671
0
  return offset;
11672
0
}
11673
11674
11675
static const per_sequence_t MatchingUeCondPerSubList_sequence_of[1] = {
11676
  { &hf_e2ap_MatchingUeCondPerSubList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingUeCondPerSubItem },
11677
};
11678
11679
static unsigned
11680
0
dissect_e2ap_MatchingUeCondPerSubList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11681
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11682
0
                                                  ett_e2ap_MatchingUeCondPerSubList, MatchingUeCondPerSubList_sequence_of,
11683
0
                                                  1, maxnoofConditionInfoPerSub, false);
11684
11685
0
  return offset;
11686
0
}
11687
11688
11689
static const per_sequence_t MatchingUEidPerSubItem_sequence[] = {
11690
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
11691
  { NULL, 0, 0, NULL }
11692
};
11693
11694
static unsigned
11695
0
dissect_e2ap_MatchingUEidPerSubItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11696
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11697
0
                                   ett_e2ap_MatchingUEidPerSubItem, MatchingUEidPerSubItem_sequence);
11698
11699
0
  return offset;
11700
0
}
11701
11702
11703
static const per_sequence_t MatchingUEidPerSubList_sequence_of[1] = {
11704
  { &hf_e2ap_MatchingUEidPerSubList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingUEidPerSubItem },
11705
};
11706
11707
static unsigned
11708
0
dissect_e2ap_MatchingUEidPerSubList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11709
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11710
0
                                                  ett_e2ap_MatchingUEidPerSubList, MatchingUEidPerSubList_sequence_of,
11711
0
                                                  2, maxnoofUEIDPerSub, false);
11712
11713
0
  return offset;
11714
0
}
11715
11716
11717
static const per_sequence_t E2SM_KPM_IndicationMessage_Format1_sequence[] = {
11718
  { &hf_e2ap_measData       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementData },
11719
  { &hf_e2ap_measInfoList   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_MeasurementInfoList },
11720
  { &hf_e2ap_granulPeriod   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GranularityPeriod },
11721
  { NULL, 0, 0, NULL }
11722
};
11723
11724
static unsigned
11725
0
dissect_e2ap_E2SM_KPM_IndicationMessage_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11726
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11727
0
                                   ett_e2ap_E2SM_KPM_IndicationMessage_Format1, E2SM_KPM_IndicationMessage_Format1_sequence);
11728
11729
0
  return offset;
11730
0
}
11731
11732
11733
static const per_sequence_t UEMeasurementReportItem_sequence[] = {
11734
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
11735
  { &hf_e2ap_measReport     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_KPM_IndicationMessage_Format1 },
11736
  { NULL, 0, 0, NULL }
11737
};
11738
11739
static unsigned
11740
0
dissect_e2ap_UEMeasurementReportItem(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11741
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11742
0
                                   ett_e2ap_UEMeasurementReportItem, UEMeasurementReportItem_sequence);
11743
11744
0
  return offset;
11745
0
}
11746
11747
11748
static const per_sequence_t UEMeasurementReportList_sequence_of[1] = {
11749
  { &hf_e2ap_UEMeasurementReportList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_UEMeasurementReportItem },
11750
};
11751
11752
static unsigned
11753
0
dissect_e2ap_UEMeasurementReportList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11754
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11755
0
                                                  ett_e2ap_UEMeasurementReportList, UEMeasurementReportList_sequence_of,
11756
0
                                                  1, maxnoofUEMeasReport, false);
11757
11758
0
  return offset;
11759
0
}
11760
11761
11762
11763
static unsigned
11764
0
dissect_e2ap_INTEGER_1_4294967295(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11765
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11766
0
                                                            1U, 4294967295U, NULL, false);
11767
11768
0
  return offset;
11769
0
}
11770
11771
11772
static const per_sequence_t E2SM_KPM_EventTriggerDefinition_Format1_sequence[] = {
11773
  { &hf_e2ap_reportingPeriod, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_INTEGER_1_4294967295 },
11774
  { NULL, 0, 0, NULL }
11775
};
11776
11777
static unsigned
11778
0
dissect_e2ap_E2SM_KPM_EventTriggerDefinition_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11779
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11780
0
                                   ett_e2ap_E2SM_KPM_EventTriggerDefinition_Format1, E2SM_KPM_EventTriggerDefinition_Format1_sequence);
11781
11782
0
  return offset;
11783
0
}
11784
11785
11786
static const value_string e2ap_T_eventDefinition_formats_vals[] = {
11787
  {   0, "eventDefinition-Format1" },
11788
  { 0, NULL }
11789
};
11790
11791
static const per_choice_t T_eventDefinition_formats_choice[] = {
11792
  {   0, &hf_e2ap_eventDefinition_Format1, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_KPM_EventTriggerDefinition_Format1 },
11793
  { 0, NULL, 0, NULL }
11794
};
11795
11796
static unsigned
11797
0
dissect_e2ap_T_eventDefinition_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11798
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11799
0
                                 ett_e2ap_T_eventDefinition_formats, T_eventDefinition_formats_choice,
11800
0
                                 NULL);
11801
11802
0
  return offset;
11803
0
}
11804
11805
11806
static const per_sequence_t E2SM_KPM_EventTriggerDefinition_sequence[] = {
11807
  { &hf_e2ap_eventDefinition_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_eventDefinition_formats },
11808
  { NULL, 0, 0, NULL }
11809
};
11810
11811
static unsigned
11812
0
dissect_e2ap_E2SM_KPM_EventTriggerDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11813
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11814
0
                                   ett_e2ap_E2SM_KPM_EventTriggerDefinition, E2SM_KPM_EventTriggerDefinition_sequence);
11815
11816
0
  return offset;
11817
0
}
11818
11819
11820
static const per_sequence_t E2SM_KPM_ActionDefinition_Format1_sequence[] = {
11821
  { &hf_e2ap_measInfoList   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementInfoList },
11822
  { &hf_e2ap_granulPeriod   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GranularityPeriod },
11823
  { &hf_e2ap_cellGlobalID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_CGI },
11824
  { &hf_e2ap_distMeasBinRangeInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_e2ap_DistMeasurementBinRangeList },
11825
  { NULL, 0, 0, NULL }
11826
};
11827
11828
static unsigned
11829
0
dissect_e2ap_E2SM_KPM_ActionDefinition_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11830
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11831
0
                                   ett_e2ap_E2SM_KPM_ActionDefinition_Format1, E2SM_KPM_ActionDefinition_Format1_sequence);
11832
11833
0
  return offset;
11834
0
}
11835
11836
11837
static const per_sequence_t E2SM_KPM_ActionDefinition_Format2_sequence[] = {
11838
  { &hf_e2ap_ueID           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEID },
11839
  { &hf_e2ap_subscriptInfo  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_KPM_ActionDefinition_Format1 },
11840
  { NULL, 0, 0, NULL }
11841
};
11842
11843
static unsigned
11844
0
dissect_e2ap_E2SM_KPM_ActionDefinition_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11845
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11846
0
                                   ett_e2ap_E2SM_KPM_ActionDefinition_Format2, E2SM_KPM_ActionDefinition_Format2_sequence);
11847
11848
0
  return offset;
11849
0
}
11850
11851
11852
static const per_sequence_t E2SM_KPM_ActionDefinition_Format3_sequence[] = {
11853
  { &hf_e2ap_measCondList   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementCondList },
11854
  { &hf_e2ap_granulPeriod   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_GranularityPeriod },
11855
  { &hf_e2ap_cellGlobalID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_CGI },
11856
  { NULL, 0, 0, NULL }
11857
};
11858
11859
static unsigned
11860
0
dissect_e2ap_E2SM_KPM_ActionDefinition_Format3(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11861
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11862
0
                                   ett_e2ap_E2SM_KPM_ActionDefinition_Format3, E2SM_KPM_ActionDefinition_Format3_sequence);
11863
11864
0
  return offset;
11865
0
}
11866
11867
11868
static const per_sequence_t E2SM_KPM_ActionDefinition_Format4_sequence[] = {
11869
  { &hf_e2ap_matchingUeCondList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingUeCondPerSubList },
11870
  { &hf_e2ap_subscriptionInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_KPM_ActionDefinition_Format1 },
11871
  { NULL, 0, 0, NULL }
11872
};
11873
11874
static unsigned
11875
0
dissect_e2ap_E2SM_KPM_ActionDefinition_Format4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11876
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11877
0
                                   ett_e2ap_E2SM_KPM_ActionDefinition_Format4, E2SM_KPM_ActionDefinition_Format4_sequence);
11878
11879
0
  return offset;
11880
0
}
11881
11882
11883
static const per_sequence_t E2SM_KPM_ActionDefinition_Format5_sequence[] = {
11884
  { &hf_e2ap_matchingUEidList_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MatchingUEidPerSubList },
11885
  { &hf_e2ap_subscriptionInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_KPM_ActionDefinition_Format1 },
11886
  { NULL, 0, 0, NULL }
11887
};
11888
11889
static unsigned
11890
0
dissect_e2ap_E2SM_KPM_ActionDefinition_Format5(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11891
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11892
0
                                   ett_e2ap_E2SM_KPM_ActionDefinition_Format5, E2SM_KPM_ActionDefinition_Format5_sequence);
11893
11894
0
  return offset;
11895
0
}
11896
11897
11898
static const value_string e2ap_T_actionDefinition_formats_vals[] = {
11899
  {   0, "actionDefinition-Format1" },
11900
  {   1, "actionDefinition-Format2" },
11901
  {   2, "actionDefinition-Format3" },
11902
  {   3, "actionDefinition-Format4" },
11903
  {   4, "actionDefinition-Format5" },
11904
  { 0, NULL }
11905
};
11906
11907
static const per_choice_t T_actionDefinition_formats_choice[] = {
11908
  {   0, &hf_e2ap_actionDefinition_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_KPM_ActionDefinition_Format1 },
11909
  {   1, &hf_e2ap_actionDefinition_Format2_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_KPM_ActionDefinition_Format2 },
11910
  {   2, &hf_e2ap_actionDefinition_Format3_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_KPM_ActionDefinition_Format3 },
11911
  {   3, &hf_e2ap_actionDefinition_Format4_01, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_KPM_ActionDefinition_Format4 },
11912
  {   4, &hf_e2ap_actionDefinition_Format5, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_KPM_ActionDefinition_Format5 },
11913
  { 0, NULL, 0, NULL }
11914
};
11915
11916
static unsigned
11917
0
dissect_e2ap_T_actionDefinition_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11918
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11919
0
                                 ett_e2ap_T_actionDefinition_formats, T_actionDefinition_formats_choice,
11920
0
                                 NULL);
11921
11922
0
  return offset;
11923
0
}
11924
11925
11926
static const per_sequence_t E2SM_KPM_ActionDefinition_sequence[] = {
11927
  { &hf_e2ap_ric_Style_Type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
11928
  { &hf_e2ap_actionDefinition_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_actionDefinition_formats },
11929
  { NULL, 0, 0, NULL }
11930
};
11931
11932
static unsigned
11933
0
dissect_e2ap_E2SM_KPM_ActionDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11934
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11935
0
                                   ett_e2ap_E2SM_KPM_ActionDefinition, E2SM_KPM_ActionDefinition_sequence);
11936
11937
0
  return offset;
11938
0
}
11939
11940
11941
11942
static unsigned
11943
0
dissect_e2ap_T_colletStartTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11944
0
  int ts_offset = offset;
11945
0
    offset = dissect_e2ap_TimeStamp(tvb, offset, actx, tree, hf_index);
11946
11947
  /* Add as a generated field the timestamp decoded */
11948
0
  const char *time_str = tvb_ntp_fmt_ts_sec(actx->pinfo->pool, tvb, (ts_offset+7)/8);
11949
0
  proto_item *ti = proto_tree_add_string(tree, hf_e2ap_timestamp_string, tvb, (ts_offset+7)/8, 4, time_str);
11950
0
  proto_item_set_generated(ti);
11951
11952
11953
11954
11955
0
  return offset;
11956
0
}
11957
11958
11959
11960
static unsigned
11961
0
dissect_e2ap_PrintableString_SIZE_0_15_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11962
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
11963
0
                                          0, 15, true,
11964
0
                                          NULL);
11965
11966
0
  return offset;
11967
0
}
11968
11969
11970
11971
static unsigned
11972
0
dissect_e2ap_PrintableString_SIZE_0_400_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11973
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
11974
0
                                          0, 400, true,
11975
0
                                          NULL);
11976
11977
0
  return offset;
11978
0
}
11979
11980
11981
11982
static unsigned
11983
0
dissect_e2ap_PrintableString_SIZE_0_8_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11984
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
11985
0
                                          0, 8, true,
11986
0
                                          NULL);
11987
11988
0
  return offset;
11989
0
}
11990
11991
11992
11993
static unsigned
11994
0
dissect_e2ap_PrintableString_SIZE_0_32_(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11995
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
11996
0
                                          0, 32, true,
11997
0
                                          NULL);
11998
11999
0
  return offset;
12000
0
}
12001
12002
12003
static const per_sequence_t E2SM_KPM_IndicationHeader_Format1_sequence[] = {
12004
  { &hf_e2ap_colletStartTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_colletStartTime },
12005
  { &hf_e2ap_fileFormatversion, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_PrintableString_SIZE_0_15_ },
12006
  { &hf_e2ap_senderName     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_PrintableString_SIZE_0_400_ },
12007
  { &hf_e2ap_senderType     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_PrintableString_SIZE_0_8_ },
12008
  { &hf_e2ap_vendorName     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_PrintableString_SIZE_0_32_ },
12009
  { NULL, 0, 0, NULL }
12010
};
12011
12012
static unsigned
12013
0
dissect_e2ap_E2SM_KPM_IndicationHeader_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12014
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12015
0
                                   ett_e2ap_E2SM_KPM_IndicationHeader_Format1, E2SM_KPM_IndicationHeader_Format1_sequence);
12016
12017
0
  return offset;
12018
0
}
12019
12020
12021
static const value_string e2ap_T_indicationHeader_formats_vals[] = {
12022
  {   0, "indicationHeader-Format1" },
12023
  { 0, NULL }
12024
};
12025
12026
static const per_choice_t T_indicationHeader_formats_choice[] = {
12027
  {   0, &hf_e2ap_indicationHeader_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_KPM_IndicationHeader_Format1 },
12028
  { 0, NULL, 0, NULL }
12029
};
12030
12031
static unsigned
12032
0
dissect_e2ap_T_indicationHeader_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12033
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12034
0
                                 ett_e2ap_T_indicationHeader_formats, T_indicationHeader_formats_choice,
12035
0
                                 NULL);
12036
12037
0
  return offset;
12038
0
}
12039
12040
12041
static const per_sequence_t E2SM_KPM_IndicationHeader_sequence[] = {
12042
  { &hf_e2ap_indicationHeader_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_indicationHeader_formats },
12043
  { NULL, 0, 0, NULL }
12044
};
12045
12046
static unsigned
12047
0
dissect_e2ap_E2SM_KPM_IndicationHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12048
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12049
0
                                   ett_e2ap_E2SM_KPM_IndicationHeader, E2SM_KPM_IndicationHeader_sequence);
12050
12051
0
  return offset;
12052
0
}
12053
12054
12055
static const per_sequence_t E2SM_KPM_IndicationMessage_Format2_sequence[] = {
12056
  { &hf_e2ap_measData       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementData },
12057
  { &hf_e2ap_measCondUEidList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementCondUEidList },
12058
  { &hf_e2ap_granulPeriod   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_GranularityPeriod },
12059
  { NULL, 0, 0, NULL }
12060
};
12061
12062
static unsigned
12063
0
dissect_e2ap_E2SM_KPM_IndicationMessage_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12064
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12065
0
                                   ett_e2ap_E2SM_KPM_IndicationMessage_Format2, E2SM_KPM_IndicationMessage_Format2_sequence);
12066
12067
0
  return offset;
12068
0
}
12069
12070
12071
static const per_sequence_t E2SM_KPM_IndicationMessage_Format3_sequence[] = {
12072
  { &hf_e2ap_ueMeasReportList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_UEMeasurementReportList },
12073
  { NULL, 0, 0, NULL }
12074
};
12075
12076
static unsigned
12077
0
dissect_e2ap_E2SM_KPM_IndicationMessage_Format3(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12078
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12079
0
                                   ett_e2ap_E2SM_KPM_IndicationMessage_Format3, E2SM_KPM_IndicationMessage_Format3_sequence);
12080
12081
0
  return offset;
12082
0
}
12083
12084
12085
static const value_string e2ap_T_indicationMessage_formats_vals[] = {
12086
  {   0, "indicationMessage-Format1" },
12087
  {   1, "indicationMessage-Format2" },
12088
  {   2, "indicationMessage-Format3" },
12089
  { 0, NULL }
12090
};
12091
12092
static const per_choice_t T_indicationMessage_formats_choice[] = {
12093
  {   0, &hf_e2ap_indicationMessage_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_KPM_IndicationMessage_Format1 },
12094
  {   1, &hf_e2ap_indicationMessage_Format2_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_KPM_IndicationMessage_Format2 },
12095
  {   2, &hf_e2ap_indicationMessage_Format3_01, ASN1_NOT_EXTENSION_ROOT, dissect_e2ap_E2SM_KPM_IndicationMessage_Format3 },
12096
  { 0, NULL, 0, NULL }
12097
};
12098
12099
static unsigned
12100
0
dissect_e2ap_T_indicationMessage_formats(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12101
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12102
0
                                 ett_e2ap_T_indicationMessage_formats, T_indicationMessage_formats_choice,
12103
0
                                 NULL);
12104
12105
0
  return offset;
12106
0
}
12107
12108
12109
static const per_sequence_t E2SM_KPM_IndicationMessage_sequence[] = {
12110
  { &hf_e2ap_indicationMessage_formats, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_T_indicationMessage_formats },
12111
  { NULL, 0, 0, NULL }
12112
};
12113
12114
static unsigned
12115
0
dissect_e2ap_E2SM_KPM_IndicationMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12116
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12117
0
                                   ett_e2ap_E2SM_KPM_IndicationMessage, E2SM_KPM_IndicationMessage_sequence);
12118
12119
0
  return offset;
12120
0
}
12121
12122
12123
static const per_sequence_t RIC_EventTriggerStyle_Item_sequence[] = {
12124
  { &hf_e2ap_ric_EventTriggerStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
12125
  { &hf_e2ap_ric_EventTriggerStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
12126
  { &hf_e2ap_ric_EventTriggerFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
12127
  { NULL, 0, 0, NULL }
12128
};
12129
12130
static unsigned
12131
0
dissect_e2ap_RIC_EventTriggerStyle_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12132
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12133
0
                                   ett_e2ap_RIC_EventTriggerStyle_Item, RIC_EventTriggerStyle_Item_sequence);
12134
12135
0
  return offset;
12136
0
}
12137
12138
12139
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item_sequence_of[1] = {
12140
  { &hf_e2ap_ric_EventTriggerStyle_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTriggerStyle_Item },
12141
};
12142
12143
static unsigned
12144
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12145
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12146
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item_sequence_of,
12147
0
                                                  1, maxnoofRICStyles, false);
12148
12149
0
  return offset;
12150
0
}
12151
12152
12153
static const per_sequence_t RIC_ReportStyle_Item_sequence[] = {
12154
  { &hf_e2ap_ric_ReportStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
12155
  { &hf_e2ap_ric_ReportStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
12156
  { &hf_e2ap_ric_ActionFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
12157
  { &hf_e2ap_measInfo_Action_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_MeasurementInfo_Action_List },
12158
  { &hf_e2ap_ric_IndicationHeaderFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
12159
  { &hf_e2ap_ric_IndicationMessageFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
12160
  { NULL, 0, 0, NULL }
12161
};
12162
12163
static unsigned
12164
0
dissect_e2ap_RIC_ReportStyle_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12165
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12166
0
                                   ett_e2ap_RIC_ReportStyle_Item, RIC_ReportStyle_Item_sequence);
12167
12168
0
  return offset;
12169
0
}
12170
12171
12172
static const per_sequence_t SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item_sequence_of[1] = {
12173
  { &hf_e2ap_ric_ReportStyle_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ReportStyle_Item },
12174
};
12175
12176
static unsigned
12177
0
dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12178
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12179
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item, SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item_sequence_of,
12180
0
                                                  1, maxnoofRICStyles, false);
12181
12182
0
  return offset;
12183
0
}
12184
12185
12186
static const per_sequence_t E2SM_KPM_RANfunction_Description_sequence[] = {
12187
  { &hf_e2ap_ranFunction_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunction_Name },
12188
  { &hf_e2ap_ric_EventTriggerStyle_List_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item },
12189
  { &hf_e2ap_ric_ReportStyle_List_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item },
12190
  { NULL, 0, 0, NULL }
12191
};
12192
12193
static unsigned
12194
0
dissect_e2ap_E2SM_KPM_RANfunction_Description(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12195
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12196
0
                                   ett_e2ap_E2SM_KPM_RANfunction_Description, E2SM_KPM_RANfunction_Description_sequence);
12197
12198
0
  return offset;
12199
0
}
12200
12201
12202
static const value_string e2ap_NI_Type_vals[] = {
12203
  {   0, "s1" },
12204
  {   1, "x2" },
12205
  {   2, "ng" },
12206
  {   3, "xn" },
12207
  {   4, "f1" },
12208
  {   5, "e1" },
12209
  { 0, NULL }
12210
};
12211
12212
12213
static unsigned
12214
0
dissect_e2ap_NI_Type(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12215
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12216
0
                                     6, NULL, true, 0, NULL);
12217
12218
0
  return offset;
12219
0
}
12220
12221
12222
12223
static unsigned
12224
0
dissect_e2ap_Global_eNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12225
0
  offset = dissect_e2ap_GlobalENB_ID(tvb, offset, actx, tree, hf_index);
12226
12227
0
  return offset;
12228
0
}
12229
12230
12231
12232
static unsigned
12233
0
dissect_e2ap_Global_en_gNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12234
0
  offset = dissect_e2ap_GlobalenGNB_ID(tvb, offset, actx, tree, hf_index);
12235
12236
0
  return offset;
12237
0
}
12238
12239
12240
12241
static unsigned
12242
0
dissect_e2ap_Global_ng_RAN_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12243
0
  offset = dissect_e2ap_GlobalNG_RANNode_ID(tvb, offset, actx, tree, hf_index);
12244
12245
0
  return offset;
12246
0
}
12247
12248
12249
static const per_sequence_t Global_gNB_DU_ID_sequence[] = {
12250
  { &hf_e2ap_global_ng_RAN_ID, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_Global_ng_RAN_ID },
12251
  { &hf_e2ap_gNB_DU_ID      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_DU_ID },
12252
  { NULL, 0, 0, NULL }
12253
};
12254
12255
static unsigned
12256
0
dissect_e2ap_Global_gNB_DU_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12257
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12258
0
                                   ett_e2ap_Global_gNB_DU_ID, Global_gNB_DU_ID_sequence);
12259
12260
0
  return offset;
12261
0
}
12262
12263
12264
static const per_sequence_t Global_gNB_CU_UP_ID_sequence[] = {
12265
  { &hf_e2ap_global_ng_RAN_ID, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_Global_ng_RAN_ID },
12266
  { &hf_e2ap_gNB_CU_UP_ID   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_GNB_CU_UP_ID },
12267
  { NULL, 0, 0, NULL }
12268
};
12269
12270
static unsigned
12271
0
dissect_e2ap_Global_gNB_CU_UP_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12272
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12273
0
                                   ett_e2ap_Global_gNB_CU_UP_ID, Global_gNB_CU_UP_ID_sequence);
12274
12275
0
  return offset;
12276
0
}
12277
12278
12279
static const value_string e2ap_NI_Identifier_vals[] = {
12280
  {   0, "global-eNB-ID" },
12281
  {   1, "global-en-gNB-ID" },
12282
  {   2, "global-ng-RAN-ID" },
12283
  {   3, "global-gNB-DU-ID" },
12284
  {   4, "global-gNB-CU-UP-ID" },
12285
  { 0, NULL }
12286
};
12287
12288
static const per_choice_t NI_Identifier_choice[] = {
12289
  {   0, &hf_e2ap_global_eNB_ID_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_Global_eNB_ID },
12290
  {   1, &hf_e2ap_global_en_gNB_ID_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_Global_en_gNB_ID },
12291
  {   2, &hf_e2ap_global_ng_RAN_ID, ASN1_EXTENSION_ROOT    , dissect_e2ap_Global_ng_RAN_ID },
12292
  {   3, &hf_e2ap_global_gNB_DU_ID, ASN1_EXTENSION_ROOT    , dissect_e2ap_Global_gNB_DU_ID },
12293
  {   4, &hf_e2ap_global_gNB_CU_UP_ID, ASN1_EXTENSION_ROOT    , dissect_e2ap_Global_gNB_CU_UP_ID },
12294
  { 0, NULL, 0, NULL }
12295
};
12296
12297
static unsigned
12298
0
dissect_e2ap_NI_Identifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12299
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12300
0
                                 ett_e2ap_NI_Identifier, NI_Identifier_choice,
12301
0
                                 NULL);
12302
12303
0
  return offset;
12304
0
}
12305
12306
12307
static const value_string e2ap_NI_Direction_vals[] = {
12308
  {   0, "incoming" },
12309
  {   1, "outgoing" },
12310
  {   2, "both" },
12311
  { 0, NULL }
12312
};
12313
12314
12315
static unsigned
12316
0
dissect_e2ap_NI_Direction(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12317
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12318
0
                                     3, NULL, true, 0, NULL);
12319
12320
0
  return offset;
12321
0
}
12322
12323
12324
static const value_string e2ap_TypeOfMessage_vals[] = {
12325
  {   0, "nothing" },
12326
  {   1, "initiating-message" },
12327
  {   2, "successful-outcome" },
12328
  {   3, "unsuccessful-outcome" },
12329
  { 0, NULL }
12330
};
12331
12332
12333
static unsigned
12334
0
dissect_e2ap_TypeOfMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12335
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12336
0
                                     4, NULL, false, 0, NULL);
12337
12338
0
  return offset;
12339
0
}
12340
12341
12342
static const per_sequence_t NI_MessageTypeApproach1_sequence[] = {
12343
  { &hf_e2ap_procedureCode  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_ProcedureCode },
12344
  { &hf_e2ap_typeOfMessage  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_TypeOfMessage },
12345
  { NULL, 0, 0, NULL }
12346
};
12347
12348
static unsigned
12349
0
dissect_e2ap_NI_MessageTypeApproach1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12350
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12351
0
                                   ett_e2ap_NI_MessageTypeApproach1, NI_MessageTypeApproach1_sequence);
12352
12353
0
  return offset;
12354
0
}
12355
12356
12357
12358
static unsigned
12359
0
dissect_e2ap_NI_MessageTypeS1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12360
0
  offset = dissect_e2ap_NI_MessageTypeApproach1(tvb, offset, actx, tree, hf_index);
12361
12362
0
  return offset;
12363
0
}
12364
12365
12366
12367
static unsigned
12368
0
dissect_e2ap_NI_MessageTypeX2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12369
0
  offset = dissect_e2ap_NI_MessageTypeApproach1(tvb, offset, actx, tree, hf_index);
12370
12371
0
  return offset;
12372
0
}
12373
12374
12375
12376
static unsigned
12377
0
dissect_e2ap_NI_MessageTypeNG(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12378
0
  offset = dissect_e2ap_NI_MessageTypeApproach1(tvb, offset, actx, tree, hf_index);
12379
12380
0
  return offset;
12381
0
}
12382
12383
12384
12385
static unsigned
12386
0
dissect_e2ap_NI_MessageTypeXn(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12387
0
  offset = dissect_e2ap_NI_MessageTypeApproach1(tvb, offset, actx, tree, hf_index);
12388
12389
0
  return offset;
12390
0
}
12391
12392
12393
12394
static unsigned
12395
0
dissect_e2ap_NI_MessageTypeF1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12396
0
  offset = dissect_e2ap_NI_MessageTypeApproach1(tvb, offset, actx, tree, hf_index);
12397
12398
0
  return offset;
12399
0
}
12400
12401
12402
12403
static unsigned
12404
0
dissect_e2ap_NI_MessageTypeE1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12405
0
  offset = dissect_e2ap_NI_MessageTypeApproach1(tvb, offset, actx, tree, hf_index);
12406
12407
0
  return offset;
12408
0
}
12409
12410
12411
static const value_string e2ap_NI_MessageType_vals[] = {
12412
  {   0, "s1MessageType" },
12413
  {   1, "x2MessageType" },
12414
  {   2, "ngMessageType" },
12415
  {   3, "xnMessageType" },
12416
  {   4, "f1MessageType" },
12417
  {   5, "e1MessageType" },
12418
  { 0, NULL }
12419
};
12420
12421
static const per_choice_t NI_MessageType_choice[] = {
12422
  {   0, &hf_e2ap_s1MessageType  , ASN1_EXTENSION_ROOT    , dissect_e2ap_NI_MessageTypeS1 },
12423
  {   1, &hf_e2ap_x2MessageType  , ASN1_EXTENSION_ROOT    , dissect_e2ap_NI_MessageTypeX2 },
12424
  {   2, &hf_e2ap_ngMessageType  , ASN1_EXTENSION_ROOT    , dissect_e2ap_NI_MessageTypeNG },
12425
  {   3, &hf_e2ap_xnMessageType  , ASN1_EXTENSION_ROOT    , dissect_e2ap_NI_MessageTypeXn },
12426
  {   4, &hf_e2ap_f1MessageType  , ASN1_EXTENSION_ROOT    , dissect_e2ap_NI_MessageTypeF1 },
12427
  {   5, &hf_e2ap_e1MessageType  , ASN1_EXTENSION_ROOT    , dissect_e2ap_NI_MessageTypeE1 },
12428
  { 0, NULL, 0, NULL }
12429
};
12430
12431
static unsigned
12432
0
dissect_e2ap_NI_MessageType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12433
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12434
0
                                 ett_e2ap_NI_MessageType, NI_MessageType_choice,
12435
0
                                 NULL);
12436
12437
0
  return offset;
12438
0
}
12439
12440
12441
12442
static unsigned
12443
0
dissect_e2ap_NI_ProtocolIE_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12444
0
  offset = dissect_e2ap_ProtocolIE_ID(tvb, offset, actx, tree, hf_index);
12445
12446
0
  return offset;
12447
0
}
12448
12449
12450
static const value_string e2ap_NI_ProtocolIE_Test_vals[] = {
12451
  {   0, "equal" },
12452
  {   1, "greaterthan" },
12453
  {   2, "lessthan" },
12454
  {   3, "contains" },
12455
  {   4, "present" },
12456
  { 0, NULL }
12457
};
12458
12459
12460
static unsigned
12461
0
dissect_e2ap_NI_ProtocolIE_Test(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12462
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12463
0
                                     5, NULL, true, 0, NULL);
12464
12465
0
  return offset;
12466
0
}
12467
12468
12469
static const value_string e2ap_NI_ProtocolIE_Value_vals[] = {
12470
  {   0, "valueInt" },
12471
  {   1, "valueEnum" },
12472
  {   2, "valueBool" },
12473
  {   3, "valueBitS" },
12474
  {   4, "valueOctS" },
12475
  {   5, "valuePrtS" },
12476
  { 0, NULL }
12477
};
12478
12479
static const per_choice_t NI_ProtocolIE_Value_choice[] = {
12480
  {   0, &hf_e2ap_valueInt       , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
12481
  {   1, &hf_e2ap_valueEnum      , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
12482
  {   2, &hf_e2ap_valueBool      , ASN1_EXTENSION_ROOT    , dissect_e2ap_BOOLEAN },
12483
  {   3, &hf_e2ap_valueBitS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING },
12484
  {   4, &hf_e2ap_valueOctS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_OCTET_STRING },
12485
  {   5, &hf_e2ap_valuePrtS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_PrintableString },
12486
  { 0, NULL, 0, NULL }
12487
};
12488
12489
static unsigned
12490
0
dissect_e2ap_NI_ProtocolIE_Value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12491
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12492
0
                                 ett_e2ap_NI_ProtocolIE_Value, NI_ProtocolIE_Value_choice,
12493
0
                                 NULL);
12494
12495
0
  return offset;
12496
0
}
12497
12498
12499
static const per_sequence_t NI_ProtocolIE_Item_sequence[] = {
12500
  { &hf_e2ap_interfaceProtocolIE_ID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_ProtocolIE_ID },
12501
  { &hf_e2ap_interfaceProtocolIE_Test, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_ProtocolIE_Test },
12502
  { &hf_e2ap_interfaceProtocolIE_Value, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_ProtocolIE_Value },
12503
  { NULL, 0, 0, NULL }
12504
};
12505
12506
static unsigned
12507
0
dissect_e2ap_NI_ProtocolIE_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12508
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12509
0
                                   ett_e2ap_NI_ProtocolIE_Item, NI_ProtocolIE_Item_sequence);
12510
12511
0
  return offset;
12512
0
}
12513
12514
12515
static const per_sequence_t SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item_sequence_of[1] = {
12516
  { &hf_e2ap_interfaceProtocolIE_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_ProtocolIE_Item },
12517
};
12518
12519
static unsigned
12520
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12521
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12522
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item, SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item_sequence_of,
12523
0
                                                  1, maxofInterfaceProtocolTests, false);
12524
12525
0
  return offset;
12526
0
}
12527
12528
12529
static const per_sequence_t E2SM_NI_EventTriggerDefinition_Format1_sequence[] = {
12530
  { &hf_e2ap_interface_type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Type },
12531
  { &hf_e2ap_interface_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Identifier },
12532
  { &hf_e2ap_interfaceDirection, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Direction },
12533
  { &hf_e2ap_interfaceMessageType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_MessageType },
12534
  { &hf_e2ap_interfaceProtocolIE_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item },
12535
  { NULL, 0, 0, NULL }
12536
};
12537
12538
static unsigned
12539
0
dissect_e2ap_E2SM_NI_EventTriggerDefinition_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12540
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12541
0
                                   ett_e2ap_E2SM_NI_EventTriggerDefinition_Format1, E2SM_NI_EventTriggerDefinition_Format1_sequence);
12542
12543
0
  return offset;
12544
0
}
12545
12546
12547
static const value_string e2ap_E2SM_NI_EventTriggerDefinition_vals[] = {
12548
  {   0, "eventDefinition-Format1" },
12549
  { 0, NULL }
12550
};
12551
12552
static const per_choice_t E2SM_NI_EventTriggerDefinition_choice[] = {
12553
  {   0, &hf_e2ap_eventDefinition_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_EventTriggerDefinition_Format1 },
12554
  { 0, NULL, 0, NULL }
12555
};
12556
12557
static unsigned
12558
0
dissect_e2ap_E2SM_NI_EventTriggerDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12559
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12560
0
                                 ett_e2ap_E2SM_NI_EventTriggerDefinition, E2SM_NI_EventTriggerDefinition_choice,
12561
0
                                 NULL);
12562
12563
0
  return offset;
12564
0
}
12565
12566
12567
12568
static unsigned
12569
0
dissect_e2ap_RANparameter_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12570
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12571
0
                                                            0U, maxofRANparameters, NULL, false);
12572
12573
0
  return offset;
12574
0
}
12575
12576
12577
static const value_string e2ap_RANparameter_Value_vals[] = {
12578
  {   0, "valueInt" },
12579
  {   1, "valueEnum" },
12580
  {   2, "valueBool" },
12581
  {   3, "valueBitS" },
12582
  {   4, "valueOctS" },
12583
  {   5, "valuePrtS" },
12584
  { 0, NULL }
12585
};
12586
12587
static const per_choice_t RANparameter_Value_choice[] = {
12588
  {   0, &hf_e2ap_valueInt       , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
12589
  {   1, &hf_e2ap_valueEnum      , ASN1_EXTENSION_ROOT    , dissect_e2ap_INTEGER },
12590
  {   2, &hf_e2ap_valueBool      , ASN1_EXTENSION_ROOT    , dissect_e2ap_BOOLEAN },
12591
  {   3, &hf_e2ap_valueBitS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_BIT_STRING },
12592
  {   4, &hf_e2ap_valueOctS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_OCTET_STRING },
12593
  {   5, &hf_e2ap_valuePrtS      , ASN1_EXTENSION_ROOT    , dissect_e2ap_PrintableString },
12594
  { 0, NULL, 0, NULL }
12595
};
12596
12597
static unsigned
12598
0
dissect_e2ap_RANparameter_Value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12599
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12600
0
                                 ett_e2ap_RANparameter_Value, RANparameter_Value_choice,
12601
0
                                 NULL);
12602
12603
0
  return offset;
12604
0
}
12605
12606
12607
static const per_sequence_t RANparameter_Item_sequence[] = {
12608
  { &hf_e2ap_ranParameter_ID_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_ID },
12609
  { &hf_e2ap_ranParameter_Value_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_Value },
12610
  { NULL, 0, 0, NULL }
12611
};
12612
12613
static unsigned
12614
0
dissect_e2ap_RANparameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12615
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12616
0
                                   ett_e2ap_RANparameter_Item, RANparameter_Item_sequence);
12617
12618
0
  return offset;
12619
0
}
12620
12621
12622
static const per_sequence_t SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item_sequence_of[1] = {
12623
  { &hf_e2ap_actionParameter_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_Item },
12624
};
12625
12626
static unsigned
12627
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12628
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12629
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item, SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item_sequence_of,
12630
0
                                                  1, maxofActionParameters, false);
12631
12632
0
  return offset;
12633
0
}
12634
12635
12636
static const per_sequence_t E2SM_NI_ActionDefinition_Format1_sequence[] = {
12637
  { &hf_e2ap_actionParameter_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item },
12638
  { NULL, 0, 0, NULL }
12639
};
12640
12641
static unsigned
12642
0
dissect_e2ap_E2SM_NI_ActionDefinition_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12643
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12644
0
                                   ett_e2ap_E2SM_NI_ActionDefinition_Format1, E2SM_NI_ActionDefinition_Format1_sequence);
12645
12646
0
  return offset;
12647
0
}
12648
12649
12650
12651
static unsigned
12652
0
dissect_e2ap_RANueGroupID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12653
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12654
0
                                                            0U, maxofRANueGroups, NULL, false);
12655
12656
0
  return offset;
12657
0
}
12658
12659
12660
static const value_string e2ap_RANparameter_Test_Condition_vals[] = {
12661
  {   0, "equal" },
12662
  {   1, "greaterthan" },
12663
  {   2, "lessthan" },
12664
  {   3, "contains" },
12665
  {   4, "present" },
12666
  { 0, NULL }
12667
};
12668
12669
12670
static unsigned
12671
0
dissect_e2ap_RANparameter_Test_Condition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12672
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12673
0
                                     5, NULL, true, 0, NULL);
12674
12675
0
  return offset;
12676
0
}
12677
12678
12679
static const per_sequence_t RANueGroupDef_Item_sequence[] = {
12680
  { &hf_e2ap_ranParameter_ID_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_ID },
12681
  { &hf_e2ap_ranParameter_Test, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_Test_Condition },
12682
  { &hf_e2ap_ranParameter_Value_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_Value },
12683
  { NULL, 0, 0, NULL }
12684
};
12685
12686
static unsigned
12687
0
dissect_e2ap_RANueGroupDef_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12688
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12689
0
                                   ett_e2ap_RANueGroupDef_Item, RANueGroupDef_Item_sequence);
12690
12691
0
  return offset;
12692
0
}
12693
12694
12695
static const per_sequence_t SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item_sequence_of[1] = {
12696
  { &hf_e2ap_ranUEgroupDef_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANueGroupDef_Item },
12697
};
12698
12699
static unsigned
12700
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12701
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12702
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item, SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item_sequence_of,
12703
0
                                                  1, maxofRANparameters, false);
12704
12705
0
  return offset;
12706
0
}
12707
12708
12709
static const per_sequence_t RANueGroupDefinition_sequence[] = {
12710
  { &hf_e2ap_ranUEgroupDef_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item },
12711
  { NULL, 0, 0, NULL }
12712
};
12713
12714
static unsigned
12715
0
dissect_e2ap_RANueGroupDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12716
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12717
0
                                   ett_e2ap_RANueGroupDefinition, RANueGroupDefinition_sequence);
12718
12719
0
  return offset;
12720
0
}
12721
12722
12723
static const per_sequence_t SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item_sequence_of[1] = {
12724
  { &hf_e2ap_outcomeElement_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_Item },
12725
};
12726
12727
static unsigned
12728
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12729
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12730
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item, SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item_sequence_of,
12731
0
                                                  1, maxofRANparameters, false);
12732
12733
0
  return offset;
12734
0
}
12735
12736
12737
static const per_sequence_t RANimperativePolicy_sequence[] = {
12738
  { &hf_e2ap_ranImperativePolicy_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item },
12739
  { NULL, 0, 0, NULL }
12740
};
12741
12742
static unsigned
12743
0
dissect_e2ap_RANimperativePolicy(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12744
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12745
0
                                   ett_e2ap_RANimperativePolicy, RANimperativePolicy_sequence);
12746
12747
0
  return offset;
12748
0
}
12749
12750
12751
static const per_sequence_t RANueGroup_Item_sequence[] = {
12752
  { &hf_e2ap_ranUEgroupID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANueGroupID },
12753
  { &hf_e2ap_ranUEgroupDefinition, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANueGroupDefinition },
12754
  { &hf_e2ap_ranPolicy      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANimperativePolicy },
12755
  { NULL, 0, 0, NULL }
12756
};
12757
12758
static unsigned
12759
0
dissect_e2ap_RANueGroup_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12760
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12761
0
                                   ett_e2ap_RANueGroup_Item, RANueGroup_Item_sequence);
12762
12763
0
  return offset;
12764
0
}
12765
12766
12767
static const per_sequence_t SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item_sequence_of[1] = {
12768
  { &hf_e2ap_ranUEgroup_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANueGroup_Item },
12769
};
12770
12771
static unsigned
12772
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12773
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12774
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item, SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item_sequence_of,
12775
0
                                                  1, maxofRANueGroups, false);
12776
12777
0
  return offset;
12778
0
}
12779
12780
12781
static const per_sequence_t E2SM_NI_ActionDefinition_Format2_sequence[] = {
12782
  { &hf_e2ap_ranUEgroup_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item },
12783
  { NULL, 0, 0, NULL }
12784
};
12785
12786
static unsigned
12787
0
dissect_e2ap_E2SM_NI_ActionDefinition_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12788
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12789
0
                                   ett_e2ap_E2SM_NI_ActionDefinition_Format2, E2SM_NI_ActionDefinition_Format2_sequence);
12790
12791
0
  return offset;
12792
0
}
12793
12794
12795
static const value_string e2ap_E2SM_NI_ActionDefinitionFormat_vals[] = {
12796
  {   0, "actionDefinition-Format1" },
12797
  {   1, "actionDefinition-Format2" },
12798
  { 0, NULL }
12799
};
12800
12801
static const per_choice_t E2SM_NI_ActionDefinitionFormat_choice[] = {
12802
  {   0, &hf_e2ap_actionDefinition_Format1_02, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_ActionDefinition_Format1 },
12803
  {   1, &hf_e2ap_actionDefinition_Format2_02, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_ActionDefinition_Format2 },
12804
  { 0, NULL, 0, NULL }
12805
};
12806
12807
static unsigned
12808
0
dissect_e2ap_E2SM_NI_ActionDefinitionFormat(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12809
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12810
0
                                 ett_e2ap_E2SM_NI_ActionDefinitionFormat, E2SM_NI_ActionDefinitionFormat_choice,
12811
0
                                 NULL);
12812
12813
0
  return offset;
12814
0
}
12815
12816
12817
static const per_sequence_t E2SM_NI_ActionDefinition_sequence[] = {
12818
  { &hf_e2ap_ric_Style_Type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
12819
  { &hf_e2ap_action_Definition_Format, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_NI_ActionDefinitionFormat },
12820
  { NULL, 0, 0, NULL }
12821
};
12822
12823
static unsigned
12824
0
dissect_e2ap_E2SM_NI_ActionDefinition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12825
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12826
0
                                   ett_e2ap_E2SM_NI_ActionDefinition, E2SM_NI_ActionDefinition_sequence);
12827
12828
0
  return offset;
12829
0
}
12830
12831
12832
12833
static unsigned
12834
0
dissect_e2ap_NI_TimeStamp(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12835
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
12836
0
                                       8, 8, false, NULL);
12837
12838
0
  return offset;
12839
0
}
12840
12841
12842
static const per_sequence_t E2SM_NI_IndicationHeader_Format1_sequence[] = {
12843
  { &hf_e2ap_interface_type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Type },
12844
  { &hf_e2ap_interface_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Identifier },
12845
  { &hf_e2ap_interfaceDirection, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Direction },
12846
  { &hf_e2ap_timestamp      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_NI_TimeStamp },
12847
  { NULL, 0, 0, NULL }
12848
};
12849
12850
static unsigned
12851
0
dissect_e2ap_E2SM_NI_IndicationHeader_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12852
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12853
0
                                   ett_e2ap_E2SM_NI_IndicationHeader_Format1, E2SM_NI_IndicationHeader_Format1_sequence);
12854
12855
0
  return offset;
12856
0
}
12857
12858
12859
static const value_string e2ap_E2SM_NI_IndicationHeader_vals[] = {
12860
  {   0, "indicationHeader-Format1" },
12861
  { 0, NULL }
12862
};
12863
12864
static const per_choice_t E2SM_NI_IndicationHeader_choice[] = {
12865
  {   0, &hf_e2ap_indicationHeader_Format1_02, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_IndicationHeader_Format1 },
12866
  { 0, NULL, 0, NULL }
12867
};
12868
12869
static unsigned
12870
0
dissect_e2ap_E2SM_NI_IndicationHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12871
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12872
0
                                 ett_e2ap_E2SM_NI_IndicationHeader, E2SM_NI_IndicationHeader_choice,
12873
0
                                 NULL);
12874
12875
0
  return offset;
12876
0
}
12877
12878
12879
12880
static unsigned
12881
0
dissect_e2ap_NI_Message(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12882
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
12883
0
                                       NO_BOUND, NO_BOUND, false, NULL);
12884
12885
0
  return offset;
12886
0
}
12887
12888
12889
static const per_sequence_t E2SM_NI_IndicationMessage_Format1_sequence[] = {
12890
  { &hf_e2ap_interfaceMessage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Message },
12891
  { NULL, 0, 0, NULL }
12892
};
12893
12894
static unsigned
12895
0
dissect_e2ap_E2SM_NI_IndicationMessage_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12896
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12897
0
                                   ett_e2ap_E2SM_NI_IndicationMessage_Format1, E2SM_NI_IndicationMessage_Format1_sequence);
12898
12899
0
  return offset;
12900
0
}
12901
12902
12903
static const value_string e2ap_E2SM_NI_IndicationMessage_vals[] = {
12904
  {   0, "indicationMessage-Format1" },
12905
  { 0, NULL }
12906
};
12907
12908
static const per_choice_t E2SM_NI_IndicationMessage_choice[] = {
12909
  {   0, &hf_e2ap_indicationMessage_Format1_02, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_IndicationMessage_Format1 },
12910
  { 0, NULL, 0, NULL }
12911
};
12912
12913
static unsigned
12914
0
dissect_e2ap_E2SM_NI_IndicationMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12915
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12916
0
                                 ett_e2ap_E2SM_NI_IndicationMessage, E2SM_NI_IndicationMessage_choice,
12917
0
                                 NULL);
12918
12919
0
  return offset;
12920
0
}
12921
12922
12923
12924
static unsigned
12925
0
dissect_e2ap_RANcallProcess_ID_number(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12926
0
  offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
12927
12928
0
  return offset;
12929
0
}
12930
12931
12932
static const per_sequence_t E2SM_NI_CallProcessID_Format1_sequence[] = {
12933
  { &hf_e2ap_callProcess_ID , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANcallProcess_ID_number },
12934
  { NULL, 0, 0, NULL }
12935
};
12936
12937
static unsigned
12938
0
dissect_e2ap_E2SM_NI_CallProcessID_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12939
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12940
0
                                   ett_e2ap_E2SM_NI_CallProcessID_Format1, E2SM_NI_CallProcessID_Format1_sequence);
12941
12942
0
  return offset;
12943
0
}
12944
12945
12946
12947
static unsigned
12948
0
dissect_e2ap_RANcallProcess_ID_string(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12949
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
12950
0
                                          1, 150, true,
12951
0
                                          NULL);
12952
12953
0
  return offset;
12954
0
}
12955
12956
12957
static const per_sequence_t E2SM_NI_CallProcessID_Format2_sequence[] = {
12958
  { &hf_e2ap_callProcess_ID_format2, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANcallProcess_ID_string },
12959
  { NULL, 0, 0, NULL }
12960
};
12961
12962
static unsigned
12963
0
dissect_e2ap_E2SM_NI_CallProcessID_Format2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12964
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12965
0
                                   ett_e2ap_E2SM_NI_CallProcessID_Format2, E2SM_NI_CallProcessID_Format2_sequence);
12966
12967
0
  return offset;
12968
0
}
12969
12970
12971
static const value_string e2ap_E2SM_NI_CallProcessID_vals[] = {
12972
  {   0, "callProcessID-Format1" },
12973
  {   1, "callProcessID-Format2" },
12974
  { 0, NULL }
12975
};
12976
12977
static const per_choice_t E2SM_NI_CallProcessID_choice[] = {
12978
  {   0, &hf_e2ap_callProcessID_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_CallProcessID_Format1 },
12979
  {   1, &hf_e2ap_callProcessID_Format2, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_CallProcessID_Format2 },
12980
  { 0, NULL, 0, NULL }
12981
};
12982
12983
static unsigned
12984
0
dissect_e2ap_E2SM_NI_CallProcessID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12985
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12986
0
                                 ett_e2ap_E2SM_NI_CallProcessID, E2SM_NI_CallProcessID_choice,
12987
0
                                 NULL);
12988
12989
0
  return offset;
12990
0
}
12991
12992
12993
12994
static unsigned
12995
0
dissect_e2ap_RIC_Control_Message_Priority(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12996
0
  offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
12997
12998
0
  return offset;
12999
0
}
13000
13001
13002
static const per_sequence_t E2SM_NI_ControlHeader_Format1_sequence[] = {
13003
  { &hf_e2ap_interface_type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Type },
13004
  { &hf_e2ap_interface_ID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Identifier },
13005
  { &hf_e2ap_interface_Direction, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Direction },
13006
  { &hf_e2ap_ric_Control_Message_Priority, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_RIC_Control_Message_Priority },
13007
  { NULL, 0, 0, NULL }
13008
};
13009
13010
static unsigned
13011
0
dissect_e2ap_E2SM_NI_ControlHeader_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13012
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13013
0
                                   ett_e2ap_E2SM_NI_ControlHeader_Format1, E2SM_NI_ControlHeader_Format1_sequence);
13014
13015
0
  return offset;
13016
0
}
13017
13018
13019
static const value_string e2ap_E2SM_NI_ControlHeader_vals[] = {
13020
  {   0, "controlHeader-Format1" },
13021
  { 0, NULL }
13022
};
13023
13024
static const per_choice_t E2SM_NI_ControlHeader_choice[] = {
13025
  {   0, &hf_e2ap_controlHeader_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_ControlHeader_Format1 },
13026
  { 0, NULL, 0, NULL }
13027
};
13028
13029
static unsigned
13030
0
dissect_e2ap_E2SM_NI_ControlHeader(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13031
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13032
0
                                 ett_e2ap_E2SM_NI_ControlHeader, E2SM_NI_ControlHeader_choice,
13033
0
                                 NULL);
13034
13035
0
  return offset;
13036
0
}
13037
13038
13039
static const per_sequence_t E2SM_NI_ControlMessage_Format1_sequence[] = {
13040
  { &hf_e2ap_interfaceMessage, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Message },
13041
  { NULL, 0, 0, NULL }
13042
};
13043
13044
static unsigned
13045
0
dissect_e2ap_E2SM_NI_ControlMessage_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13046
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13047
0
                                   ett_e2ap_E2SM_NI_ControlMessage_Format1, E2SM_NI_ControlMessage_Format1_sequence);
13048
13049
0
  return offset;
13050
0
}
13051
13052
13053
static const value_string e2ap_E2SM_NI_ControlMessage_vals[] = {
13054
  {   0, "controlMessage-Format1" },
13055
  { 0, NULL }
13056
};
13057
13058
static const per_choice_t E2SM_NI_ControlMessage_choice[] = {
13059
  {   0, &hf_e2ap_controlMessage_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_ControlMessage_Format1 },
13060
  { 0, NULL, 0, NULL }
13061
};
13062
13063
static unsigned
13064
0
dissect_e2ap_E2SM_NI_ControlMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13065
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13066
0
                                 ett_e2ap_E2SM_NI_ControlMessage, E2SM_NI_ControlMessage_choice,
13067
0
                                 NULL);
13068
13069
0
  return offset;
13070
0
}
13071
13072
13073
static const per_sequence_t E2SM_NI_ControlOutcome_Format1_sequence[] = {
13074
  { &hf_e2ap_outcomeElement_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item },
13075
  { NULL, 0, 0, NULL }
13076
};
13077
13078
static unsigned
13079
0
dissect_e2ap_E2SM_NI_ControlOutcome_Format1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13080
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13081
0
                                   ett_e2ap_E2SM_NI_ControlOutcome_Format1, E2SM_NI_ControlOutcome_Format1_sequence);
13082
13083
0
  return offset;
13084
0
}
13085
13086
13087
static const value_string e2ap_E2SM_NI_ControlOutcome_vals[] = {
13088
  {   0, "controlOutcome-Format1" },
13089
  { 0, NULL }
13090
};
13091
13092
static const per_choice_t E2SM_NI_ControlOutcome_choice[] = {
13093
  {   0, &hf_e2ap_controlOutcome_Format1_01, ASN1_EXTENSION_ROOT    , dissect_e2ap_E2SM_NI_ControlOutcome_Format1 },
13094
  { 0, NULL, 0, NULL }
13095
};
13096
13097
static unsigned
13098
0
dissect_e2ap_E2SM_NI_ControlOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13099
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13100
0
                                 ett_e2ap_E2SM_NI_ControlOutcome, E2SM_NI_ControlOutcome_choice,
13101
0
                                 NULL);
13102
13103
0
  return offset;
13104
0
}
13105
13106
13107
static const per_sequence_t RIC_EventTriggerStyle_List_sequence[] = {
13108
  { &hf_e2ap_ric_EventTriggerStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
13109
  { &hf_e2ap_ric_EventTriggerStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
13110
  { &hf_e2ap_ric_EventTriggerFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13111
  { NULL, 0, 0, NULL }
13112
};
13113
13114
static unsigned
13115
0
dissect_e2ap_RIC_EventTriggerStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13116
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13117
0
                                   ett_e2ap_RIC_EventTriggerStyle_List, RIC_EventTriggerStyle_List_sequence);
13118
13119
0
  return offset;
13120
0
}
13121
13122
13123
static const per_sequence_t SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List_sequence_of[1] = {
13124
  { &hf_e2ap_ric_EventTriggerStyle_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_EventTriggerStyle_List },
13125
};
13126
13127
static unsigned
13128
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13129
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13130
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List, SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List_sequence_of,
13131
0
                                                  1, maxofRICstyles, false);
13132
13133
0
  return offset;
13134
0
}
13135
13136
13137
13138
static unsigned
13139
0
dissect_e2ap_RANparameter_Name(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13140
0
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
13141
0
                                          1, 150, true,
13142
0
                                          NULL);
13143
13144
0
  return offset;
13145
0
}
13146
13147
13148
static const value_string e2ap_RANparameter_Type_vals[] = {
13149
  {   0, "integer" },
13150
  {   1, "enumerated" },
13151
  {   2, "boolean" },
13152
  {   3, "bit-string" },
13153
  {   4, "octet-string" },
13154
  {   5, "printable-string" },
13155
  { 0, NULL }
13156
};
13157
13158
13159
static unsigned
13160
0
dissect_e2ap_RANparameter_Type(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13161
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
13162
0
                                     6, NULL, true, 0, NULL);
13163
13164
0
  return offset;
13165
0
}
13166
13167
13168
static const per_sequence_t RANparameterDef_Item_sequence[] = {
13169
  { &hf_e2ap_ranParameter_ID_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_ID },
13170
  { &hf_e2ap_ranParameter_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_Name },
13171
  { &hf_e2ap_ranParameter_Type_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameter_Type },
13172
  { NULL, 0, 0, NULL }
13173
};
13174
13175
static unsigned
13176
0
dissect_e2ap_RANparameterDef_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13177
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13178
0
                                   ett_e2ap_RANparameterDef_Item, RANparameterDef_Item_sequence);
13179
13180
0
  return offset;
13181
0
}
13182
13183
13184
static const per_sequence_t SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item_sequence_of[1] = {
13185
  { &hf_e2ap_ric_ControlOutcomeRanParaDef_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RANparameterDef_Item },
13186
};
13187
13188
static unsigned
13189
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13190
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13191
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item, SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item_sequence_of,
13192
0
                                                  1, maxofRANparameters, false);
13193
13194
0
  return offset;
13195
0
}
13196
13197
13198
static const per_sequence_t RIC_ReportStyle_List_sequence[] = {
13199
  { &hf_e2ap_ric_ReportStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
13200
  { &hf_e2ap_ric_ReportStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
13201
  { &hf_e2ap_ric_ReportActionFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13202
  { &hf_e2ap_ric_ReportRanParameterDef_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item },
13203
  { &hf_e2ap_ric_IndicationHeaderFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13204
  { &hf_e2ap_ric_IndicationMessageFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13205
  { NULL, 0, 0, NULL }
13206
};
13207
13208
static unsigned
13209
0
dissect_e2ap_RIC_ReportStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13210
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13211
0
                                   ett_e2ap_RIC_ReportStyle_List, RIC_ReportStyle_List_sequence);
13212
13213
0
  return offset;
13214
0
}
13215
13216
13217
static const per_sequence_t SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List_sequence_of[1] = {
13218
  { &hf_e2ap_ric_ReportStyle_List_item_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ReportStyle_List },
13219
};
13220
13221
static unsigned
13222
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13223
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13224
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List, SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List_sequence_of,
13225
0
                                                  1, maxofRICstyles, false);
13226
13227
0
  return offset;
13228
0
}
13229
13230
13231
static const per_sequence_t RIC_InsertStyle_List_sequence[] = {
13232
  { &hf_e2ap_ric_InsertStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
13233
  { &hf_e2ap_ric_InsertStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
13234
  { &hf_e2ap_ric_InsertActionFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13235
  { &hf_e2ap_ric_InsertRanParameterDef_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item },
13236
  { &hf_e2ap_ric_IndicationHeaderFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13237
  { &hf_e2ap_ric_IndicationMessageFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13238
  { &hf_e2ap_ric_CallProcessIDFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13239
  { NULL, 0, 0, NULL }
13240
};
13241
13242
static unsigned
13243
0
dissect_e2ap_RIC_InsertStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13244
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13245
0
                                   ett_e2ap_RIC_InsertStyle_List, RIC_InsertStyle_List_sequence);
13246
13247
0
  return offset;
13248
0
}
13249
13250
13251
static const per_sequence_t SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List_sequence_of[1] = {
13252
  { &hf_e2ap_ric_InsertStyle_List_item_03, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_InsertStyle_List },
13253
};
13254
13255
static unsigned
13256
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13257
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13258
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List, SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List_sequence_of,
13259
0
                                                  1, maxofRICstyles, false);
13260
13261
0
  return offset;
13262
0
}
13263
13264
13265
static const per_sequence_t RIC_ControlStyle_List_sequence[] = {
13266
  { &hf_e2ap_ric_ControlStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
13267
  { &hf_e2ap_ric_ControlStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
13268
  { &hf_e2ap_ric_ControlFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13269
  { &hf_e2ap_ric_ControlHeaderFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13270
  { &hf_e2ap_ric_ControlMessageFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13271
  { &hf_e2ap_ric_CallProcessIDFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13272
  { &hf_e2ap_ric_ControlOutcomeFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13273
  { &hf_e2ap_ric_ControlOutcomeRanParaDef_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item },
13274
  { NULL, 0, 0, NULL }
13275
};
13276
13277
static unsigned
13278
0
dissect_e2ap_RIC_ControlStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13279
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13280
0
                                   ett_e2ap_RIC_ControlStyle_List, RIC_ControlStyle_List_sequence);
13281
13282
0
  return offset;
13283
0
}
13284
13285
13286
static const per_sequence_t SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List_sequence_of[1] = {
13287
  { &hf_e2ap_ric_ControlStyle_List_item_03, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_ControlStyle_List },
13288
};
13289
13290
static unsigned
13291
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13292
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13293
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List, SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List_sequence_of,
13294
0
                                                  1, maxofRICstyles, false);
13295
13296
0
  return offset;
13297
0
}
13298
13299
13300
static const per_sequence_t RIC_PolicyStyle_List_sequence[] = {
13301
  { &hf_e2ap_ric_PolicyStyle_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Type },
13302
  { &hf_e2ap_ric_PolicyStyle_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Style_Name },
13303
  { &hf_e2ap_ric_PolicyActionFormat_Type, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_Format_Type },
13304
  { &hf_e2ap_ric_PolicyRanParameterDef_List, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item },
13305
  { NULL, 0, 0, NULL }
13306
};
13307
13308
static unsigned
13309
0
dissect_e2ap_RIC_PolicyStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13310
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13311
0
                                   ett_e2ap_RIC_PolicyStyle_List, RIC_PolicyStyle_List_sequence);
13312
13313
0
  return offset;
13314
0
}
13315
13316
13317
static const per_sequence_t SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List_sequence_of[1] = {
13318
  { &hf_e2ap_ric_PolicyStyle_List_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_RIC_PolicyStyle_List },
13319
};
13320
13321
static unsigned
13322
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13323
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13324
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List, SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List_sequence_of,
13325
0
                                                  1, maxofRICstyles, false);
13326
13327
0
  return offset;
13328
0
}
13329
13330
13331
static const per_sequence_t E2SM_NI_RANfunction_Item_sequence[] = {
13332
  { &hf_e2ap_interface_type , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_NI_Type },
13333
  { &hf_e2ap_ric_EventTriggerStyle_List_02, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List },
13334
  { &hf_e2ap_ric_ReportStyle_List_02, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List },
13335
  { &hf_e2ap_ric_InsertStyle_List_03, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List },
13336
  { &hf_e2ap_ric_ControlStyle_List_03, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List },
13337
  { &hf_e2ap_ric_PolicyStyle_List_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List },
13338
  { NULL, 0, 0, NULL }
13339
};
13340
13341
static unsigned
13342
0
dissect_e2ap_E2SM_NI_RANfunction_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13343
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13344
0
                                   ett_e2ap_E2SM_NI_RANfunction_Item, E2SM_NI_RANfunction_Item_sequence);
13345
13346
0
  return offset;
13347
0
}
13348
13349
13350
static const per_sequence_t SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item_sequence_of[1] = {
13351
  { &hf_e2ap_ni_Type_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_e2ap_E2SM_NI_RANfunction_Item },
13352
};
13353
13354
static unsigned
13355
0
dissect_e2ap_SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13356
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13357
0
                                                  ett_e2ap_SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item, SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item_sequence_of,
13358
0
                                                  1, maxofNItypes, false);
13359
13360
0
  return offset;
13361
0
}
13362
13363
13364
static const per_sequence_t E2SM_NI_RANfunction_Description_sequence[] = {
13365
  { &hf_e2ap_ranFunction_Name, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_e2ap_RANfunction_Name },
13366
  { &hf_e2ap_ni_Type_List   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_e2ap_SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item },
13367
  { NULL, 0, 0, NULL }
13368
};
13369
13370
static unsigned
13371
0
dissect_e2ap_E2SM_NI_RANfunction_Description(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13372
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13373
0
                                   ett_e2ap_E2SM_NI_RANfunction_Description, E2SM_NI_RANfunction_Description_sequence);
13374
13375
0
  return offset;
13376
0
}
13377
13378
/*--- PDUs ---*/
13379
13380
8
static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13381
8
  unsigned offset = 0;
13382
8
  asn1_ctx_t asn1_ctx;
13383
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13384
8
  offset = dissect_e2ap_Cause(tvb, offset, &asn1_ctx, tree, hf_e2ap_Cause_PDU);
13385
8
  offset += 7; offset >>= 3;
13386
8
  return offset;
13387
8
}
13388
8
static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13389
8
  unsigned offset = 0;
13390
8
  asn1_ctx_t asn1_ctx;
13391
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13392
8
  offset = dissect_e2ap_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_e2ap_CriticalityDiagnostics_PDU);
13393
8
  offset += 7; offset >>= 3;
13394
8
  return offset;
13395
8
}
13396
9
static int dissect_GlobalE2node_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13397
9
  unsigned offset = 0;
13398
9
  asn1_ctx_t asn1_ctx;
13399
9
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13400
9
  offset = dissect_e2ap_GlobalE2node_ID(tvb, offset, &asn1_ctx, tree, hf_e2ap_GlobalE2node_ID_PDU);
13401
9
  offset += 7; offset >>= 3;
13402
9
  return offset;
13403
9
}
13404
9
static int dissect_GlobalRIC_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13405
9
  unsigned offset = 0;
13406
9
  asn1_ctx_t asn1_ctx;
13407
9
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13408
9
  offset = dissect_e2ap_GlobalRIC_ID(tvb, offset, &asn1_ctx, tree, hf_e2ap_GlobalRIC_ID_PDU);
13409
9
  offset += 7; offset >>= 3;
13410
9
  return offset;
13411
9
}
13412
1
static int dissect_RANfunctionID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13413
1
  unsigned offset = 0;
13414
1
  asn1_ctx_t asn1_ctx;
13415
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13416
1
  offset = dissect_e2ap_RANfunctionID(tvb, offset, &asn1_ctx, tree, hf_e2ap_RANfunctionID_PDU);
13417
1
  offset += 7; offset >>= 3;
13418
1
  return offset;
13419
1
}
13420
1
static int dissect_RICactionID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13421
1
  unsigned offset = 0;
13422
1
  asn1_ctx_t asn1_ctx;
13423
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13424
1
  offset = dissect_e2ap_RICactionID(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactionID_PDU);
13425
1
  offset += 7; offset >>= 3;
13426
1
  return offset;
13427
1
}
13428
0
static int dissect_RICcallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13429
0
  unsigned offset = 0;
13430
0
  asn1_ctx_t asn1_ctx;
13431
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13432
0
  offset = dissect_e2ap_RICcallProcessID(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcallProcessID_PDU);
13433
0
  offset += 7; offset >>= 3;
13434
0
  return offset;
13435
0
}
13436
3
static int dissect_RICcontrolAckRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13437
3
  unsigned offset = 0;
13438
3
  asn1_ctx_t asn1_ctx;
13439
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13440
3
  offset = dissect_e2ap_RICcontrolAckRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcontrolAckRequest_PDU);
13441
3
  offset += 7; offset >>= 3;
13442
3
  return offset;
13443
3
}
13444
0
static int dissect_RICcontrolHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13445
0
  unsigned offset = 0;
13446
0
  asn1_ctx_t asn1_ctx;
13447
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13448
0
  offset = dissect_e2ap_RICcontrolHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcontrolHeader_PDU);
13449
0
  offset += 7; offset >>= 3;
13450
0
  return offset;
13451
0
}
13452
1
static int dissect_RICcontrolMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13453
1
  unsigned offset = 0;
13454
1
  asn1_ctx_t asn1_ctx;
13455
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13456
1
  offset = dissect_e2ap_RICcontrolMessage(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcontrolMessage_PDU);
13457
1
  offset += 7; offset >>= 3;
13458
1
  return offset;
13459
1
}
13460
4
static int dissect_RICcontrolOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13461
4
  unsigned offset = 0;
13462
4
  asn1_ctx_t asn1_ctx;
13463
4
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13464
4
  offset = dissect_e2ap_RICcontrolOutcome(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcontrolOutcome_PDU);
13465
4
  offset += 7; offset >>= 3;
13466
4
  return offset;
13467
4
}
13468
0
static int dissect_RICeventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13469
0
  unsigned offset = 0;
13470
0
  asn1_ctx_t asn1_ctx;
13471
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13472
0
  offset = dissect_e2ap_RICeventTriggerDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICeventTriggerDefinition_PDU);
13473
0
  offset += 7; offset >>= 3;
13474
0
  return offset;
13475
0
}
13476
3
static int dissect_RICindicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13477
3
  unsigned offset = 0;
13478
3
  asn1_ctx_t asn1_ctx;
13479
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13480
3
  offset = dissect_e2ap_RICindicationHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICindicationHeader_PDU);
13481
3
  offset += 7; offset >>= 3;
13482
3
  return offset;
13483
3
}
13484
1
static int dissect_RICindicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13485
1
  unsigned offset = 0;
13486
1
  asn1_ctx_t asn1_ctx;
13487
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13488
1
  offset = dissect_e2ap_RICindicationMessage(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICindicationMessage_PDU);
13489
1
  offset += 7; offset >>= 3;
13490
1
  return offset;
13491
1
}
13492
0
static int dissect_RICindicationSN_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13493
0
  unsigned offset = 0;
13494
0
  asn1_ctx_t asn1_ctx;
13495
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13496
0
  offset = dissect_e2ap_RICindicationSN(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICindicationSN_PDU);
13497
0
  offset += 7; offset >>= 3;
13498
0
  return offset;
13499
0
}
13500
1
static int dissect_RICindicationType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13501
1
  unsigned offset = 0;
13502
1
  asn1_ctx_t asn1_ctx;
13503
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13504
1
  offset = dissect_e2ap_RICindicationType(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICindicationType_PDU);
13505
1
  offset += 7; offset >>= 3;
13506
1
  return offset;
13507
1
}
13508
0
static int dissect_RICrequestID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13509
0
  unsigned offset = 0;
13510
0
  asn1_ctx_t asn1_ctx;
13511
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13512
0
  offset = dissect_e2ap_RICrequestID(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICrequestID_PDU);
13513
0
  offset += 7; offset >>= 3;
13514
0
  return offset;
13515
0
}
13516
1
static int dissect_RICsubscriptionTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13517
1
  unsigned offset = 0;
13518
1
  asn1_ctx_t asn1_ctx;
13519
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13520
1
  offset = dissect_e2ap_RICsubscriptionTime(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionTime_PDU);
13521
1
  offset += 7; offset >>= 3;
13522
1
  return offset;
13523
1
}
13524
0
static int dissect_RICqueryHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13525
0
  unsigned offset = 0;
13526
0
  asn1_ctx_t asn1_ctx;
13527
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13528
0
  offset = dissect_e2ap_RICqueryHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICqueryHeader_PDU);
13529
0
  offset += 7; offset >>= 3;
13530
0
  return offset;
13531
0
}
13532
6
static int dissect_RICqueryDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13533
6
  unsigned offset = 0;
13534
6
  asn1_ctx_t asn1_ctx;
13535
6
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13536
6
  offset = dissect_e2ap_RICqueryDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICqueryDefinition_PDU);
13537
6
  offset += 7; offset >>= 3;
13538
6
  return offset;
13539
6
}
13540
1
static int dissect_RICqueryOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13541
1
  unsigned offset = 0;
13542
1
  asn1_ctx_t asn1_ctx;
13543
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13544
1
  offset = dissect_e2ap_RICqueryOutcome(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICqueryOutcome_PDU);
13545
1
  offset += 7; offset >>= 3;
13546
1
  return offset;
13547
1
}
13548
1
static int dissect_TimeToWait_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13549
1
  unsigned offset = 0;
13550
1
  asn1_ctx_t asn1_ctx;
13551
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13552
1
  offset = dissect_e2ap_TimeToWait(tvb, offset, &asn1_ctx, tree, hf_e2ap_TimeToWait_PDU);
13553
1
  offset += 7; offset >>= 3;
13554
1
  return offset;
13555
1
}
13556
2
static int dissect_TNLinformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13557
2
  unsigned offset = 0;
13558
2
  asn1_ctx_t asn1_ctx;
13559
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13560
2
  offset = dissect_e2ap_TNLinformation(tvb, offset, &asn1_ctx, tree, hf_e2ap_TNLinformation_PDU);
13561
2
  offset += 7; offset >>= 3;
13562
2
  return offset;
13563
2
}
13564
1
static int dissect_TransactionID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13565
1
  unsigned offset = 0;
13566
1
  asn1_ctx_t asn1_ctx;
13567
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13568
1
  offset = dissect_e2ap_TransactionID(tvb, offset, &asn1_ctx, tree, hf_e2ap_TransactionID_PDU);
13569
1
  offset += 7; offset >>= 3;
13570
1
  return offset;
13571
1
}
13572
0
static int dissect_RICsubscriptionRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13573
0
  unsigned offset = 0;
13574
0
  asn1_ctx_t asn1_ctx;
13575
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13576
0
  offset = dissect_e2ap_RICsubscriptionRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionRequest_PDU);
13577
0
  offset += 7; offset >>= 3;
13578
0
  return offset;
13579
0
}
13580
0
static int dissect_RICsubscriptionDetails_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13581
0
  unsigned offset = 0;
13582
0
  asn1_ctx_t asn1_ctx;
13583
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13584
0
  offset = dissect_e2ap_RICsubscriptionDetails(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionDetails_PDU);
13585
0
  offset += 7; offset >>= 3;
13586
0
  return offset;
13587
0
}
13588
1
static int dissect_RICaction_ToBeSetup_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13589
1
  unsigned offset = 0;
13590
1
  asn1_ctx_t asn1_ctx;
13591
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13592
1
  offset = dissect_e2ap_RICaction_ToBeSetup_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_ToBeSetup_Item_PDU);
13593
1
  offset += 7; offset >>= 3;
13594
1
  return offset;
13595
1
}
13596
0
static int dissect_RICsubscriptionResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13597
0
  unsigned offset = 0;
13598
0
  asn1_ctx_t asn1_ctx;
13599
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13600
0
  offset = dissect_e2ap_RICsubscriptionResponse(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionResponse_PDU);
13601
0
  offset += 7; offset >>= 3;
13602
0
  return offset;
13603
0
}
13604
0
static int dissect_RICaction_Admitted_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13605
0
  unsigned offset = 0;
13606
0
  asn1_ctx_t asn1_ctx;
13607
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13608
0
  offset = dissect_e2ap_RICaction_Admitted_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_Admitted_List_PDU);
13609
0
  offset += 7; offset >>= 3;
13610
0
  return offset;
13611
0
}
13612
1
static int dissect_RICaction_Admitted_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13613
1
  unsigned offset = 0;
13614
1
  asn1_ctx_t asn1_ctx;
13615
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13616
1
  offset = dissect_e2ap_RICaction_Admitted_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_Admitted_Item_PDU);
13617
1
  offset += 7; offset >>= 3;
13618
1
  return offset;
13619
1
}
13620
0
static int dissect_RICaction_NotAdmitted_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13621
0
  unsigned offset = 0;
13622
0
  asn1_ctx_t asn1_ctx;
13623
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13624
0
  offset = dissect_e2ap_RICaction_NotAdmitted_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_NotAdmitted_List_PDU);
13625
0
  offset += 7; offset >>= 3;
13626
0
  return offset;
13627
0
}
13628
2
static int dissect_RICaction_NotAdmitted_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13629
2
  unsigned offset = 0;
13630
2
  asn1_ctx_t asn1_ctx;
13631
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13632
2
  offset = dissect_e2ap_RICaction_NotAdmitted_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_NotAdmitted_Item_PDU);
13633
2
  offset += 7; offset >>= 3;
13634
2
  return offset;
13635
2
}
13636
0
static int dissect_RICsubscriptionFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13637
0
  unsigned offset = 0;
13638
0
  asn1_ctx_t asn1_ctx;
13639
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13640
0
  offset = dissect_e2ap_RICsubscriptionFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionFailure_PDU);
13641
0
  offset += 7; offset >>= 3;
13642
0
  return offset;
13643
0
}
13644
0
static int dissect_RICsubscriptionDeleteRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13645
0
  unsigned offset = 0;
13646
0
  asn1_ctx_t asn1_ctx;
13647
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13648
0
  offset = dissect_e2ap_RICsubscriptionDeleteRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionDeleteRequest_PDU);
13649
0
  offset += 7; offset >>= 3;
13650
0
  return offset;
13651
0
}
13652
0
static int dissect_RICsubscriptionDeleteResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13653
0
  unsigned offset = 0;
13654
0
  asn1_ctx_t asn1_ctx;
13655
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13656
0
  offset = dissect_e2ap_RICsubscriptionDeleteResponse(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionDeleteResponse_PDU);
13657
0
  offset += 7; offset >>= 3;
13658
0
  return offset;
13659
0
}
13660
1
static int dissect_RICsubscriptionDeleteFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13661
1
  unsigned offset = 0;
13662
1
  asn1_ctx_t asn1_ctx;
13663
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13664
1
  offset = dissect_e2ap_RICsubscriptionDeleteFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionDeleteFailure_PDU);
13665
1
  offset += 7; offset >>= 3;
13666
1
  return offset;
13667
1
}
13668
0
static int dissect_RICsubscriptionDeleteRequired_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13669
0
  unsigned offset = 0;
13670
0
  asn1_ctx_t asn1_ctx;
13671
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13672
0
  offset = dissect_e2ap_RICsubscriptionDeleteRequired(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionDeleteRequired_PDU);
13673
0
  offset += 7; offset >>= 3;
13674
0
  return offset;
13675
0
}
13676
0
static int dissect_RICsubscription_List_withCause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13677
0
  unsigned offset = 0;
13678
0
  asn1_ctx_t asn1_ctx;
13679
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13680
0
  offset = dissect_e2ap_RICsubscription_List_withCause(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscription_List_withCause_PDU);
13681
0
  offset += 7; offset >>= 3;
13682
0
  return offset;
13683
0
}
13684
16
static int dissect_RICsubscription_withCause_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13685
16
  unsigned offset = 0;
13686
16
  asn1_ctx_t asn1_ctx;
13687
16
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13688
16
  offset = dissect_e2ap_RICsubscription_withCause_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscription_withCause_Item_PDU);
13689
16
  offset += 7; offset >>= 3;
13690
16
  return offset;
13691
16
}
13692
0
static int dissect_RICsubscriptionModificationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13693
0
  unsigned offset = 0;
13694
0
  asn1_ctx_t asn1_ctx;
13695
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13696
0
  offset = dissect_e2ap_RICsubscriptionModificationRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionModificationRequest_PDU);
13697
0
  offset += 7; offset >>= 3;
13698
0
  return offset;
13699
0
}
13700
1
static int dissect_RICactions_ToBeRemovedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13701
1
  unsigned offset = 0;
13702
1
  asn1_ctx_t asn1_ctx;
13703
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13704
1
  offset = dissect_e2ap_RICactions_ToBeRemovedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_ToBeRemovedForModification_List_PDU);
13705
1
  offset += 7; offset >>= 3;
13706
1
  return offset;
13707
1
}
13708
0
static int dissect_RICaction_ToBeRemovedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13709
0
  unsigned offset = 0;
13710
0
  asn1_ctx_t asn1_ctx;
13711
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13712
0
  offset = dissect_e2ap_RICaction_ToBeRemovedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_ToBeRemovedForModification_Item_PDU);
13713
0
  offset += 7; offset >>= 3;
13714
0
  return offset;
13715
0
}
13716
1
static int dissect_RICactions_ToBeModifiedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13717
1
  unsigned offset = 0;
13718
1
  asn1_ctx_t asn1_ctx;
13719
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13720
1
  offset = dissect_e2ap_RICactions_ToBeModifiedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_ToBeModifiedForModification_List_PDU);
13721
1
  offset += 7; offset >>= 3;
13722
1
  return offset;
13723
1
}
13724
0
static int dissect_RICaction_ToBeModifiedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13725
0
  unsigned offset = 0;
13726
0
  asn1_ctx_t asn1_ctx;
13727
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13728
0
  offset = dissect_e2ap_RICaction_ToBeModifiedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_ToBeModifiedForModification_Item_PDU);
13729
0
  offset += 7; offset >>= 3;
13730
0
  return offset;
13731
0
}
13732
1
static int dissect_RICactions_ToBeAddedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13733
1
  unsigned offset = 0;
13734
1
  asn1_ctx_t asn1_ctx;
13735
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13736
1
  offset = dissect_e2ap_RICactions_ToBeAddedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_ToBeAddedForModification_List_PDU);
13737
1
  offset += 7; offset >>= 3;
13738
1
  return offset;
13739
1
}
13740
2
static int dissect_RICaction_ToBeAddedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13741
2
  unsigned offset = 0;
13742
2
  asn1_ctx_t asn1_ctx;
13743
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13744
2
  offset = dissect_e2ap_RICaction_ToBeAddedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_ToBeAddedForModification_Item_PDU);
13745
2
  offset += 7; offset >>= 3;
13746
2
  return offset;
13747
2
}
13748
0
static int dissect_RICsubscriptionModificationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13749
0
  unsigned offset = 0;
13750
0
  asn1_ctx_t asn1_ctx;
13751
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13752
0
  offset = dissect_e2ap_RICsubscriptionModificationResponse(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionModificationResponse_PDU);
13753
0
  offset += 7; offset >>= 3;
13754
0
  return offset;
13755
0
}
13756
0
static int dissect_RICactions_RemovedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13757
0
  unsigned offset = 0;
13758
0
  asn1_ctx_t asn1_ctx;
13759
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13760
0
  offset = dissect_e2ap_RICactions_RemovedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_RemovedForModification_List_PDU);
13761
0
  offset += 7; offset >>= 3;
13762
0
  return offset;
13763
0
}
13764
1
static int dissect_RICaction_RemovedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13765
1
  unsigned offset = 0;
13766
1
  asn1_ctx_t asn1_ctx;
13767
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13768
1
  offset = dissect_e2ap_RICaction_RemovedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_RemovedForModification_Item_PDU);
13769
1
  offset += 7; offset >>= 3;
13770
1
  return offset;
13771
1
}
13772
1
static int dissect_RICactions_FailedToBeRemovedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13773
1
  unsigned offset = 0;
13774
1
  asn1_ctx_t asn1_ctx;
13775
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13776
1
  offset = dissect_e2ap_RICactions_FailedToBeRemovedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_FailedToBeRemovedForModification_List_PDU);
13777
1
  offset += 7; offset >>= 3;
13778
1
  return offset;
13779
1
}
13780
2
static int dissect_RICaction_FailedToBeRemovedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13781
2
  unsigned offset = 0;
13782
2
  asn1_ctx_t asn1_ctx;
13783
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13784
2
  offset = dissect_e2ap_RICaction_FailedToBeRemovedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_FailedToBeRemovedForModification_Item_PDU);
13785
2
  offset += 7; offset >>= 3;
13786
2
  return offset;
13787
2
}
13788
0
static int dissect_RICactions_ModifiedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13789
0
  unsigned offset = 0;
13790
0
  asn1_ctx_t asn1_ctx;
13791
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13792
0
  offset = dissect_e2ap_RICactions_ModifiedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_ModifiedForModification_List_PDU);
13793
0
  offset += 7; offset >>= 3;
13794
0
  return offset;
13795
0
}
13796
1
static int dissect_RICaction_ModifiedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13797
1
  unsigned offset = 0;
13798
1
  asn1_ctx_t asn1_ctx;
13799
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13800
1
  offset = dissect_e2ap_RICaction_ModifiedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_ModifiedForModification_Item_PDU);
13801
1
  offset += 7; offset >>= 3;
13802
1
  return offset;
13803
1
}
13804
2
static int dissect_RICactions_FailedToBeModifiedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13805
2
  unsigned offset = 0;
13806
2
  asn1_ctx_t asn1_ctx;
13807
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13808
2
  offset = dissect_e2ap_RICactions_FailedToBeModifiedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_FailedToBeModifiedForModification_List_PDU);
13809
2
  offset += 7; offset >>= 3;
13810
2
  return offset;
13811
2
}
13812
0
static int dissect_RICaction_FailedToBeModifiedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13813
0
  unsigned offset = 0;
13814
0
  asn1_ctx_t asn1_ctx;
13815
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13816
0
  offset = dissect_e2ap_RICaction_FailedToBeModifiedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_FailedToBeModifiedForModification_Item_PDU);
13817
0
  offset += 7; offset >>= 3;
13818
0
  return offset;
13819
0
}
13820
0
static int dissect_RICactions_AddedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13821
0
  unsigned offset = 0;
13822
0
  asn1_ctx_t asn1_ctx;
13823
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13824
0
  offset = dissect_e2ap_RICactions_AddedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_AddedForModification_List_PDU);
13825
0
  offset += 7; offset >>= 3;
13826
0
  return offset;
13827
0
}
13828
3
static int dissect_RICaction_AddedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13829
3
  unsigned offset = 0;
13830
3
  asn1_ctx_t asn1_ctx;
13831
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13832
3
  offset = dissect_e2ap_RICaction_AddedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_AddedForModification_Item_PDU);
13833
3
  offset += 7; offset >>= 3;
13834
3
  return offset;
13835
3
}
13836
0
static int dissect_RICactions_FailedToBeAddedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13837
0
  unsigned offset = 0;
13838
0
  asn1_ctx_t asn1_ctx;
13839
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13840
0
  offset = dissect_e2ap_RICactions_FailedToBeAddedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_FailedToBeAddedForModification_List_PDU);
13841
0
  offset += 7; offset >>= 3;
13842
0
  return offset;
13843
0
}
13844
1
static int dissect_RICaction_FailedToBeAddedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13845
1
  unsigned offset = 0;
13846
1
  asn1_ctx_t asn1_ctx;
13847
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13848
1
  offset = dissect_e2ap_RICaction_FailedToBeAddedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_FailedToBeAddedForModification_Item_PDU);
13849
1
  offset += 7; offset >>= 3;
13850
1
  return offset;
13851
1
}
13852
5
static int dissect_RICsubscriptionModificationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13853
5
  unsigned offset = 0;
13854
5
  asn1_ctx_t asn1_ctx;
13855
5
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13856
5
  offset = dissect_e2ap_RICsubscriptionModificationFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionModificationFailure_PDU);
13857
5
  offset += 7; offset >>= 3;
13858
5
  return offset;
13859
5
}
13860
1
static int dissect_RICsubscriptionModificationRequired_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13861
1
  unsigned offset = 0;
13862
1
  asn1_ctx_t asn1_ctx;
13863
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13864
1
  offset = dissect_e2ap_RICsubscriptionModificationRequired(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionModificationRequired_PDU);
13865
1
  offset += 7; offset >>= 3;
13866
1
  return offset;
13867
1
}
13868
0
static int dissect_RICactions_RequiredToBeModified_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13869
0
  unsigned offset = 0;
13870
0
  asn1_ctx_t asn1_ctx;
13871
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13872
0
  offset = dissect_e2ap_RICactions_RequiredToBeModified_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_RequiredToBeModified_List_PDU);
13873
0
  offset += 7; offset >>= 3;
13874
0
  return offset;
13875
0
}
13876
3
static int dissect_RICaction_RequiredToBeModified_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13877
3
  unsigned offset = 0;
13878
3
  asn1_ctx_t asn1_ctx;
13879
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13880
3
  offset = dissect_e2ap_RICaction_RequiredToBeModified_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_RequiredToBeModified_Item_PDU);
13881
3
  offset += 7; offset >>= 3;
13882
3
  return offset;
13883
3
}
13884
0
static int dissect_RICactions_RequiredToBeRemoved_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13885
0
  unsigned offset = 0;
13886
0
  asn1_ctx_t asn1_ctx;
13887
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13888
0
  offset = dissect_e2ap_RICactions_RequiredToBeRemoved_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_RequiredToBeRemoved_List_PDU);
13889
0
  offset += 7; offset >>= 3;
13890
0
  return offset;
13891
0
}
13892
0
static int dissect_RICaction_RequiredToBeRemoved_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13893
0
  unsigned offset = 0;
13894
0
  asn1_ctx_t asn1_ctx;
13895
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13896
0
  offset = dissect_e2ap_RICaction_RequiredToBeRemoved_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_RequiredToBeRemoved_Item_PDU);
13897
0
  offset += 7; offset >>= 3;
13898
0
  return offset;
13899
0
}
13900
0
static int dissect_RICsubscriptionModificationConfirm_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13901
0
  unsigned offset = 0;
13902
0
  asn1_ctx_t asn1_ctx;
13903
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13904
0
  offset = dissect_e2ap_RICsubscriptionModificationConfirm(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionModificationConfirm_PDU);
13905
0
  offset += 7; offset >>= 3;
13906
0
  return offset;
13907
0
}
13908
2
static int dissect_RICactions_ConfirmedForModification_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13909
2
  unsigned offset = 0;
13910
2
  asn1_ctx_t asn1_ctx;
13911
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13912
2
  offset = dissect_e2ap_RICactions_ConfirmedForModification_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_ConfirmedForModification_List_PDU);
13913
2
  offset += 7; offset >>= 3;
13914
2
  return offset;
13915
2
}
13916
1
static int dissect_RICaction_ConfirmedForModification_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13917
1
  unsigned offset = 0;
13918
1
  asn1_ctx_t asn1_ctx;
13919
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13920
1
  offset = dissect_e2ap_RICaction_ConfirmedForModification_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_ConfirmedForModification_Item_PDU);
13921
1
  offset += 7; offset >>= 3;
13922
1
  return offset;
13923
1
}
13924
0
static int dissect_RICactions_RefusedToBeModified_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13925
0
  unsigned offset = 0;
13926
0
  asn1_ctx_t asn1_ctx;
13927
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13928
0
  offset = dissect_e2ap_RICactions_RefusedToBeModified_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_RefusedToBeModified_List_PDU);
13929
0
  offset += 7; offset >>= 3;
13930
0
  return offset;
13931
0
}
13932
0
static int dissect_RICaction_RefusedToBeModified_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13933
0
  unsigned offset = 0;
13934
0
  asn1_ctx_t asn1_ctx;
13935
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13936
0
  offset = dissect_e2ap_RICaction_RefusedToBeModified_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_RefusedToBeModified_Item_PDU);
13937
0
  offset += 7; offset >>= 3;
13938
0
  return offset;
13939
0
}
13940
1
static int dissect_RICactions_ConfirmedForRemoval_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13941
1
  unsigned offset = 0;
13942
1
  asn1_ctx_t asn1_ctx;
13943
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13944
1
  offset = dissect_e2ap_RICactions_ConfirmedForRemoval_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_ConfirmedForRemoval_List_PDU);
13945
1
  offset += 7; offset >>= 3;
13946
1
  return offset;
13947
1
}
13948
0
static int dissect_RICaction_ConfirmedForRemoval_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13949
0
  unsigned offset = 0;
13950
0
  asn1_ctx_t asn1_ctx;
13951
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13952
0
  offset = dissect_e2ap_RICaction_ConfirmedForRemoval_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_ConfirmedForRemoval_Item_PDU);
13953
0
  offset += 7; offset >>= 3;
13954
0
  return offset;
13955
0
}
13956
1
static int dissect_RICactions_RefusedToBeRemoved_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13957
1
  unsigned offset = 0;
13958
1
  asn1_ctx_t asn1_ctx;
13959
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13960
1
  offset = dissect_e2ap_RICactions_RefusedToBeRemoved_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICactions_RefusedToBeRemoved_List_PDU);
13961
1
  offset += 7; offset >>= 3;
13962
1
  return offset;
13963
1
}
13964
3
static int dissect_RICaction_RefusedToBeRemoved_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13965
3
  unsigned offset = 0;
13966
3
  asn1_ctx_t asn1_ctx;
13967
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13968
3
  offset = dissect_e2ap_RICaction_RefusedToBeRemoved_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICaction_RefusedToBeRemoved_Item_PDU);
13969
3
  offset += 7; offset >>= 3;
13970
3
  return offset;
13971
3
}
13972
0
static int dissect_RICsubscriptionModificationRefuse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13973
0
  unsigned offset = 0;
13974
0
  asn1_ctx_t asn1_ctx;
13975
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13976
0
  offset = dissect_e2ap_RICsubscriptionModificationRefuse(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICsubscriptionModificationRefuse_PDU);
13977
0
  offset += 7; offset >>= 3;
13978
0
  return offset;
13979
0
}
13980
21
static int dissect_RICindication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13981
21
  unsigned offset = 0;
13982
21
  asn1_ctx_t asn1_ctx;
13983
21
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13984
21
  offset = dissect_e2ap_RICindication(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICindication_PDU);
13985
21
  offset += 7; offset >>= 3;
13986
21
  return offset;
13987
21
}
13988
10
static int dissect_RICcontrolRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13989
10
  unsigned offset = 0;
13990
10
  asn1_ctx_t asn1_ctx;
13991
10
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
13992
10
  offset = dissect_e2ap_RICcontrolRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcontrolRequest_PDU);
13993
10
  offset += 7; offset >>= 3;
13994
10
  return offset;
13995
10
}
13996
1
static int dissect_RICcontrolAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
13997
1
  unsigned offset = 0;
13998
1
  asn1_ctx_t asn1_ctx;
13999
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14000
1
  offset = dissect_e2ap_RICcontrolAcknowledge(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcontrolAcknowledge_PDU);
14001
1
  offset += 7; offset >>= 3;
14002
1
  return offset;
14003
1
}
14004
17
static int dissect_RICcontrolFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14005
17
  unsigned offset = 0;
14006
17
  asn1_ctx_t asn1_ctx;
14007
17
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14008
17
  offset = dissect_e2ap_RICcontrolFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICcontrolFailure_PDU);
14009
17
  offset += 7; offset >>= 3;
14010
17
  return offset;
14011
17
}
14012
1
static int dissect_RICQueryRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14013
1
  unsigned offset = 0;
14014
1
  asn1_ctx_t asn1_ctx;
14015
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14016
1
  offset = dissect_e2ap_RICQueryRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICQueryRequest_PDU);
14017
1
  offset += 7; offset >>= 3;
14018
1
  return offset;
14019
1
}
14020
0
static int dissect_RICQueryResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14021
0
  unsigned offset = 0;
14022
0
  asn1_ctx_t asn1_ctx;
14023
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14024
0
  offset = dissect_e2ap_RICQueryResponse(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICQueryResponse_PDU);
14025
0
  offset += 7; offset >>= 3;
14026
0
  return offset;
14027
0
}
14028
0
static int dissect_RICQueryFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14029
0
  unsigned offset = 0;
14030
0
  asn1_ctx_t asn1_ctx;
14031
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14032
0
  offset = dissect_e2ap_RICQueryFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICQueryFailure_PDU);
14033
0
  offset += 7; offset >>= 3;
14034
0
  return offset;
14035
0
}
14036
2
static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14037
2
  unsigned offset = 0;
14038
2
  asn1_ctx_t asn1_ctx;
14039
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14040
2
  offset = dissect_e2ap_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_e2ap_ErrorIndication_PDU);
14041
2
  offset += 7; offset >>= 3;
14042
2
  return offset;
14043
2
}
14044
7
static int dissect_E2setupRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14045
7
  unsigned offset = 0;
14046
7
  asn1_ctx_t asn1_ctx;
14047
7
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14048
7
  offset = dissect_e2ap_E2setupRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2setupRequest_PDU);
14049
7
  offset += 7; offset >>= 3;
14050
7
  return offset;
14051
7
}
14052
0
static int dissect_E2setupResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14053
0
  unsigned offset = 0;
14054
0
  asn1_ctx_t asn1_ctx;
14055
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14056
0
  offset = dissect_e2ap_E2setupResponse(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2setupResponse_PDU);
14057
0
  offset += 7; offset >>= 3;
14058
0
  return offset;
14059
0
}
14060
0
static int dissect_E2setupFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14061
0
  unsigned offset = 0;
14062
0
  asn1_ctx_t asn1_ctx;
14063
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14064
0
  offset = dissect_e2ap_E2setupFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2setupFailure_PDU);
14065
0
  offset += 7; offset >>= 3;
14066
0
  return offset;
14067
0
}
14068
0
static int dissect_E2connectionUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14069
0
  unsigned offset = 0;
14070
0
  asn1_ctx_t asn1_ctx;
14071
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14072
0
  offset = dissect_e2ap_E2connectionUpdate(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionUpdate_PDU);
14073
0
  offset += 7; offset >>= 3;
14074
0
  return offset;
14075
0
}
14076
2
static int dissect_E2connectionUpdate_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14077
2
  unsigned offset = 0;
14078
2
  asn1_ctx_t asn1_ctx;
14079
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14080
2
  offset = dissect_e2ap_E2connectionUpdate_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionUpdate_List_PDU);
14081
2
  offset += 7; offset >>= 3;
14082
2
  return offset;
14083
2
}
14084
1
static int dissect_E2connectionUpdate_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14085
1
  unsigned offset = 0;
14086
1
  asn1_ctx_t asn1_ctx;
14087
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14088
1
  offset = dissect_e2ap_E2connectionUpdate_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionUpdate_Item_PDU);
14089
1
  offset += 7; offset >>= 3;
14090
1
  return offset;
14091
1
}
14092
1
static int dissect_E2connectionUpdateRemove_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14093
1
  unsigned offset = 0;
14094
1
  asn1_ctx_t asn1_ctx;
14095
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14096
1
  offset = dissect_e2ap_E2connectionUpdateRemove_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionUpdateRemove_List_PDU);
14097
1
  offset += 7; offset >>= 3;
14098
1
  return offset;
14099
1
}
14100
3
static int dissect_E2connectionUpdateRemove_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14101
3
  unsigned offset = 0;
14102
3
  asn1_ctx_t asn1_ctx;
14103
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14104
3
  offset = dissect_e2ap_E2connectionUpdateRemove_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionUpdateRemove_Item_PDU);
14105
3
  offset += 7; offset >>= 3;
14106
3
  return offset;
14107
3
}
14108
0
static int dissect_E2connectionUpdateAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14109
0
  unsigned offset = 0;
14110
0
  asn1_ctx_t asn1_ctx;
14111
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14112
0
  offset = dissect_e2ap_E2connectionUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionUpdateAcknowledge_PDU);
14113
0
  offset += 7; offset >>= 3;
14114
0
  return offset;
14115
0
}
14116
0
static int dissect_E2connectionSetupFailed_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14117
0
  unsigned offset = 0;
14118
0
  asn1_ctx_t asn1_ctx;
14119
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14120
0
  offset = dissect_e2ap_E2connectionSetupFailed_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionSetupFailed_List_PDU);
14121
0
  offset += 7; offset >>= 3;
14122
0
  return offset;
14123
0
}
14124
1
static int dissect_E2connectionSetupFailed_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14125
1
  unsigned offset = 0;
14126
1
  asn1_ctx_t asn1_ctx;
14127
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14128
1
  offset = dissect_e2ap_E2connectionSetupFailed_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionSetupFailed_Item_PDU);
14129
1
  offset += 7; offset >>= 3;
14130
1
  return offset;
14131
1
}
14132
0
static int dissect_E2connectionUpdateFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14133
0
  unsigned offset = 0;
14134
0
  asn1_ctx_t asn1_ctx;
14135
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14136
0
  offset = dissect_e2ap_E2connectionUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2connectionUpdateFailure_PDU);
14137
0
  offset += 7; offset >>= 3;
14138
0
  return offset;
14139
0
}
14140
0
static int dissect_E2nodeConfigurationUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14141
0
  unsigned offset = 0;
14142
0
  asn1_ctx_t asn1_ctx;
14143
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14144
0
  offset = dissect_e2ap_E2nodeConfigurationUpdate(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeConfigurationUpdate_PDU);
14145
0
  offset += 7; offset >>= 3;
14146
0
  return offset;
14147
0
}
14148
0
static int dissect_E2nodeComponentConfigAddition_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14149
0
  unsigned offset = 0;
14150
0
  asn1_ctx_t asn1_ctx;
14151
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14152
0
  offset = dissect_e2ap_E2nodeComponentConfigAddition_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigAddition_List_PDU);
14153
0
  offset += 7; offset >>= 3;
14154
0
  return offset;
14155
0
}
14156
7
static int dissect_E2nodeComponentConfigAddition_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14157
7
  unsigned offset = 0;
14158
7
  asn1_ctx_t asn1_ctx;
14159
7
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14160
7
  offset = dissect_e2ap_E2nodeComponentConfigAddition_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigAddition_Item_PDU);
14161
7
  offset += 7; offset >>= 3;
14162
7
  return offset;
14163
7
}
14164
1
static int dissect_E2nodeComponentConfigUpdate_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14165
1
  unsigned offset = 0;
14166
1
  asn1_ctx_t asn1_ctx;
14167
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14168
1
  offset = dissect_e2ap_E2nodeComponentConfigUpdate_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigUpdate_List_PDU);
14169
1
  offset += 7; offset >>= 3;
14170
1
  return offset;
14171
1
}
14172
0
static int dissect_E2nodeComponentConfigUpdate_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14173
0
  unsigned offset = 0;
14174
0
  asn1_ctx_t asn1_ctx;
14175
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14176
0
  offset = dissect_e2ap_E2nodeComponentConfigUpdate_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigUpdate_Item_PDU);
14177
0
  offset += 7; offset >>= 3;
14178
0
  return offset;
14179
0
}
14180
3
static int dissect_E2nodeComponentConfigRemoval_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14181
3
  unsigned offset = 0;
14182
3
  asn1_ctx_t asn1_ctx;
14183
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14184
3
  offset = dissect_e2ap_E2nodeComponentConfigRemoval_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigRemoval_List_PDU);
14185
3
  offset += 7; offset >>= 3;
14186
3
  return offset;
14187
3
}
14188
2
static int dissect_E2nodeComponentConfigRemoval_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14189
2
  unsigned offset = 0;
14190
2
  asn1_ctx_t asn1_ctx;
14191
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14192
2
  offset = dissect_e2ap_E2nodeComponentConfigRemoval_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigRemoval_Item_PDU);
14193
2
  offset += 7; offset >>= 3;
14194
2
  return offset;
14195
2
}
14196
1
static int dissect_E2nodeTNLassociationRemoval_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14197
1
  unsigned offset = 0;
14198
1
  asn1_ctx_t asn1_ctx;
14199
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14200
1
  offset = dissect_e2ap_E2nodeTNLassociationRemoval_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeTNLassociationRemoval_List_PDU);
14201
1
  offset += 7; offset >>= 3;
14202
1
  return offset;
14203
1
}
14204
1
static int dissect_E2nodeTNLassociationRemoval_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14205
1
  unsigned offset = 0;
14206
1
  asn1_ctx_t asn1_ctx;
14207
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14208
1
  offset = dissect_e2ap_E2nodeTNLassociationRemoval_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeTNLassociationRemoval_Item_PDU);
14209
1
  offset += 7; offset >>= 3;
14210
1
  return offset;
14211
1
}
14212
0
static int dissect_E2nodeConfigurationUpdateAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14213
0
  unsigned offset = 0;
14214
0
  asn1_ctx_t asn1_ctx;
14215
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14216
0
  offset = dissect_e2ap_E2nodeConfigurationUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeConfigurationUpdateAcknowledge_PDU);
14217
0
  offset += 7; offset >>= 3;
14218
0
  return offset;
14219
0
}
14220
1
static int dissect_E2nodeComponentConfigAdditionAck_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14221
1
  unsigned offset = 0;
14222
1
  asn1_ctx_t asn1_ctx;
14223
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14224
1
  offset = dissect_e2ap_E2nodeComponentConfigAdditionAck_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigAdditionAck_List_PDU);
14225
1
  offset += 7; offset >>= 3;
14226
1
  return offset;
14227
1
}
14228
1
static int dissect_E2nodeComponentConfigAdditionAck_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14229
1
  unsigned offset = 0;
14230
1
  asn1_ctx_t asn1_ctx;
14231
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14232
1
  offset = dissect_e2ap_E2nodeComponentConfigAdditionAck_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigAdditionAck_Item_PDU);
14233
1
  offset += 7; offset >>= 3;
14234
1
  return offset;
14235
1
}
14236
0
static int dissect_E2nodeComponentConfigUpdateAck_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14237
0
  unsigned offset = 0;
14238
0
  asn1_ctx_t asn1_ctx;
14239
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14240
0
  offset = dissect_e2ap_E2nodeComponentConfigUpdateAck_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigUpdateAck_List_PDU);
14241
0
  offset += 7; offset >>= 3;
14242
0
  return offset;
14243
0
}
14244
1
static int dissect_E2nodeComponentConfigUpdateAck_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14245
1
  unsigned offset = 0;
14246
1
  asn1_ctx_t asn1_ctx;
14247
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14248
1
  offset = dissect_e2ap_E2nodeComponentConfigUpdateAck_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigUpdateAck_Item_PDU);
14249
1
  offset += 7; offset >>= 3;
14250
1
  return offset;
14251
1
}
14252
1
static int dissect_E2nodeComponentConfigRemovalAck_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14253
1
  unsigned offset = 0;
14254
1
  asn1_ctx_t asn1_ctx;
14255
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14256
1
  offset = dissect_e2ap_E2nodeComponentConfigRemovalAck_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigRemovalAck_List_PDU);
14257
1
  offset += 7; offset >>= 3;
14258
1
  return offset;
14259
1
}
14260
1
static int dissect_E2nodeComponentConfigRemovalAck_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14261
1
  unsigned offset = 0;
14262
1
  asn1_ctx_t asn1_ctx;
14263
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14264
1
  offset = dissect_e2ap_E2nodeComponentConfigRemovalAck_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeComponentConfigRemovalAck_Item_PDU);
14265
1
  offset += 7; offset >>= 3;
14266
1
  return offset;
14267
1
}
14268
0
static int dissect_E2nodeConfigurationUpdateFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14269
0
  unsigned offset = 0;
14270
0
  asn1_ctx_t asn1_ctx;
14271
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14272
0
  offset = dissect_e2ap_E2nodeConfigurationUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2nodeConfigurationUpdateFailure_PDU);
14273
0
  offset += 7; offset >>= 3;
14274
0
  return offset;
14275
0
}
14276
6
static int dissect_ResetRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14277
6
  unsigned offset = 0;
14278
6
  asn1_ctx_t asn1_ctx;
14279
6
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14280
6
  offset = dissect_e2ap_ResetRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_ResetRequest_PDU);
14281
6
  offset += 7; offset >>= 3;
14282
6
  return offset;
14283
6
}
14284
2
static int dissect_ResetResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14285
2
  unsigned offset = 0;
14286
2
  asn1_ctx_t asn1_ctx;
14287
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14288
2
  offset = dissect_e2ap_ResetResponse(tvb, offset, &asn1_ctx, tree, hf_e2ap_ResetResponse_PDU);
14289
2
  offset += 7; offset >>= 3;
14290
2
  return offset;
14291
2
}
14292
0
static int dissect_RICserviceUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14293
0
  unsigned offset = 0;
14294
0
  asn1_ctx_t asn1_ctx;
14295
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14296
0
  offset = dissect_e2ap_RICserviceUpdate(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICserviceUpdate_PDU);
14297
0
  offset += 7; offset >>= 3;
14298
0
  return offset;
14299
0
}
14300
2
static int dissect_RANfunctions_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14301
2
  unsigned offset = 0;
14302
2
  asn1_ctx_t asn1_ctx;
14303
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14304
2
  offset = dissect_e2ap_RANfunctions_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RANfunctions_List_PDU);
14305
2
  offset += 7; offset >>= 3;
14306
2
  return offset;
14307
2
}
14308
8
static int dissect_RANfunction_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14309
8
  unsigned offset = 0;
14310
8
  asn1_ctx_t asn1_ctx;
14311
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14312
8
  offset = dissect_e2ap_RANfunction_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RANfunction_Item_PDU);
14313
8
  offset += 7; offset >>= 3;
14314
8
  return offset;
14315
8
}
14316
6
static int dissect_RANfunctionsID_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14317
6
  unsigned offset = 0;
14318
6
  asn1_ctx_t asn1_ctx;
14319
6
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14320
6
  offset = dissect_e2ap_RANfunctionsID_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RANfunctionsID_List_PDU);
14321
6
  offset += 7; offset >>= 3;
14322
6
  return offset;
14323
6
}
14324
1
static int dissect_RANfunctionID_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14325
1
  unsigned offset = 0;
14326
1
  asn1_ctx_t asn1_ctx;
14327
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14328
1
  offset = dissect_e2ap_RANfunctionID_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RANfunctionID_Item_PDU);
14329
1
  offset += 7; offset >>= 3;
14330
1
  return offset;
14331
1
}
14332
0
static int dissect_RICserviceUpdateAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14333
0
  unsigned offset = 0;
14334
0
  asn1_ctx_t asn1_ctx;
14335
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14336
0
  offset = dissect_e2ap_RICserviceUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICserviceUpdateAcknowledge_PDU);
14337
0
  offset += 7; offset >>= 3;
14338
0
  return offset;
14339
0
}
14340
0
static int dissect_RANfunctionsIDcause_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14341
0
  unsigned offset = 0;
14342
0
  asn1_ctx_t asn1_ctx;
14343
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14344
0
  offset = dissect_e2ap_RANfunctionsIDcause_List(tvb, offset, &asn1_ctx, tree, hf_e2ap_RANfunctionsIDcause_List_PDU);
14345
0
  offset += 7; offset >>= 3;
14346
0
  return offset;
14347
0
}
14348
2
static int dissect_RANfunctionIDcause_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14349
2
  unsigned offset = 0;
14350
2
  asn1_ctx_t asn1_ctx;
14351
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14352
2
  offset = dissect_e2ap_RANfunctionIDcause_Item(tvb, offset, &asn1_ctx, tree, hf_e2ap_RANfunctionIDcause_Item_PDU);
14353
2
  offset += 7; offset >>= 3;
14354
2
  return offset;
14355
2
}
14356
0
static int dissect_RICserviceUpdateFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14357
0
  unsigned offset = 0;
14358
0
  asn1_ctx_t asn1_ctx;
14359
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14360
0
  offset = dissect_e2ap_RICserviceUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICserviceUpdateFailure_PDU);
14361
0
  offset += 7; offset >>= 3;
14362
0
  return offset;
14363
0
}
14364
4
static int dissect_RICserviceQuery_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14365
4
  unsigned offset = 0;
14366
4
  asn1_ctx_t asn1_ctx;
14367
4
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14368
4
  offset = dissect_e2ap_RICserviceQuery(tvb, offset, &asn1_ctx, tree, hf_e2ap_RICserviceQuery_PDU);
14369
4
  offset += 7; offset >>= 3;
14370
4
  return offset;
14371
4
}
14372
1
static int dissect_E2RemovalRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14373
1
  unsigned offset = 0;
14374
1
  asn1_ctx_t asn1_ctx;
14375
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14376
1
  offset = dissect_e2ap_E2RemovalRequest(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2RemovalRequest_PDU);
14377
1
  offset += 7; offset >>= 3;
14378
1
  return offset;
14379
1
}
14380
0
static int dissect_E2RemovalResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14381
0
  unsigned offset = 0;
14382
0
  asn1_ctx_t asn1_ctx;
14383
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14384
0
  offset = dissect_e2ap_E2RemovalResponse(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2RemovalResponse_PDU);
14385
0
  offset += 7; offset >>= 3;
14386
0
  return offset;
14387
0
}
14388
0
static int dissect_E2RemovalFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14389
0
  unsigned offset = 0;
14390
0
  asn1_ctx_t asn1_ctx;
14391
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14392
0
  offset = dissect_e2ap_E2RemovalFailure(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2RemovalFailure_PDU);
14393
0
  offset += 7; offset >>= 3;
14394
0
  return offset;
14395
0
}
14396
84
static int dissect_E2AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14397
84
  unsigned offset = 0;
14398
84
  asn1_ctx_t asn1_ctx;
14399
84
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14400
84
  offset = dissect_e2ap_E2AP_PDU(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2AP_PDU_PDU);
14401
84
  offset += 7; offset >>= 3;
14402
84
  return offset;
14403
84
}
14404
0
static int dissect_E2SM_RC_EventTrigger_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14405
0
  unsigned offset = 0;
14406
0
  asn1_ctx_t asn1_ctx;
14407
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14408
0
  offset = dissect_e2ap_E2SM_RC_EventTrigger(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_EventTrigger_PDU);
14409
0
  offset += 7; offset >>= 3;
14410
0
  return offset;
14411
0
}
14412
0
static int dissect_E2SM_RC_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14413
0
  unsigned offset = 0;
14414
0
  asn1_ctx_t asn1_ctx;
14415
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14416
0
  offset = dissect_e2ap_E2SM_RC_ActionDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_ActionDefinition_PDU);
14417
0
  offset += 7; offset >>= 3;
14418
0
  return offset;
14419
0
}
14420
0
static int dissect_E2SM_RC_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14421
0
  unsigned offset = 0;
14422
0
  asn1_ctx_t asn1_ctx;
14423
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14424
0
  offset = dissect_e2ap_E2SM_RC_IndicationHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_IndicationHeader_PDU);
14425
0
  offset += 7; offset >>= 3;
14426
0
  return offset;
14427
0
}
14428
0
static int dissect_E2SM_RC_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14429
0
  unsigned offset = 0;
14430
0
  asn1_ctx_t asn1_ctx;
14431
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14432
0
  offset = dissect_e2ap_E2SM_RC_IndicationMessage(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_IndicationMessage_PDU);
14433
0
  offset += 7; offset >>= 3;
14434
0
  return offset;
14435
0
}
14436
0
static int dissect_E2SM_RC_CallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14437
0
  unsigned offset = 0;
14438
0
  asn1_ctx_t asn1_ctx;
14439
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14440
0
  offset = dissect_e2ap_E2SM_RC_CallProcessID(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_CallProcessID_PDU);
14441
0
  offset += 7; offset >>= 3;
14442
0
  return offset;
14443
0
}
14444
0
static int dissect_E2SM_RC_ControlHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14445
0
  unsigned offset = 0;
14446
0
  asn1_ctx_t asn1_ctx;
14447
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14448
0
  offset = dissect_e2ap_E2SM_RC_ControlHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_ControlHeader_PDU);
14449
0
  offset += 7; offset >>= 3;
14450
0
  return offset;
14451
0
}
14452
0
static int dissect_E2SM_RC_ControlMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14453
0
  unsigned offset = 0;
14454
0
  asn1_ctx_t asn1_ctx;
14455
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14456
0
  offset = dissect_e2ap_E2SM_RC_ControlMessage(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_ControlMessage_PDU);
14457
0
  offset += 7; offset >>= 3;
14458
0
  return offset;
14459
0
}
14460
0
static int dissect_E2SM_RC_ControlOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14461
0
  unsigned offset = 0;
14462
0
  asn1_ctx_t asn1_ctx;
14463
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14464
0
  offset = dissect_e2ap_E2SM_RC_ControlOutcome(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_ControlOutcome_PDU);
14465
0
  offset += 7; offset >>= 3;
14466
0
  return offset;
14467
0
}
14468
0
static int dissect_E2SM_RC_RANFunctionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14469
0
  unsigned offset = 0;
14470
0
  asn1_ctx_t asn1_ctx;
14471
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14472
0
  offset = dissect_e2ap_E2SM_RC_RANFunctionDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_RC_RANFunctionDefinition_PDU);
14473
0
  offset += 7; offset >>= 3;
14474
0
  return offset;
14475
0
}
14476
0
static int dissect_E2SM_KPM_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14477
0
  unsigned offset = 0;
14478
0
  asn1_ctx_t asn1_ctx;
14479
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14480
0
  offset = dissect_e2ap_E2SM_KPM_EventTriggerDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_KPM_EventTriggerDefinition_PDU);
14481
0
  offset += 7; offset >>= 3;
14482
0
  return offset;
14483
0
}
14484
0
static int dissect_E2SM_KPM_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14485
0
  unsigned offset = 0;
14486
0
  asn1_ctx_t asn1_ctx;
14487
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14488
0
  offset = dissect_e2ap_E2SM_KPM_ActionDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_KPM_ActionDefinition_PDU);
14489
0
  offset += 7; offset >>= 3;
14490
0
  return offset;
14491
0
}
14492
0
static int dissect_E2SM_KPM_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14493
0
  unsigned offset = 0;
14494
0
  asn1_ctx_t asn1_ctx;
14495
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14496
0
  offset = dissect_e2ap_E2SM_KPM_IndicationHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_KPM_IndicationHeader_PDU);
14497
0
  offset += 7; offset >>= 3;
14498
0
  return offset;
14499
0
}
14500
0
static int dissect_E2SM_KPM_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14501
0
  unsigned offset = 0;
14502
0
  asn1_ctx_t asn1_ctx;
14503
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14504
0
  offset = dissect_e2ap_E2SM_KPM_IndicationMessage(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_KPM_IndicationMessage_PDU);
14505
0
  offset += 7; offset >>= 3;
14506
0
  return offset;
14507
0
}
14508
0
static int dissect_E2SM_KPM_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14509
0
  unsigned offset = 0;
14510
0
  asn1_ctx_t asn1_ctx;
14511
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14512
0
  offset = dissect_e2ap_E2SM_KPM_RANfunction_Description(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_KPM_RANfunction_Description_PDU);
14513
0
  offset += 7; offset >>= 3;
14514
0
  return offset;
14515
0
}
14516
0
static int dissect_E2SM_NI_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14517
0
  unsigned offset = 0;
14518
0
  asn1_ctx_t asn1_ctx;
14519
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14520
0
  offset = dissect_e2ap_E2SM_NI_EventTriggerDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_EventTriggerDefinition_PDU);
14521
0
  offset += 7; offset >>= 3;
14522
0
  return offset;
14523
0
}
14524
0
static int dissect_E2SM_NI_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14525
0
  unsigned offset = 0;
14526
0
  asn1_ctx_t asn1_ctx;
14527
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14528
0
  offset = dissect_e2ap_E2SM_NI_ActionDefinition(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_ActionDefinition_PDU);
14529
0
  offset += 7; offset >>= 3;
14530
0
  return offset;
14531
0
}
14532
0
static int dissect_E2SM_NI_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14533
0
  unsigned offset = 0;
14534
0
  asn1_ctx_t asn1_ctx;
14535
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14536
0
  offset = dissect_e2ap_E2SM_NI_IndicationHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_IndicationHeader_PDU);
14537
0
  offset += 7; offset >>= 3;
14538
0
  return offset;
14539
0
}
14540
0
static int dissect_E2SM_NI_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14541
0
  unsigned offset = 0;
14542
0
  asn1_ctx_t asn1_ctx;
14543
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14544
0
  offset = dissect_e2ap_E2SM_NI_IndicationMessage(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_IndicationMessage_PDU);
14545
0
  offset += 7; offset >>= 3;
14546
0
  return offset;
14547
0
}
14548
0
static int dissect_E2SM_NI_CallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14549
0
  unsigned offset = 0;
14550
0
  asn1_ctx_t asn1_ctx;
14551
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14552
0
  offset = dissect_e2ap_E2SM_NI_CallProcessID(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_CallProcessID_PDU);
14553
0
  offset += 7; offset >>= 3;
14554
0
  return offset;
14555
0
}
14556
0
static int dissect_E2SM_NI_ControlHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14557
0
  unsigned offset = 0;
14558
0
  asn1_ctx_t asn1_ctx;
14559
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14560
0
  offset = dissect_e2ap_E2SM_NI_ControlHeader(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_ControlHeader_PDU);
14561
0
  offset += 7; offset >>= 3;
14562
0
  return offset;
14563
0
}
14564
0
static int dissect_E2SM_NI_ControlMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14565
0
  unsigned offset = 0;
14566
0
  asn1_ctx_t asn1_ctx;
14567
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14568
0
  offset = dissect_e2ap_E2SM_NI_ControlMessage(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_ControlMessage_PDU);
14569
0
  offset += 7; offset >>= 3;
14570
0
  return offset;
14571
0
}
14572
0
static int dissect_E2SM_NI_ControlOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14573
0
  unsigned offset = 0;
14574
0
  asn1_ctx_t asn1_ctx;
14575
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14576
0
  offset = dissect_e2ap_E2SM_NI_ControlOutcome(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_ControlOutcome_PDU);
14577
0
  offset += 7; offset >>= 3;
14578
0
  return offset;
14579
0
}
14580
0
static int dissect_E2SM_NI_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14581
0
  unsigned offset = 0;
14582
0
  asn1_ctx_t asn1_ctx;
14583
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14584
0
  offset = dissect_e2ap_E2SM_NI_RANfunction_Description(tvb, offset, &asn1_ctx, tree, hf_e2ap_E2SM_NI_RANfunction_Description_PDU);
14585
0
  offset += 7; offset >>= 3;
14586
0
  return offset;
14587
0
}
14588
14589
14590
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
14591
405
{
14592
405
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
14593
405
  return (dissector_try_uint_with_data(e2ap_ies_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
14594
405
}
14595
14596
14597
14598
/* Currently not used
14599
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
14600
{
14601
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
14602
14603
  return (dissector_try_uint(e2ap_ies_p1_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
14604
}
14605
14606
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
14607
{
14608
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
14609
14610
  return (dissector_try_uint(e2ap_ies_p2_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
14611
}
14612
*/
14613
14614
14615
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
14616
54
{
14617
54
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
14618
14619
54
  return (dissector_try_uint_with_data(e2ap_proc_imsg_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, true, data)) ? tvb_captured_length(tvb) : 0;
14620
54
}
14621
14622
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
14623
4
{
14624
4
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
14625
14626
4
  return (dissector_try_uint_with_data(e2ap_proc_sout_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, true, data)) ? tvb_captured_length(tvb) : 0;
14627
4
}
14628
14629
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
14630
25
{
14631
25
  struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
14632
14633
25
  return (dissector_try_uint_with_data(e2ap_proc_uout_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, true, data)) ? tvb_captured_length(tvb) : 0;
14634
25
}
14635
14636
14637
static void set_stats_message_type(packet_info *pinfo, int type)
14638
72
{
14639
72
    struct e2ap_private_data* priv_data = e2ap_get_private_data(pinfo);
14640
72
    priv_data->stats_tap->e2ap_mtype = type;
14641
72
}
14642
14643
static void
14644
e2ap_stats_tree_init(stats_tree *st)
14645
0
{
14646
0
    st_node_packets =      stats_tree_create_node(st, st_str_packets, 0, STAT_DT_INT, true);
14647
0
    st_node_packet_types = stats_tree_create_pivot(st, st_str_packet_types, st_node_packets);
14648
0
}
14649
14650
static tap_packet_status
14651
e2ap_stats_tree_packet(stats_tree* st, packet_info* pinfo,
14652
                       epan_dissect_t* edt _U_ , const void* p, tap_flags_t flags _U_)
14653
0
{
14654
0
    const struct e2ap_tap_t *pi = (const struct e2ap_tap_t *)p;
14655
14656
0
    tick_stat_node(st, st_str_packets, 0, false);
14657
0
    stats_tree_tick_pivot(st, st_node_packet_types,
14658
0
                          val_to_str(pinfo->pool, pi->e2ap_mtype, mtype_names,
14659
0
                                     "Unknown packet type (%d)"));
14660
0
    return TAP_PACKET_REDRAW;
14661
0
}
14662
14663
14664
/* Main dissection function */
14665
static int
14666
dissect_e2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
14667
84
{
14668
84
  proto_item *e2ap_item = NULL;
14669
84
  proto_tree *e2ap_tree = NULL;
14670
14671
84
  struct e2ap_tap_t *tap_info;
14672
14673
  /* make entry in the Protocol column on summary display */
14674
84
  col_set_str(pinfo->cinfo, COL_PROTOCOL, "E2AP");
14675
84
  col_clear(pinfo->cinfo, COL_INFO);
14676
14677
84
  tap_info = wmem_new(pinfo->pool, struct e2ap_tap_t);
14678
84
  tap_info->e2ap_mtype = 0; /* unknown/invalid */
14679
14680
  /* Add stats tap to private struct */
14681
84
  struct e2ap_private_data *priv_data = e2ap_get_private_data(pinfo);
14682
84
  priv_data->stats_tap = tap_info;
14683
14684
  /* create the e2ap protocol tree */
14685
84
  e2ap_item = proto_tree_add_item(tree, proto_e2ap, tvb, 0, -1, ENC_NA);
14686
84
  e2ap_tree = proto_item_add_subtree(e2ap_item, ett_e2ap);
14687
14688
  /* Store top-level tree */
14689
84
  priv_data->top_tree = e2ap_tree;
14690
14691
84
  dissect_E2AP_PDU_PDU(tvb, pinfo, e2ap_tree, NULL);
14692
14693
84
  tap_queue_packet(e2ap_tap, pinfo, tap_info);
14694
84
  return tvb_captured_length(tvb);
14695
84
}
14696
14697
14698
static void e2ap_init_protocol(void)
14699
16
{
14700
16
  memset(&s_gnb_ran_functions_table, 0, sizeof(s_gnb_ran_functions_table));
14701
16
}
14702
14703
14704
/*--- proto_reg_handoff_e2ap ---------------------------------------*/
14705
void
14706
proto_reg_handoff_e2ap(void)
14707
16
{
14708
16
  dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E2AP, e2ap_handle);
14709
16
  dissector_add_uint("sctp.ppi", E2_CP_PROTOCOL_ID, e2ap_handle);
14710
16
  dissector_add_uint("sctp.ppi", E2_UP_PROTOCOL_ID, e2ap_handle);
14711
16
  dissector_add_uint("sctp.ppi", E2_DU_PROTOCOL_ID, e2ap_handle);
14712
14713
16
  dissector_add_uint("e2ap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_e2ap));
14714
16
  dissector_add_uint("e2ap.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_e2ap));
14715
16
  dissector_add_uint("e2ap.ies", id_GlobalE2node_ID, create_dissector_handle(dissect_GlobalE2node_ID_PDU, proto_e2ap));
14716
16
  dissector_add_uint("e2ap.ies", id_GlobalRIC_ID, create_dissector_handle(dissect_GlobalRIC_ID_PDU, proto_e2ap));
14717
16
  dissector_add_uint("e2ap.ies", id_RANfunctionID, create_dissector_handle(dissect_RANfunctionID_PDU, proto_e2ap));
14718
16
  dissector_add_uint("e2ap.ies", id_RANfunctionID_Item, create_dissector_handle(dissect_RANfunctionID_Item_PDU, proto_e2ap));
14719
16
  dissector_add_uint("e2ap.ies", id_RANfunctionIEcause_Item, create_dissector_handle(dissect_RANfunctionIDcause_Item_PDU, proto_e2ap));
14720
16
  dissector_add_uint("e2ap.ies", id_RANfunction_Item, create_dissector_handle(dissect_RANfunction_Item_PDU, proto_e2ap));
14721
16
  dissector_add_uint("e2ap.ies", id_RANfunctionsAccepted, create_dissector_handle(dissect_RANfunctionsID_List_PDU, proto_e2ap));
14722
16
  dissector_add_uint("e2ap.ies", id_RANfunctionsAdded, create_dissector_handle(dissect_RANfunctions_List_PDU, proto_e2ap));
14723
16
  dissector_add_uint("e2ap.ies", id_RANfunctionsDeleted, create_dissector_handle(dissect_RANfunctionsID_List_PDU, proto_e2ap));
14724
16
  dissector_add_uint("e2ap.ies", id_RANfunctionsModified, create_dissector_handle(dissect_RANfunctions_List_PDU, proto_e2ap));
14725
16
  dissector_add_uint("e2ap.ies", id_RANfunctionsRejected, create_dissector_handle(dissect_RANfunctionsIDcause_List_PDU, proto_e2ap));
14726
16
  dissector_add_uint("e2ap.ies", id_RICaction_Admitted_Item, create_dissector_handle(dissect_RICaction_Admitted_Item_PDU, proto_e2ap));
14727
16
  dissector_add_uint("e2ap.ies", id_RICactionID, create_dissector_handle(dissect_RICactionID_PDU, proto_e2ap));
14728
16
  dissector_add_uint("e2ap.ies", id_RICaction_NotAdmitted_Item, create_dissector_handle(dissect_RICaction_NotAdmitted_Item_PDU, proto_e2ap));
14729
16
  dissector_add_uint("e2ap.ies", id_RICactions_Admitted, create_dissector_handle(dissect_RICaction_Admitted_List_PDU, proto_e2ap));
14730
16
  dissector_add_uint("e2ap.ies", id_RICaction_ToBeSetup_Item, create_dissector_handle(dissect_RICaction_ToBeSetup_Item_PDU, proto_e2ap));
14731
16
  dissector_add_uint("e2ap.ies", id_RICcallProcessID, create_dissector_handle(dissect_RICcallProcessID_PDU, proto_e2ap));
14732
16
  dissector_add_uint("e2ap.ies", id_RICactions_NotAdmitted, create_dissector_handle(dissect_RICaction_NotAdmitted_List_PDU, proto_e2ap));
14733
16
  dissector_add_uint("e2ap.ies", id_RICcontrolAckRequest, create_dissector_handle(dissect_RICcontrolAckRequest_PDU, proto_e2ap));
14734
16
  dissector_add_uint("e2ap.ies", id_RICcontrolHeader, create_dissector_handle(dissect_RICcontrolHeader_PDU, proto_e2ap));
14735
16
  dissector_add_uint("e2ap.ies", id_RICcontrolMessage, create_dissector_handle(dissect_RICcontrolMessage_PDU, proto_e2ap));
14736
16
  dissector_add_uint("e2ap.ies", id_RICcontrolOutcome, create_dissector_handle(dissect_RICcontrolOutcome_PDU, proto_e2ap));
14737
16
  dissector_add_uint("e2ap.ies", id_RICindicationHeader, create_dissector_handle(dissect_RICindicationHeader_PDU, proto_e2ap));
14738
16
  dissector_add_uint("e2ap.ies", id_RICindicationMessage, create_dissector_handle(dissect_RICindicationMessage_PDU, proto_e2ap));
14739
16
  dissector_add_uint("e2ap.ies", id_RICindicationSN, create_dissector_handle(dissect_RICindicationSN_PDU, proto_e2ap));
14740
16
  dissector_add_uint("e2ap.ies", id_RICindicationType, create_dissector_handle(dissect_RICindicationType_PDU, proto_e2ap));
14741
16
  dissector_add_uint("e2ap.ies", id_RICrequestID, create_dissector_handle(dissect_RICrequestID_PDU, proto_e2ap));
14742
16
  dissector_add_uint("e2ap.ies", id_RICsubscriptionDetails, create_dissector_handle(dissect_RICsubscriptionDetails_PDU, proto_e2ap));
14743
16
  dissector_add_uint("e2ap.ies", id_TimeToWait, create_dissector_handle(dissect_TimeToWait_PDU, proto_e2ap));
14744
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigUpdate, create_dissector_handle(dissect_E2nodeComponentConfigUpdate_List_PDU, proto_e2ap));
14745
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigUpdate_Item, create_dissector_handle(dissect_E2nodeComponentConfigUpdate_Item_PDU, proto_e2ap));
14746
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigUpdateAck, create_dissector_handle(dissect_E2nodeComponentConfigUpdateAck_List_PDU, proto_e2ap));
14747
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigUpdateAck_Item, create_dissector_handle(dissect_E2nodeComponentConfigUpdateAck_Item_PDU, proto_e2ap));
14748
16
  dissector_add_uint("e2ap.ies", id_E2connectionSetup, create_dissector_handle(dissect_E2connectionUpdate_List_PDU, proto_e2ap));
14749
16
  dissector_add_uint("e2ap.ies", id_E2connectionSetupFailed, create_dissector_handle(dissect_E2connectionSetupFailed_List_PDU, proto_e2ap));
14750
16
  dissector_add_uint("e2ap.ies", id_E2connectionSetupFailed_Item, create_dissector_handle(dissect_E2connectionSetupFailed_Item_PDU, proto_e2ap));
14751
16
  dissector_add_uint("e2ap.ies", id_E2connectionUpdate_Item, create_dissector_handle(dissect_E2connectionUpdate_Item_PDU, proto_e2ap));
14752
16
  dissector_add_uint("e2ap.ies", id_E2connectionUpdateAdd, create_dissector_handle(dissect_E2connectionUpdate_List_PDU, proto_e2ap));
14753
16
  dissector_add_uint("e2ap.ies", id_E2connectionUpdateModify, create_dissector_handle(dissect_E2connectionUpdate_List_PDU, proto_e2ap));
14754
16
  dissector_add_uint("e2ap.ies", id_E2connectionUpdateRemove, create_dissector_handle(dissect_E2connectionUpdateRemove_List_PDU, proto_e2ap));
14755
16
  dissector_add_uint("e2ap.ies", id_E2connectionUpdateRemove_Item, create_dissector_handle(dissect_E2connectionUpdateRemove_Item_PDU, proto_e2ap));
14756
16
  dissector_add_uint("e2ap.ies", id_TNLinformation, create_dissector_handle(dissect_TNLinformation_PDU, proto_e2ap));
14757
16
  dissector_add_uint("e2ap.ies", id_TransactionID, create_dissector_handle(dissect_TransactionID_PDU, proto_e2ap));
14758
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigAddition, create_dissector_handle(dissect_E2nodeComponentConfigAddition_List_PDU, proto_e2ap));
14759
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigAddition_Item, create_dissector_handle(dissect_E2nodeComponentConfigAddition_Item_PDU, proto_e2ap));
14760
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigAdditionAck, create_dissector_handle(dissect_E2nodeComponentConfigAdditionAck_List_PDU, proto_e2ap));
14761
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigAdditionAck_Item, create_dissector_handle(dissect_E2nodeComponentConfigAdditionAck_Item_PDU, proto_e2ap));
14762
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigRemoval, create_dissector_handle(dissect_E2nodeComponentConfigRemoval_List_PDU, proto_e2ap));
14763
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigRemoval_Item, create_dissector_handle(dissect_E2nodeComponentConfigRemoval_Item_PDU, proto_e2ap));
14764
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigRemovalAck, create_dissector_handle(dissect_E2nodeComponentConfigRemovalAck_List_PDU, proto_e2ap));
14765
16
  dissector_add_uint("e2ap.ies", id_E2nodeComponentConfigRemovalAck_Item, create_dissector_handle(dissect_E2nodeComponentConfigRemovalAck_Item_PDU, proto_e2ap));
14766
16
  dissector_add_uint("e2ap.ies", id_E2nodeTNLassociationRemoval, create_dissector_handle(dissect_E2nodeTNLassociationRemoval_List_PDU, proto_e2ap));
14767
16
  dissector_add_uint("e2ap.ies", id_E2nodeTNLassociationRemoval_Item, create_dissector_handle(dissect_E2nodeTNLassociationRemoval_Item_PDU, proto_e2ap));
14768
16
  dissector_add_uint("e2ap.ies", id_RICsubscriptionToBeRemoved, create_dissector_handle(dissect_RICsubscription_List_withCause_PDU, proto_e2ap));
14769
16
  dissector_add_uint("e2ap.ies", id_RICsubscription_withCause_Item, create_dissector_handle(dissect_RICsubscription_withCause_Item_PDU, proto_e2ap));
14770
16
  dissector_add_uint("e2ap.ies", id_RICsubscriptionStartTime, create_dissector_handle(dissect_RICsubscriptionTime_PDU, proto_e2ap));
14771
16
  dissector_add_uint("e2ap.ies", id_RICsubscriptionEndTime, create_dissector_handle(dissect_RICsubscriptionTime_PDU, proto_e2ap));
14772
16
  dissector_add_uint("e2ap.ies", id_RICeventTriggerDefinitionToBeModified, create_dissector_handle(dissect_RICeventTriggerDefinition_PDU, proto_e2ap));
14773
16
  dissector_add_uint("e2ap.ies", id_RICactionsToBeRemovedForModification_List, create_dissector_handle(dissect_RICactions_ToBeRemovedForModification_List_PDU, proto_e2ap));
14774
16
  dissector_add_uint("e2ap.ies", id_RICaction_ToBeRemovedForModification_Item, create_dissector_handle(dissect_RICaction_ToBeRemovedForModification_Item_PDU, proto_e2ap));
14775
16
  dissector_add_uint("e2ap.ies", id_RICactionsToBeModifiedForModification_List, create_dissector_handle(dissect_RICactions_ToBeModifiedForModification_List_PDU, proto_e2ap));
14776
16
  dissector_add_uint("e2ap.ies", id_RICaction_ToBeModifiedForModification_Item, create_dissector_handle(dissect_RICaction_ToBeModifiedForModification_Item_PDU, proto_e2ap));
14777
16
  dissector_add_uint("e2ap.ies", id_RICactionsToBeAddedForModification_List, create_dissector_handle(dissect_RICactions_ToBeAddedForModification_List_PDU, proto_e2ap));
14778
16
  dissector_add_uint("e2ap.ies", id_RICaction_ToBeAddedForModification_Item, create_dissector_handle(dissect_RICaction_ToBeAddedForModification_Item_PDU, proto_e2ap));
14779
16
  dissector_add_uint("e2ap.ies", id_RICactionsRemovedForModification_List, create_dissector_handle(dissect_RICactions_RemovedForModification_List_PDU, proto_e2ap));
14780
16
  dissector_add_uint("e2ap.ies", id_RICaction_RemovedForModification_Item, create_dissector_handle(dissect_RICaction_RemovedForModification_Item_PDU, proto_e2ap));
14781
16
  dissector_add_uint("e2ap.ies", id_RICactionsFailedToBeRemovedForModification_List, create_dissector_handle(dissect_RICactions_FailedToBeRemovedForModification_List_PDU, proto_e2ap));
14782
16
  dissector_add_uint("e2ap.ies", id_RICaction_FailedToBeRemovedForModification_Item, create_dissector_handle(dissect_RICaction_FailedToBeRemovedForModification_Item_PDU, proto_e2ap));
14783
16
  dissector_add_uint("e2ap.ies", id_RICactionsModifiedForModification_List, create_dissector_handle(dissect_RICactions_ModifiedForModification_List_PDU, proto_e2ap));
14784
16
  dissector_add_uint("e2ap.ies", id_RICaction_ModifiedForModification_Item, create_dissector_handle(dissect_RICaction_ModifiedForModification_Item_PDU, proto_e2ap));
14785
16
  dissector_add_uint("e2ap.ies", id_RICactionsFailedToBeModifiedForModification_List, create_dissector_handle(dissect_RICactions_FailedToBeModifiedForModification_List_PDU, proto_e2ap));
14786
16
  dissector_add_uint("e2ap.ies", id_RICaction_FailedToBeModifiedForModification_Item, create_dissector_handle(dissect_RICaction_FailedToBeModifiedForModification_Item_PDU, proto_e2ap));
14787
16
  dissector_add_uint("e2ap.ies", id_RICactionsAddedForModification_List, create_dissector_handle(dissect_RICactions_AddedForModification_List_PDU, proto_e2ap));
14788
16
  dissector_add_uint("e2ap.ies", id_RICaction_AddedForModification_Item, create_dissector_handle(dissect_RICaction_AddedForModification_Item_PDU, proto_e2ap));
14789
16
  dissector_add_uint("e2ap.ies", id_RICactionsFailedToBeAddedForModification_List, create_dissector_handle(dissect_RICactions_FailedToBeAddedForModification_List_PDU, proto_e2ap));
14790
16
  dissector_add_uint("e2ap.ies", id_RICaction_FailedToBeAddedForModification_Item, create_dissector_handle(dissect_RICaction_FailedToBeAddedForModification_Item_PDU, proto_e2ap));
14791
16
  dissector_add_uint("e2ap.ies", id_RICactionsRequiredToBeModified_List, create_dissector_handle(dissect_RICactions_RequiredToBeModified_List_PDU, proto_e2ap));
14792
16
  dissector_add_uint("e2ap.ies", id_RICaction_RequiredToBeModified_Item, create_dissector_handle(dissect_RICaction_RequiredToBeModified_Item_PDU, proto_e2ap));
14793
16
  dissector_add_uint("e2ap.ies", id_RICactionsRequiredToBeRemoved_List, create_dissector_handle(dissect_RICactions_RequiredToBeRemoved_List_PDU, proto_e2ap));
14794
16
  dissector_add_uint("e2ap.ies", id_RICaction_RequiredToBeRemoved_Item, create_dissector_handle(dissect_RICaction_RequiredToBeRemoved_Item_PDU, proto_e2ap));
14795
16
  dissector_add_uint("e2ap.ies", id_RICactionsConfirmedForModification_List, create_dissector_handle(dissect_RICactions_ConfirmedForModification_List_PDU, proto_e2ap));
14796
16
  dissector_add_uint("e2ap.ies", id_RICaction_ConfirmedForModification_Item, create_dissector_handle(dissect_RICaction_ConfirmedForModification_Item_PDU, proto_e2ap));
14797
16
  dissector_add_uint("e2ap.ies", id_RICactionsRefusedToBeModified_List, create_dissector_handle(dissect_RICactions_RefusedToBeModified_List_PDU, proto_e2ap));
14798
16
  dissector_add_uint("e2ap.ies", id_RICaction_RefusedToBeModified_Item, create_dissector_handle(dissect_RICaction_RefusedToBeModified_Item_PDU, proto_e2ap));
14799
16
  dissector_add_uint("e2ap.ies", id_RICactionsConfirmedForRemoval_List, create_dissector_handle(dissect_RICactions_ConfirmedForRemoval_List_PDU, proto_e2ap));
14800
16
  dissector_add_uint("e2ap.ies", id_RICaction_ConfirmedForRemoval_Item, create_dissector_handle(dissect_RICaction_ConfirmedForRemoval_Item_PDU, proto_e2ap));
14801
16
  dissector_add_uint("e2ap.ies", id_RICactionsRefusedToBeRemoved_List, create_dissector_handle(dissect_RICactions_RefusedToBeRemoved_List_PDU, proto_e2ap));
14802
16
  dissector_add_uint("e2ap.ies", id_RICaction_RefusedToBeRemoved_Item, create_dissector_handle(dissect_RICaction_RefusedToBeRemoved_Item_PDU, proto_e2ap));
14803
16
  dissector_add_uint("e2ap.ies", id_RICqueryHeader, create_dissector_handle(dissect_RICqueryHeader_PDU, proto_e2ap));
14804
16
  dissector_add_uint("e2ap.ies", id_RICqueryDefinition, create_dissector_handle(dissect_RICqueryDefinition_PDU, proto_e2ap));
14805
16
  dissector_add_uint("e2ap.ies", id_RICqueryOutcome, create_dissector_handle(dissect_RICqueryOutcome_PDU, proto_e2ap));
14806
16
  dissector_add_uint("e2ap.proc.imsg", id_E2connectionUpdate, create_dissector_handle(dissect_E2connectionUpdate_PDU, proto_e2ap));
14807
16
  dissector_add_uint("e2ap.proc.sout", id_E2connectionUpdate, create_dissector_handle(dissect_E2connectionUpdateAcknowledge_PDU, proto_e2ap));
14808
16
  dissector_add_uint("e2ap.proc.uout", id_E2connectionUpdate, create_dissector_handle(dissect_E2connectionUpdateFailure_PDU, proto_e2ap));
14809
16
  dissector_add_uint("e2ap.proc.imsg", id_E2nodeConfigurationUpdate, create_dissector_handle(dissect_E2nodeConfigurationUpdate_PDU, proto_e2ap));
14810
16
  dissector_add_uint("e2ap.proc.sout", id_E2nodeConfigurationUpdate, create_dissector_handle(dissect_E2nodeConfigurationUpdateAcknowledge_PDU, proto_e2ap));
14811
16
  dissector_add_uint("e2ap.proc.uout", id_E2nodeConfigurationUpdate, create_dissector_handle(dissect_E2nodeConfigurationUpdateFailure_PDU, proto_e2ap));
14812
16
  dissector_add_uint("e2ap.proc.uout", id_E2setup, create_dissector_handle(dissect_E2setupFailure_PDU, proto_e2ap));
14813
16
  dissector_add_uint("e2ap.proc.imsg", id_E2setup, create_dissector_handle(dissect_E2setupRequest_PDU, proto_e2ap));
14814
16
  dissector_add_uint("e2ap.proc.sout", id_E2setup, create_dissector_handle(dissect_E2setupResponse_PDU, proto_e2ap));
14815
16
  dissector_add_uint("e2ap.proc.imsg", id_ErrorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_e2ap));
14816
16
  dissector_add_uint("e2ap.proc.imsg", id_Reset, create_dissector_handle(dissect_ResetRequest_PDU, proto_e2ap));
14817
16
  dissector_add_uint("e2ap.proc.sout", id_Reset, create_dissector_handle(dissect_ResetResponse_PDU, proto_e2ap));
14818
16
  dissector_add_uint("e2ap.proc.sout", id_RICcontrol, create_dissector_handle(dissect_RICcontrolAcknowledge_PDU, proto_e2ap));
14819
16
  dissector_add_uint("e2ap.proc.uout", id_RICcontrol, create_dissector_handle(dissect_RICcontrolFailure_PDU, proto_e2ap));
14820
16
  dissector_add_uint("e2ap.proc.imsg", id_RICcontrol, create_dissector_handle(dissect_RICcontrolRequest_PDU, proto_e2ap));
14821
16
  dissector_add_uint("e2ap.proc.imsg", id_RICindication, create_dissector_handle(dissect_RICindication_PDU, proto_e2ap));
14822
16
  dissector_add_uint("e2ap.proc.imsg", id_RICserviceQuery, create_dissector_handle(dissect_RICserviceQuery_PDU, proto_e2ap));
14823
16
  dissector_add_uint("e2ap.proc.imsg", id_RICserviceUpdate, create_dissector_handle(dissect_RICserviceUpdate_PDU, proto_e2ap));
14824
16
  dissector_add_uint("e2ap.proc.sout", id_RICserviceUpdate, create_dissector_handle(dissect_RICserviceUpdateAcknowledge_PDU, proto_e2ap));
14825
16
  dissector_add_uint("e2ap.proc.uout", id_RICserviceUpdate, create_dissector_handle(dissect_RICserviceUpdateFailure_PDU, proto_e2ap));
14826
16
  dissector_add_uint("e2ap.proc.uout", id_RICsubscription, create_dissector_handle(dissect_RICsubscriptionFailure_PDU, proto_e2ap));
14827
16
  dissector_add_uint("e2ap.proc.imsg", id_RICsubscription, create_dissector_handle(dissect_RICsubscriptionRequest_PDU, proto_e2ap));
14828
16
  dissector_add_uint("e2ap.proc.sout", id_RICsubscription, create_dissector_handle(dissect_RICsubscriptionResponse_PDU, proto_e2ap));
14829
16
  dissector_add_uint("e2ap.proc.uout", id_RICsubscriptionDelete, create_dissector_handle(dissect_RICsubscriptionDeleteFailure_PDU, proto_e2ap));
14830
16
  dissector_add_uint("e2ap.proc.imsg", id_RICsubscriptionDelete, create_dissector_handle(dissect_RICsubscriptionDeleteRequest_PDU, proto_e2ap));
14831
16
  dissector_add_uint("e2ap.proc.sout", id_RICsubscriptionDelete, create_dissector_handle(dissect_RICsubscriptionDeleteResponse_PDU, proto_e2ap));
14832
16
  dissector_add_uint("e2ap.proc.sout", id_RICsubscriptionDeleteRequired, create_dissector_handle(dissect_RICsubscriptionDeleteRequired_PDU, proto_e2ap));
14833
16
  dissector_add_uint("e2ap.proc.uout", id_E2removal, create_dissector_handle(dissect_E2RemovalFailure_PDU, proto_e2ap));
14834
16
  dissector_add_uint("e2ap.proc.imsg", id_E2removal, create_dissector_handle(dissect_E2RemovalRequest_PDU, proto_e2ap));
14835
16
  dissector_add_uint("e2ap.proc.sout", id_E2removal, create_dissector_handle(dissect_E2RemovalResponse_PDU, proto_e2ap));
14836
16
  dissector_add_uint("e2ap.proc.uout", id_RICsubscriptionModification, create_dissector_handle(dissect_RICsubscriptionModificationFailure_PDU, proto_e2ap));
14837
16
  dissector_add_uint("e2ap.proc.imsg", id_RICsubscriptionModification, create_dissector_handle(dissect_RICsubscriptionModificationRequest_PDU, proto_e2ap));
14838
16
  dissector_add_uint("e2ap.proc.sout", id_RICsubscriptionModification, create_dissector_handle(dissect_RICsubscriptionModificationResponse_PDU, proto_e2ap));
14839
16
  dissector_add_uint("e2ap.proc.uout", id_RICsubscriptionModificationRequired, create_dissector_handle(dissect_RICsubscriptionModificationRefuse_PDU, proto_e2ap));
14840
16
  dissector_add_uint("e2ap.proc.imsg", id_RICsubscriptionModificationRequired, create_dissector_handle(dissect_RICsubscriptionModificationRequired_PDU, proto_e2ap));
14841
16
  dissector_add_uint("e2ap.proc.sout", id_RICsubscriptionModificationRequired, create_dissector_handle(dissect_RICsubscriptionModificationConfirm_PDU, proto_e2ap));
14842
16
  dissector_add_uint("e2ap.proc.uout", id_RICquery, create_dissector_handle(dissect_RICQueryFailure_PDU, proto_e2ap));
14843
16
  dissector_add_uint("e2ap.proc.imsg", id_RICquery, create_dissector_handle(dissect_RICQueryRequest_PDU, proto_e2ap));
14844
16
  dissector_add_uint("e2ap.proc.sout", id_RICquery, create_dissector_handle(dissect_RICQueryResponse_PDU, proto_e2ap));
14845
14846
14847
  /********************************/
14848
  /* Known OIDs for RAN providers */
14849
  /* N.B. These appear in the RAN Function ASN.1 definitions (except for CCC, which is based on JSON).
14850
   * There is a registry of known OIDs though in the E2SM specification
14851
   */
14852
14853
  /* KPM */
14854
16
  oid_add_from_string("KPM v1",         "1.3.6.1.4.1.53148.1.1.2.2");
14855
16
  oid_add_from_string("KPM v2",         "1.3.6.1.4.1.53148.1.2.2.2");
14856
16
  oid_add_from_string("KPM v3",         "1.3.6.1.4.1.53148.1.3.2.2");
14857
16
  oid_add_from_string("KPM v4",         "1.3.6.1.4.1.53148.1.4.2.2");
14858
16
  oid_add_from_string("KPM v5",         "1.3.6.1.4.1.53148.1.5.2.2");
14859
16
  oid_add_from_string("KPM v6",         "1.3.6.1.4.1.53148.1.6.2.2");
14860
14861
14862
  /* RC */
14863
  // TODO: appears to be the same???  Asking for clarification from ORAN..
14864
16
  oid_add_from_string("RC v1",         "1.3.6.1.4.1.53148.1.1.2.3");
14865
  //oid_add_from_string("RC v3",         "1.3.6.1.4.1.53148.1.1.2.3");
14866
  //oid_add_from_string("RC v4",         "1.3.6.1.4.1.53148.1.1.2.3");
14867
14868
  /* NI */
14869
16
  oid_add_from_string("NI v1",         "1.3.6.1.4.1.53148.1.1.2.1");
14870
16
  oid_add_from_string("NI v2",         "1.3.6.1.4.1.53148.1.2.2.1");
14871
16
  oid_add_from_string("NI v3",         "1.3.6.1.4.1.53148.1.3.2.1");
14872
16
  oid_add_from_string("NI v4",         "1.3.6.1.4.1.53148.1.4.2.1");
14873
16
  oid_add_from_string("NI v5",         "1.3.6.1.4.1.53148.1.5.2.1");
14874
16
  oid_add_from_string("NI v6",         "1.3.6.1.4.1.53148.1.6.2.1");
14875
14876
  /* CCC */
14877
16
  oid_add_from_string("CCC v1",         "1.3.6.1.4.1.53148.1.1.2.4");
14878
16
  oid_add_from_string("CCC v2",         "1.3.6.1.4.1.53148.1.2.2.4");
14879
16
  oid_add_from_string("CCC v3",         "1.3.6.1.4.1.53148.1.3.2.4");
14880
16
  oid_add_from_string("CCC v4",         "1.3.6.1.4.1.53148.1.4.2.4");
14881
16
  oid_add_from_string("CCC v5",         "1.3.6.1.4.1.53148.1.5.2.4");
14882
16
  oid_add_from_string("CCC v6",         "1.3.6.1.4.1.53148.1.6.2.4");
14883
14884
  /* LLC */
14885
16
  oid_add_from_string("LLC v1",         "1.3.6.1.4.1.53148.1.1.2.5");
14886
14887
14888
  /*********************************************************/
14889
  /* Register 'built-in' dissectors (i.e., from asn1/e2ap) */
14890
14891
16
  static const ran_function_dissector_t kpm_v3 =
14892
16
  { "ORAN-E2SM-KPM", "1.3.6.1.4.1.53148.1.3.2.2", 3, 0,
14893
16
    {  dissect_E2SM_KPM_RANfunction_Description_PDU,
14894
14895
16
       NULL,
14896
16
       NULL,
14897
16
       NULL,
14898
16
       NULL,
14899
16
       NULL,
14900
16
       NULL,
14901
14902
16
       dissect_E2SM_KPM_ActionDefinition_PDU,
14903
16
       dissect_E2SM_KPM_IndicationMessage_PDU,
14904
16
       dissect_E2SM_KPM_IndicationHeader_PDU,
14905
16
       NULL, /* no dissect_E2SM_KPM_CallProcessID_PDU */
14906
16
       dissect_E2SM_KPM_EventTriggerDefinition_PDU
14907
16
     }
14908
16
  };
14909
14910
16
  static const ran_function_dissector_t rc_v1 =
14911
16
  { "ORAN-E2SM-RC",  "1.3.6.1.4.1.53148.1.1.2.3", 1, 3,
14912
16
    {  dissect_E2SM_RC_RANFunctionDefinition_PDU,
14913
14914
16
       dissect_E2SM_RC_ControlHeader_PDU,
14915
16
       dissect_E2SM_RC_ControlMessage_PDU,
14916
16
       dissect_E2SM_RC_ControlOutcome_PDU,
14917
       /* new for v3 */
14918
16
       NULL,
14919
16
       NULL,
14920
16
       NULL,
14921
14922
16
       dissect_E2SM_RC_ActionDefinition_PDU,
14923
16
       dissect_E2SM_RC_IndicationMessage_PDU,
14924
16
       dissect_E2SM_RC_IndicationHeader_PDU,
14925
16
       dissect_E2SM_RC_CallProcessID_PDU,
14926
16
       dissect_E2SM_RC_EventTrigger_PDU
14927
16
    }
14928
16
  };
14929
14930
16
  static const ran_function_dissector_t ni_v1 =
14931
16
  { "ORAN-E2SM-NI",  "1.3.6.1.4.1.53148.1.1.2.1", 1, 0,
14932
16
    {  dissect_E2SM_NI_RANfunction_Description_PDU,
14933
14934
16
       dissect_E2SM_NI_ControlHeader_PDU,
14935
16
       dissect_E2SM_NI_ControlMessage_PDU,
14936
16
       dissect_E2SM_NI_ControlOutcome_PDU,
14937
16
       NULL,
14938
16
       NULL,
14939
16
       NULL,
14940
14941
16
       dissect_E2SM_NI_ActionDefinition_PDU,
14942
16
       dissect_E2SM_NI_IndicationMessage_PDU,
14943
16
       dissect_E2SM_NI_IndicationHeader_PDU,
14944
16
       dissect_E2SM_NI_CallProcessID_PDU,
14945
16
       dissect_E2SM_NI_EventTriggerDefinition_PDU
14946
16
    }
14947
16
  };
14948
14949
16
  static const ran_function_dissector_t ccc_v1 =
14950
16
  { "{", /*"ORAN-E2SM-CCC",*/  "1.3.6.1.4.1.53148.1.1.2.4", 1, 0,
14951
    /* See table 5.1 */
14952
16
    {  dissect_E2SM_NI_JSON_PDU,
14953
14954
16
       dissect_E2SM_NI_JSON_PDU,
14955
16
       dissect_E2SM_NI_JSON_PDU,
14956
16
       dissect_E2SM_NI_JSON_PDU,
14957
16
       NULL,
14958
16
       NULL,
14959
16
       NULL,
14960
14961
16
       dissect_E2SM_NI_JSON_PDU,
14962
16
       dissect_E2SM_NI_JSON_PDU,
14963
16
       dissect_E2SM_NI_JSON_PDU,
14964
16
       dissect_E2SM_NI_JSON_PDU,
14965
16
       dissect_E2SM_NI_JSON_PDU
14966
16
    }
14967
16
  };
14968
14969
16
  static const ran_function_dissector_t ccc_v2 =
14970
16
  { "{", /*"ORAN-E2SM-CCC",*/  "1.3.6.1.4.1.53148.1.2.2.4", 2, 0,
14971
    /* See table 5.1 */
14972
16
    {  dissect_E2SM_NI_JSON_PDU,
14973
14974
16
       dissect_E2SM_NI_JSON_PDU,
14975
16
       dissect_E2SM_NI_JSON_PDU,
14976
16
       dissect_E2SM_NI_JSON_PDU,
14977
16
       NULL,
14978
16
       NULL,
14979
16
       NULL,
14980
14981
16
       dissect_E2SM_NI_JSON_PDU,
14982
16
       dissect_E2SM_NI_JSON_PDU,
14983
16
       dissect_E2SM_NI_JSON_PDU,
14984
16
       dissect_E2SM_NI_JSON_PDU,
14985
16
       dissect_E2SM_NI_JSON_PDU
14986
16
    }
14987
16
  };
14988
14989
16
  static const ran_function_dissector_t ccc_v3 =
14990
16
  { "{", /*"ORAN-E2SM-CCC",*/  "1.3.6.1.4.1.53148.1.3.2.4", 3, 0,
14991
    /* See table 5.1 */
14992
16
    {  dissect_E2SM_NI_JSON_PDU,
14993
14994
16
       dissect_E2SM_NI_JSON_PDU,
14995
16
       dissect_E2SM_NI_JSON_PDU,
14996
16
       dissect_E2SM_NI_JSON_PDU,
14997
16
       NULL,
14998
16
       NULL,
14999
16
       NULL,
15000
15001
16
       dissect_E2SM_NI_JSON_PDU,
15002
16
       dissect_E2SM_NI_JSON_PDU,
15003
16
       dissect_E2SM_NI_JSON_PDU,
15004
16
       dissect_E2SM_NI_JSON_PDU,
15005
16
       dissect_E2SM_NI_JSON_PDU
15006
16
    }
15007
16
  };
15008
15009
16
  static const ran_function_dissector_t ccc_v4 =
15010
16
  { "{", /*"ORAN-E2SM-CCC",*/  "1.3.6.1.4.1.53148.1.4.2.4", 4, 0,
15011
    /* See table 5.1 */
15012
16
    {  dissect_E2SM_NI_JSON_PDU,
15013
15014
16
       dissect_E2SM_NI_JSON_PDU,
15015
16
       dissect_E2SM_NI_JSON_PDU,
15016
16
       dissect_E2SM_NI_JSON_PDU,
15017
16
       NULL,
15018
16
       NULL,
15019
16
       NULL,
15020
15021
16
       dissect_E2SM_NI_JSON_PDU,
15022
16
       dissect_E2SM_NI_JSON_PDU,
15023
16
       dissect_E2SM_NI_JSON_PDU,
15024
16
       dissect_E2SM_NI_JSON_PDU,
15025
16
       dissect_E2SM_NI_JSON_PDU
15026
16
    }
15027
16
  };
15028
15029
16
  static const ran_function_dissector_t ccc_v5 =
15030
16
  { "{", /*"ORAN-E2SM-CCC",*/  "1.3.6.1.4.1.53148.1.5.2.4", 5, 0,
15031
    /* See table 5.1 */
15032
16
    {  dissect_E2SM_NI_JSON_PDU,
15033
15034
16
       dissect_E2SM_NI_JSON_PDU,
15035
16
       dissect_E2SM_NI_JSON_PDU,
15036
16
       dissect_E2SM_NI_JSON_PDU,
15037
16
       NULL,
15038
16
       NULL,
15039
16
       NULL,
15040
15041
16
       dissect_E2SM_NI_JSON_PDU,
15042
16
       dissect_E2SM_NI_JSON_PDU,
15043
16
       dissect_E2SM_NI_JSON_PDU,
15044
16
       dissect_E2SM_NI_JSON_PDU,
15045
16
       dissect_E2SM_NI_JSON_PDU
15046
16
    }
15047
16
  };
15048
15049
15050
  /* Register available dissectors.
15051
   * Registering one version of each RAN Function here - others will need to be
15052
   * registered in separate dissectors (e.g. kpm_v2) */
15053
16
  register_e2ap_ran_function_dissector(KPM_RANFUNCTIONS, &kpm_v3);
15054
16
  register_e2ap_ran_function_dissector(RC_RANFUNCTIONS,  &rc_v1);
15055
16
  register_e2ap_ran_function_dissector(NI_RANFUNCTIONS,  &ni_v1);
15056
15057
16
  register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS,  &ccc_v1);
15058
16
  register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS,  &ccc_v2);
15059
16
  register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS,  &ccc_v3);
15060
16
  register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS,  &ccc_v4);
15061
16
  register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS,  &ccc_v5);
15062
15063
15064
  /* Cache JSON dissector */
15065
16
  json_handle = find_dissector("json");
15066
15067
16
  stats_tree_register("e2ap", "e2ap", "E2AP", 0,
15068
16
                      e2ap_stats_tree_packet, e2ap_stats_tree_init, NULL);
15069
15070
16
}
15071
15072
15073
15074
/*--- proto_register_e2ap -------------------------------------------*/
15075
16
void proto_register_e2ap(void) {
15076
15077
  /* List of fields */
15078
15079
16
  static hf_register_info hf[] = {
15080
16
    { &hf_e2ap_Cause_PDU,
15081
16
      { "Cause", "e2ap.Cause",
15082
16
        FT_UINT32, BASE_DEC, VALS(e2ap_Cause_vals), 0,
15083
16
        NULL, HFILL }},
15084
16
    { &hf_e2ap_CriticalityDiagnostics_PDU,
15085
16
      { "CriticalityDiagnostics", "e2ap.CriticalityDiagnostics_element",
15086
16
        FT_NONE, BASE_NONE, NULL, 0,
15087
16
        NULL, HFILL }},
15088
16
    { &hf_e2ap_GlobalE2node_ID_PDU,
15089
16
      { "GlobalE2node-ID", "e2ap.GlobalE2node_ID",
15090
16
        FT_UINT32, BASE_DEC, VALS(e2ap_GlobalE2node_ID_vals), 0,
15091
16
        NULL, HFILL }},
15092
16
    { &hf_e2ap_GlobalRIC_ID_PDU,
15093
16
      { "GlobalRIC-ID", "e2ap.GlobalRIC_ID_element",
15094
16
        FT_NONE, BASE_NONE, NULL, 0,
15095
16
        NULL, HFILL }},
15096
16
    { &hf_e2ap_RANfunctionID_PDU,
15097
16
      { "RANfunctionID", "e2ap.RANfunctionID",
15098
16
        FT_UINT32, BASE_DEC, NULL, 0,
15099
16
        NULL, HFILL }},
15100
16
    { &hf_e2ap_RICactionID_PDU,
15101
16
      { "RICactionID", "e2ap.RICactionID",
15102
16
        FT_UINT32, BASE_DEC, NULL, 0,
15103
16
        NULL, HFILL }},
15104
16
    { &hf_e2ap_RICcallProcessID_PDU,
15105
16
      { "RICcallProcessID", "e2ap.RICcallProcessID",
15106
16
        FT_BYTES, BASE_NONE, NULL, 0,
15107
16
        NULL, HFILL }},
15108
16
    { &hf_e2ap_RICcontrolAckRequest_PDU,
15109
16
      { "RICcontrolAckRequest", "e2ap.RICcontrolAckRequest",
15110
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RICcontrolAckRequest_vals), 0,
15111
16
        NULL, HFILL }},
15112
16
    { &hf_e2ap_RICcontrolHeader_PDU,
15113
16
      { "RICcontrolHeader", "e2ap.RICcontrolHeader",
15114
16
        FT_BYTES, BASE_NONE, NULL, 0,
15115
16
        NULL, HFILL }},
15116
16
    { &hf_e2ap_RICcontrolMessage_PDU,
15117
16
      { "RICcontrolMessage", "e2ap.RICcontrolMessage",
15118
16
        FT_BYTES, BASE_NONE, NULL, 0,
15119
16
        NULL, HFILL }},
15120
16
    { &hf_e2ap_RICcontrolOutcome_PDU,
15121
16
      { "RICcontrolOutcome", "e2ap.RICcontrolOutcome",
15122
16
        FT_BYTES, BASE_NONE, NULL, 0,
15123
16
        NULL, HFILL }},
15124
16
    { &hf_e2ap_RICeventTriggerDefinition_PDU,
15125
16
      { "RICeventTriggerDefinition", "e2ap.RICeventTriggerDefinition",
15126
16
        FT_BYTES, BASE_NONE, NULL, 0,
15127
16
        NULL, HFILL }},
15128
16
    { &hf_e2ap_RICindicationHeader_PDU,
15129
16
      { "RICindicationHeader", "e2ap.RICindicationHeader",
15130
16
        FT_BYTES, BASE_NONE, NULL, 0,
15131
16
        NULL, HFILL }},
15132
16
    { &hf_e2ap_RICindicationMessage_PDU,
15133
16
      { "RICindicationMessage", "e2ap.RICindicationMessage",
15134
16
        FT_BYTES, BASE_NONE, NULL, 0,
15135
16
        NULL, HFILL }},
15136
16
    { &hf_e2ap_RICindicationSN_PDU,
15137
16
      { "RICindicationSN", "e2ap.RICindicationSN",
15138
16
        FT_UINT32, BASE_DEC, NULL, 0,
15139
16
        NULL, HFILL }},
15140
16
    { &hf_e2ap_RICindicationType_PDU,
15141
16
      { "RICindicationType", "e2ap.RICindicationType",
15142
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RICindicationType_vals), 0,
15143
16
        NULL, HFILL }},
15144
16
    { &hf_e2ap_RICrequestID_PDU,
15145
16
      { "RICrequestID", "e2ap.RICrequestID_element",
15146
16
        FT_NONE, BASE_NONE, NULL, 0,
15147
16
        NULL, HFILL }},
15148
16
    { &hf_e2ap_RICsubscriptionTime_PDU,
15149
16
      { "RICsubscriptionTime", "e2ap.RICsubscriptionTime",
15150
16
        FT_BYTES, BASE_NONE, NULL, 0,
15151
16
        NULL, HFILL }},
15152
16
    { &hf_e2ap_RICqueryHeader_PDU,
15153
16
      { "RICqueryHeader", "e2ap.RICqueryHeader",
15154
16
        FT_BYTES, BASE_NONE, NULL, 0,
15155
16
        NULL, HFILL }},
15156
16
    { &hf_e2ap_RICqueryDefinition_PDU,
15157
16
      { "RICqueryDefinition", "e2ap.RICqueryDefinition",
15158
16
        FT_BYTES, BASE_NONE, NULL, 0,
15159
16
        NULL, HFILL }},
15160
16
    { &hf_e2ap_RICqueryOutcome_PDU,
15161
16
      { "RICqueryOutcome", "e2ap.RICqueryOutcome",
15162
16
        FT_BYTES, BASE_NONE, NULL, 0,
15163
16
        NULL, HFILL }},
15164
16
    { &hf_e2ap_TimeToWait_PDU,
15165
16
      { "TimeToWait", "e2ap.TimeToWait",
15166
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TimeToWait_vals), 0,
15167
16
        NULL, HFILL }},
15168
16
    { &hf_e2ap_TNLinformation_PDU,
15169
16
      { "TNLinformation", "e2ap.TNLinformation_element",
15170
16
        FT_NONE, BASE_NONE, NULL, 0,
15171
16
        NULL, HFILL }},
15172
16
    { &hf_e2ap_TransactionID_PDU,
15173
16
      { "TransactionID", "e2ap.TransactionID",
15174
16
        FT_UINT32, BASE_DEC, NULL, 0,
15175
16
        NULL, HFILL }},
15176
16
    { &hf_e2ap_RICsubscriptionRequest_PDU,
15177
16
      { "RICsubscriptionRequest", "e2ap.RICsubscriptionRequest_element",
15178
16
        FT_NONE, BASE_NONE, NULL, 0,
15179
16
        NULL, HFILL }},
15180
16
    { &hf_e2ap_RICsubscriptionDetails_PDU,
15181
16
      { "RICsubscriptionDetails", "e2ap.RICsubscriptionDetails_element",
15182
16
        FT_NONE, BASE_NONE, NULL, 0,
15183
16
        NULL, HFILL }},
15184
16
    { &hf_e2ap_RICaction_ToBeSetup_Item_PDU,
15185
16
      { "RICaction-ToBeSetup-Item", "e2ap.RICaction_ToBeSetup_Item_element",
15186
16
        FT_NONE, BASE_NONE, NULL, 0,
15187
16
        NULL, HFILL }},
15188
16
    { &hf_e2ap_RICsubscriptionResponse_PDU,
15189
16
      { "RICsubscriptionResponse", "e2ap.RICsubscriptionResponse_element",
15190
16
        FT_NONE, BASE_NONE, NULL, 0,
15191
16
        NULL, HFILL }},
15192
16
    { &hf_e2ap_RICaction_Admitted_List_PDU,
15193
16
      { "RICaction-Admitted-List", "e2ap.RICaction_Admitted_List",
15194
16
        FT_UINT32, BASE_DEC, NULL, 0,
15195
16
        NULL, HFILL }},
15196
16
    { &hf_e2ap_RICaction_Admitted_Item_PDU,
15197
16
      { "RICaction-Admitted-Item", "e2ap.RICaction_Admitted_Item_element",
15198
16
        FT_NONE, BASE_NONE, NULL, 0,
15199
16
        NULL, HFILL }},
15200
16
    { &hf_e2ap_RICaction_NotAdmitted_List_PDU,
15201
16
      { "RICaction-NotAdmitted-List", "e2ap.RICaction_NotAdmitted_List",
15202
16
        FT_UINT32, BASE_DEC, NULL, 0,
15203
16
        NULL, HFILL }},
15204
16
    { &hf_e2ap_RICaction_NotAdmitted_Item_PDU,
15205
16
      { "RICaction-NotAdmitted-Item", "e2ap.RICaction_NotAdmitted_Item_element",
15206
16
        FT_NONE, BASE_NONE, NULL, 0,
15207
16
        NULL, HFILL }},
15208
16
    { &hf_e2ap_RICsubscriptionFailure_PDU,
15209
16
      { "RICsubscriptionFailure", "e2ap.RICsubscriptionFailure_element",
15210
16
        FT_NONE, BASE_NONE, NULL, 0,
15211
16
        NULL, HFILL }},
15212
16
    { &hf_e2ap_RICsubscriptionDeleteRequest_PDU,
15213
16
      { "RICsubscriptionDeleteRequest", "e2ap.RICsubscriptionDeleteRequest_element",
15214
16
        FT_NONE, BASE_NONE, NULL, 0,
15215
16
        NULL, HFILL }},
15216
16
    { &hf_e2ap_RICsubscriptionDeleteResponse_PDU,
15217
16
      { "RICsubscriptionDeleteResponse", "e2ap.RICsubscriptionDeleteResponse_element",
15218
16
        FT_NONE, BASE_NONE, NULL, 0,
15219
16
        NULL, HFILL }},
15220
16
    { &hf_e2ap_RICsubscriptionDeleteFailure_PDU,
15221
16
      { "RICsubscriptionDeleteFailure", "e2ap.RICsubscriptionDeleteFailure_element",
15222
16
        FT_NONE, BASE_NONE, NULL, 0,
15223
16
        NULL, HFILL }},
15224
16
    { &hf_e2ap_RICsubscriptionDeleteRequired_PDU,
15225
16
      { "RICsubscriptionDeleteRequired", "e2ap.RICsubscriptionDeleteRequired_element",
15226
16
        FT_NONE, BASE_NONE, NULL, 0,
15227
16
        NULL, HFILL }},
15228
16
    { &hf_e2ap_RICsubscription_List_withCause_PDU,
15229
16
      { "RICsubscription-List-withCause", "e2ap.RICsubscription_List_withCause",
15230
16
        FT_UINT32, BASE_DEC, NULL, 0,
15231
16
        NULL, HFILL }},
15232
16
    { &hf_e2ap_RICsubscription_withCause_Item_PDU,
15233
16
      { "RICsubscription-withCause-Item", "e2ap.RICsubscription_withCause_Item_element",
15234
16
        FT_NONE, BASE_NONE, NULL, 0,
15235
16
        NULL, HFILL }},
15236
16
    { &hf_e2ap_RICsubscriptionModificationRequest_PDU,
15237
16
      { "RICsubscriptionModificationRequest", "e2ap.RICsubscriptionModificationRequest_element",
15238
16
        FT_NONE, BASE_NONE, NULL, 0,
15239
16
        NULL, HFILL }},
15240
16
    { &hf_e2ap_RICactions_ToBeRemovedForModification_List_PDU,
15241
16
      { "RICactions-ToBeRemovedForModification-List", "e2ap.RICactions_ToBeRemovedForModification_List",
15242
16
        FT_UINT32, BASE_DEC, NULL, 0,
15243
16
        NULL, HFILL }},
15244
16
    { &hf_e2ap_RICaction_ToBeRemovedForModification_Item_PDU,
15245
16
      { "RICaction-ToBeRemovedForModification-Item", "e2ap.RICaction_ToBeRemovedForModification_Item_element",
15246
16
        FT_NONE, BASE_NONE, NULL, 0,
15247
16
        NULL, HFILL }},
15248
16
    { &hf_e2ap_RICactions_ToBeModifiedForModification_List_PDU,
15249
16
      { "RICactions-ToBeModifiedForModification-List", "e2ap.RICactions_ToBeModifiedForModification_List",
15250
16
        FT_UINT32, BASE_DEC, NULL, 0,
15251
16
        NULL, HFILL }},
15252
16
    { &hf_e2ap_RICaction_ToBeModifiedForModification_Item_PDU,
15253
16
      { "RICaction-ToBeModifiedForModification-Item", "e2ap.RICaction_ToBeModifiedForModification_Item_element",
15254
16
        FT_NONE, BASE_NONE, NULL, 0,
15255
16
        NULL, HFILL }},
15256
16
    { &hf_e2ap_RICactions_ToBeAddedForModification_List_PDU,
15257
16
      { "RICactions-ToBeAddedForModification-List", "e2ap.RICactions_ToBeAddedForModification_List",
15258
16
        FT_UINT32, BASE_DEC, NULL, 0,
15259
16
        NULL, HFILL }},
15260
16
    { &hf_e2ap_RICaction_ToBeAddedForModification_Item_PDU,
15261
16
      { "RICaction-ToBeAddedForModification-Item", "e2ap.RICaction_ToBeAddedForModification_Item_element",
15262
16
        FT_NONE, BASE_NONE, NULL, 0,
15263
16
        NULL, HFILL }},
15264
16
    { &hf_e2ap_RICsubscriptionModificationResponse_PDU,
15265
16
      { "RICsubscriptionModificationResponse", "e2ap.RICsubscriptionModificationResponse_element",
15266
16
        FT_NONE, BASE_NONE, NULL, 0,
15267
16
        NULL, HFILL }},
15268
16
    { &hf_e2ap_RICactions_RemovedForModification_List_PDU,
15269
16
      { "RICactions-RemovedForModification-List", "e2ap.RICactions_RemovedForModification_List",
15270
16
        FT_UINT32, BASE_DEC, NULL, 0,
15271
16
        NULL, HFILL }},
15272
16
    { &hf_e2ap_RICaction_RemovedForModification_Item_PDU,
15273
16
      { "RICaction-RemovedForModification-Item", "e2ap.RICaction_RemovedForModification_Item_element",
15274
16
        FT_NONE, BASE_NONE, NULL, 0,
15275
16
        NULL, HFILL }},
15276
16
    { &hf_e2ap_RICactions_FailedToBeRemovedForModification_List_PDU,
15277
16
      { "RICactions-FailedToBeRemovedForModification-List", "e2ap.RICactions_FailedToBeRemovedForModification_List",
15278
16
        FT_UINT32, BASE_DEC, NULL, 0,
15279
16
        NULL, HFILL }},
15280
16
    { &hf_e2ap_RICaction_FailedToBeRemovedForModification_Item_PDU,
15281
16
      { "RICaction-FailedToBeRemovedForModification-Item", "e2ap.RICaction_FailedToBeRemovedForModification_Item_element",
15282
16
        FT_NONE, BASE_NONE, NULL, 0,
15283
16
        NULL, HFILL }},
15284
16
    { &hf_e2ap_RICactions_ModifiedForModification_List_PDU,
15285
16
      { "RICactions-ModifiedForModification-List", "e2ap.RICactions_ModifiedForModification_List",
15286
16
        FT_UINT32, BASE_DEC, NULL, 0,
15287
16
        NULL, HFILL }},
15288
16
    { &hf_e2ap_RICaction_ModifiedForModification_Item_PDU,
15289
16
      { "RICaction-ModifiedForModification-Item", "e2ap.RICaction_ModifiedForModification_Item_element",
15290
16
        FT_NONE, BASE_NONE, NULL, 0,
15291
16
        NULL, HFILL }},
15292
16
    { &hf_e2ap_RICactions_FailedToBeModifiedForModification_List_PDU,
15293
16
      { "RICactions-FailedToBeModifiedForModification-List", "e2ap.RICactions_FailedToBeModifiedForModification_List",
15294
16
        FT_UINT32, BASE_DEC, NULL, 0,
15295
16
        NULL, HFILL }},
15296
16
    { &hf_e2ap_RICaction_FailedToBeModifiedForModification_Item_PDU,
15297
16
      { "RICaction-FailedToBeModifiedForModification-Item", "e2ap.RICaction_FailedToBeModifiedForModification_Item_element",
15298
16
        FT_NONE, BASE_NONE, NULL, 0,
15299
16
        NULL, HFILL }},
15300
16
    { &hf_e2ap_RICactions_AddedForModification_List_PDU,
15301
16
      { "RICactions-AddedForModification-List", "e2ap.RICactions_AddedForModification_List",
15302
16
        FT_UINT32, BASE_DEC, NULL, 0,
15303
16
        NULL, HFILL }},
15304
16
    { &hf_e2ap_RICaction_AddedForModification_Item_PDU,
15305
16
      { "RICaction-AddedForModification-Item", "e2ap.RICaction_AddedForModification_Item_element",
15306
16
        FT_NONE, BASE_NONE, NULL, 0,
15307
16
        NULL, HFILL }},
15308
16
    { &hf_e2ap_RICactions_FailedToBeAddedForModification_List_PDU,
15309
16
      { "RICactions-FailedToBeAddedForModification-List", "e2ap.RICactions_FailedToBeAddedForModification_List",
15310
16
        FT_UINT32, BASE_DEC, NULL, 0,
15311
16
        NULL, HFILL }},
15312
16
    { &hf_e2ap_RICaction_FailedToBeAddedForModification_Item_PDU,
15313
16
      { "RICaction-FailedToBeAddedForModification-Item", "e2ap.RICaction_FailedToBeAddedForModification_Item_element",
15314
16
        FT_NONE, BASE_NONE, NULL, 0,
15315
16
        NULL, HFILL }},
15316
16
    { &hf_e2ap_RICsubscriptionModificationFailure_PDU,
15317
16
      { "RICsubscriptionModificationFailure", "e2ap.RICsubscriptionModificationFailure_element",
15318
16
        FT_NONE, BASE_NONE, NULL, 0,
15319
16
        NULL, HFILL }},
15320
16
    { &hf_e2ap_RICsubscriptionModificationRequired_PDU,
15321
16
      { "RICsubscriptionModificationRequired", "e2ap.RICsubscriptionModificationRequired_element",
15322
16
        FT_NONE, BASE_NONE, NULL, 0,
15323
16
        NULL, HFILL }},
15324
16
    { &hf_e2ap_RICactions_RequiredToBeModified_List_PDU,
15325
16
      { "RICactions-RequiredToBeModified-List", "e2ap.RICactions_RequiredToBeModified_List",
15326
16
        FT_UINT32, BASE_DEC, NULL, 0,
15327
16
        NULL, HFILL }},
15328
16
    { &hf_e2ap_RICaction_RequiredToBeModified_Item_PDU,
15329
16
      { "RICaction-RequiredToBeModified-Item", "e2ap.RICaction_RequiredToBeModified_Item_element",
15330
16
        FT_NONE, BASE_NONE, NULL, 0,
15331
16
        NULL, HFILL }},
15332
16
    { &hf_e2ap_RICactions_RequiredToBeRemoved_List_PDU,
15333
16
      { "RICactions-RequiredToBeRemoved-List", "e2ap.RICactions_RequiredToBeRemoved_List",
15334
16
        FT_UINT32, BASE_DEC, NULL, 0,
15335
16
        NULL, HFILL }},
15336
16
    { &hf_e2ap_RICaction_RequiredToBeRemoved_Item_PDU,
15337
16
      { "RICaction-RequiredToBeRemoved-Item", "e2ap.RICaction_RequiredToBeRemoved_Item_element",
15338
16
        FT_NONE, BASE_NONE, NULL, 0,
15339
16
        NULL, HFILL }},
15340
16
    { &hf_e2ap_RICsubscriptionModificationConfirm_PDU,
15341
16
      { "RICsubscriptionModificationConfirm", "e2ap.RICsubscriptionModificationConfirm_element",
15342
16
        FT_NONE, BASE_NONE, NULL, 0,
15343
16
        NULL, HFILL }},
15344
16
    { &hf_e2ap_RICactions_ConfirmedForModification_List_PDU,
15345
16
      { "RICactions-ConfirmedForModification-List", "e2ap.RICactions_ConfirmedForModification_List",
15346
16
        FT_UINT32, BASE_DEC, NULL, 0,
15347
16
        NULL, HFILL }},
15348
16
    { &hf_e2ap_RICaction_ConfirmedForModification_Item_PDU,
15349
16
      { "RICaction-ConfirmedForModification-Item", "e2ap.RICaction_ConfirmedForModification_Item_element",
15350
16
        FT_NONE, BASE_NONE, NULL, 0,
15351
16
        NULL, HFILL }},
15352
16
    { &hf_e2ap_RICactions_RefusedToBeModified_List_PDU,
15353
16
      { "RICactions-RefusedToBeModified-List", "e2ap.RICactions_RefusedToBeModified_List",
15354
16
        FT_UINT32, BASE_DEC, NULL, 0,
15355
16
        NULL, HFILL }},
15356
16
    { &hf_e2ap_RICaction_RefusedToBeModified_Item_PDU,
15357
16
      { "RICaction-RefusedToBeModified-Item", "e2ap.RICaction_RefusedToBeModified_Item_element",
15358
16
        FT_NONE, BASE_NONE, NULL, 0,
15359
16
        NULL, HFILL }},
15360
16
    { &hf_e2ap_RICactions_ConfirmedForRemoval_List_PDU,
15361
16
      { "RICactions-ConfirmedForRemoval-List", "e2ap.RICactions_ConfirmedForRemoval_List",
15362
16
        FT_UINT32, BASE_DEC, NULL, 0,
15363
16
        NULL, HFILL }},
15364
16
    { &hf_e2ap_RICaction_ConfirmedForRemoval_Item_PDU,
15365
16
      { "RICaction-ConfirmedForRemoval-Item", "e2ap.RICaction_ConfirmedForRemoval_Item_element",
15366
16
        FT_NONE, BASE_NONE, NULL, 0,
15367
16
        NULL, HFILL }},
15368
16
    { &hf_e2ap_RICactions_RefusedToBeRemoved_List_PDU,
15369
16
      { "RICactions-RefusedToBeRemoved-List", "e2ap.RICactions_RefusedToBeRemoved_List",
15370
16
        FT_UINT32, BASE_DEC, NULL, 0,
15371
16
        NULL, HFILL }},
15372
16
    { &hf_e2ap_RICaction_RefusedToBeRemoved_Item_PDU,
15373
16
      { "RICaction-RefusedToBeRemoved-Item", "e2ap.RICaction_RefusedToBeRemoved_Item_element",
15374
16
        FT_NONE, BASE_NONE, NULL, 0,
15375
16
        NULL, HFILL }},
15376
16
    { &hf_e2ap_RICsubscriptionModificationRefuse_PDU,
15377
16
      { "RICsubscriptionModificationRefuse", "e2ap.RICsubscriptionModificationRefuse_element",
15378
16
        FT_NONE, BASE_NONE, NULL, 0,
15379
16
        NULL, HFILL }},
15380
16
    { &hf_e2ap_RICindication_PDU,
15381
16
      { "RICindication", "e2ap.RICindication_element",
15382
16
        FT_NONE, BASE_NONE, NULL, 0,
15383
16
        NULL, HFILL }},
15384
16
    { &hf_e2ap_RICcontrolRequest_PDU,
15385
16
      { "RICcontrolRequest", "e2ap.RICcontrolRequest_element",
15386
16
        FT_NONE, BASE_NONE, NULL, 0,
15387
16
        NULL, HFILL }},
15388
16
    { &hf_e2ap_RICcontrolAcknowledge_PDU,
15389
16
      { "RICcontrolAcknowledge", "e2ap.RICcontrolAcknowledge_element",
15390
16
        FT_NONE, BASE_NONE, NULL, 0,
15391
16
        NULL, HFILL }},
15392
16
    { &hf_e2ap_RICcontrolFailure_PDU,
15393
16
      { "RICcontrolFailure", "e2ap.RICcontrolFailure_element",
15394
16
        FT_NONE, BASE_NONE, NULL, 0,
15395
16
        NULL, HFILL }},
15396
16
    { &hf_e2ap_RICQueryRequest_PDU,
15397
16
      { "RICQueryRequest", "e2ap.RICQueryRequest_element",
15398
16
        FT_NONE, BASE_NONE, NULL, 0,
15399
16
        NULL, HFILL }},
15400
16
    { &hf_e2ap_RICQueryResponse_PDU,
15401
16
      { "RICQueryResponse", "e2ap.RICQueryResponse_element",
15402
16
        FT_NONE, BASE_NONE, NULL, 0,
15403
16
        NULL, HFILL }},
15404
16
    { &hf_e2ap_RICQueryFailure_PDU,
15405
16
      { "RICQueryFailure", "e2ap.RICQueryFailure_element",
15406
16
        FT_NONE, BASE_NONE, NULL, 0,
15407
16
        NULL, HFILL }},
15408
16
    { &hf_e2ap_ErrorIndication_PDU,
15409
16
      { "ErrorIndication", "e2ap.ErrorIndication_element",
15410
16
        FT_NONE, BASE_NONE, NULL, 0,
15411
16
        NULL, HFILL }},
15412
16
    { &hf_e2ap_E2setupRequest_PDU,
15413
16
      { "E2setupRequest", "e2ap.E2setupRequest_element",
15414
16
        FT_NONE, BASE_NONE, NULL, 0,
15415
16
        NULL, HFILL }},
15416
16
    { &hf_e2ap_E2setupResponse_PDU,
15417
16
      { "E2setupResponse", "e2ap.E2setupResponse_element",
15418
16
        FT_NONE, BASE_NONE, NULL, 0,
15419
16
        NULL, HFILL }},
15420
16
    { &hf_e2ap_E2setupFailure_PDU,
15421
16
      { "E2setupFailure", "e2ap.E2setupFailure_element",
15422
16
        FT_NONE, BASE_NONE, NULL, 0,
15423
16
        NULL, HFILL }},
15424
16
    { &hf_e2ap_E2connectionUpdate_PDU,
15425
16
      { "E2connectionUpdate", "e2ap.E2connectionUpdate_element",
15426
16
        FT_NONE, BASE_NONE, NULL, 0,
15427
16
        NULL, HFILL }},
15428
16
    { &hf_e2ap_E2connectionUpdate_List_PDU,
15429
16
      { "E2connectionUpdate-List", "e2ap.E2connectionUpdate_List",
15430
16
        FT_UINT32, BASE_DEC, NULL, 0,
15431
16
        NULL, HFILL }},
15432
16
    { &hf_e2ap_E2connectionUpdate_Item_PDU,
15433
16
      { "E2connectionUpdate-Item", "e2ap.E2connectionUpdate_Item_element",
15434
16
        FT_NONE, BASE_NONE, NULL, 0,
15435
16
        NULL, HFILL }},
15436
16
    { &hf_e2ap_E2connectionUpdateRemove_List_PDU,
15437
16
      { "E2connectionUpdateRemove-List", "e2ap.E2connectionUpdateRemove_List",
15438
16
        FT_UINT32, BASE_DEC, NULL, 0,
15439
16
        NULL, HFILL }},
15440
16
    { &hf_e2ap_E2connectionUpdateRemove_Item_PDU,
15441
16
      { "E2connectionUpdateRemove-Item", "e2ap.E2connectionUpdateRemove_Item_element",
15442
16
        FT_NONE, BASE_NONE, NULL, 0,
15443
16
        NULL, HFILL }},
15444
16
    { &hf_e2ap_E2connectionUpdateAcknowledge_PDU,
15445
16
      { "E2connectionUpdateAcknowledge", "e2ap.E2connectionUpdateAcknowledge_element",
15446
16
        FT_NONE, BASE_NONE, NULL, 0,
15447
16
        NULL, HFILL }},
15448
16
    { &hf_e2ap_E2connectionSetupFailed_List_PDU,
15449
16
      { "E2connectionSetupFailed-List", "e2ap.E2connectionSetupFailed_List",
15450
16
        FT_UINT32, BASE_DEC, NULL, 0,
15451
16
        NULL, HFILL }},
15452
16
    { &hf_e2ap_E2connectionSetupFailed_Item_PDU,
15453
16
      { "E2connectionSetupFailed-Item", "e2ap.E2connectionSetupFailed_Item_element",
15454
16
        FT_NONE, BASE_NONE, NULL, 0,
15455
16
        NULL, HFILL }},
15456
16
    { &hf_e2ap_E2connectionUpdateFailure_PDU,
15457
16
      { "E2connectionUpdateFailure", "e2ap.E2connectionUpdateFailure_element",
15458
16
        FT_NONE, BASE_NONE, NULL, 0,
15459
16
        NULL, HFILL }},
15460
16
    { &hf_e2ap_E2nodeConfigurationUpdate_PDU,
15461
16
      { "E2nodeConfigurationUpdate", "e2ap.E2nodeConfigurationUpdate_element",
15462
16
        FT_NONE, BASE_NONE, NULL, 0,
15463
16
        NULL, HFILL }},
15464
16
    { &hf_e2ap_E2nodeComponentConfigAddition_List_PDU,
15465
16
      { "E2nodeComponentConfigAddition-List", "e2ap.E2nodeComponentConfigAddition_List",
15466
16
        FT_UINT32, BASE_DEC, NULL, 0,
15467
16
        NULL, HFILL }},
15468
16
    { &hf_e2ap_E2nodeComponentConfigAddition_Item_PDU,
15469
16
      { "E2nodeComponentConfigAddition-Item", "e2ap.E2nodeComponentConfigAddition_Item_element",
15470
16
        FT_NONE, BASE_NONE, NULL, 0,
15471
16
        NULL, HFILL }},
15472
16
    { &hf_e2ap_E2nodeComponentConfigUpdate_List_PDU,
15473
16
      { "E2nodeComponentConfigUpdate-List", "e2ap.E2nodeComponentConfigUpdate_List",
15474
16
        FT_UINT32, BASE_DEC, NULL, 0,
15475
16
        NULL, HFILL }},
15476
16
    { &hf_e2ap_E2nodeComponentConfigUpdate_Item_PDU,
15477
16
      { "E2nodeComponentConfigUpdate-Item", "e2ap.E2nodeComponentConfigUpdate_Item_element",
15478
16
        FT_NONE, BASE_NONE, NULL, 0,
15479
16
        NULL, HFILL }},
15480
16
    { &hf_e2ap_E2nodeComponentConfigRemoval_List_PDU,
15481
16
      { "E2nodeComponentConfigRemoval-List", "e2ap.E2nodeComponentConfigRemoval_List",
15482
16
        FT_UINT32, BASE_DEC, NULL, 0,
15483
16
        NULL, HFILL }},
15484
16
    { &hf_e2ap_E2nodeComponentConfigRemoval_Item_PDU,
15485
16
      { "E2nodeComponentConfigRemoval-Item", "e2ap.E2nodeComponentConfigRemoval_Item_element",
15486
16
        FT_NONE, BASE_NONE, NULL, 0,
15487
16
        NULL, HFILL }},
15488
16
    { &hf_e2ap_E2nodeTNLassociationRemoval_List_PDU,
15489
16
      { "E2nodeTNLassociationRemoval-List", "e2ap.E2nodeTNLassociationRemoval_List",
15490
16
        FT_UINT32, BASE_DEC, NULL, 0,
15491
16
        NULL, HFILL }},
15492
16
    { &hf_e2ap_E2nodeTNLassociationRemoval_Item_PDU,
15493
16
      { "E2nodeTNLassociationRemoval-Item", "e2ap.E2nodeTNLassociationRemoval_Item_element",
15494
16
        FT_NONE, BASE_NONE, NULL, 0,
15495
16
        NULL, HFILL }},
15496
16
    { &hf_e2ap_E2nodeConfigurationUpdateAcknowledge_PDU,
15497
16
      { "E2nodeConfigurationUpdateAcknowledge", "e2ap.E2nodeConfigurationUpdateAcknowledge_element",
15498
16
        FT_NONE, BASE_NONE, NULL, 0,
15499
16
        NULL, HFILL }},
15500
16
    { &hf_e2ap_E2nodeComponentConfigAdditionAck_List_PDU,
15501
16
      { "E2nodeComponentConfigAdditionAck-List", "e2ap.E2nodeComponentConfigAdditionAck_List",
15502
16
        FT_UINT32, BASE_DEC, NULL, 0,
15503
16
        NULL, HFILL }},
15504
16
    { &hf_e2ap_E2nodeComponentConfigAdditionAck_Item_PDU,
15505
16
      { "E2nodeComponentConfigAdditionAck-Item", "e2ap.E2nodeComponentConfigAdditionAck_Item_element",
15506
16
        FT_NONE, BASE_NONE, NULL, 0,
15507
16
        NULL, HFILL }},
15508
16
    { &hf_e2ap_E2nodeComponentConfigUpdateAck_List_PDU,
15509
16
      { "E2nodeComponentConfigUpdateAck-List", "e2ap.E2nodeComponentConfigUpdateAck_List",
15510
16
        FT_UINT32, BASE_DEC, NULL, 0,
15511
16
        NULL, HFILL }},
15512
16
    { &hf_e2ap_E2nodeComponentConfigUpdateAck_Item_PDU,
15513
16
      { "E2nodeComponentConfigUpdateAck-Item", "e2ap.E2nodeComponentConfigUpdateAck_Item_element",
15514
16
        FT_NONE, BASE_NONE, NULL, 0,
15515
16
        NULL, HFILL }},
15516
16
    { &hf_e2ap_E2nodeComponentConfigRemovalAck_List_PDU,
15517
16
      { "E2nodeComponentConfigRemovalAck-List", "e2ap.E2nodeComponentConfigRemovalAck_List",
15518
16
        FT_UINT32, BASE_DEC, NULL, 0,
15519
16
        NULL, HFILL }},
15520
16
    { &hf_e2ap_E2nodeComponentConfigRemovalAck_Item_PDU,
15521
16
      { "E2nodeComponentConfigRemovalAck-Item", "e2ap.E2nodeComponentConfigRemovalAck_Item_element",
15522
16
        FT_NONE, BASE_NONE, NULL, 0,
15523
16
        NULL, HFILL }},
15524
16
    { &hf_e2ap_E2nodeConfigurationUpdateFailure_PDU,
15525
16
      { "E2nodeConfigurationUpdateFailure", "e2ap.E2nodeConfigurationUpdateFailure_element",
15526
16
        FT_NONE, BASE_NONE, NULL, 0,
15527
16
        NULL, HFILL }},
15528
16
    { &hf_e2ap_ResetRequest_PDU,
15529
16
      { "ResetRequest", "e2ap.ResetRequest_element",
15530
16
        FT_NONE, BASE_NONE, NULL, 0,
15531
16
        NULL, HFILL }},
15532
16
    { &hf_e2ap_ResetResponse_PDU,
15533
16
      { "ResetResponse", "e2ap.ResetResponse_element",
15534
16
        FT_NONE, BASE_NONE, NULL, 0,
15535
16
        NULL, HFILL }},
15536
16
    { &hf_e2ap_RICserviceUpdate_PDU,
15537
16
      { "RICserviceUpdate", "e2ap.RICserviceUpdate_element",
15538
16
        FT_NONE, BASE_NONE, NULL, 0,
15539
16
        NULL, HFILL }},
15540
16
    { &hf_e2ap_RANfunctions_List_PDU,
15541
16
      { "RANfunctions-List", "e2ap.RANfunctions_List",
15542
16
        FT_UINT32, BASE_DEC, NULL, 0,
15543
16
        NULL, HFILL }},
15544
16
    { &hf_e2ap_RANfunction_Item_PDU,
15545
16
      { "RANfunction-Item", "e2ap.RANfunction_Item_element",
15546
16
        FT_NONE, BASE_NONE, NULL, 0,
15547
16
        NULL, HFILL }},
15548
16
    { &hf_e2ap_RANfunctionsID_List_PDU,
15549
16
      { "RANfunctionsID-List", "e2ap.RANfunctionsID_List",
15550
16
        FT_UINT32, BASE_DEC, NULL, 0,
15551
16
        NULL, HFILL }},
15552
16
    { &hf_e2ap_RANfunctionID_Item_PDU,
15553
16
      { "RANfunctionID-Item", "e2ap.RANfunctionID_Item_element",
15554
16
        FT_NONE, BASE_NONE, NULL, 0,
15555
16
        NULL, HFILL }},
15556
16
    { &hf_e2ap_RICserviceUpdateAcknowledge_PDU,
15557
16
      { "RICserviceUpdateAcknowledge", "e2ap.RICserviceUpdateAcknowledge_element",
15558
16
        FT_NONE, BASE_NONE, NULL, 0,
15559
16
        NULL, HFILL }},
15560
16
    { &hf_e2ap_RANfunctionsIDcause_List_PDU,
15561
16
      { "RANfunctionsIDcause-List", "e2ap.RANfunctionsIDcause_List",
15562
16
        FT_UINT32, BASE_DEC, NULL, 0,
15563
16
        NULL, HFILL }},
15564
16
    { &hf_e2ap_RANfunctionIDcause_Item_PDU,
15565
16
      { "RANfunctionIDcause-Item", "e2ap.RANfunctionIDcause_Item_element",
15566
16
        FT_NONE, BASE_NONE, NULL, 0,
15567
16
        NULL, HFILL }},
15568
16
    { &hf_e2ap_RICserviceUpdateFailure_PDU,
15569
16
      { "RICserviceUpdateFailure", "e2ap.RICserviceUpdateFailure_element",
15570
16
        FT_NONE, BASE_NONE, NULL, 0,
15571
16
        NULL, HFILL }},
15572
16
    { &hf_e2ap_RICserviceQuery_PDU,
15573
16
      { "RICserviceQuery", "e2ap.RICserviceQuery_element",
15574
16
        FT_NONE, BASE_NONE, NULL, 0,
15575
16
        NULL, HFILL }},
15576
16
    { &hf_e2ap_E2RemovalRequest_PDU,
15577
16
      { "E2RemovalRequest", "e2ap.E2RemovalRequest_element",
15578
16
        FT_NONE, BASE_NONE, NULL, 0,
15579
16
        NULL, HFILL }},
15580
16
    { &hf_e2ap_E2RemovalResponse_PDU,
15581
16
      { "E2RemovalResponse", "e2ap.E2RemovalResponse_element",
15582
16
        FT_NONE, BASE_NONE, NULL, 0,
15583
16
        NULL, HFILL }},
15584
16
    { &hf_e2ap_E2RemovalFailure_PDU,
15585
16
      { "E2RemovalFailure", "e2ap.E2RemovalFailure_element",
15586
16
        FT_NONE, BASE_NONE, NULL, 0,
15587
16
        NULL, HFILL }},
15588
16
    { &hf_e2ap_E2AP_PDU_PDU,
15589
16
      { "E2AP-PDU", "e2ap.E2AP_PDU",
15590
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2AP_PDU_vals), 0,
15591
16
        NULL, HFILL }},
15592
16
    { &hf_e2ap_E2SM_RC_EventTrigger_PDU,
15593
16
      { "E2SM-RC-EventTrigger", "e2ap.E2SM_RC_EventTrigger_element",
15594
16
        FT_NONE, BASE_NONE, NULL, 0,
15595
16
        NULL, HFILL }},
15596
16
    { &hf_e2ap_E2SM_RC_ActionDefinition_PDU,
15597
16
      { "E2SM-RC-ActionDefinition", "e2ap.E2SM_RC_ActionDefinition_element",
15598
16
        FT_NONE, BASE_NONE, NULL, 0,
15599
16
        NULL, HFILL }},
15600
16
    { &hf_e2ap_E2SM_RC_IndicationHeader_PDU,
15601
16
      { "E2SM-RC-IndicationHeader", "e2ap.E2SM_RC_IndicationHeader_element",
15602
16
        FT_NONE, BASE_NONE, NULL, 0,
15603
16
        NULL, HFILL }},
15604
16
    { &hf_e2ap_E2SM_RC_IndicationMessage_PDU,
15605
16
      { "E2SM-RC-IndicationMessage", "e2ap.E2SM_RC_IndicationMessage_element",
15606
16
        FT_NONE, BASE_NONE, NULL, 0,
15607
16
        NULL, HFILL }},
15608
16
    { &hf_e2ap_E2SM_RC_CallProcessID_PDU,
15609
16
      { "E2SM-RC-CallProcessID", "e2ap.E2SM_RC_CallProcessID_element",
15610
16
        FT_NONE, BASE_NONE, NULL, 0,
15611
16
        NULL, HFILL }},
15612
16
    { &hf_e2ap_E2SM_RC_ControlHeader_PDU,
15613
16
      { "E2SM-RC-ControlHeader", "e2ap.E2SM_RC_ControlHeader_element",
15614
16
        FT_NONE, BASE_NONE, NULL, 0,
15615
16
        NULL, HFILL }},
15616
16
    { &hf_e2ap_E2SM_RC_ControlMessage_PDU,
15617
16
      { "E2SM-RC-ControlMessage", "e2ap.E2SM_RC_ControlMessage_element",
15618
16
        FT_NONE, BASE_NONE, NULL, 0,
15619
16
        NULL, HFILL }},
15620
16
    { &hf_e2ap_E2SM_RC_ControlOutcome_PDU,
15621
16
      { "E2SM-RC-ControlOutcome", "e2ap.E2SM_RC_ControlOutcome_element",
15622
16
        FT_NONE, BASE_NONE, NULL, 0,
15623
16
        NULL, HFILL }},
15624
16
    { &hf_e2ap_E2SM_RC_RANFunctionDefinition_PDU,
15625
16
      { "E2SM-RC-RANFunctionDefinition", "e2ap.E2SM_RC_RANFunctionDefinition_element",
15626
16
        FT_NONE, BASE_NONE, NULL, 0,
15627
16
        NULL, HFILL }},
15628
16
    { &hf_e2ap_E2SM_KPM_EventTriggerDefinition_PDU,
15629
16
      { "E2SM-KPM-EventTriggerDefinition", "e2ap.E2SM_KPM_EventTriggerDefinition_element",
15630
16
        FT_NONE, BASE_NONE, NULL, 0,
15631
16
        NULL, HFILL }},
15632
16
    { &hf_e2ap_E2SM_KPM_ActionDefinition_PDU,
15633
16
      { "E2SM-KPM-ActionDefinition", "e2ap.E2SM_KPM_ActionDefinition_element",
15634
16
        FT_NONE, BASE_NONE, NULL, 0,
15635
16
        NULL, HFILL }},
15636
16
    { &hf_e2ap_E2SM_KPM_IndicationHeader_PDU,
15637
16
      { "E2SM-KPM-IndicationHeader", "e2ap.E2SM_KPM_IndicationHeader_element",
15638
16
        FT_NONE, BASE_NONE, NULL, 0,
15639
16
        NULL, HFILL }},
15640
16
    { &hf_e2ap_E2SM_KPM_IndicationMessage_PDU,
15641
16
      { "E2SM-KPM-IndicationMessage", "e2ap.E2SM_KPM_IndicationMessage_element",
15642
16
        FT_NONE, BASE_NONE, NULL, 0,
15643
16
        NULL, HFILL }},
15644
16
    { &hf_e2ap_E2SM_KPM_RANfunction_Description_PDU,
15645
16
      { "E2SM-KPM-RANfunction-Description", "e2ap.E2SM_KPM_RANfunction_Description_element",
15646
16
        FT_NONE, BASE_NONE, NULL, 0,
15647
16
        NULL, HFILL }},
15648
16
    { &hf_e2ap_E2SM_NI_EventTriggerDefinition_PDU,
15649
16
      { "E2SM-NI-EventTriggerDefinition", "e2ap.E2SM_NI_EventTriggerDefinition",
15650
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_EventTriggerDefinition_vals), 0,
15651
16
        NULL, HFILL }},
15652
16
    { &hf_e2ap_E2SM_NI_ActionDefinition_PDU,
15653
16
      { "E2SM-NI-ActionDefinition", "e2ap.E2SM_NI_ActionDefinition_element",
15654
16
        FT_NONE, BASE_NONE, NULL, 0,
15655
16
        NULL, HFILL }},
15656
16
    { &hf_e2ap_E2SM_NI_IndicationHeader_PDU,
15657
16
      { "E2SM-NI-IndicationHeader", "e2ap.E2SM_NI_IndicationHeader",
15658
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_IndicationHeader_vals), 0,
15659
16
        NULL, HFILL }},
15660
16
    { &hf_e2ap_E2SM_NI_IndicationMessage_PDU,
15661
16
      { "E2SM-NI-IndicationMessage", "e2ap.E2SM_NI_IndicationMessage",
15662
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_IndicationMessage_vals), 0,
15663
16
        NULL, HFILL }},
15664
16
    { &hf_e2ap_E2SM_NI_CallProcessID_PDU,
15665
16
      { "E2SM-NI-CallProcessID", "e2ap.E2SM_NI_CallProcessID",
15666
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_CallProcessID_vals), 0,
15667
16
        NULL, HFILL }},
15668
16
    { &hf_e2ap_E2SM_NI_ControlHeader_PDU,
15669
16
      { "E2SM-NI-ControlHeader", "e2ap.E2SM_NI_ControlHeader",
15670
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_ControlHeader_vals), 0,
15671
16
        NULL, HFILL }},
15672
16
    { &hf_e2ap_E2SM_NI_ControlMessage_PDU,
15673
16
      { "E2SM-NI-ControlMessage", "e2ap.E2SM_NI_ControlMessage",
15674
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_ControlMessage_vals), 0,
15675
16
        NULL, HFILL }},
15676
16
    { &hf_e2ap_E2SM_NI_ControlOutcome_PDU,
15677
16
      { "E2SM-NI-ControlOutcome", "e2ap.E2SM_NI_ControlOutcome",
15678
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_ControlOutcome_vals), 0,
15679
16
        NULL, HFILL }},
15680
16
    { &hf_e2ap_E2SM_NI_RANfunction_Description_PDU,
15681
16
      { "E2SM-NI-RANfunction-Description", "e2ap.E2SM_NI_RANfunction_Description_element",
15682
16
        FT_NONE, BASE_NONE, NULL, 0,
15683
16
        NULL, HFILL }},
15684
16
    { &hf_e2ap_ProtocolIE_Container_item,
15685
16
      { "ProtocolIE-Field", "e2ap.ProtocolIE_Field_element",
15686
16
        FT_NONE, BASE_NONE, NULL, 0,
15687
16
        NULL, HFILL }},
15688
16
    { &hf_e2ap_id,
15689
16
      { "id", "e2ap.id",
15690
16
        FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e2ap_ProtocolIE_ID_vals_ext, 0,
15691
16
        "ProtocolIE_ID", HFILL }},
15692
16
    { &hf_e2ap_criticality,
15693
16
      { "criticality", "e2ap.criticality",
15694
16
        FT_UINT32, BASE_DEC, VALS(e2ap_Criticality_vals), 0,
15695
16
        NULL, HFILL }},
15696
16
    { &hf_e2ap_value,
15697
16
      { "value", "e2ap.value_element",
15698
16
        FT_NONE, BASE_NONE, NULL, 0,
15699
16
        NULL, HFILL }},
15700
16
    { &hf_e2ap_ricRequest,
15701
16
      { "ricRequest", "e2ap.ricRequest",
15702
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CauseRICrequest_vals), 0,
15703
16
        "CauseRICrequest", HFILL }},
15704
16
    { &hf_e2ap_ricService,
15705
16
      { "ricService", "e2ap.ricService",
15706
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CauseRICservice_vals), 0,
15707
16
        "CauseRICservice", HFILL }},
15708
16
    { &hf_e2ap_e2Node,
15709
16
      { "e2Node", "e2ap.e2Node",
15710
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CauseE2node_vals), 0,
15711
16
        "CauseE2node", HFILL }},
15712
16
    { &hf_e2ap_transport,
15713
16
      { "transport", "e2ap.transport",
15714
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CauseTransport_vals), 0,
15715
16
        "CauseTransport", HFILL }},
15716
16
    { &hf_e2ap_protocol,
15717
16
      { "protocol", "e2ap.protocol",
15718
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CauseProtocol_vals), 0,
15719
16
        "CauseProtocol", HFILL }},
15720
16
    { &hf_e2ap_misc,
15721
16
      { "misc", "e2ap.misc",
15722
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CauseMisc_vals), 0,
15723
16
        "CauseMisc", HFILL }},
15724
16
    { &hf_e2ap_procedureCode,
15725
16
      { "procedureCode", "e2ap.procedureCode",
15726
16
        FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e2ap_ProcedureCode_vals_ext, 0,
15727
16
        NULL, HFILL }},
15728
16
    { &hf_e2ap_triggeringMessage,
15729
16
      { "triggeringMessage", "e2ap.triggeringMessage",
15730
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TriggeringMessage_vals), 0,
15731
16
        NULL, HFILL }},
15732
16
    { &hf_e2ap_procedureCriticality,
15733
16
      { "procedureCriticality", "e2ap.procedureCriticality",
15734
16
        FT_UINT32, BASE_DEC, VALS(e2ap_Criticality_vals), 0,
15735
16
        "Criticality", HFILL }},
15736
16
    { &hf_e2ap_ricRequestorID,
15737
16
      { "ricRequestorID", "e2ap.ricRequestorID_element",
15738
16
        FT_NONE, BASE_NONE, NULL, 0,
15739
16
        "RICrequestID", HFILL }},
15740
16
    { &hf_e2ap_iEsCriticalityDiagnostics,
15741
16
      { "iEsCriticalityDiagnostics", "e2ap.iEsCriticalityDiagnostics",
15742
16
        FT_UINT32, BASE_DEC, NULL, 0,
15743
16
        "CriticalityDiagnostics_IE_List", HFILL }},
15744
16
    { &hf_e2ap_CriticalityDiagnostics_IE_List_item,
15745
16
      { "CriticalityDiagnostics-IE-Item", "e2ap.CriticalityDiagnostics_IE_Item_element",
15746
16
        FT_NONE, BASE_NONE, NULL, 0,
15747
16
        NULL, HFILL }},
15748
16
    { &hf_e2ap_iECriticality,
15749
16
      { "iECriticality", "e2ap.iECriticality",
15750
16
        FT_UINT32, BASE_DEC, VALS(e2ap_Criticality_vals), 0,
15751
16
        "Criticality", HFILL }},
15752
16
    { &hf_e2ap_iE_ID,
15753
16
      { "iE-ID", "e2ap.iE_ID",
15754
16
        FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e2ap_ProtocolIE_ID_vals_ext, 0,
15755
16
        "ProtocolIE_ID", HFILL }},
15756
16
    { &hf_e2ap_typeOfError,
15757
16
      { "typeOfError", "e2ap.typeOfError",
15758
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TypeOfError_vals), 0,
15759
16
        NULL, HFILL }},
15760
16
    { &hf_e2ap_e2nodeComponentRequestPart,
15761
16
      { "e2nodeComponentRequestPart", "e2ap.e2nodeComponentRequestPart",
15762
16
        FT_BYTES, BASE_NONE, NULL, 0,
15763
16
        NULL, HFILL }},
15764
16
    { &hf_e2ap_e2nodeComponentResponsePart,
15765
16
      { "e2nodeComponentResponsePart", "e2ap.e2nodeComponentResponsePart",
15766
16
        FT_BYTES, BASE_NONE, NULL, 0,
15767
16
        NULL, HFILL }},
15768
16
    { &hf_e2ap_updateOutcome,
15769
16
      { "updateOutcome", "e2ap.updateOutcome",
15770
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_updateOutcome_vals), 0,
15771
16
        NULL, HFILL }},
15772
16
    { &hf_e2ap_failureCause,
15773
16
      { "failureCause", "e2ap.failureCause",
15774
16
        FT_UINT32, BASE_DEC, VALS(e2ap_Cause_vals), 0,
15775
16
        "Cause", HFILL }},
15776
16
    { &hf_e2ap_e2nodeComponentInterfaceTypeNG,
15777
16
      { "e2nodeComponentInterfaceTypeNG", "e2ap.e2nodeComponentInterfaceTypeNG_element",
15778
16
        FT_NONE, BASE_NONE, NULL, 0,
15779
16
        NULL, HFILL }},
15780
16
    { &hf_e2ap_e2nodeComponentInterfaceTypeXn,
15781
16
      { "e2nodeComponentInterfaceTypeXn", "e2ap.e2nodeComponentInterfaceTypeXn_element",
15782
16
        FT_NONE, BASE_NONE, NULL, 0,
15783
16
        NULL, HFILL }},
15784
16
    { &hf_e2ap_e2nodeComponentInterfaceTypeE1,
15785
16
      { "e2nodeComponentInterfaceTypeE1", "e2ap.e2nodeComponentInterfaceTypeE1_element",
15786
16
        FT_NONE, BASE_NONE, NULL, 0,
15787
16
        NULL, HFILL }},
15788
16
    { &hf_e2ap_e2nodeComponentInterfaceTypeF1,
15789
16
      { "e2nodeComponentInterfaceTypeF1", "e2ap.e2nodeComponentInterfaceTypeF1_element",
15790
16
        FT_NONE, BASE_NONE, NULL, 0,
15791
16
        NULL, HFILL }},
15792
16
    { &hf_e2ap_e2nodeComponentInterfaceTypeW1,
15793
16
      { "e2nodeComponentInterfaceTypeW1", "e2ap.e2nodeComponentInterfaceTypeW1_element",
15794
16
        FT_NONE, BASE_NONE, NULL, 0,
15795
16
        "E2nodeComponentInterfaceW1", HFILL }},
15796
16
    { &hf_e2ap_e2nodeComponentInterfaceTypeS1,
15797
16
      { "e2nodeComponentInterfaceTypeS1", "e2ap.e2nodeComponentInterfaceTypeS1_element",
15798
16
        FT_NONE, BASE_NONE, NULL, 0,
15799
16
        NULL, HFILL }},
15800
16
    { &hf_e2ap_e2nodeComponentInterfaceTypeX2,
15801
16
      { "e2nodeComponentInterfaceTypeX2", "e2ap.e2nodeComponentInterfaceTypeX2_element",
15802
16
        FT_NONE, BASE_NONE, NULL, 0,
15803
16
        NULL, HFILL }},
15804
16
    { &hf_e2ap_gNB_CU_UP_ID,
15805
16
      { "gNB-CU-UP-ID", "e2ap.gNB_CU_UP_ID",
15806
16
        FT_UINT64, BASE_DEC, NULL, 0,
15807
16
        NULL, HFILL }},
15808
16
    { &hf_e2ap_gNB_DU_ID,
15809
16
      { "gNB-DU-ID", "e2ap.gNB_DU_ID",
15810
16
        FT_UINT64, BASE_DEC, NULL, 0,
15811
16
        NULL, HFILL }},
15812
16
    { &hf_e2ap_amf_name,
15813
16
      { "amf-name", "e2ap.amf_name",
15814
16
        FT_STRING, BASE_NONE, NULL, 0,
15815
16
        "AMFName", HFILL }},
15816
16
    { &hf_e2ap_mme_name,
15817
16
      { "mme-name", "e2ap.mme_name",
15818
16
        FT_STRING, BASE_NONE, NULL, 0,
15819
16
        "MMEname", HFILL }},
15820
16
    { &hf_e2ap_global_eNB_ID,
15821
16
      { "global-eNB-ID", "e2ap.global_eNB_ID_element",
15822
16
        FT_NONE, BASE_NONE, NULL, 0,
15823
16
        "GlobalENB_ID", HFILL }},
15824
16
    { &hf_e2ap_global_en_gNB_ID,
15825
16
      { "global-en-gNB-ID", "e2ap.global_en_gNB_ID_element",
15826
16
        FT_NONE, BASE_NONE, NULL, 0,
15827
16
        "GlobalenGNB_ID", HFILL }},
15828
16
    { &hf_e2ap_global_NG_RAN_Node_ID,
15829
16
      { "global-NG-RAN-Node-ID", "e2ap.global_NG_RAN_Node_ID",
15830
16
        FT_UINT32, BASE_DEC, VALS(e2ap_GlobalNG_RANNode_ID_vals), 0,
15831
16
        "GlobalNG_RANNode_ID", HFILL }},
15832
16
    { &hf_e2ap_ng_eNB_DU_ID,
15833
16
      { "ng-eNB-DU-ID", "e2ap.ng_eNB_DU_ID",
15834
16
        FT_UINT64, BASE_DEC, NULL, 0,
15835
16
        "NGENB_DU_ID", HFILL }},
15836
16
    { &hf_e2ap_macro_eNB_ID,
15837
16
      { "macro-eNB-ID", "e2ap.macro_eNB_ID",
15838
16
        FT_BYTES, BASE_NONE, NULL, 0,
15839
16
        "BIT_STRING_SIZE_20", HFILL }},
15840
16
    { &hf_e2ap_home_eNB_ID,
15841
16
      { "home-eNB-ID", "e2ap.home_eNB_ID",
15842
16
        FT_BYTES, BASE_NONE, NULL, 0,
15843
16
        "BIT_STRING_SIZE_28", HFILL }},
15844
16
    { &hf_e2ap_short_Macro_eNB_ID,
15845
16
      { "short-Macro-eNB-ID", "e2ap.short_Macro_eNB_ID",
15846
16
        FT_BYTES, BASE_NONE, NULL, 0,
15847
16
        "BIT_STRING_SIZE_18", HFILL }},
15848
16
    { &hf_e2ap_long_Macro_eNB_ID,
15849
16
      { "long-Macro-eNB-ID", "e2ap.long_Macro_eNB_ID",
15850
16
        FT_BYTES, BASE_NONE, NULL, 0,
15851
16
        "BIT_STRING_SIZE_21", HFILL }},
15852
16
    { &hf_e2ap_enb_ID_macro,
15853
16
      { "enb-ID-macro", "e2ap.enb_ID_macro",
15854
16
        FT_BYTES, BASE_NONE, NULL, 0,
15855
16
        "BIT_STRING_SIZE_20", HFILL }},
15856
16
    { &hf_e2ap_enb_ID_shortmacro,
15857
16
      { "enb-ID-shortmacro", "e2ap.enb_ID_shortmacro",
15858
16
        FT_BYTES, BASE_NONE, NULL, 0,
15859
16
        "BIT_STRING_SIZE_18", HFILL }},
15860
16
    { &hf_e2ap_enb_ID_longmacro,
15861
16
      { "enb-ID-longmacro", "e2ap.enb_ID_longmacro",
15862
16
        FT_BYTES, BASE_NONE, NULL, 0,
15863
16
        "BIT_STRING_SIZE_21", HFILL }},
15864
16
    { &hf_e2ap_gnb_id_bit_string,
15865
16
      { "gNB-ID", "e2ap.gnb_id_bit_string",
15866
16
        FT_BYTES, BASE_NONE, NULL, 0,
15867
16
        "BIT_STRING_SIZE_22_32", HFILL }},
15868
16
    { &hf_e2ap_gNB,
15869
16
      { "gNB", "e2ap.gNB_element",
15870
16
        FT_NONE, BASE_NONE, NULL, 0,
15871
16
        "GlobalE2node_gNB_ID", HFILL }},
15872
16
    { &hf_e2ap_en_gNB,
15873
16
      { "en-gNB", "e2ap.en_gNB_element",
15874
16
        FT_NONE, BASE_NONE, NULL, 0,
15875
16
        "GlobalE2node_en_gNB_ID", HFILL }},
15876
16
    { &hf_e2ap_ng_eNB,
15877
16
      { "ng-eNB", "e2ap.ng_eNB_element",
15878
16
        FT_NONE, BASE_NONE, NULL, 0,
15879
16
        "GlobalE2node_ng_eNB_ID", HFILL }},
15880
16
    { &hf_e2ap_eNB,
15881
16
      { "eNB", "e2ap.eNB_element",
15882
16
        FT_NONE, BASE_NONE, NULL, 0,
15883
16
        "GlobalE2node_eNB_ID", HFILL }},
15884
16
    { &hf_e2ap_en_gNB_CU_UP_ID,
15885
16
      { "en-gNB-CU-UP-ID", "e2ap.en_gNB_CU_UP_ID",
15886
16
        FT_UINT64, BASE_DEC, NULL, 0,
15887
16
        "GNB_CU_UP_ID", HFILL }},
15888
16
    { &hf_e2ap_en_gNB_DU_ID,
15889
16
      { "en-gNB-DU-ID", "e2ap.en_gNB_DU_ID",
15890
16
        FT_UINT64, BASE_DEC, NULL, 0,
15891
16
        "GNB_DU_ID", HFILL }},
15892
16
    { &hf_e2ap_global_gNB_ID,
15893
16
      { "global-gNB-ID", "e2ap.global_gNB_ID_element",
15894
16
        FT_NONE, BASE_NONE, NULL, 0,
15895
16
        "GlobalgNB_ID", HFILL }},
15896
16
    { &hf_e2ap_global_ng_eNB_ID,
15897
16
      { "global-ng-eNB-ID", "e2ap.global_ng_eNB_ID_element",
15898
16
        FT_NONE, BASE_NONE, NULL, 0,
15899
16
        "GlobalngeNB_ID", HFILL }},
15900
16
    { &hf_e2ap_ngENB_DU_ID,
15901
16
      { "ngENB-DU-ID", "e2ap.ngENB_DU_ID",
15902
16
        FT_UINT64, BASE_DEC, NULL, 0,
15903
16
        NULL, HFILL }},
15904
16
    { &hf_e2ap_pLMN_Identity,
15905
16
      { "pLMN-Identity", "e2ap.pLMN_Identity",
15906
16
        FT_BYTES, BASE_NONE, NULL, 0,
15907
16
        NULL, HFILL }},
15908
16
    { &hf_e2ap_eNB_ID,
15909
16
      { "eNB-ID", "e2ap.eNB_ID",
15910
16
        FT_UINT32, BASE_DEC, VALS(e2ap_ENB_ID_vals), 0,
15911
16
        NULL, HFILL }},
15912
16
    { &hf_e2ap_eNGNB_ID_choice,
15913
16
      { "gNB-ID", "e2ap.eNGNB_ID_choice",
15914
16
        FT_UINT32, BASE_DEC, VALS(e2ap_ENGNB_ID_vals), 0,
15915
16
        "ENGNB_ID", HFILL }},
15916
16
    { &hf_e2ap_plmn_id,
15917
16
      { "plmn-id", "e2ap.plmn_id",
15918
16
        FT_BYTES, BASE_NONE, NULL, 0,
15919
16
        "PLMN_Identity", HFILL }},
15920
16
    { &hf_e2ap_gnb_id,
15921
16
      { "gnb-id", "e2ap.gnb_id",
15922
16
        FT_UINT32, BASE_DEC, VALS(e2ap_GNB_ID_Choice_vals), 0,
15923
16
        NULL, HFILL }},
15924
16
    { &hf_e2ap_enb_id,
15925
16
      { "enb-id", "e2ap.enb_id",
15926
16
        FT_UINT32, BASE_DEC, VALS(e2ap_ENB_ID_Choice_vals), 0,
15927
16
        "ENB_ID_Choice", HFILL }},
15928
16
    { &hf_e2ap_gNB_01,
15929
16
      { "gNB", "e2ap.gNB_element",
15930
16
        FT_NONE, BASE_NONE, NULL, 0,
15931
16
        "GlobalgNB_ID", HFILL }},
15932
16
    { &hf_e2ap_ng_eNB_01,
15933
16
      { "ng-eNB", "e2ap.ng_eNB_element",
15934
16
        FT_NONE, BASE_NONE, NULL, 0,
15935
16
        "GlobalngeNB_ID", HFILL }},
15936
16
    { &hf_e2ap_ric_ID,
15937
16
      { "ric-ID", "e2ap.ric_ID",
15938
16
        FT_BYTES, BASE_NONE, NULL, 0,
15939
16
        "BIT_STRING_SIZE_20", HFILL }},
15940
16
    { &hf_e2ap_gnb_ID,
15941
16
      { "gnb-ID", "e2ap.gnb_ID",
15942
16
        FT_BYTES, BASE_NONE, NULL, 0,
15943
16
        "BIT_STRING_SIZE_22_32", HFILL }},
15944
16
    { &hf_e2ap_ricRequestorID_01,
15945
16
      { "ricRequestorID", "e2ap.ricRequestorID",
15946
16
        FT_UINT32, BASE_DEC, NULL, 0,
15947
16
        "INTEGER_0_65535", HFILL }},
15948
16
    { &hf_e2ap_ricInstanceID,
15949
16
      { "ricInstanceID", "e2ap.ricInstanceID",
15950
16
        FT_UINT32, BASE_DEC, NULL, 0,
15951
16
        "INTEGER_0_65535", HFILL }},
15952
16
    { &hf_e2ap_ricSubsequentActionType,
15953
16
      { "ricSubsequentActionType", "e2ap.ricSubsequentActionType",
15954
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RICsubsequentActionType_vals), 0,
15955
16
        NULL, HFILL }},
15956
16
    { &hf_e2ap_ricTimeToWait,
15957
16
      { "ricTimeToWait", "e2ap.ricTimeToWait",
15958
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RICtimeToWait_vals), 0,
15959
16
        NULL, HFILL }},
15960
16
    { &hf_e2ap_tnlAddress,
15961
16
      { "tnlAddress", "e2ap.tnlAddress",
15962
16
        FT_BYTES, BASE_NONE, NULL, 0,
15963
16
        NULL, HFILL }},
15964
16
    { &hf_e2ap_tnlPort,
15965
16
      { "tnlPort", "e2ap.tnlPort",
15966
16
        FT_BYTES, BASE_NONE, NULL, 0,
15967
16
        NULL, HFILL }},
15968
16
    { &hf_e2ap_protocolIEs,
15969
16
      { "protocolIEs", "e2ap.protocolIEs",
15970
16
        FT_UINT32, BASE_DEC, NULL, 0,
15971
16
        "ProtocolIE_Container", HFILL }},
15972
16
    { &hf_e2ap_ricEventTriggerDefinition,
15973
16
      { "ricEventTriggerDefinition", "e2ap.ricEventTriggerDefinition",
15974
16
        FT_BYTES, BASE_NONE, NULL, 0,
15975
16
        NULL, HFILL }},
15976
16
    { &hf_e2ap_ricAction_ToBeSetup_List,
15977
16
      { "ricAction-ToBeSetup-List", "e2ap.ricAction_ToBeSetup_List",
15978
16
        FT_UINT32, BASE_DEC, NULL, 0,
15979
16
        "RICactions_ToBeSetup_List", HFILL }},
15980
16
    { &hf_e2ap_RICactions_ToBeSetup_List_item,
15981
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
15982
16
        FT_NONE, BASE_NONE, NULL, 0,
15983
16
        NULL, HFILL }},
15984
16
    { &hf_e2ap_ricActionID,
15985
16
      { "ricActionID", "e2ap.ricActionID",
15986
16
        FT_UINT32, BASE_DEC, NULL, 0,
15987
16
        NULL, HFILL }},
15988
16
    { &hf_e2ap_ricActionType,
15989
16
      { "ricActionType", "e2ap.ricActionType",
15990
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RICactionType_vals), 0,
15991
16
        NULL, HFILL }},
15992
16
    { &hf_e2ap_ricActionDefinition,
15993
16
      { "ricActionDefinition", "e2ap.ricActionDefinition",
15994
16
        FT_BYTES, BASE_NONE, NULL, 0,
15995
16
        NULL, HFILL }},
15996
16
    { &hf_e2ap_ricSubsequentAction,
15997
16
      { "ricSubsequentAction", "e2ap.ricSubsequentAction_element",
15998
16
        FT_NONE, BASE_NONE, NULL, 0,
15999
16
        NULL, HFILL }},
16000
16
    { &hf_e2ap_ricActionExecutionOrder,
16001
16
      { "ricActionExecutionOrder", "e2ap.ricActionExecutionOrder",
16002
16
        FT_UINT32, BASE_DEC, NULL, 0,
16003
16
        NULL, HFILL }},
16004
16
    { &hf_e2ap_RICaction_Admitted_List_item,
16005
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16006
16
        FT_NONE, BASE_NONE, NULL, 0,
16007
16
        NULL, HFILL }},
16008
16
    { &hf_e2ap_RICaction_NotAdmitted_List_item,
16009
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16010
16
        FT_NONE, BASE_NONE, NULL, 0,
16011
16
        NULL, HFILL }},
16012
16
    { &hf_e2ap_cause,
16013
16
      { "cause", "e2ap.cause",
16014
16
        FT_UINT32, BASE_DEC, VALS(e2ap_Cause_vals), 0,
16015
16
        NULL, HFILL }},
16016
16
    { &hf_e2ap_RICsubscription_List_withCause_item,
16017
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16018
16
        FT_NONE, BASE_NONE, NULL, 0,
16019
16
        NULL, HFILL }},
16020
16
    { &hf_e2ap_ricRequestID,
16021
16
      { "ricRequestID", "e2ap.ricRequestID_element",
16022
16
        FT_NONE, BASE_NONE, NULL, 0,
16023
16
        NULL, HFILL }},
16024
16
    { &hf_e2ap_ranFunctionID,
16025
16
      { "ranFunctionID", "e2ap.ranFunctionID",
16026
16
        FT_UINT32, BASE_DEC, NULL, 0,
16027
16
        NULL, HFILL }},
16028
16
    { &hf_e2ap_RICactions_ToBeRemovedForModification_List_item,
16029
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16030
16
        FT_NONE, BASE_NONE, NULL, 0,
16031
16
        NULL, HFILL }},
16032
16
    { &hf_e2ap_RICactions_ToBeModifiedForModification_List_item,
16033
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16034
16
        FT_NONE, BASE_NONE, NULL, 0,
16035
16
        NULL, HFILL }},
16036
16
    { &hf_e2ap_RICactions_ToBeAddedForModification_List_item,
16037
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16038
16
        FT_NONE, BASE_NONE, NULL, 0,
16039
16
        NULL, HFILL }},
16040
16
    { &hf_e2ap_RICactions_RemovedForModification_List_item,
16041
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16042
16
        FT_NONE, BASE_NONE, NULL, 0,
16043
16
        NULL, HFILL }},
16044
16
    { &hf_e2ap_RICactions_FailedToBeRemovedForModification_List_item,
16045
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16046
16
        FT_NONE, BASE_NONE, NULL, 0,
16047
16
        NULL, HFILL }},
16048
16
    { &hf_e2ap_RICactions_ModifiedForModification_List_item,
16049
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16050
16
        FT_NONE, BASE_NONE, NULL, 0,
16051
16
        NULL, HFILL }},
16052
16
    { &hf_e2ap_RICactions_FailedToBeModifiedForModification_List_item,
16053
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16054
16
        FT_NONE, BASE_NONE, NULL, 0,
16055
16
        NULL, HFILL }},
16056
16
    { &hf_e2ap_RICactions_AddedForModification_List_item,
16057
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16058
16
        FT_NONE, BASE_NONE, NULL, 0,
16059
16
        NULL, HFILL }},
16060
16
    { &hf_e2ap_RICactions_FailedToBeAddedForModification_List_item,
16061
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16062
16
        FT_NONE, BASE_NONE, NULL, 0,
16063
16
        NULL, HFILL }},
16064
16
    { &hf_e2ap_RICactions_RequiredToBeModified_List_item,
16065
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16066
16
        FT_NONE, BASE_NONE, NULL, 0,
16067
16
        NULL, HFILL }},
16068
16
    { &hf_e2ap_RICactions_RequiredToBeRemoved_List_item,
16069
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16070
16
        FT_NONE, BASE_NONE, NULL, 0,
16071
16
        NULL, HFILL }},
16072
16
    { &hf_e2ap_RICactions_ConfirmedForModification_List_item,
16073
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16074
16
        FT_NONE, BASE_NONE, NULL, 0,
16075
16
        NULL, HFILL }},
16076
16
    { &hf_e2ap_RICactions_RefusedToBeModified_List_item,
16077
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16078
16
        FT_NONE, BASE_NONE, NULL, 0,
16079
16
        NULL, HFILL }},
16080
16
    { &hf_e2ap_RICactions_ConfirmedForRemoval_List_item,
16081
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16082
16
        FT_NONE, BASE_NONE, NULL, 0,
16083
16
        NULL, HFILL }},
16084
16
    { &hf_e2ap_RICactions_RefusedToBeRemoved_List_item,
16085
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16086
16
        FT_NONE, BASE_NONE, NULL, 0,
16087
16
        NULL, HFILL }},
16088
16
    { &hf_e2ap_E2connectionUpdate_List_item,
16089
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16090
16
        FT_NONE, BASE_NONE, NULL, 0,
16091
16
        NULL, HFILL }},
16092
16
    { &hf_e2ap_tnlInformation,
16093
16
      { "tnlInformation", "e2ap.tnlInformation_element",
16094
16
        FT_NONE, BASE_NONE, NULL, 0,
16095
16
        NULL, HFILL }},
16096
16
    { &hf_e2ap_tnlUsage,
16097
16
      { "tnlUsage", "e2ap.tnlUsage",
16098
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TNLusage_vals), 0,
16099
16
        NULL, HFILL }},
16100
16
    { &hf_e2ap_E2connectionUpdateRemove_List_item,
16101
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16102
16
        FT_NONE, BASE_NONE, NULL, 0,
16103
16
        NULL, HFILL }},
16104
16
    { &hf_e2ap_E2connectionSetupFailed_List_item,
16105
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16106
16
        FT_NONE, BASE_NONE, NULL, 0,
16107
16
        NULL, HFILL }},
16108
16
    { &hf_e2ap_E2nodeComponentConfigAddition_List_item,
16109
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16110
16
        FT_NONE, BASE_NONE, NULL, 0,
16111
16
        NULL, HFILL }},
16112
16
    { &hf_e2ap_e2nodeComponentInterfaceType,
16113
16
      { "e2nodeComponentInterfaceType", "e2ap.e2nodeComponentInterfaceType",
16114
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2nodeComponentInterfaceType_vals), 0,
16115
16
        NULL, HFILL }},
16116
16
    { &hf_e2ap_e2nodeComponentID,
16117
16
      { "e2nodeComponentID", "e2ap.e2nodeComponentID",
16118
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2nodeComponentID_vals), 0,
16119
16
        NULL, HFILL }},
16120
16
    { &hf_e2ap_e2nodeComponentConfiguration,
16121
16
      { "e2nodeComponentConfiguration", "e2ap.e2nodeComponentConfiguration_element",
16122
16
        FT_NONE, BASE_NONE, NULL, 0,
16123
16
        NULL, HFILL }},
16124
16
    { &hf_e2ap_E2nodeComponentConfigUpdate_List_item,
16125
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16126
16
        FT_NONE, BASE_NONE, NULL, 0,
16127
16
        NULL, HFILL }},
16128
16
    { &hf_e2ap_E2nodeComponentConfigRemoval_List_item,
16129
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16130
16
        FT_NONE, BASE_NONE, NULL, 0,
16131
16
        NULL, HFILL }},
16132
16
    { &hf_e2ap_E2nodeTNLassociationRemoval_List_item,
16133
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16134
16
        FT_NONE, BASE_NONE, NULL, 0,
16135
16
        NULL, HFILL }},
16136
16
    { &hf_e2ap_tnlInformationRIC,
16137
16
      { "tnlInformationRIC", "e2ap.tnlInformationRIC_element",
16138
16
        FT_NONE, BASE_NONE, NULL, 0,
16139
16
        "TNLinformation", HFILL }},
16140
16
    { &hf_e2ap_E2nodeComponentConfigAdditionAck_List_item,
16141
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16142
16
        FT_NONE, BASE_NONE, NULL, 0,
16143
16
        NULL, HFILL }},
16144
16
    { &hf_e2ap_e2nodeComponentConfigurationAck,
16145
16
      { "e2nodeComponentConfigurationAck", "e2ap.e2nodeComponentConfigurationAck_element",
16146
16
        FT_NONE, BASE_NONE, NULL, 0,
16147
16
        NULL, HFILL }},
16148
16
    { &hf_e2ap_E2nodeComponentConfigUpdateAck_List_item,
16149
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16150
16
        FT_NONE, BASE_NONE, NULL, 0,
16151
16
        NULL, HFILL }},
16152
16
    { &hf_e2ap_E2nodeComponentConfigRemovalAck_List_item,
16153
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16154
16
        FT_NONE, BASE_NONE, NULL, 0,
16155
16
        NULL, HFILL }},
16156
16
    { &hf_e2ap_RANfunctions_List_item,
16157
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16158
16
        FT_NONE, BASE_NONE, NULL, 0,
16159
16
        NULL, HFILL }},
16160
16
    { &hf_e2ap_ranFunctionDefinition,
16161
16
      { "ranFunctionDefinition", "e2ap.ranFunctionDefinition",
16162
16
        FT_BYTES, BASE_NONE, NULL, 0,
16163
16
        NULL, HFILL }},
16164
16
    { &hf_e2ap_ranFunctionRevision,
16165
16
      { "ranFunctionRevision", "e2ap.ranFunctionRevision",
16166
16
        FT_UINT32, BASE_DEC, NULL, 0,
16167
16
        NULL, HFILL }},
16168
16
    { &hf_e2ap_ranFunctionOID,
16169
16
      { "ranFunctionOID", "e2ap.ranFunctionOID",
16170
16
        FT_STRING, BASE_NONE, NULL, 0,
16171
16
        NULL, HFILL }},
16172
16
    { &hf_e2ap_RANfunctionsID_List_item,
16173
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16174
16
        FT_NONE, BASE_NONE, NULL, 0,
16175
16
        NULL, HFILL }},
16176
16
    { &hf_e2ap_RANfunctionsIDcause_List_item,
16177
16
      { "ProtocolIE-SingleContainer", "e2ap.ProtocolIE_SingleContainer_element",
16178
16
        FT_NONE, BASE_NONE, NULL, 0,
16179
16
        NULL, HFILL }},
16180
16
    { &hf_e2ap_initiatingMessage,
16181
16
      { "initiatingMessage", "e2ap.initiatingMessage_element",
16182
16
        FT_NONE, BASE_NONE, NULL, 0,
16183
16
        NULL, HFILL }},
16184
16
    { &hf_e2ap_successfulOutcome,
16185
16
      { "successfulOutcome", "e2ap.successfulOutcome_element",
16186
16
        FT_NONE, BASE_NONE, NULL, 0,
16187
16
        NULL, HFILL }},
16188
16
    { &hf_e2ap_unsuccessfulOutcome,
16189
16
      { "unsuccessfulOutcome", "e2ap.unsuccessfulOutcome_element",
16190
16
        FT_NONE, BASE_NONE, NULL, 0,
16191
16
        NULL, HFILL }},
16192
16
    { &hf_e2ap_initiatingMessagevalue,
16193
16
      { "value", "e2ap.initiatingMessagevalue_element",
16194
16
        FT_NONE, BASE_NONE, NULL, 0,
16195
16
        "InitiatingMessage_value", HFILL }},
16196
16
    { &hf_e2ap_successfulOutcome_value,
16197
16
      { "value", "e2ap.successfulOutcome_value_element",
16198
16
        FT_NONE, BASE_NONE, NULL, 0,
16199
16
        "SuccessfulOutcome_value", HFILL }},
16200
16
    { &hf_e2ap_unsuccessfulOutcome_value,
16201
16
      { "value", "e2ap.unsuccessfulOutcome_value_element",
16202
16
        FT_NONE, BASE_NONE, NULL, 0,
16203
16
        "UnsuccessfulOutcome_value", HFILL }},
16204
16
    { &hf_e2ap_nR_CGI,
16205
16
      { "nR-CGI", "e2ap.nR_CGI_element",
16206
16
        FT_NONE, BASE_NONE, NULL, 0,
16207
16
        NULL, HFILL }},
16208
16
    { &hf_e2ap_eUTRA_CGI,
16209
16
      { "eUTRA-CGI", "e2ap.eUTRA_CGI_element",
16210
16
        FT_NONE, BASE_NONE, NULL, 0,
16211
16
        NULL, HFILL }},
16212
16
    { &hf_e2ap_nG,
16213
16
      { "nG", "e2ap.nG_element",
16214
16
        FT_NONE, BASE_NONE, NULL, 0,
16215
16
        "InterfaceID_NG", HFILL }},
16216
16
    { &hf_e2ap_xN,
16217
16
      { "xN", "e2ap.xN_element",
16218
16
        FT_NONE, BASE_NONE, NULL, 0,
16219
16
        "InterfaceID_Xn", HFILL }},
16220
16
    { &hf_e2ap_f1,
16221
16
      { "f1", "e2ap.f1_element",
16222
16
        FT_NONE, BASE_NONE, NULL, 0,
16223
16
        "InterfaceID_F1", HFILL }},
16224
16
    { &hf_e2ap_e1,
16225
16
      { "e1", "e2ap.e1_element",
16226
16
        FT_NONE, BASE_NONE, NULL, 0,
16227
16
        "InterfaceID_E1", HFILL }},
16228
16
    { &hf_e2ap_s1,
16229
16
      { "s1", "e2ap.s1_element",
16230
16
        FT_NONE, BASE_NONE, NULL, 0,
16231
16
        "InterfaceID_S1", HFILL }},
16232
16
    { &hf_e2ap_x2,
16233
16
      { "x2", "e2ap.x2_element",
16234
16
        FT_NONE, BASE_NONE, NULL, 0,
16235
16
        "InterfaceID_X2", HFILL }},
16236
16
    { &hf_e2ap_w1,
16237
16
      { "w1", "e2ap.w1_element",
16238
16
        FT_NONE, BASE_NONE, NULL, 0,
16239
16
        "InterfaceID_W1", HFILL }},
16240
16
    { &hf_e2ap_guami,
16241
16
      { "guami", "e2ap.guami_element",
16242
16
        FT_NONE, BASE_NONE, NULL, 0,
16243
16
        NULL, HFILL }},
16244
16
    { &hf_e2ap_global_NG_RAN_ID,
16245
16
      { "global-NG-RAN-ID", "e2ap.global_NG_RAN_ID",
16246
16
        FT_UINT32, BASE_DEC, VALS(e2ap_GlobalNGRANNodeID_vals), 0,
16247
16
        "GlobalNGRANNodeID", HFILL }},
16248
16
    { &hf_e2ap_globalGNB_ID,
16249
16
      { "globalGNB-ID", "e2ap.globalGNB_ID_element",
16250
16
        FT_NONE, BASE_NONE, NULL, 0,
16251
16
        NULL, HFILL }},
16252
16
    { &hf_e2ap_gUMMEI,
16253
16
      { "gUMMEI", "e2ap.gUMMEI_element",
16254
16
        FT_NONE, BASE_NONE, NULL, 0,
16255
16
        NULL, HFILL }},
16256
16
    { &hf_e2ap_nodeType,
16257
16
      { "nodeType", "e2ap.nodeType",
16258
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_nodeType_vals), 0,
16259
16
        NULL, HFILL }},
16260
16
    { &hf_e2ap_global_ng_eNB_ID_01,
16261
16
      { "global-ng-eNB-ID", "e2ap.global_ng_eNB_ID_element",
16262
16
        FT_NONE, BASE_NONE, NULL, 0,
16263
16
        "GlobalNgENB_ID", HFILL }},
16264
16
    { &hf_e2ap_interfaceProcedureID,
16265
16
      { "interfaceProcedureID", "e2ap.interfaceProcedureID",
16266
16
        FT_INT32, BASE_DEC, NULL, 0,
16267
16
        "INTEGER", HFILL }},
16268
16
    { &hf_e2ap_messageType,
16269
16
      { "messageType", "e2ap.messageType",
16270
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_messageType_vals), 0,
16271
16
        NULL, HFILL }},
16272
16
    { &hf_e2ap_ranFunction_ShortName,
16273
16
      { "ranFunction-ShortName", "e2ap.ranFunction_ShortName",
16274
16
        FT_STRING, BASE_NONE, NULL, 0,
16275
16
        NULL, HFILL }},
16276
16
    { &hf_e2ap_ranFunction_E2SM_OID,
16277
16
      { "ranFunction-E2SM-OID", "e2ap.ranFunction_E2SM_OID",
16278
16
        FT_STRING, BASE_NONE, NULL, 0,
16279
16
        "PrintableString_SIZE_1_1000_", HFILL }},
16280
16
    { &hf_e2ap_ranFunction_Description,
16281
16
      { "ranFunction-Description", "e2ap.ranFunction_Description",
16282
16
        FT_STRING, BASE_NONE, NULL, 0,
16283
16
        "PrintableString_SIZE_1_150_", HFILL }},
16284
16
    { &hf_e2ap_ranFunction_Instance,
16285
16
      { "ranFunction-Instance", "e2ap.ranFunction_Instance",
16286
16
        FT_INT32, BASE_DEC, NULL, 0,
16287
16
        "INTEGER", HFILL }},
16288
16
    { &hf_e2ap_rrcType,
16289
16
      { "rrcType", "e2ap.rrcType",
16290
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_rrcType_vals), 0,
16291
16
        NULL, HFILL }},
16292
16
    { &hf_e2ap_lTE,
16293
16
      { "lTE", "e2ap.lTE",
16294
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RRCclass_LTE_vals), 0,
16295
16
        "RRCclass_LTE", HFILL }},
16296
16
    { &hf_e2ap_nR,
16297
16
      { "nR", "e2ap.nR",
16298
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RRCclass_NR_vals), 0,
16299
16
        "RRCclass_NR", HFILL }},
16300
16
    { &hf_e2ap_messageID,
16301
16
      { "messageID", "e2ap.messageID",
16302
16
        FT_INT32, BASE_DEC, NULL, 0,
16303
16
        "INTEGER", HFILL }},
16304
16
    { &hf_e2ap_nR_01,
16305
16
      { "nR", "e2ap.nR_element",
16306
16
        FT_NONE, BASE_NONE, NULL, 0,
16307
16
        "NR_ARFCN", HFILL }},
16308
16
    { &hf_e2ap_eUTRA,
16309
16
      { "eUTRA", "e2ap.eUTRA",
16310
16
        FT_UINT32, BASE_DEC, NULL, 0,
16311
16
        "E_UTRA_ARFCN", HFILL }},
16312
16
    { &hf_e2ap_nR_02,
16313
16
      { "nR", "e2ap.nR",
16314
16
        FT_UINT32, BASE_DEC, NULL, 0,
16315
16
        "NR_PCI", HFILL }},
16316
16
    { &hf_e2ap_eUTRA_01,
16317
16
      { "eUTRA", "e2ap.eUTRA",
16318
16
        FT_UINT32, BASE_DEC, NULL, 0,
16319
16
        "E_UTRA_PCI", HFILL }},
16320
16
    { &hf_e2ap_gNB_UEID,
16321
16
      { "gNB-UEID", "e2ap.gNB_UEID_element",
16322
16
        FT_NONE, BASE_NONE, NULL, 0,
16323
16
        "UEID_GNB", HFILL }},
16324
16
    { &hf_e2ap_gNB_DU_UEID,
16325
16
      { "gNB-DU-UEID", "e2ap.gNB_DU_UEID_element",
16326
16
        FT_NONE, BASE_NONE, NULL, 0,
16327
16
        "UEID_GNB_DU", HFILL }},
16328
16
    { &hf_e2ap_gNB_CU_UP_UEID,
16329
16
      { "gNB-CU-UP-UEID", "e2ap.gNB_CU_UP_UEID_element",
16330
16
        FT_NONE, BASE_NONE, NULL, 0,
16331
16
        "UEID_GNB_CU_UP", HFILL }},
16332
16
    { &hf_e2ap_ng_eNB_UEID,
16333
16
      { "ng-eNB-UEID", "e2ap.ng_eNB_UEID_element",
16334
16
        FT_NONE, BASE_NONE, NULL, 0,
16335
16
        "UEID_NG_ENB", HFILL }},
16336
16
    { &hf_e2ap_ng_eNB_DU_UEID,
16337
16
      { "ng-eNB-DU-UEID", "e2ap.ng_eNB_DU_UEID_element",
16338
16
        FT_NONE, BASE_NONE, NULL, 0,
16339
16
        "UEID_NG_ENB_DU", HFILL }},
16340
16
    { &hf_e2ap_en_gNB_UEID,
16341
16
      { "en-gNB-UEID", "e2ap.en_gNB_UEID_element",
16342
16
        FT_NONE, BASE_NONE, NULL, 0,
16343
16
        "UEID_EN_GNB", HFILL }},
16344
16
    { &hf_e2ap_eNB_UEID,
16345
16
      { "eNB-UEID", "e2ap.eNB_UEID_element",
16346
16
        FT_NONE, BASE_NONE, NULL, 0,
16347
16
        "UEID_ENB", HFILL }},
16348
16
    { &hf_e2ap_amf_UE_NGAP_ID,
16349
16
      { "amf-UE-NGAP-ID", "e2ap.amf_UE_NGAP_ID",
16350
16
        FT_UINT64, BASE_DEC, NULL, 0,
16351
16
        NULL, HFILL }},
16352
16
    { &hf_e2ap_gNB_CU_UE_F1AP_ID_List,
16353
16
      { "gNB-CU-UE-F1AP-ID-List", "e2ap.gNB_CU_UE_F1AP_ID_List",
16354
16
        FT_UINT32, BASE_DEC, NULL, 0,
16355
16
        "UEID_GNB_CU_F1AP_ID_List", HFILL }},
16356
16
    { &hf_e2ap_gNB_CU_CP_UE_E1AP_ID_List,
16357
16
      { "gNB-CU-CP-UE-E1AP-ID-List", "e2ap.gNB_CU_CP_UE_E1AP_ID_List",
16358
16
        FT_UINT32, BASE_DEC, NULL, 0,
16359
16
        "UEID_GNB_CU_CP_E1AP_ID_List", HFILL }},
16360
16
    { &hf_e2ap_ran_UEID,
16361
16
      { "ran-UEID", "e2ap.ran_UEID",
16362
16
        FT_BYTES, BASE_NONE, NULL, 0,
16363
16
        "RANUEID", HFILL }},
16364
16
    { &hf_e2ap_m_NG_RAN_UE_XnAP_ID,
16365
16
      { "m-NG-RAN-UE-XnAP-ID", "e2ap.m_NG_RAN_UE_XnAP_ID",
16366
16
        FT_UINT32, BASE_DEC, NULL, 0,
16367
16
        "NG_RANnodeUEXnAPID", HFILL }},
16368
16
    { &hf_e2ap_globalNG_RANNode_ID,
16369
16
      { "globalNG-RANNode-ID", "e2ap.globalNG_RANNode_ID",
16370
16
        FT_UINT32, BASE_DEC, VALS(e2ap_GlobalNGRANNodeID_vals), 0,
16371
16
        "GlobalNGRANNodeID", HFILL }},
16372
16
    { &hf_e2ap_UEID_GNB_CU_CP_E1AP_ID_List_item,
16373
16
      { "UEID-GNB-CU-CP-E1AP-ID-Item", "e2ap.UEID_GNB_CU_CP_E1AP_ID_Item_element",
16374
16
        FT_NONE, BASE_NONE, NULL, 0,
16375
16
        NULL, HFILL }},
16376
16
    { &hf_e2ap_gNB_CU_CP_UE_E1AP_ID,
16377
16
      { "gNB-CU-CP-UE-E1AP-ID", "e2ap.gNB_CU_CP_UE_E1AP_ID",
16378
16
        FT_UINT32, BASE_DEC, NULL, 0,
16379
16
        NULL, HFILL }},
16380
16
    { &hf_e2ap_UEID_GNB_CU_F1AP_ID_List_item,
16381
16
      { "UEID-GNB-CU-CP-F1AP-ID-Item", "e2ap.UEID_GNB_CU_CP_F1AP_ID_Item_element",
16382
16
        FT_NONE, BASE_NONE, NULL, 0,
16383
16
        NULL, HFILL }},
16384
16
    { &hf_e2ap_gNB_CU_UE_F1AP_ID,
16385
16
      { "gNB-CU-UE-F1AP-ID", "e2ap.gNB_CU_UE_F1AP_ID",
16386
16
        FT_UINT32, BASE_DEC, NULL, 0,
16387
16
        NULL, HFILL }},
16388
16
    { &hf_e2ap_ng_eNB_CU_UE_W1AP_ID,
16389
16
      { "ng-eNB-CU-UE-W1AP-ID", "e2ap.ng_eNB_CU_UE_W1AP_ID",
16390
16
        FT_UINT32, BASE_DEC, NULL, 0,
16391
16
        "NGENB_CU_UE_W1AP_ID", HFILL }},
16392
16
    { &hf_e2ap_globalNgENB_ID,
16393
16
      { "globalNgENB-ID", "e2ap.globalNgENB_ID_element",
16394
16
        FT_NONE, BASE_NONE, NULL, 0,
16395
16
        NULL, HFILL }},
16396
16
    { &hf_e2ap_m_eNB_UE_X2AP_ID,
16397
16
      { "m-eNB-UE-X2AP-ID", "e2ap.m_eNB_UE_X2AP_ID",
16398
16
        FT_UINT32, BASE_DEC, NULL, 0,
16399
16
        "ENB_UE_X2AP_ID", HFILL }},
16400
16
    { &hf_e2ap_m_eNB_UE_X2AP_ID_Extension,
16401
16
      { "m-eNB-UE-X2AP-ID-Extension", "e2ap.m_eNB_UE_X2AP_ID_Extension",
16402
16
        FT_UINT32, BASE_DEC, NULL, 0,
16403
16
        "ENB_UE_X2AP_ID_Extension", HFILL }},
16404
16
    { &hf_e2ap_globalENB_ID,
16405
16
      { "globalENB-ID", "e2ap.globalENB_ID_element",
16406
16
        FT_NONE, BASE_NONE, NULL, 0,
16407
16
        NULL, HFILL }},
16408
16
    { &hf_e2ap_mME_UE_S1AP_ID,
16409
16
      { "mME-UE-S1AP-ID", "e2ap.mME_UE_S1AP_ID",
16410
16
        FT_UINT32, BASE_DEC, NULL, 0,
16411
16
        NULL, HFILL }},
16412
16
    { &hf_e2ap_pLMN_Identity_01,
16413
16
      { "pLMN-Identity", "e2ap.pLMN_Identity",
16414
16
        FT_BYTES, BASE_NONE, NULL, 0,
16415
16
        "PLMNIdentity", HFILL }},
16416
16
    { &hf_e2ap_mME_Group_ID,
16417
16
      { "mME-Group-ID", "e2ap.mME_Group_ID",
16418
16
        FT_BYTES, BASE_NONE, NULL, 0,
16419
16
        NULL, HFILL }},
16420
16
    { &hf_e2ap_mME_Code,
16421
16
      { "mME-Code", "e2ap.mME_Code",
16422
16
        FT_BYTES, BASE_NONE, NULL, 0,
16423
16
        NULL, HFILL }},
16424
16
    { &hf_e2ap_pLMNIdentity,
16425
16
      { "pLMNIdentity", "e2ap.pLMNIdentity",
16426
16
        FT_BYTES, BASE_NONE, NULL, 0,
16427
16
        NULL, HFILL }},
16428
16
    { &hf_e2ap_eUTRACellIdentity,
16429
16
      { "eUTRACellIdentity", "e2ap.eUTRACellIdentity",
16430
16
        FT_BYTES, BASE_NONE, NULL, 0,
16431
16
        NULL, HFILL }},
16432
16
    { &hf_e2ap_gNB_ID_choice,
16433
16
      { "gNB-ID", "e2ap.gNB_ID_choice",
16434
16
        FT_UINT32, BASE_DEC, VALS(e2ap_GNB_ID_vals), 0,
16435
16
        NULL, HFILL }},
16436
16
    { &hf_e2ap_ngENB_ID,
16437
16
      { "ngENB-ID", "e2ap.ngENB_ID",
16438
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NgENB_ID_vals), 0,
16439
16
        NULL, HFILL }},
16440
16
    { &hf_e2ap_gNB_ID,
16441
16
      { "gNB-ID", "e2ap.gNB_ID",
16442
16
        FT_BYTES, BASE_NONE, NULL, 0,
16443
16
        "BIT_STRING_SIZE_22_32", HFILL }},
16444
16
    { &hf_e2ap_aMFRegionID,
16445
16
      { "aMFRegionID", "e2ap.aMFRegionID",
16446
16
        FT_BYTES, BASE_NONE, NULL, 0,
16447
16
        NULL, HFILL }},
16448
16
    { &hf_e2ap_aMFSetID,
16449
16
      { "aMFSetID", "e2ap.aMFSetID",
16450
16
        FT_BYTES, BASE_NONE, NULL, 0,
16451
16
        NULL, HFILL }},
16452
16
    { &hf_e2ap_aMFPointer,
16453
16
      { "aMFPointer", "e2ap.aMFPointer",
16454
16
        FT_BYTES, BASE_NONE, NULL, 0,
16455
16
        NULL, HFILL }},
16456
16
    { &hf_e2ap_macroNgENB_ID,
16457
16
      { "macroNgENB-ID", "e2ap.macroNgENB_ID",
16458
16
        FT_BYTES, BASE_NONE, NULL, 0,
16459
16
        "BIT_STRING_SIZE_20", HFILL }},
16460
16
    { &hf_e2ap_shortMacroNgENB_ID,
16461
16
      { "shortMacroNgENB-ID", "e2ap.shortMacroNgENB_ID",
16462
16
        FT_BYTES, BASE_NONE, NULL, 0,
16463
16
        "BIT_STRING_SIZE_18", HFILL }},
16464
16
    { &hf_e2ap_longMacroNgENB_ID,
16465
16
      { "longMacroNgENB-ID", "e2ap.longMacroNgENB_ID",
16466
16
        FT_BYTES, BASE_NONE, NULL, 0,
16467
16
        "BIT_STRING_SIZE_21", HFILL }},
16468
16
    { &hf_e2ap_nRCellIdentity,
16469
16
      { "nRCellIdentity", "e2ap.nRCellIdentity",
16470
16
        FT_BYTES, BASE_NONE, NULL, 0,
16471
16
        NULL, HFILL }},
16472
16
    { &hf_e2ap_sST,
16473
16
      { "sST", "e2ap.sST",
16474
16
        FT_BYTES, BASE_NONE, NULL, 0,
16475
16
        NULL, HFILL }},
16476
16
    { &hf_e2ap_sD,
16477
16
      { "sD", "e2ap.sD",
16478
16
        FT_BYTES, BASE_NONE, NULL, 0,
16479
16
        NULL, HFILL }},
16480
16
    { &hf_e2ap_gNB_02,
16481
16
      { "gNB", "e2ap.gNB_element",
16482
16
        FT_NONE, BASE_NONE, NULL, 0,
16483
16
        "GlobalGNB_ID", HFILL }},
16484
16
    { &hf_e2ap_ng_eNB_02,
16485
16
      { "ng-eNB", "e2ap.ng_eNB_element",
16486
16
        FT_NONE, BASE_NONE, NULL, 0,
16487
16
        "GlobalNgENB_ID", HFILL }},
16488
16
    { &hf_e2ap_nRARFCN,
16489
16
      { "nRARFCN", "e2ap.nRARFCN",
16490
16
        FT_UINT32, BASE_DEC, NULL, 0,
16491
16
        "INTEGER_0_maxNRARFCN", HFILL }},
16492
16
    { &hf_e2ap_NRFrequencyBand_List_item,
16493
16
      { "NRFrequencyBandItem", "e2ap.NRFrequencyBandItem_element",
16494
16
        FT_NONE, BASE_NONE, NULL, 0,
16495
16
        NULL, HFILL }},
16496
16
    { &hf_e2ap_freqBandIndicatorNr,
16497
16
      { "freqBandIndicatorNr", "e2ap.freqBandIndicatorNr",
16498
16
        FT_UINT32, BASE_DEC, NULL, 0,
16499
16
        "INTEGER_1_1024_", HFILL }},
16500
16
    { &hf_e2ap_supportedSULBandList,
16501
16
      { "supportedSULBandList", "e2ap.supportedSULBandList",
16502
16
        FT_UINT32, BASE_DEC, NULL, 0,
16503
16
        NULL, HFILL }},
16504
16
    { &hf_e2ap_nrARFCN,
16505
16
      { "nrARFCN", "e2ap.nrARFCN_element",
16506
16
        FT_NONE, BASE_NONE, NULL, 0,
16507
16
        "NR_ARFCN", HFILL }},
16508
16
    { &hf_e2ap_frequencyBand_List,
16509
16
      { "frequencyBand-List", "e2ap.frequencyBand_List",
16510
16
        FT_UINT32, BASE_DEC, NULL, 0,
16511
16
        "NRFrequencyBand_List", HFILL }},
16512
16
    { &hf_e2ap_frequencyShift7p5khz,
16513
16
      { "frequencyShift7p5khz", "e2ap.frequencyShift7p5khz",
16514
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NRFrequencyShift7p5khz_vals), 0,
16515
16
        "NRFrequencyShift7p5khz", HFILL }},
16516
16
    { &hf_e2ap_SupportedSULBandList_item,
16517
16
      { "SupportedSULFreqBandItem", "e2ap.SupportedSULFreqBandItem_element",
16518
16
        FT_NONE, BASE_NONE, NULL, 0,
16519
16
        NULL, HFILL }},
16520
16
    { &hf_e2ap_NeighborCell_List_item,
16521
16
      { "NeighborCell-Item", "e2ap.NeighborCell_Item",
16522
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NeighborCell_Item_vals), 0,
16523
16
        NULL, HFILL }},
16524
16
    { &hf_e2ap_ranType_Choice_NR,
16525
16
      { "ranType-Choice-NR", "e2ap.ranType_Choice_NR_element",
16526
16
        FT_NONE, BASE_NONE, NULL, 0,
16527
16
        "NeighborCell_Item_Choice_NR", HFILL }},
16528
16
    { &hf_e2ap_ranType_Choice_EUTRA,
16529
16
      { "ranType-Choice-EUTRA", "e2ap.ranType_Choice_EUTRA_element",
16530
16
        FT_NONE, BASE_NONE, NULL, 0,
16531
16
        "NeighborCell_Item_Choice_E_UTRA", HFILL }},
16532
16
    { &hf_e2ap_nR_PCI,
16533
16
      { "nR-PCI", "e2ap.nR_PCI",
16534
16
        FT_UINT32, BASE_DEC, NULL, 0,
16535
16
        NULL, HFILL }},
16536
16
    { &hf_e2ap_fiveGS_TAC,
16537
16
      { "fiveGS-TAC", "e2ap.fiveGS_TAC",
16538
16
        FT_BYTES, BASE_NONE, NULL, 0,
16539
16
        NULL, HFILL }},
16540
16
    { &hf_e2ap_nR_mode_info,
16541
16
      { "nR-mode-info", "e2ap.nR_mode_info",
16542
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_nR_mode_info_vals), 0,
16543
16
        NULL, HFILL }},
16544
16
    { &hf_e2ap_nR_FreqInfo,
16545
16
      { "nR-FreqInfo", "e2ap.nR_FreqInfo_element",
16546
16
        FT_NONE, BASE_NONE, NULL, 0,
16547
16
        "NRFrequencyInfo", HFILL }},
16548
16
    { &hf_e2ap_x2_Xn_established,
16549
16
      { "x2-Xn-established", "e2ap.x2_Xn_established",
16550
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_x2_Xn_established_vals), 0,
16551
16
        NULL, HFILL }},
16552
16
    { &hf_e2ap_hO_validated,
16553
16
      { "hO-validated", "e2ap.hO_validated",
16554
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_hO_validated_vals), 0,
16555
16
        NULL, HFILL }},
16556
16
    { &hf_e2ap_version,
16557
16
      { "version", "e2ap.version",
16558
16
        FT_UINT32, BASE_DEC, NULL, 0,
16559
16
        "INTEGER_1_65535_", HFILL }},
16560
16
    { &hf_e2ap_eUTRA_PCI,
16561
16
      { "eUTRA-PCI", "e2ap.eUTRA_PCI",
16562
16
        FT_UINT32, BASE_DEC, NULL, 0,
16563
16
        "E_UTRA_PCI", HFILL }},
16564
16
    { &hf_e2ap_eUTRA_ARFCN,
16565
16
      { "eUTRA-ARFCN", "e2ap.eUTRA_ARFCN",
16566
16
        FT_UINT32, BASE_DEC, NULL, 0,
16567
16
        "E_UTRA_ARFCN", HFILL }},
16568
16
    { &hf_e2ap_eUTRA_TAC,
16569
16
      { "eUTRA-TAC", "e2ap.eUTRA_TAC",
16570
16
        FT_BYTES, BASE_NONE, NULL, 0,
16571
16
        "E_UTRA_TAC", HFILL }},
16572
16
    { &hf_e2ap_x2_Xn_established_01,
16573
16
      { "x2-Xn-established", "e2ap.x2_Xn_established",
16574
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_x2_Xn_established_01_vals), 0,
16575
16
        "T_x2_Xn_established_01", HFILL }},
16576
16
    { &hf_e2ap_hO_validated_01,
16577
16
      { "hO-validated", "e2ap.hO_validated",
16578
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_hO_validated_01_vals), 0,
16579
16
        "T_hO_validated_01", HFILL }},
16580
16
    { &hf_e2ap_servingCellPCI,
16581
16
      { "servingCellPCI", "e2ap.servingCellPCI",
16582
16
        FT_UINT32, BASE_DEC, VALS(e2ap_ServingCell_PCI_vals), 0,
16583
16
        "ServingCell_PCI", HFILL }},
16584
16
    { &hf_e2ap_servingCellARFCN,
16585
16
      { "servingCellARFCN", "e2ap.servingCellARFCN",
16586
16
        FT_UINT32, BASE_DEC, VALS(e2ap_ServingCell_ARFCN_vals), 0,
16587
16
        "ServingCell_ARFCN", HFILL }},
16588
16
    { &hf_e2ap_neighborCell_List,
16589
16
      { "neighborCell-List", "e2ap.neighborCell_List",
16590
16
        FT_UINT32, BASE_DEC, NULL, 0,
16591
16
        NULL, HFILL }},
16592
16
    { &hf_e2ap_cellInfo_List,
16593
16
      { "cellInfo-List", "e2ap.cellInfo_List",
16594
16
        FT_UINT32, BASE_DEC, NULL, 0,
16595
16
        "SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item", HFILL }},
16596
16
    { &hf_e2ap_cellInfo_List_item,
16597
16
      { "EventTrigger-Cell-Info-Item", "e2ap.EventTrigger_Cell_Info_Item_element",
16598
16
        FT_NONE, BASE_NONE, NULL, 0,
16599
16
        NULL, HFILL }},
16600
16
    { &hf_e2ap_eventTriggerCellID,
16601
16
      { "eventTriggerCellID", "e2ap.eventTriggerCellID",
16602
16
        FT_UINT32, BASE_DEC, NULL, 0,
16603
16
        "RIC_EventTrigger_Cell_ID", HFILL }},
16604
16
    { &hf_e2ap_cellType,
16605
16
      { "cellType", "e2ap.cellType",
16606
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_cellType_vals), 0,
16607
16
        NULL, HFILL }},
16608
16
    { &hf_e2ap_cellType_Choice_Individual,
16609
16
      { "cellType-Choice-Individual", "e2ap.cellType_Choice_Individual_element",
16610
16
        FT_NONE, BASE_NONE, NULL, 0,
16611
16
        "EventTrigger_Cell_Info_Item_Choice_Individual", HFILL }},
16612
16
    { &hf_e2ap_cellType_Choice_Group,
16613
16
      { "cellType-Choice-Group", "e2ap.cellType_Choice_Group_element",
16614
16
        FT_NONE, BASE_NONE, NULL, 0,
16615
16
        "EventTrigger_Cell_Info_Item_Choice_Group", HFILL }},
16616
16
    { &hf_e2ap_logicalOR,
16617
16
      { "logicalOR", "e2ap.logicalOR",
16618
16
        FT_UINT32, BASE_DEC, VALS(e2ap_LogicalOR_vals), 0,
16619
16
        NULL, HFILL }},
16620
16
    { &hf_e2ap_cellGlobalID,
16621
16
      { "cellGlobalID", "e2ap.cellGlobalID",
16622
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CGI_vals), 0,
16623
16
        "CGI", HFILL }},
16624
16
    { &hf_e2ap_ranParameterTesting,
16625
16
      { "ranParameterTesting", "e2ap.ranParameterTesting",
16626
16
        FT_UINT32, BASE_DEC, NULL, 0,
16627
16
        "RANParameter_Testing", HFILL }},
16628
16
    { &hf_e2ap_ueInfo_List,
16629
16
      { "ueInfo-List", "e2ap.ueInfo_List",
16630
16
        FT_UINT32, BASE_DEC, NULL, 0,
16631
16
        "SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item", HFILL }},
16632
16
    { &hf_e2ap_ueInfo_List_item,
16633
16
      { "EventTrigger-UE-Info-Item", "e2ap.EventTrigger_UE_Info_Item_element",
16634
16
        FT_NONE, BASE_NONE, NULL, 0,
16635
16
        NULL, HFILL }},
16636
16
    { &hf_e2ap_eventTriggerUEID,
16637
16
      { "eventTriggerUEID", "e2ap.eventTriggerUEID",
16638
16
        FT_UINT32, BASE_DEC, NULL, 0,
16639
16
        "RIC_EventTrigger_UE_ID", HFILL }},
16640
16
    { &hf_e2ap_ueType,
16641
16
      { "ueType", "e2ap.ueType",
16642
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ueType_vals), 0,
16643
16
        NULL, HFILL }},
16644
16
    { &hf_e2ap_ueType_Choice_Individual,
16645
16
      { "ueType-Choice-Individual", "e2ap.ueType_Choice_Individual_element",
16646
16
        FT_NONE, BASE_NONE, NULL, 0,
16647
16
        "EventTrigger_UE_Info_Item_Choice_Individual", HFILL }},
16648
16
    { &hf_e2ap_ueType_Choice_Group,
16649
16
      { "ueType-Choice-Group", "e2ap.ueType_Choice_Group_element",
16650
16
        FT_NONE, BASE_NONE, NULL, 0,
16651
16
        "EventTrigger_UE_Info_Item_Choice_Group", HFILL }},
16652
16
    { &hf_e2ap_ueID,
16653
16
      { "ueID", "e2ap.ueID",
16654
16
        FT_UINT32, BASE_DEC, VALS(e2ap_UEID_vals), 0,
16655
16
        NULL, HFILL }},
16656
16
    { &hf_e2ap_ueEvent_List,
16657
16
      { "ueEvent-List", "e2ap.ueEvent_List",
16658
16
        FT_UINT32, BASE_DEC, NULL, 0,
16659
16
        "SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item", HFILL }},
16660
16
    { &hf_e2ap_ueEvent_List_item,
16661
16
      { "EventTrigger-UEevent-Info-Item", "e2ap.EventTrigger_UEevent_Info_Item_element",
16662
16
        FT_NONE, BASE_NONE, NULL, 0,
16663
16
        NULL, HFILL }},
16664
16
    { &hf_e2ap_ueEventID,
16665
16
      { "ueEventID", "e2ap.ueEventID",
16666
16
        FT_UINT32, BASE_DEC, NULL, 0,
16667
16
        "RIC_EventTrigger_UEevent_ID", HFILL }},
16668
16
    { &hf_e2ap_ranParameter_Definition_Choice,
16669
16
      { "ranParameter-Definition-Choice", "e2ap.ranParameter_Definition_Choice",
16670
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANParameter_Definition_Choice_vals), 0,
16671
16
        NULL, HFILL }},
16672
16
    { &hf_e2ap_choiceLIST,
16673
16
      { "choiceLIST", "e2ap.choiceLIST_element",
16674
16
        FT_NONE, BASE_NONE, NULL, 0,
16675
16
        "RANParameter_Definition_Choice_LIST", HFILL }},
16676
16
    { &hf_e2ap_choiceSTRUCTURE,
16677
16
      { "choiceSTRUCTURE", "e2ap.choiceSTRUCTURE_element",
16678
16
        FT_NONE, BASE_NONE, NULL, 0,
16679
16
        "RANParameter_Definition_Choice_STRUCTURE", HFILL }},
16680
16
    { &hf_e2ap_ranParameter_List,
16681
16
      { "ranParameter-List", "e2ap.ranParameter_List",
16682
16
        FT_UINT32, BASE_DEC, NULL, 0,
16683
16
        "SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item", HFILL }},
16684
16
    { &hf_e2ap_ranParameter_List_item,
16685
16
      { "RANParameter-Definition-Choice-LIST-Item", "e2ap.RANParameter_Definition_Choice_LIST_Item_element",
16686
16
        FT_NONE, BASE_NONE, NULL, 0,
16687
16
        NULL, HFILL }},
16688
16
    { &hf_e2ap_ranParameter_ID,
16689
16
      { "ranParameter-ID", "e2ap.ranParameter_ID",
16690
16
        FT_UINT64, BASE_DEC, NULL, 0,
16691
16
        NULL, HFILL }},
16692
16
    { &hf_e2ap_ranParameter_name,
16693
16
      { "ranParameter-name", "e2ap.ranParameter_name",
16694
16
        FT_STRING, BASE_NONE, NULL, 0,
16695
16
        NULL, HFILL }},
16696
16
    { &hf_e2ap_ranParameter_Definition,
16697
16
      { "ranParameter-Definition", "e2ap.ranParameter_Definition_element",
16698
16
        FT_NONE, BASE_NONE, NULL, 0,
16699
16
        NULL, HFILL }},
16700
16
    { &hf_e2ap_ranParameter_STRUCTURE,
16701
16
      { "ranParameter-STRUCTURE", "e2ap.ranParameter_STRUCTURE",
16702
16
        FT_UINT32, BASE_DEC, NULL, 0,
16703
16
        "SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item", HFILL }},
16704
16
    { &hf_e2ap_ranParameter_STRUCTURE_item,
16705
16
      { "RANParameter-Definition-Choice-STRUCTURE-Item", "e2ap.RANParameter_Definition_Choice_STRUCTURE_Item_element",
16706
16
        FT_NONE, BASE_NONE, NULL, 0,
16707
16
        NULL, HFILL }},
16708
16
    { &hf_e2ap_valueBoolean,
16709
16
      { "valueBoolean", "e2ap.valueBoolean",
16710
16
        FT_BOOLEAN, BASE_NONE, NULL, 0,
16711
16
        "BOOLEAN", HFILL }},
16712
16
    { &hf_e2ap_valueInt,
16713
16
      { "valueInt", "e2ap.valueInt",
16714
16
        FT_INT32, BASE_DEC, NULL, 0,
16715
16
        "INTEGER", HFILL }},
16716
16
    { &hf_e2ap_valueReal,
16717
16
      { "valueReal", "e2ap.valueReal",
16718
16
        FT_DOUBLE, BASE_NONE, NULL, 0,
16719
16
        "REAL", HFILL }},
16720
16
    { &hf_e2ap_valueBitS,
16721
16
      { "valueBitS", "e2ap.valueBitS",
16722
16
        FT_BYTES, BASE_NONE, NULL, 0,
16723
16
        "BIT_STRING", HFILL }},
16724
16
    { &hf_e2ap_valueOctS,
16725
16
      { "valueOctS", "e2ap.valueOctS",
16726
16
        FT_BYTES, BASE_NONE, NULL, 0,
16727
16
        "OCTET_STRING", HFILL }},
16728
16
    { &hf_e2ap_valuePrintableString,
16729
16
      { "valuePrintableString", "e2ap.valuePrintableString",
16730
16
        FT_STRING, BASE_NONE, NULL, 0,
16731
16
        "PrintableString", HFILL }},
16732
16
    { &hf_e2ap_ranP_Choice_ElementTrue,
16733
16
      { "ranP-Choice-ElementTrue", "e2ap.ranP_Choice_ElementTrue_element",
16734
16
        FT_NONE, BASE_NONE, NULL, 0,
16735
16
        "RANParameter_ValueType_Choice_ElementTrue", HFILL }},
16736
16
    { &hf_e2ap_ranP_Choice_ElementFalse,
16737
16
      { "ranP-Choice-ElementFalse", "e2ap.ranP_Choice_ElementFalse_element",
16738
16
        FT_NONE, BASE_NONE, NULL, 0,
16739
16
        "RANParameter_ValueType_Choice_ElementFalse", HFILL }},
16740
16
    { &hf_e2ap_ranP_Choice_Structure,
16741
16
      { "ranP-Choice-Structure", "e2ap.ranP_Choice_Structure_element",
16742
16
        FT_NONE, BASE_NONE, NULL, 0,
16743
16
        "RANParameter_ValueType_Choice_Structure", HFILL }},
16744
16
    { &hf_e2ap_ranP_Choice_List,
16745
16
      { "ranP-Choice-List", "e2ap.ranP_Choice_List_element",
16746
16
        FT_NONE, BASE_NONE, NULL, 0,
16747
16
        "RANParameter_ValueType_Choice_List", HFILL }},
16748
16
    { &hf_e2ap_ranParameter_value,
16749
16
      { "ranParameter-value", "e2ap.ranParameter_value",
16750
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANParameter_Value_vals), 0,
16751
16
        NULL, HFILL }},
16752
16
    { &hf_e2ap_ranParameter_Structure,
16753
16
      { "ranParameter-Structure", "e2ap.ranParameter_Structure_element",
16754
16
        FT_NONE, BASE_NONE, NULL, 0,
16755
16
        NULL, HFILL }},
16756
16
    { &hf_e2ap_ranParameter_List_01,
16757
16
      { "ranParameter-List", "e2ap.ranParameter_List_element",
16758
16
        FT_NONE, BASE_NONE, NULL, 0,
16759
16
        NULL, HFILL }},
16760
16
    { &hf_e2ap_sequence_of_ranParameters,
16761
16
      { "sequence-of-ranParameters", "e2ap.sequence_of_ranParameters",
16762
16
        FT_UINT32, BASE_DEC, NULL, 0,
16763
16
        "SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item", HFILL }},
16764
16
    { &hf_e2ap_sequence_of_ranParameters_item,
16765
16
      { "RANParameter-STRUCTURE-Item", "e2ap.RANParameter_STRUCTURE_Item_element",
16766
16
        FT_NONE, BASE_NONE, NULL, 0,
16767
16
        NULL, HFILL }},
16768
16
    { &hf_e2ap_ranParameter_valueType,
16769
16
      { "ranParameter-valueType", "e2ap.ranParameter_valueType",
16770
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANParameter_ValueType_vals), 0,
16771
16
        NULL, HFILL }},
16772
16
    { &hf_e2ap_list_of_ranParameter,
16773
16
      { "list-of-ranParameter", "e2ap.list_of_ranParameter",
16774
16
        FT_UINT32, BASE_DEC, NULL, 0,
16775
16
        "SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE", HFILL }},
16776
16
    { &hf_e2ap_list_of_ranParameter_item,
16777
16
      { "RANParameter-STRUCTURE", "e2ap.RANParameter_STRUCTURE_element",
16778
16
        FT_NONE, BASE_NONE, NULL, 0,
16779
16
        NULL, HFILL }},
16780
16
    { &hf_e2ap_RANParameter_Testing_item,
16781
16
      { "RANParameter-Testing-Item", "e2ap.RANParameter_Testing_Item_element",
16782
16
        FT_NONE, BASE_NONE, NULL, 0,
16783
16
        NULL, HFILL }},
16784
16
    { &hf_e2ap_ranP_Choice_comparison,
16785
16
      { "ranP-Choice-comparison", "e2ap.ranP_Choice_comparison",
16786
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ranP_Choice_comparison_vals), 0,
16787
16
        NULL, HFILL }},
16788
16
    { &hf_e2ap_ranP_Choice_presence,
16789
16
      { "ranP-Choice-presence", "e2ap.ranP_Choice_presence",
16790
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ranP_Choice_presence_vals), 0,
16791
16
        NULL, HFILL }},
16792
16
    { &hf_e2ap_ranParameter_Type,
16793
16
      { "ranParameter-Type", "e2ap.ranParameter_Type",
16794
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ranParameter_Type_vals), 0,
16795
16
        NULL, HFILL }},
16796
16
    { &hf_e2ap_ranP_Choice_List_01,
16797
16
      { "ranP-Choice-List", "e2ap.ranP_Choice_List_element",
16798
16
        FT_NONE, BASE_NONE, NULL, 0,
16799
16
        "RANParameter_Testing_Item_Choice_List", HFILL }},
16800
16
    { &hf_e2ap_ranP_Choice_Structure_01,
16801
16
      { "ranP-Choice-Structure", "e2ap.ranP_Choice_Structure_element",
16802
16
        FT_NONE, BASE_NONE, NULL, 0,
16803
16
        "RANParameter_Testing_Item_Choice_Structure", HFILL }},
16804
16
    { &hf_e2ap_ranP_Choice_ElementTrue_01,
16805
16
      { "ranP-Choice-ElementTrue", "e2ap.ranP_Choice_ElementTrue_element",
16806
16
        FT_NONE, BASE_NONE, NULL, 0,
16807
16
        "RANParameter_Testing_Item_Choice_ElementTrue", HFILL }},
16808
16
    { &hf_e2ap_ranP_Choice_ElementFalse_01,
16809
16
      { "ranP-Choice-ElementFalse", "e2ap.ranP_Choice_ElementFalse_element",
16810
16
        FT_NONE, BASE_NONE, NULL, 0,
16811
16
        "RANParameter_Testing_Item_Choice_ElementFalse", HFILL }},
16812
16
    { &hf_e2ap_ranParameter_List_02,
16813
16
      { "ranParameter-List", "e2ap.ranParameter_List",
16814
16
        FT_UINT32, BASE_DEC, NULL, 0,
16815
16
        "RANParameter_Testing_LIST", HFILL }},
16816
16
    { &hf_e2ap_ranParameter_Structure_01,
16817
16
      { "ranParameter-Structure", "e2ap.ranParameter_Structure",
16818
16
        FT_UINT32, BASE_DEC, NULL, 0,
16819
16
        "RANParameter_Testing_STRUCTURE", HFILL }},
16820
16
    { &hf_e2ap_ranParameter_TestCondition,
16821
16
      { "ranParameter-TestCondition", "e2ap.ranParameter_TestCondition",
16822
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANParameter_TestingCondition_vals), 0,
16823
16
        "RANParameter_TestingCondition", HFILL }},
16824
16
    { &hf_e2ap_ranParameter_Value,
16825
16
      { "ranParameter-Value", "e2ap.ranParameter_Value",
16826
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANParameter_Value_vals), 0,
16827
16
        NULL, HFILL }},
16828
16
    { &hf_e2ap_RANParameter_Testing_LIST_item,
16829
16
      { "RANParameter-Testing-Item", "e2ap.RANParameter_Testing_Item_element",
16830
16
        FT_NONE, BASE_NONE, NULL, 0,
16831
16
        NULL, HFILL }},
16832
16
    { &hf_e2ap_RANParameter_Testing_STRUCTURE_item,
16833
16
      { "RANParameter-Testing-Item", "e2ap.RANParameter_Testing_Item_element",
16834
16
        FT_NONE, BASE_NONE, NULL, 0,
16835
16
        NULL, HFILL }},
16836
16
    { &hf_e2ap_ric_PolicyAction_ID,
16837
16
      { "ric-PolicyAction-ID", "e2ap.ric_PolicyAction_ID",
16838
16
        FT_UINT32, BASE_DEC, NULL, 0,
16839
16
        "RIC_ControlAction_ID", HFILL }},
16840
16
    { &hf_e2ap_ranParameters_List,
16841
16
      { "ranParameters-List", "e2ap.ranParameters_List",
16842
16
        FT_UINT32, BASE_DEC, NULL, 0,
16843
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item", HFILL }},
16844
16
    { &hf_e2ap_ranParameters_List_item,
16845
16
      { "RIC-PolicyAction-RANParameter-Item", "e2ap.RIC_PolicyAction_RANParameter_Item_element",
16846
16
        FT_NONE, BASE_NONE, NULL, 0,
16847
16
        NULL, HFILL }},
16848
16
    { &hf_e2ap_ric_PolicyDecision,
16849
16
      { "ric-PolicyDecision", "e2ap.ric_PolicyDecision",
16850
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_PolicyDecision_vals), 0,
16851
16
        NULL, HFILL }},
16852
16
    { &hf_e2ap_ric_eventTrigger_formats,
16853
16
      { "ric-eventTrigger-formats", "e2ap.ric_eventTrigger_formats",
16854
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_eventTrigger_formats_vals), 0,
16855
16
        NULL, HFILL }},
16856
16
    { &hf_e2ap_eventTrigger_Format1,
16857
16
      { "eventTrigger-Format1", "e2ap.eventTrigger_Format1_element",
16858
16
        FT_NONE, BASE_NONE, NULL, 0,
16859
16
        "E2SM_RC_EventTrigger_Format1", HFILL }},
16860
16
    { &hf_e2ap_eventTrigger_Format2,
16861
16
      { "eventTrigger-Format2", "e2ap.eventTrigger_Format2_element",
16862
16
        FT_NONE, BASE_NONE, NULL, 0,
16863
16
        "E2SM_RC_EventTrigger_Format2", HFILL }},
16864
16
    { &hf_e2ap_eventTrigger_Format3,
16865
16
      { "eventTrigger-Format3", "e2ap.eventTrigger_Format3_element",
16866
16
        FT_NONE, BASE_NONE, NULL, 0,
16867
16
        "E2SM_RC_EventTrigger_Format3", HFILL }},
16868
16
    { &hf_e2ap_eventTrigger_Format4,
16869
16
      { "eventTrigger-Format4", "e2ap.eventTrigger_Format4_element",
16870
16
        FT_NONE, BASE_NONE, NULL, 0,
16871
16
        "E2SM_RC_EventTrigger_Format4", HFILL }},
16872
16
    { &hf_e2ap_eventTrigger_Format5,
16873
16
      { "eventTrigger-Format5", "e2ap.eventTrigger_Format5_element",
16874
16
        FT_NONE, BASE_NONE, NULL, 0,
16875
16
        "E2SM_RC_EventTrigger_Format5", HFILL }},
16876
16
    { &hf_e2ap_message_List,
16877
16
      { "message-List", "e2ap.message_List",
16878
16
        FT_UINT32, BASE_DEC, NULL, 0,
16879
16
        "SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item", HFILL }},
16880
16
    { &hf_e2ap_message_List_item,
16881
16
      { "E2SM-RC-EventTrigger-Format1-Item", "e2ap.E2SM_RC_EventTrigger_Format1_Item_element",
16882
16
        FT_NONE, BASE_NONE, NULL, 0,
16883
16
        NULL, HFILL }},
16884
16
    { &hf_e2ap_globalAssociatedUEInfo,
16885
16
      { "globalAssociatedUEInfo", "e2ap.globalAssociatedUEInfo_element",
16886
16
        FT_NONE, BASE_NONE, NULL, 0,
16887
16
        "EventTrigger_UE_Info", HFILL }},
16888
16
    { &hf_e2ap_ric_eventTriggerCondition_ID,
16889
16
      { "ric-eventTriggerCondition-ID", "e2ap.ric_eventTriggerCondition_ID",
16890
16
        FT_UINT32, BASE_DEC, NULL, 0,
16891
16
        NULL, HFILL }},
16892
16
    { &hf_e2ap_messageType_01,
16893
16
      { "messageType", "e2ap.messageType",
16894
16
        FT_UINT32, BASE_DEC, VALS(e2ap_MessageType_Choice_vals), 0,
16895
16
        "MessageType_Choice", HFILL }},
16896
16
    { &hf_e2ap_messageDirection,
16897
16
      { "messageDirection", "e2ap.messageDirection",
16898
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_messageDirection_vals), 0,
16899
16
        NULL, HFILL }},
16900
16
    { &hf_e2ap_associatedUEInfo,
16901
16
      { "associatedUEInfo", "e2ap.associatedUEInfo_element",
16902
16
        FT_NONE, BASE_NONE, NULL, 0,
16903
16
        "EventTrigger_UE_Info", HFILL }},
16904
16
    { &hf_e2ap_associatedUEEvent,
16905
16
      { "associatedUEEvent", "e2ap.associatedUEEvent_element",
16906
16
        FT_NONE, BASE_NONE, NULL, 0,
16907
16
        "EventTrigger_UEevent_Info", HFILL }},
16908
16
    { &hf_e2ap_messageType_Choice_NI,
16909
16
      { "messageType-Choice-NI", "e2ap.messageType_Choice_NI_element",
16910
16
        FT_NONE, BASE_NONE, NULL, 0,
16911
16
        NULL, HFILL }},
16912
16
    { &hf_e2ap_messageType_Choice_RRC,
16913
16
      { "messageType-Choice-RRC", "e2ap.messageType_Choice_RRC_element",
16914
16
        FT_NONE, BASE_NONE, NULL, 0,
16915
16
        NULL, HFILL }},
16916
16
    { &hf_e2ap_nI_Type,
16917
16
      { "nI-Type", "e2ap.nI_Type",
16918
16
        FT_UINT32, BASE_DEC, VALS(e2ap_InterfaceType_vals), 0,
16919
16
        "InterfaceType", HFILL }},
16920
16
    { &hf_e2ap_nI_Identifier,
16921
16
      { "nI-Identifier", "e2ap.nI_Identifier",
16922
16
        FT_UINT32, BASE_DEC, VALS(e2ap_InterfaceIdentifier_vals), 0,
16923
16
        "InterfaceIdentifier", HFILL }},
16924
16
    { &hf_e2ap_nI_Message,
16925
16
      { "nI-Message", "e2ap.nI_Message_element",
16926
16
        FT_NONE, BASE_NONE, NULL, 0,
16927
16
        "Interface_MessageID", HFILL }},
16928
16
    { &hf_e2ap_rRC_Message,
16929
16
      { "rRC-Message", "e2ap.rRC_Message_element",
16930
16
        FT_NONE, BASE_NONE, NULL, 0,
16931
16
        "RRC_MessageID", HFILL }},
16932
16
    { &hf_e2ap_ric_callProcessType_ID,
16933
16
      { "ric-callProcessType-ID", "e2ap.ric_callProcessType_ID",
16934
16
        FT_UINT32, BASE_DEC, NULL, 0,
16935
16
        NULL, HFILL }},
16936
16
    { &hf_e2ap_ric_callProcessBreakpoint_ID,
16937
16
      { "ric-callProcessBreakpoint-ID", "e2ap.ric_callProcessBreakpoint_ID",
16938
16
        FT_UINT32, BASE_DEC, NULL, 0,
16939
16
        NULL, HFILL }},
16940
16
    { &hf_e2ap_associatedE2NodeInfo,
16941
16
      { "associatedE2NodeInfo", "e2ap.associatedE2NodeInfo",
16942
16
        FT_UINT32, BASE_DEC, NULL, 0,
16943
16
        "RANParameter_Testing", HFILL }},
16944
16
    { &hf_e2ap_e2NodeInfoChange_List,
16945
16
      { "e2NodeInfoChange-List", "e2ap.e2NodeInfoChange_List",
16946
16
        FT_UINT32, BASE_DEC, NULL, 0,
16947
16
        "SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item", HFILL }},
16948
16
    { &hf_e2ap_e2NodeInfoChange_List_item,
16949
16
      { "E2SM-RC-EventTrigger-Format3-Item", "e2ap.E2SM_RC_EventTrigger_Format3_Item_element",
16950
16
        FT_NONE, BASE_NONE, NULL, 0,
16951
16
        NULL, HFILL }},
16952
16
    { &hf_e2ap_e2NodeInfoChange_ID,
16953
16
      { "e2NodeInfoChange-ID", "e2ap.e2NodeInfoChange_ID",
16954
16
        FT_UINT32, BASE_DEC, NULL, 0,
16955
16
        "INTEGER_1_512_", HFILL }},
16956
16
    { &hf_e2ap_associatedCellInfo,
16957
16
      { "associatedCellInfo", "e2ap.associatedCellInfo_element",
16958
16
        FT_NONE, BASE_NONE, NULL, 0,
16959
16
        "EventTrigger_Cell_Info", HFILL }},
16960
16
    { &hf_e2ap_uEInfoChange_List,
16961
16
      { "uEInfoChange-List", "e2ap.uEInfoChange_List",
16962
16
        FT_UINT32, BASE_DEC, NULL, 0,
16963
16
        "SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item", HFILL }},
16964
16
    { &hf_e2ap_uEInfoChange_List_item,
16965
16
      { "E2SM-RC-EventTrigger-Format4-Item", "e2ap.E2SM_RC_EventTrigger_Format4_Item_element",
16966
16
        FT_NONE, BASE_NONE, NULL, 0,
16967
16
        NULL, HFILL }},
16968
16
    { &hf_e2ap_triggerType,
16969
16
      { "triggerType", "e2ap.triggerType",
16970
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TriggerType_Choice_vals), 0,
16971
16
        "TriggerType_Choice", HFILL }},
16972
16
    { &hf_e2ap_triggerType_Choice_RRCstate,
16973
16
      { "triggerType-Choice-RRCstate", "e2ap.triggerType_Choice_RRCstate_element",
16974
16
        FT_NONE, BASE_NONE, NULL, 0,
16975
16
        NULL, HFILL }},
16976
16
    { &hf_e2ap_triggerType_Choice_UEID,
16977
16
      { "triggerType-Choice-UEID", "e2ap.triggerType_Choice_UEID_element",
16978
16
        FT_NONE, BASE_NONE, NULL, 0,
16979
16
        NULL, HFILL }},
16980
16
    { &hf_e2ap_triggerType_Choice_L2state,
16981
16
      { "triggerType-Choice-L2state", "e2ap.triggerType_Choice_L2state_element",
16982
16
        FT_NONE, BASE_NONE, NULL, 0,
16983
16
        NULL, HFILL }},
16984
16
    { &hf_e2ap_rrcState_List,
16985
16
      { "rrcState-List", "e2ap.rrcState_List",
16986
16
        FT_UINT32, BASE_DEC, NULL, 0,
16987
16
        "SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item", HFILL }},
16988
16
    { &hf_e2ap_rrcState_List_item,
16989
16
      { "TriggerType-Choice-RRCstate-Item", "e2ap.TriggerType_Choice_RRCstate_Item_element",
16990
16
        FT_NONE, BASE_NONE, NULL, 0,
16991
16
        NULL, HFILL }},
16992
16
    { &hf_e2ap_stateChangedTo,
16993
16
      { "stateChangedTo", "e2ap.stateChangedTo",
16994
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RRC_State_vals), 0,
16995
16
        "RRC_State", HFILL }},
16996
16
    { &hf_e2ap_ueIDchange_ID,
16997
16
      { "ueIDchange-ID", "e2ap.ueIDchange_ID",
16998
16
        FT_UINT32, BASE_DEC, NULL, 0,
16999
16
        "INTEGER_1_512_", HFILL }},
17000
16
    { &hf_e2ap_associatedL2variables,
17001
16
      { "associatedL2variables", "e2ap.associatedL2variables",
17002
16
        FT_UINT32, BASE_DEC, NULL, 0,
17003
16
        "RANParameter_Testing", HFILL }},
17004
16
    { &hf_e2ap_onDemand,
17005
16
      { "onDemand", "e2ap.onDemand",
17006
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_onDemand_vals), 0,
17007
16
        NULL, HFILL }},
17008
16
    { &hf_e2ap_ric_Style_Type,
17009
16
      { "ric-Style-Type", "e2ap.ric_Style_Type",
17010
16
        FT_INT32, BASE_DEC, NULL, 0,
17011
16
        NULL, HFILL }},
17012
16
    { &hf_e2ap_ric_actionDefinition_formats,
17013
16
      { "ric-actionDefinition-formats", "e2ap.ric_actionDefinition_formats",
17014
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_actionDefinition_formats_vals), 0,
17015
16
        NULL, HFILL }},
17016
16
    { &hf_e2ap_actionDefinition_Format1,
17017
16
      { "actionDefinition-Format1", "e2ap.actionDefinition_Format1_element",
17018
16
        FT_NONE, BASE_NONE, NULL, 0,
17019
16
        "E2SM_RC_ActionDefinition_Format1", HFILL }},
17020
16
    { &hf_e2ap_actionDefinition_Format2,
17021
16
      { "actionDefinition-Format2", "e2ap.actionDefinition_Format2_element",
17022
16
        FT_NONE, BASE_NONE, NULL, 0,
17023
16
        "E2SM_RC_ActionDefinition_Format2", HFILL }},
17024
16
    { &hf_e2ap_actionDefinition_Format3,
17025
16
      { "actionDefinition-Format3", "e2ap.actionDefinition_Format3_element",
17026
16
        FT_NONE, BASE_NONE, NULL, 0,
17027
16
        "E2SM_RC_ActionDefinition_Format3", HFILL }},
17028
16
    { &hf_e2ap_actionDefinition_Format4,
17029
16
      { "actionDefinition-Format4", "e2ap.actionDefinition_Format4_element",
17030
16
        FT_NONE, BASE_NONE, NULL, 0,
17031
16
        "E2SM_RC_ActionDefinition_Format4", HFILL }},
17032
16
    { &hf_e2ap_ranP_ToBeReported_List,
17033
16
      { "ranP-ToBeReported-List", "e2ap.ranP_ToBeReported_List",
17034
16
        FT_UINT32, BASE_DEC, NULL, 0,
17035
16
        "SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item", HFILL }},
17036
16
    { &hf_e2ap_ranP_ToBeReported_List_item,
17037
16
      { "E2SM-RC-ActionDefinition-Format1-Item", "e2ap.E2SM_RC_ActionDefinition_Format1_Item_element",
17038
16
        FT_NONE, BASE_NONE, NULL, 0,
17039
16
        NULL, HFILL }},
17040
16
    { &hf_e2ap_ric_PolicyConditions_List,
17041
16
      { "ric-PolicyConditions-List", "e2ap.ric_PolicyConditions_List",
17042
16
        FT_UINT32, BASE_DEC, NULL, 0,
17043
16
        "SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item", HFILL }},
17044
16
    { &hf_e2ap_ric_PolicyConditions_List_item,
17045
16
      { "E2SM-RC-ActionDefinition-Format2-Item", "e2ap.E2SM_RC_ActionDefinition_Format2_Item_element",
17046
16
        FT_NONE, BASE_NONE, NULL, 0,
17047
16
        NULL, HFILL }},
17048
16
    { &hf_e2ap_ric_PolicyAction,
17049
16
      { "ric-PolicyAction", "e2ap.ric_PolicyAction_element",
17050
16
        FT_NONE, BASE_NONE, NULL, 0,
17051
16
        NULL, HFILL }},
17052
16
    { &hf_e2ap_ric_PolicyConditionDefinition,
17053
16
      { "ric-PolicyConditionDefinition", "e2ap.ric_PolicyConditionDefinition",
17054
16
        FT_UINT32, BASE_DEC, NULL, 0,
17055
16
        "RANParameter_Testing", HFILL }},
17056
16
    { &hf_e2ap_ric_InsertIndication_ID,
17057
16
      { "ric-InsertIndication-ID", "e2ap.ric_InsertIndication_ID",
17058
16
        FT_UINT32, BASE_DEC, NULL, 0,
17059
16
        NULL, HFILL }},
17060
16
    { &hf_e2ap_ranP_InsertIndication_List,
17061
16
      { "ranP-InsertIndication-List", "e2ap.ranP_InsertIndication_List",
17062
16
        FT_UINT32, BASE_DEC, NULL, 0,
17063
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item", HFILL }},
17064
16
    { &hf_e2ap_ranP_InsertIndication_List_item,
17065
16
      { "E2SM-RC-ActionDefinition-Format3-Item", "e2ap.E2SM_RC_ActionDefinition_Format3_Item_element",
17066
16
        FT_NONE, BASE_NONE, NULL, 0,
17067
16
        NULL, HFILL }},
17068
16
    { &hf_e2ap_ric_InsertStyle_List,
17069
16
      { "ric-InsertStyle-List", "e2ap.ric_InsertStyle_List",
17070
16
        FT_UINT32, BASE_DEC, NULL, 0,
17071
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item", HFILL }},
17072
16
    { &hf_e2ap_ric_InsertStyle_List_item,
17073
16
      { "E2SM-RC-ActionDefinition-Format4-Style-Item", "e2ap.E2SM_RC_ActionDefinition_Format4_Style_Item_element",
17074
16
        FT_NONE, BASE_NONE, NULL, 0,
17075
16
        NULL, HFILL }},
17076
16
    { &hf_e2ap_requested_Insert_Style_Type,
17077
16
      { "requested-Insert-Style-Type", "e2ap.requested_Insert_Style_Type",
17078
16
        FT_INT32, BASE_DEC, NULL, 0,
17079
16
        "RIC_Style_Type", HFILL }},
17080
16
    { &hf_e2ap_ric_InsertIndication_List,
17081
16
      { "ric-InsertIndication-List", "e2ap.ric_InsertIndication_List",
17082
16
        FT_UINT32, BASE_DEC, NULL, 0,
17083
16
        "SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item", HFILL }},
17084
16
    { &hf_e2ap_ric_InsertIndication_List_item,
17085
16
      { "E2SM-RC-ActionDefinition-Format4-Indication-Item", "e2ap.E2SM_RC_ActionDefinition_Format4_Indication_Item_element",
17086
16
        FT_NONE, BASE_NONE, NULL, 0,
17087
16
        NULL, HFILL }},
17088
16
    { &hf_e2ap_ranP_InsertIndication_List_01,
17089
16
      { "ranP-InsertIndication-List", "e2ap.ranP_InsertIndication_List",
17090
16
        FT_UINT32, BASE_DEC, NULL, 0,
17091
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item", HFILL }},
17092
16
    { &hf_e2ap_ranP_InsertIndication_List_item_01,
17093
16
      { "E2SM-RC-ActionDefinition-Format4-RANP-Item", "e2ap.E2SM_RC_ActionDefinition_Format4_RANP_Item_element",
17094
16
        FT_NONE, BASE_NONE, NULL, 0,
17095
16
        NULL, HFILL }},
17096
16
    { &hf_e2ap_ric_indicationHeader_formats,
17097
16
      { "ric-indicationHeader-formats", "e2ap.ric_indicationHeader_formats",
17098
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_indicationHeader_formats_vals), 0,
17099
16
        NULL, HFILL }},
17100
16
    { &hf_e2ap_indicationHeader_Format1,
17101
16
      { "indicationHeader-Format1", "e2ap.indicationHeader_Format1_element",
17102
16
        FT_NONE, BASE_NONE, NULL, 0,
17103
16
        "E2SM_RC_IndicationHeader_Format1", HFILL }},
17104
16
    { &hf_e2ap_indicationHeader_Format2,
17105
16
      { "indicationHeader-Format2", "e2ap.indicationHeader_Format2_element",
17106
16
        FT_NONE, BASE_NONE, NULL, 0,
17107
16
        "E2SM_RC_IndicationHeader_Format2", HFILL }},
17108
16
    { &hf_e2ap_indicationHeader_Format3,
17109
16
      { "indicationHeader-Format3", "e2ap.indicationHeader_Format3_element",
17110
16
        FT_NONE, BASE_NONE, NULL, 0,
17111
16
        "E2SM_RC_IndicationHeader_Format3", HFILL }},
17112
16
    { &hf_e2ap_ric_InsertStyle_Type,
17113
16
      { "ric-InsertStyle-Type", "e2ap.ric_InsertStyle_Type",
17114
16
        FT_INT32, BASE_DEC, NULL, 0,
17115
16
        "RIC_Style_Type", HFILL }},
17116
16
    { &hf_e2ap_ric_indicationMessage_formats,
17117
16
      { "ric-indicationMessage-formats", "e2ap.ric_indicationMessage_formats",
17118
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_indicationMessage_formats_vals), 0,
17119
16
        NULL, HFILL }},
17120
16
    { &hf_e2ap_indicationMessage_Format1,
17121
16
      { "indicationMessage-Format1", "e2ap.indicationMessage_Format1_element",
17122
16
        FT_NONE, BASE_NONE, NULL, 0,
17123
16
        "E2SM_RC_IndicationMessage_Format1", HFILL }},
17124
16
    { &hf_e2ap_indicationMessage_Format2,
17125
16
      { "indicationMessage-Format2", "e2ap.indicationMessage_Format2_element",
17126
16
        FT_NONE, BASE_NONE, NULL, 0,
17127
16
        "E2SM_RC_IndicationMessage_Format2", HFILL }},
17128
16
    { &hf_e2ap_indicationMessage_Format3,
17129
16
      { "indicationMessage-Format3", "e2ap.indicationMessage_Format3_element",
17130
16
        FT_NONE, BASE_NONE, NULL, 0,
17131
16
        "E2SM_RC_IndicationMessage_Format3", HFILL }},
17132
16
    { &hf_e2ap_indicationMessage_Format4,
17133
16
      { "indicationMessage-Format4", "e2ap.indicationMessage_Format4_element",
17134
16
        FT_NONE, BASE_NONE, NULL, 0,
17135
16
        "E2SM_RC_IndicationMessage_Format4", HFILL }},
17136
16
    { &hf_e2ap_indicationMessage_Format5,
17137
16
      { "indicationMessage-Format5", "e2ap.indicationMessage_Format5_element",
17138
16
        FT_NONE, BASE_NONE, NULL, 0,
17139
16
        "E2SM_RC_IndicationMessage_Format5", HFILL }},
17140
16
    { &hf_e2ap_indicationMessage_Format6,
17141
16
      { "indicationMessage-Format6", "e2ap.indicationMessage_Format6_element",
17142
16
        FT_NONE, BASE_NONE, NULL, 0,
17143
16
        "E2SM_RC_IndicationMessage_Format6", HFILL }},
17144
16
    { &hf_e2ap_ranP_Reported_List,
17145
16
      { "ranP-Reported-List", "e2ap.ranP_Reported_List",
17146
16
        FT_UINT32, BASE_DEC, NULL, 0,
17147
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item", HFILL }},
17148
16
    { &hf_e2ap_ranP_Reported_List_item,
17149
16
      { "E2SM-RC-IndicationMessage-Format1-Item", "e2ap.E2SM_RC_IndicationMessage_Format1_Item_element",
17150
16
        FT_NONE, BASE_NONE, NULL, 0,
17151
16
        NULL, HFILL }},
17152
16
    { &hf_e2ap_ueParameter_List,
17153
16
      { "ueParameter-List", "e2ap.ueParameter_List",
17154
16
        FT_UINT32, BASE_DEC, NULL, 0,
17155
16
        "SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item", HFILL }},
17156
16
    { &hf_e2ap_ueParameter_List_item,
17157
16
      { "E2SM-RC-IndicationMessage-Format2-Item", "e2ap.E2SM_RC_IndicationMessage_Format2_Item_element",
17158
16
        FT_NONE, BASE_NONE, NULL, 0,
17159
16
        NULL, HFILL }},
17160
16
    { &hf_e2ap_ranP_List,
17161
16
      { "ranP-List", "e2ap.ranP_List",
17162
16
        FT_UINT32, BASE_DEC, NULL, 0,
17163
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item", HFILL }},
17164
16
    { &hf_e2ap_ranP_List_item,
17165
16
      { "E2SM-RC-IndicationMessage-Format2-RANParameter-Item", "e2ap.E2SM_RC_IndicationMessage_Format2_RANParameter_Item_element",
17166
16
        FT_NONE, BASE_NONE, NULL, 0,
17167
16
        NULL, HFILL }},
17168
16
    { &hf_e2ap_cellInfo_List_01,
17169
16
      { "cellInfo-List", "e2ap.cellInfo_List",
17170
16
        FT_UINT32, BASE_DEC, NULL, 0,
17171
16
        "SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item", HFILL }},
17172
16
    { &hf_e2ap_cellInfo_List_item_01,
17173
16
      { "E2SM-RC-IndicationMessage-Format3-Item", "e2ap.E2SM_RC_IndicationMessage_Format3_Item_element",
17174
16
        FT_NONE, BASE_NONE, NULL, 0,
17175
16
        NULL, HFILL }},
17176
16
    { &hf_e2ap_cellGlobal_ID,
17177
16
      { "cellGlobal-ID", "e2ap.cellGlobal_ID",
17178
16
        FT_UINT32, BASE_DEC, VALS(e2ap_CGI_vals), 0,
17179
16
        "CGI", HFILL }},
17180
16
    { &hf_e2ap_cellContextInfo,
17181
16
      { "cellContextInfo", "e2ap.cellContextInfo",
17182
16
        FT_BYTES, BASE_NONE, NULL, 0,
17183
16
        "OCTET_STRING", HFILL }},
17184
16
    { &hf_e2ap_cellDeleted,
17185
16
      { "cellDeleted", "e2ap.cellDeleted",
17186
16
        FT_BOOLEAN, BASE_NONE, NULL, 0,
17187
16
        "BOOLEAN", HFILL }},
17188
16
    { &hf_e2ap_neighborRelation_Table,
17189
16
      { "neighborRelation-Table", "e2ap.neighborRelation_Table_element",
17190
16
        FT_NONE, BASE_NONE, NULL, 0,
17191
16
        "NeighborRelation_Info", HFILL }},
17192
16
    { &hf_e2ap_ueInfo_List_01,
17193
16
      { "ueInfo-List", "e2ap.ueInfo_List",
17194
16
        FT_UINT32, BASE_DEC, NULL, 0,
17195
16
        "SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE", HFILL }},
17196
16
    { &hf_e2ap_ueInfo_List_item_01,
17197
16
      { "E2SM-RC-IndicationMessage-Format4-ItemUE", "e2ap.E2SM_RC_IndicationMessage_Format4_ItemUE_element",
17198
16
        FT_NONE, BASE_NONE, NULL, 0,
17199
16
        NULL, HFILL }},
17200
16
    { &hf_e2ap_cellInfo_List_02,
17201
16
      { "cellInfo-List", "e2ap.cellInfo_List",
17202
16
        FT_UINT32, BASE_DEC, NULL, 0,
17203
16
        "SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell", HFILL }},
17204
16
    { &hf_e2ap_cellInfo_List_item_02,
17205
16
      { "E2SM-RC-IndicationMessage-Format4-ItemCell", "e2ap.E2SM_RC_IndicationMessage_Format4_ItemCell_element",
17206
16
        FT_NONE, BASE_NONE, NULL, 0,
17207
16
        NULL, HFILL }},
17208
16
    { &hf_e2ap_ueContextInfo,
17209
16
      { "ueContextInfo", "e2ap.ueContextInfo",
17210
16
        FT_BYTES, BASE_NONE, NULL, 0,
17211
16
        "OCTET_STRING", HFILL }},
17212
16
    { &hf_e2ap_ranP_Requested_List,
17213
16
      { "ranP-Requested-List", "e2ap.ranP_Requested_List",
17214
16
        FT_UINT32, BASE_DEC, NULL, 0,
17215
16
        "SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item", HFILL }},
17216
16
    { &hf_e2ap_ranP_Requested_List_item,
17217
16
      { "E2SM-RC-IndicationMessage-Format5-Item", "e2ap.E2SM_RC_IndicationMessage_Format5_Item_element",
17218
16
        FT_NONE, BASE_NONE, NULL, 0,
17219
16
        NULL, HFILL }},
17220
16
    { &hf_e2ap_ric_InsertStyle_List_01,
17221
16
      { "ric-InsertStyle-List", "e2ap.ric_InsertStyle_List",
17222
16
        FT_UINT32, BASE_DEC, NULL, 0,
17223
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item", HFILL }},
17224
16
    { &hf_e2ap_ric_InsertStyle_List_item_01,
17225
16
      { "E2SM-RC-IndicationMessage-Format6-Style-Item", "e2ap.E2SM_RC_IndicationMessage_Format6_Style_Item_element",
17226
16
        FT_NONE, BASE_NONE, NULL, 0,
17227
16
        NULL, HFILL }},
17228
16
    { &hf_e2ap_indicated_Insert_Style_Type,
17229
16
      { "indicated-Insert-Style-Type", "e2ap.indicated_Insert_Style_Type",
17230
16
        FT_INT32, BASE_DEC, NULL, 0,
17231
16
        "RIC_Style_Type", HFILL }},
17232
16
    { &hf_e2ap_ric_InsertIndication_List_01,
17233
16
      { "ric-InsertIndication-List", "e2ap.ric_InsertIndication_List",
17234
16
        FT_UINT32, BASE_DEC, NULL, 0,
17235
16
        "SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item", HFILL }},
17236
16
    { &hf_e2ap_ric_InsertIndication_List_item_01,
17237
16
      { "E2SM-RC-IndicationMessage-Format6-Indication-Item", "e2ap.E2SM_RC_IndicationMessage_Format6_Indication_Item_element",
17238
16
        FT_NONE, BASE_NONE, NULL, 0,
17239
16
        NULL, HFILL }},
17240
16
    { &hf_e2ap_ranP_InsertIndication_List_02,
17241
16
      { "ranP-InsertIndication-List", "e2ap.ranP_InsertIndication_List",
17242
16
        FT_UINT32, BASE_DEC, NULL, 0,
17243
16
        "SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item", HFILL }},
17244
16
    { &hf_e2ap_ranP_InsertIndication_List_item_02,
17245
16
      { "E2SM-RC-IndicationMessage-Format6-RANP-Item", "e2ap.E2SM_RC_IndicationMessage_Format6_RANP_Item_element",
17246
16
        FT_NONE, BASE_NONE, NULL, 0,
17247
16
        NULL, HFILL }},
17248
16
    { &hf_e2ap_ric_callProcessID_formats,
17249
16
      { "ric-callProcessID-formats", "e2ap.ric_callProcessID_formats",
17250
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_callProcessID_formats_vals), 0,
17251
16
        NULL, HFILL }},
17252
16
    { &hf_e2ap_callProcessID_Format1,
17253
16
      { "callProcessID-Format1", "e2ap.callProcessID_Format1_element",
17254
16
        FT_NONE, BASE_NONE, NULL, 0,
17255
16
        "E2SM_RC_CallProcessID_Format1", HFILL }},
17256
16
    { &hf_e2ap_ric_callProcess_ID,
17257
16
      { "ric-callProcess-ID", "e2ap.ric_callProcess_ID",
17258
16
        FT_UINT32, BASE_DEC, NULL, 0,
17259
16
        "RAN_CallProcess_ID", HFILL }},
17260
16
    { &hf_e2ap_ric_controlHeader_formats,
17261
16
      { "ric-controlHeader-formats", "e2ap.ric_controlHeader_formats",
17262
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_controlHeader_formats_vals), 0,
17263
16
        NULL, HFILL }},
17264
16
    { &hf_e2ap_controlHeader_Format1,
17265
16
      { "controlHeader-Format1", "e2ap.controlHeader_Format1_element",
17266
16
        FT_NONE, BASE_NONE, NULL, 0,
17267
16
        "E2SM_RC_ControlHeader_Format1", HFILL }},
17268
16
    { &hf_e2ap_controlHeader_Format2,
17269
16
      { "controlHeader-Format2", "e2ap.controlHeader_Format2_element",
17270
16
        FT_NONE, BASE_NONE, NULL, 0,
17271
16
        "E2SM_RC_ControlHeader_Format2", HFILL }},
17272
16
    { &hf_e2ap_ric_ControlAction_ID,
17273
16
      { "ric-ControlAction-ID", "e2ap.ric_ControlAction_ID",
17274
16
        FT_UINT32, BASE_DEC, NULL, 0,
17275
16
        NULL, HFILL }},
17276
16
    { &hf_e2ap_ric_ControlDecision,
17277
16
      { "ric-ControlDecision", "e2ap.ric_ControlDecision",
17278
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_ControlDecision_vals), 0,
17279
16
        NULL, HFILL }},
17280
16
    { &hf_e2ap_ric_ControlDecision_01,
17281
16
      { "ric-ControlDecision", "e2ap.ric_ControlDecision",
17282
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_ControlDecision_01_vals), 0,
17283
16
        "T_ric_ControlDecision_01", HFILL }},
17284
16
    { &hf_e2ap_ric_controlMessage_formats,
17285
16
      { "ric-controlMessage-formats", "e2ap.ric_controlMessage_formats",
17286
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_controlMessage_formats_vals), 0,
17287
16
        NULL, HFILL }},
17288
16
    { &hf_e2ap_controlMessage_Format1,
17289
16
      { "controlMessage-Format1", "e2ap.controlMessage_Format1_element",
17290
16
        FT_NONE, BASE_NONE, NULL, 0,
17291
16
        "E2SM_RC_ControlMessage_Format1", HFILL }},
17292
16
    { &hf_e2ap_controlMessage_Format2,
17293
16
      { "controlMessage-Format2", "e2ap.controlMessage_Format2_element",
17294
16
        FT_NONE, BASE_NONE, NULL, 0,
17295
16
        "E2SM_RC_ControlMessage_Format2", HFILL }},
17296
16
    { &hf_e2ap_ranP_List_01,
17297
16
      { "ranP-List", "e2ap.ranP_List",
17298
16
        FT_UINT32, BASE_DEC, NULL, 0,
17299
16
        "SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item", HFILL }},
17300
16
    { &hf_e2ap_ranP_List_item_01,
17301
16
      { "E2SM-RC-ControlMessage-Format1-Item", "e2ap.E2SM_RC_ControlMessage_Format1_Item_element",
17302
16
        FT_NONE, BASE_NONE, NULL, 0,
17303
16
        NULL, HFILL }},
17304
16
    { &hf_e2ap_ric_ControlStyle_List,
17305
16
      { "ric-ControlStyle-List", "e2ap.ric_ControlStyle_List",
17306
16
        FT_UINT32, BASE_DEC, NULL, 0,
17307
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item", HFILL }},
17308
16
    { &hf_e2ap_ric_ControlStyle_List_item,
17309
16
      { "E2SM-RC-ControlMessage-Format2-Style-Item", "e2ap.E2SM_RC_ControlMessage_Format2_Style_Item_element",
17310
16
        FT_NONE, BASE_NONE, NULL, 0,
17311
16
        NULL, HFILL }},
17312
16
    { &hf_e2ap_indicated_Control_Style_Type,
17313
16
      { "indicated-Control-Style-Type", "e2ap.indicated_Control_Style_Type",
17314
16
        FT_INT32, BASE_DEC, NULL, 0,
17315
16
        "RIC_Style_Type", HFILL }},
17316
16
    { &hf_e2ap_ric_ControlAction_List,
17317
16
      { "ric-ControlAction-List", "e2ap.ric_ControlAction_List",
17318
16
        FT_UINT32, BASE_DEC, NULL, 0,
17319
16
        "SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item", HFILL }},
17320
16
    { &hf_e2ap_ric_ControlAction_List_item,
17321
16
      { "E2SM-RC-ControlMessage-Format2-ControlAction-Item", "e2ap.E2SM_RC_ControlMessage_Format2_ControlAction_Item_element",
17322
16
        FT_NONE, BASE_NONE, NULL, 0,
17323
16
        NULL, HFILL }},
17324
16
    { &hf_e2ap_ranP_List_02,
17325
16
      { "ranP-List", "e2ap.ranP_List_element",
17326
16
        FT_NONE, BASE_NONE, NULL, 0,
17327
16
        "E2SM_RC_ControlMessage_Format1", HFILL }},
17328
16
    { &hf_e2ap_ric_controlOutcome_formats,
17329
16
      { "ric-controlOutcome-formats", "e2ap.ric_controlOutcome_formats",
17330
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ric_controlOutcome_formats_vals), 0,
17331
16
        NULL, HFILL }},
17332
16
    { &hf_e2ap_controlOutcome_Format1,
17333
16
      { "controlOutcome-Format1", "e2ap.controlOutcome_Format1_element",
17334
16
        FT_NONE, BASE_NONE, NULL, 0,
17335
16
        "E2SM_RC_ControlOutcome_Format1", HFILL }},
17336
16
    { &hf_e2ap_controlOutcome_Format2,
17337
16
      { "controlOutcome-Format2", "e2ap.controlOutcome_Format2_element",
17338
16
        FT_NONE, BASE_NONE, NULL, 0,
17339
16
        "E2SM_RC_ControlOutcome_Format2", HFILL }},
17340
16
    { &hf_e2ap_controlOutcome_Format3,
17341
16
      { "controlOutcome-Format3", "e2ap.controlOutcome_Format3_element",
17342
16
        FT_NONE, BASE_NONE, NULL, 0,
17343
16
        "E2SM_RC_ControlOutcome_Format3", HFILL }},
17344
16
    { &hf_e2ap_ranP_List_03,
17345
16
      { "ranP-List", "e2ap.ranP_List",
17346
16
        FT_UINT32, BASE_DEC, NULL, 0,
17347
16
        "SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item", HFILL }},
17348
16
    { &hf_e2ap_ranP_List_item_02,
17349
16
      { "E2SM-RC-ControlOutcome-Format1-Item", "e2ap.E2SM_RC_ControlOutcome_Format1_Item_element",
17350
16
        FT_NONE, BASE_NONE, NULL, 0,
17351
16
        NULL, HFILL }},
17352
16
    { &hf_e2ap_ric_ControlStyle_List_01,
17353
16
      { "ric-ControlStyle-List", "e2ap.ric_ControlStyle_List",
17354
16
        FT_UINT32, BASE_DEC, NULL, 0,
17355
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item", HFILL }},
17356
16
    { &hf_e2ap_ric_ControlStyle_List_item_01,
17357
16
      { "E2SM-RC-ControlOutcome-Format2-Style-Item", "e2ap.E2SM_RC_ControlOutcome_Format2_Style_Item_element",
17358
16
        FT_NONE, BASE_NONE, NULL, 0,
17359
16
        NULL, HFILL }},
17360
16
    { &hf_e2ap_ric_ControlOutcome_List,
17361
16
      { "ric-ControlOutcome-List", "e2ap.ric_ControlOutcome_List",
17362
16
        FT_UINT32, BASE_DEC, NULL, 0,
17363
16
        "SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item", HFILL }},
17364
16
    { &hf_e2ap_ric_ControlOutcome_List_item,
17365
16
      { "E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item", "e2ap.E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_element",
17366
16
        FT_NONE, BASE_NONE, NULL, 0,
17367
16
        NULL, HFILL }},
17368
16
    { &hf_e2ap_ranP_List_04,
17369
16
      { "ranP-List", "e2ap.ranP_List",
17370
16
        FT_UINT32, BASE_DEC, NULL, 0,
17371
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item", HFILL }},
17372
16
    { &hf_e2ap_ranP_List_item_03,
17373
16
      { "E2SM-RC-ControlOutcome-Format2-RANP-Item", "e2ap.E2SM_RC_ControlOutcome_Format2_RANP_Item_element",
17374
16
        FT_NONE, BASE_NONE, NULL, 0,
17375
16
        NULL, HFILL }},
17376
16
    { &hf_e2ap_ranP_List_05,
17377
16
      { "ranP-List", "e2ap.ranP_List",
17378
16
        FT_UINT32, BASE_DEC, NULL, 0,
17379
16
        "SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item", HFILL }},
17380
16
    { &hf_e2ap_ranP_List_item_04,
17381
16
      { "E2SM-RC-ControlOutcome-Format3-Item", "e2ap.E2SM_RC_ControlOutcome_Format3_Item_element",
17382
16
        FT_NONE, BASE_NONE, NULL, 0,
17383
16
        NULL, HFILL }},
17384
16
    { &hf_e2ap_ranFunction_Name,
17385
16
      { "ranFunction-Name", "e2ap.ranFunction_Name_element",
17386
16
        FT_NONE, BASE_NONE, NULL, 0,
17387
16
        NULL, HFILL }},
17388
16
    { &hf_e2ap_ranFunctionDefinition_EventTrigger,
17389
16
      { "ranFunctionDefinition-EventTrigger", "e2ap.ranFunctionDefinition_EventTrigger_element",
17390
16
        FT_NONE, BASE_NONE, NULL, 0,
17391
16
        NULL, HFILL }},
17392
16
    { &hf_e2ap_ranFunctionDefinition_Report,
17393
16
      { "ranFunctionDefinition-Report", "e2ap.ranFunctionDefinition_Report_element",
17394
16
        FT_NONE, BASE_NONE, NULL, 0,
17395
16
        NULL, HFILL }},
17396
16
    { &hf_e2ap_ranFunctionDefinition_Insert,
17397
16
      { "ranFunctionDefinition-Insert", "e2ap.ranFunctionDefinition_Insert_element",
17398
16
        FT_NONE, BASE_NONE, NULL, 0,
17399
16
        NULL, HFILL }},
17400
16
    { &hf_e2ap_ranFunctionDefinition_Control,
17401
16
      { "ranFunctionDefinition-Control", "e2ap.ranFunctionDefinition_Control_element",
17402
16
        FT_NONE, BASE_NONE, NULL, 0,
17403
16
        NULL, HFILL }},
17404
16
    { &hf_e2ap_ranFunctionDefinition_Policy,
17405
16
      { "ranFunctionDefinition-Policy", "e2ap.ranFunctionDefinition_Policy_element",
17406
16
        FT_NONE, BASE_NONE, NULL, 0,
17407
16
        NULL, HFILL }},
17408
16
    { &hf_e2ap_ric_EventTriggerStyle_List,
17409
16
      { "ric-EventTriggerStyle-List", "e2ap.ric_EventTriggerStyle_List",
17410
16
        FT_UINT32, BASE_DEC, NULL, 0,
17411
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item", HFILL }},
17412
16
    { &hf_e2ap_ric_EventTriggerStyle_List_item,
17413
16
      { "RANFunctionDefinition-EventTrigger-Style-Item", "e2ap.RANFunctionDefinition_EventTrigger_Style_Item_element",
17414
16
        FT_NONE, BASE_NONE, NULL, 0,
17415
16
        NULL, HFILL }},
17416
16
    { &hf_e2ap_ran_L2Parameters_List,
17417
16
      { "ran-L2Parameters-List", "e2ap.ran_L2Parameters_List",
17418
16
        FT_UINT32, BASE_DEC, NULL, 0,
17419
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item", HFILL }},
17420
16
    { &hf_e2ap_ran_L2Parameters_List_item,
17421
16
      { "L2Parameters-RANParameter-Item", "e2ap.L2Parameters_RANParameter_Item_element",
17422
16
        FT_NONE, BASE_NONE, NULL, 0,
17423
16
        NULL, HFILL }},
17424
16
    { &hf_e2ap_ran_CallProcessTypes_List,
17425
16
      { "ran-CallProcessTypes-List", "e2ap.ran_CallProcessTypes_List",
17426
16
        FT_UINT32, BASE_DEC, NULL, 0,
17427
16
        "SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item", HFILL }},
17428
16
    { &hf_e2ap_ran_CallProcessTypes_List_item,
17429
16
      { "RANFunctionDefinition-EventTrigger-CallProcess-Item", "e2ap.RANFunctionDefinition_EventTrigger_CallProcess_Item_element",
17430
16
        FT_NONE, BASE_NONE, NULL, 0,
17431
16
        NULL, HFILL }},
17432
16
    { &hf_e2ap_ran_UEIdentificationParameters_List,
17433
16
      { "ran-UEIdentificationParameters-List", "e2ap.ran_UEIdentificationParameters_List",
17434
16
        FT_UINT32, BASE_DEC, NULL, 0,
17435
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item", HFILL }},
17436
16
    { &hf_e2ap_ran_UEIdentificationParameters_List_item,
17437
16
      { "UEIdentification-RANParameter-Item", "e2ap.UEIdentification_RANParameter_Item_element",
17438
16
        FT_NONE, BASE_NONE, NULL, 0,
17439
16
        NULL, HFILL }},
17440
16
    { &hf_e2ap_ran_CellIdentificationParameters_List,
17441
16
      { "ran-CellIdentificationParameters-List", "e2ap.ran_CellIdentificationParameters_List",
17442
16
        FT_UINT32, BASE_DEC, NULL, 0,
17443
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item", HFILL }},
17444
16
    { &hf_e2ap_ran_CellIdentificationParameters_List_item,
17445
16
      { "CellIdentification-RANParameter-Item", "e2ap.CellIdentification_RANParameter_Item_element",
17446
16
        FT_NONE, BASE_NONE, NULL, 0,
17447
16
        NULL, HFILL }},
17448
16
    { &hf_e2ap_ric_EventTriggerStyle_Type,
17449
16
      { "ric-EventTriggerStyle-Type", "e2ap.ric_EventTriggerStyle_Type",
17450
16
        FT_INT32, BASE_DEC, NULL, 0,
17451
16
        "RIC_Style_Type", HFILL }},
17452
16
    { &hf_e2ap_ric_EventTriggerStyle_Name,
17453
16
      { "ric-EventTriggerStyle-Name", "e2ap.ric_EventTriggerStyle_Name",
17454
16
        FT_STRING, BASE_NONE, NULL, 0,
17455
16
        "RIC_Style_Name", HFILL }},
17456
16
    { &hf_e2ap_ric_EventTriggerFormat_Type,
17457
16
      { "ric-EventTriggerFormat-Type", "e2ap.ric_EventTriggerFormat_Type",
17458
16
        FT_INT32, BASE_DEC, NULL, 0,
17459
16
        "RIC_Format_Type", HFILL }},
17460
16
    { &hf_e2ap_callProcessType_ID,
17461
16
      { "callProcessType-ID", "e2ap.callProcessType_ID",
17462
16
        FT_UINT32, BASE_DEC, NULL, 0,
17463
16
        "RIC_CallProcessType_ID", HFILL }},
17464
16
    { &hf_e2ap_callProcessType_Name,
17465
16
      { "callProcessType-Name", "e2ap.callProcessType_Name",
17466
16
        FT_STRING, BASE_NONE, NULL, 0,
17467
16
        "RIC_CallProcessType_Name", HFILL }},
17468
16
    { &hf_e2ap_callProcessBreakpoints_List,
17469
16
      { "callProcessBreakpoints-List", "e2ap.callProcessBreakpoints_List",
17470
16
        FT_UINT32, BASE_DEC, NULL, 0,
17471
16
        "SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item", HFILL }},
17472
16
    { &hf_e2ap_callProcessBreakpoints_List_item,
17473
16
      { "RANFunctionDefinition-EventTrigger-Breakpoint-Item", "e2ap.RANFunctionDefinition_EventTrigger_Breakpoint_Item_element",
17474
16
        FT_NONE, BASE_NONE, NULL, 0,
17475
16
        NULL, HFILL }},
17476
16
    { &hf_e2ap_callProcessBreakpoint_ID,
17477
16
      { "callProcessBreakpoint-ID", "e2ap.callProcessBreakpoint_ID",
17478
16
        FT_UINT32, BASE_DEC, NULL, 0,
17479
16
        "RIC_CallProcessBreakpoint_ID", HFILL }},
17480
16
    { &hf_e2ap_callProcessBreakpoint_Name,
17481
16
      { "callProcessBreakpoint-Name", "e2ap.callProcessBreakpoint_Name",
17482
16
        FT_STRING, BASE_NONE, NULL, 0,
17483
16
        "RIC_CallProcessBreakpoint_Name", HFILL }},
17484
16
    { &hf_e2ap_ran_CallProcessBreakpointParameters_List,
17485
16
      { "ran-CallProcessBreakpointParameters-List", "e2ap.ran_CallProcessBreakpointParameters_List",
17486
16
        FT_UINT32, BASE_DEC, NULL, 0,
17487
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item", HFILL }},
17488
16
    { &hf_e2ap_ran_CallProcessBreakpointParameters_List_item,
17489
16
      { "CallProcessBreakpoint-RANParameter-Item", "e2ap.CallProcessBreakpoint_RANParameter_Item_element",
17490
16
        FT_NONE, BASE_NONE, NULL, 0,
17491
16
        NULL, HFILL }},
17492
16
    { &hf_e2ap_ric_ReportStyle_List,
17493
16
      { "ric-ReportStyle-List", "e2ap.ric_ReportStyle_List",
17494
16
        FT_UINT32, BASE_DEC, NULL, 0,
17495
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item", HFILL }},
17496
16
    { &hf_e2ap_ric_ReportStyle_List_item,
17497
16
      { "RANFunctionDefinition-Report-Item", "e2ap.RANFunctionDefinition_Report_Item_element",
17498
16
        FT_NONE, BASE_NONE, NULL, 0,
17499
16
        NULL, HFILL }},
17500
16
    { &hf_e2ap_ric_ReportStyle_Type,
17501
16
      { "ric-ReportStyle-Type", "e2ap.ric_ReportStyle_Type",
17502
16
        FT_INT32, BASE_DEC, NULL, 0,
17503
16
        "RIC_Style_Type", HFILL }},
17504
16
    { &hf_e2ap_ric_ReportStyle_Name,
17505
16
      { "ric-ReportStyle-Name", "e2ap.ric_ReportStyle_Name",
17506
16
        FT_STRING, BASE_NONE, NULL, 0,
17507
16
        "RIC_Style_Name", HFILL }},
17508
16
    { &hf_e2ap_ric_SupportedEventTriggerStyle_Type,
17509
16
      { "ric-SupportedEventTriggerStyle-Type", "e2ap.ric_SupportedEventTriggerStyle_Type",
17510
16
        FT_INT32, BASE_DEC, NULL, 0,
17511
16
        "RIC_Style_Type", HFILL }},
17512
16
    { &hf_e2ap_ric_ReportActionFormat_Type,
17513
16
      { "ric-ReportActionFormat-Type", "e2ap.ric_ReportActionFormat_Type",
17514
16
        FT_INT32, BASE_DEC, NULL, 0,
17515
16
        "RIC_Format_Type", HFILL }},
17516
16
    { &hf_e2ap_ric_IndicationHeaderFormat_Type,
17517
16
      { "ric-IndicationHeaderFormat-Type", "e2ap.ric_IndicationHeaderFormat_Type",
17518
16
        FT_INT32, BASE_DEC, NULL, 0,
17519
16
        "RIC_Format_Type", HFILL }},
17520
16
    { &hf_e2ap_ric_IndicationMessageFormat_Type,
17521
16
      { "ric-IndicationMessageFormat-Type", "e2ap.ric_IndicationMessageFormat_Type",
17522
16
        FT_INT32, BASE_DEC, NULL, 0,
17523
16
        "RIC_Format_Type", HFILL }},
17524
16
    { &hf_e2ap_ran_ReportParameters_List,
17525
16
      { "ran-ReportParameters-List", "e2ap.ran_ReportParameters_List",
17526
16
        FT_UINT32, BASE_DEC, NULL, 0,
17527
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item", HFILL }},
17528
16
    { &hf_e2ap_ran_ReportParameters_List_item,
17529
16
      { "Report-RANParameter-Item", "e2ap.Report_RANParameter_Item_element",
17530
16
        FT_NONE, BASE_NONE, NULL, 0,
17531
16
        NULL, HFILL }},
17532
16
    { &hf_e2ap_ric_InsertStyle_List_02,
17533
16
      { "ric-InsertStyle-List", "e2ap.ric_InsertStyle_List",
17534
16
        FT_UINT32, BASE_DEC, NULL, 0,
17535
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item", HFILL }},
17536
16
    { &hf_e2ap_ric_InsertStyle_List_item_02,
17537
16
      { "RANFunctionDefinition-Insert-Item", "e2ap.RANFunctionDefinition_Insert_Item_element",
17538
16
        FT_NONE, BASE_NONE, NULL, 0,
17539
16
        NULL, HFILL }},
17540
16
    { &hf_e2ap_ric_InsertStyle_Name,
17541
16
      { "ric-InsertStyle-Name", "e2ap.ric_InsertStyle_Name",
17542
16
        FT_STRING, BASE_NONE, NULL, 0,
17543
16
        "RIC_Style_Name", HFILL }},
17544
16
    { &hf_e2ap_ric_ActionDefinitionFormat_Type,
17545
16
      { "ric-ActionDefinitionFormat-Type", "e2ap.ric_ActionDefinitionFormat_Type",
17546
16
        FT_INT32, BASE_DEC, NULL, 0,
17547
16
        "RIC_Format_Type", HFILL }},
17548
16
    { &hf_e2ap_ric_InsertIndication_List_02,
17549
16
      { "ric-InsertIndication-List", "e2ap.ric_InsertIndication_List",
17550
16
        FT_UINT32, BASE_DEC, NULL, 0,
17551
16
        "SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item", HFILL }},
17552
16
    { &hf_e2ap_ric_InsertIndication_List_item_02,
17553
16
      { "RANFunctionDefinition-Insert-Indication-Item", "e2ap.RANFunctionDefinition_Insert_Indication_Item_element",
17554
16
        FT_NONE, BASE_NONE, NULL, 0,
17555
16
        NULL, HFILL }},
17556
16
    { &hf_e2ap_ric_CallProcessIDFormat_Type,
17557
16
      { "ric-CallProcessIDFormat-Type", "e2ap.ric_CallProcessIDFormat_Type",
17558
16
        FT_INT32, BASE_DEC, NULL, 0,
17559
16
        "RIC_Format_Type", HFILL }},
17560
16
    { &hf_e2ap_ric_InsertIndication_Name,
17561
16
      { "ric-InsertIndication-Name", "e2ap.ric_InsertIndication_Name",
17562
16
        FT_STRING, BASE_NONE, NULL, 0,
17563
16
        NULL, HFILL }},
17564
16
    { &hf_e2ap_ran_InsertIndicationParameters_List,
17565
16
      { "ran-InsertIndicationParameters-List", "e2ap.ran_InsertIndicationParameters_List",
17566
16
        FT_UINT32, BASE_DEC, NULL, 0,
17567
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item", HFILL }},
17568
16
    { &hf_e2ap_ran_InsertIndicationParameters_List_item,
17569
16
      { "InsertIndication-RANParameter-Item", "e2ap.InsertIndication_RANParameter_Item_element",
17570
16
        FT_NONE, BASE_NONE, NULL, 0,
17571
16
        NULL, HFILL }},
17572
16
    { &hf_e2ap_ric_ControlStyle_List_02,
17573
16
      { "ric-ControlStyle-List", "e2ap.ric_ControlStyle_List",
17574
16
        FT_UINT32, BASE_DEC, NULL, 0,
17575
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item", HFILL }},
17576
16
    { &hf_e2ap_ric_ControlStyle_List_item_02,
17577
16
      { "RANFunctionDefinition-Control-Item", "e2ap.RANFunctionDefinition_Control_Item_element",
17578
16
        FT_NONE, BASE_NONE, NULL, 0,
17579
16
        NULL, HFILL }},
17580
16
    { &hf_e2ap_ric_ControlStyle_Type,
17581
16
      { "ric-ControlStyle-Type", "e2ap.ric_ControlStyle_Type",
17582
16
        FT_INT32, BASE_DEC, NULL, 0,
17583
16
        "RIC_Style_Type", HFILL }},
17584
16
    { &hf_e2ap_ric_ControlStyle_Name,
17585
16
      { "ric-ControlStyle-Name", "e2ap.ric_ControlStyle_Name",
17586
16
        FT_STRING, BASE_NONE, NULL, 0,
17587
16
        "RIC_Style_Name", HFILL }},
17588
16
    { &hf_e2ap_ric_ControlAction_List_01,
17589
16
      { "ric-ControlAction-List", "e2ap.ric_ControlAction_List",
17590
16
        FT_UINT32, BASE_DEC, NULL, 0,
17591
16
        "SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item", HFILL }},
17592
16
    { &hf_e2ap_ric_ControlAction_List_item_01,
17593
16
      { "RANFunctionDefinition-Control-Action-Item", "e2ap.RANFunctionDefinition_Control_Action_Item_element",
17594
16
        FT_NONE, BASE_NONE, NULL, 0,
17595
16
        NULL, HFILL }},
17596
16
    { &hf_e2ap_ric_ControlHeaderFormat_Type,
17597
16
      { "ric-ControlHeaderFormat-Type", "e2ap.ric_ControlHeaderFormat_Type",
17598
16
        FT_INT32, BASE_DEC, NULL, 0,
17599
16
        "RIC_Format_Type", HFILL }},
17600
16
    { &hf_e2ap_ric_ControlMessageFormat_Type,
17601
16
      { "ric-ControlMessageFormat-Type", "e2ap.ric_ControlMessageFormat_Type",
17602
16
        FT_INT32, BASE_DEC, NULL, 0,
17603
16
        "RIC_Format_Type", HFILL }},
17604
16
    { &hf_e2ap_ric_ControlOutcomeFormat_Type,
17605
16
      { "ric-ControlOutcomeFormat-Type", "e2ap.ric_ControlOutcomeFormat_Type",
17606
16
        FT_INT32, BASE_DEC, NULL, 0,
17607
16
        "RIC_Format_Type", HFILL }},
17608
16
    { &hf_e2ap_ran_ControlOutcomeParameters_List,
17609
16
      { "ran-ControlOutcomeParameters-List", "e2ap.ran_ControlOutcomeParameters_List",
17610
16
        FT_UINT32, BASE_DEC, NULL, 0,
17611
16
        "SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item", HFILL }},
17612
16
    { &hf_e2ap_ran_ControlOutcomeParameters_List_item,
17613
16
      { "ControlOutcome-RANParameter-Item", "e2ap.ControlOutcome_RANParameter_Item_element",
17614
16
        FT_NONE, BASE_NONE, NULL, 0,
17615
16
        NULL, HFILL }},
17616
16
    { &hf_e2ap_ric_ControlAction_Name,
17617
16
      { "ric-ControlAction-Name", "e2ap.ric_ControlAction_Name",
17618
16
        FT_STRING, BASE_NONE, NULL, 0,
17619
16
        NULL, HFILL }},
17620
16
    { &hf_e2ap_ran_ControlActionParameters_List,
17621
16
      { "ran-ControlActionParameters-List", "e2ap.ran_ControlActionParameters_List",
17622
16
        FT_UINT32, BASE_DEC, NULL, 0,
17623
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item", HFILL }},
17624
16
    { &hf_e2ap_ran_ControlActionParameters_List_item,
17625
16
      { "ControlAction-RANParameter-Item", "e2ap.ControlAction_RANParameter_Item_element",
17626
16
        FT_NONE, BASE_NONE, NULL, 0,
17627
16
        NULL, HFILL }},
17628
16
    { &hf_e2ap_ric_PolicyStyle_List,
17629
16
      { "ric-PolicyStyle-List", "e2ap.ric_PolicyStyle_List",
17630
16
        FT_UINT32, BASE_DEC, NULL, 0,
17631
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item", HFILL }},
17632
16
    { &hf_e2ap_ric_PolicyStyle_List_item,
17633
16
      { "RANFunctionDefinition-Policy-Item", "e2ap.RANFunctionDefinition_Policy_Item_element",
17634
16
        FT_NONE, BASE_NONE, NULL, 0,
17635
16
        NULL, HFILL }},
17636
16
    { &hf_e2ap_ric_PolicyStyle_Type,
17637
16
      { "ric-PolicyStyle-Type", "e2ap.ric_PolicyStyle_Type",
17638
16
        FT_INT32, BASE_DEC, NULL, 0,
17639
16
        "RIC_Style_Type", HFILL }},
17640
16
    { &hf_e2ap_ric_PolicyStyle_Name,
17641
16
      { "ric-PolicyStyle-Name", "e2ap.ric_PolicyStyle_Name",
17642
16
        FT_STRING, BASE_NONE, NULL, 0,
17643
16
        "RIC_Style_Name", HFILL }},
17644
16
    { &hf_e2ap_ric_PolicyAction_List,
17645
16
      { "ric-PolicyAction-List", "e2ap.ric_PolicyAction_List",
17646
16
        FT_UINT32, BASE_DEC, NULL, 0,
17647
16
        "SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item", HFILL }},
17648
16
    { &hf_e2ap_ric_PolicyAction_List_item,
17649
16
      { "RANFunctionDefinition-Policy-Action-Item", "e2ap.RANFunctionDefinition_Policy_Action_Item_element",
17650
16
        FT_NONE, BASE_NONE, NULL, 0,
17651
16
        NULL, HFILL }},
17652
16
    { &hf_e2ap_ric_PolicyAction_Name,
17653
16
      { "ric-PolicyAction-Name", "e2ap.ric_PolicyAction_Name",
17654
16
        FT_STRING, BASE_NONE, NULL, 0,
17655
16
        "RIC_ControlAction_Name", HFILL }},
17656
16
    { &hf_e2ap_ran_PolicyActionParameters_List,
17657
16
      { "ran-PolicyActionParameters-List", "e2ap.ran_PolicyActionParameters_List",
17658
16
        FT_UINT32, BASE_DEC, NULL, 0,
17659
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item", HFILL }},
17660
16
    { &hf_e2ap_ran_PolicyActionParameters_List_item,
17661
16
      { "PolicyAction-RANParameter-Item", "e2ap.PolicyAction_RANParameter_Item_element",
17662
16
        FT_NONE, BASE_NONE, NULL, 0,
17663
16
        NULL, HFILL }},
17664
16
    { &hf_e2ap_ran_PolicyConditionParameters_List,
17665
16
      { "ran-PolicyConditionParameters-List", "e2ap.ran_PolicyConditionParameters_List",
17666
16
        FT_UINT32, BASE_DEC, NULL, 0,
17667
16
        "SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item", HFILL }},
17668
16
    { &hf_e2ap_ran_PolicyConditionParameters_List_item,
17669
16
      { "PolicyCondition-RANParameter-Item", "e2ap.PolicyCondition_RANParameter_Item_element",
17670
16
        FT_NONE, BASE_NONE, NULL, 0,
17671
16
        NULL, HFILL }},
17672
16
    { &hf_e2ap_measName,
17673
16
      { "measName", "e2ap.measName",
17674
16
        FT_STRING, BASE_NONE, NULL, 0,
17675
16
        "MeasurementTypeName", HFILL }},
17676
16
    { &hf_e2ap_measID,
17677
16
      { "measID", "e2ap.measID",
17678
16
        FT_UINT32, BASE_DEC, NULL, 0,
17679
16
        "MeasurementTypeID", HFILL }},
17680
16
    { &hf_e2ap_noLabel,
17681
16
      { "noLabel", "e2ap.noLabel",
17682
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_noLabel_vals), 0,
17683
16
        NULL, HFILL }},
17684
16
    { &hf_e2ap_plmnID,
17685
16
      { "plmnID", "e2ap.plmnID",
17686
16
        FT_BYTES, BASE_NONE, NULL, 0,
17687
16
        "PLMNIdentity", HFILL }},
17688
16
    { &hf_e2ap_sliceID,
17689
16
      { "sliceID", "e2ap.sliceID_element",
17690
16
        FT_NONE, BASE_NONE, NULL, 0,
17691
16
        "S_NSSAI", HFILL }},
17692
16
    { &hf_e2ap_fiveQI,
17693
16
      { "fiveQI", "e2ap.fiveQI",
17694
16
        FT_UINT32, BASE_DEC, NULL, 0,
17695
16
        NULL, HFILL }},
17696
16
    { &hf_e2ap_qFI,
17697
16
      { "qFI", "e2ap.qFI",
17698
16
        FT_UINT32, BASE_DEC, NULL, 0,
17699
16
        "QosFlowIdentifier", HFILL }},
17700
16
    { &hf_e2ap_qCI,
17701
16
      { "qCI", "e2ap.qCI",
17702
16
        FT_UINT32, BASE_DEC, NULL, 0,
17703
16
        NULL, HFILL }},
17704
16
    { &hf_e2ap_qCImax,
17705
16
      { "qCImax", "e2ap.qCImax",
17706
16
        FT_UINT32, BASE_DEC, NULL, 0,
17707
16
        "QCI", HFILL }},
17708
16
    { &hf_e2ap_qCImin,
17709
16
      { "qCImin", "e2ap.qCImin",
17710
16
        FT_UINT32, BASE_DEC, NULL, 0,
17711
16
        "QCI", HFILL }},
17712
16
    { &hf_e2ap_aRPmax,
17713
16
      { "aRPmax", "e2ap.aRPmax",
17714
16
        FT_UINT32, BASE_DEC, NULL, 0,
17715
16
        "INTEGER_1_15_", HFILL }},
17716
16
    { &hf_e2ap_aRPmin,
17717
16
      { "aRPmin", "e2ap.aRPmin",
17718
16
        FT_UINT32, BASE_DEC, NULL, 0,
17719
16
        "INTEGER_1_15_", HFILL }},
17720
16
    { &hf_e2ap_bitrateRange,
17721
16
      { "bitrateRange", "e2ap.bitrateRange",
17722
16
        FT_UINT32, BASE_DEC, NULL, 0,
17723
16
        "INTEGER_1_65535_", HFILL }},
17724
16
    { &hf_e2ap_layerMU_MIMO,
17725
16
      { "layerMU-MIMO", "e2ap.layerMU_MIMO",
17726
16
        FT_UINT32, BASE_DEC, NULL, 0,
17727
16
        "INTEGER_1_65535_", HFILL }},
17728
16
    { &hf_e2ap_sUM,
17729
16
      { "sUM", "e2ap.sUM",
17730
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_sUM_vals), 0,
17731
16
        NULL, HFILL }},
17732
16
    { &hf_e2ap_distBinX,
17733
16
      { "distBinX", "e2ap.distBinX",
17734
16
        FT_UINT32, BASE_DEC, NULL, 0,
17735
16
        "INTEGER_1_65535_", HFILL }},
17736
16
    { &hf_e2ap_distBinY,
17737
16
      { "distBinY", "e2ap.distBinY",
17738
16
        FT_UINT32, BASE_DEC, NULL, 0,
17739
16
        "INTEGER_1_65535_", HFILL }},
17740
16
    { &hf_e2ap_distBinZ,
17741
16
      { "distBinZ", "e2ap.distBinZ",
17742
16
        FT_UINT32, BASE_DEC, NULL, 0,
17743
16
        "INTEGER_1_65535_", HFILL }},
17744
16
    { &hf_e2ap_preLabelOverride,
17745
16
      { "preLabelOverride", "e2ap.preLabelOverride",
17746
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_preLabelOverride_vals), 0,
17747
16
        NULL, HFILL }},
17748
16
    { &hf_e2ap_startEndInd,
17749
16
      { "startEndInd", "e2ap.startEndInd",
17750
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_startEndInd_vals), 0,
17751
16
        NULL, HFILL }},
17752
16
    { &hf_e2ap_min,
17753
16
      { "min", "e2ap.min",
17754
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_min_vals), 0,
17755
16
        NULL, HFILL }},
17756
16
    { &hf_e2ap_max,
17757
16
      { "max", "e2ap.max",
17758
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_max_vals), 0,
17759
16
        NULL, HFILL }},
17760
16
    { &hf_e2ap_avg,
17761
16
      { "avg", "e2ap.avg",
17762
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_avg_vals), 0,
17763
16
        NULL, HFILL }},
17764
16
    { &hf_e2ap_ssbIndex,
17765
16
      { "ssbIndex", "e2ap.ssbIndex",
17766
16
        FT_UINT32, BASE_DEC, NULL, 0,
17767
16
        "INTEGER_1_65535_", HFILL }},
17768
16
    { &hf_e2ap_nonGoB_BFmode_Index,
17769
16
      { "nonGoB-BFmode-Index", "e2ap.nonGoB_BFmode_Index",
17770
16
        FT_UINT32, BASE_DEC, NULL, 0,
17771
16
        "INTEGER_1_65535_", HFILL }},
17772
16
    { &hf_e2ap_mIMO_mode_Index,
17773
16
      { "mIMO-mode-Index", "e2ap.mIMO_mode_Index",
17774
16
        FT_UINT32, BASE_DEC, NULL, 0,
17775
16
        "INTEGER_1_2_", HFILL }},
17776
16
    { &hf_e2ap_testType,
17777
16
      { "testType", "e2ap.testType",
17778
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TestCond_Type_vals), 0,
17779
16
        "TestCond_Type", HFILL }},
17780
16
    { &hf_e2ap_testExpr,
17781
16
      { "testExpr", "e2ap.testExpr",
17782
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TestCond_Expression_vals), 0,
17783
16
        "TestCond_Expression", HFILL }},
17784
16
    { &hf_e2ap_testValue,
17785
16
      { "testValue", "e2ap.testValue",
17786
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TestCond_Value_vals), 0,
17787
16
        "TestCond_Value", HFILL }},
17788
16
    { &hf_e2ap_gBR,
17789
16
      { "gBR", "e2ap.gBR",
17790
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_gBR_vals), 0,
17791
16
        NULL, HFILL }},
17792
16
    { &hf_e2ap_aMBR,
17793
16
      { "aMBR", "e2ap.aMBR",
17794
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_aMBR_vals), 0,
17795
16
        NULL, HFILL }},
17796
16
    { &hf_e2ap_isStat,
17797
16
      { "isStat", "e2ap.isStat",
17798
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_isStat_vals), 0,
17799
16
        NULL, HFILL }},
17800
16
    { &hf_e2ap_isCatM,
17801
16
      { "isCatM", "e2ap.isCatM",
17802
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_isCatM_vals), 0,
17803
16
        NULL, HFILL }},
17804
16
    { &hf_e2ap_rSRP,
17805
16
      { "rSRP", "e2ap.rSRP",
17806
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_rSRP_vals), 0,
17807
16
        NULL, HFILL }},
17808
16
    { &hf_e2ap_rSRQ,
17809
16
      { "rSRQ", "e2ap.rSRQ",
17810
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_rSRQ_vals), 0,
17811
16
        NULL, HFILL }},
17812
16
    { &hf_e2ap_ul_rSRP,
17813
16
      { "ul-rSRP", "e2ap.ul_rSRP",
17814
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_ul_rSRP_vals), 0,
17815
16
        NULL, HFILL }},
17816
16
    { &hf_e2ap_cQI,
17817
16
      { "cQI", "e2ap.cQI",
17818
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_cQI_vals), 0,
17819
16
        NULL, HFILL }},
17820
16
    { &hf_e2ap_fiveQI_01,
17821
16
      { "fiveQI", "e2ap.fiveQI",
17822
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_fiveQI_vals), 0,
17823
16
        NULL, HFILL }},
17824
16
    { &hf_e2ap_qCI_01,
17825
16
      { "qCI", "e2ap.qCI",
17826
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_qCI_vals), 0,
17827
16
        NULL, HFILL }},
17828
16
    { &hf_e2ap_sNSSAI,
17829
16
      { "sNSSAI", "e2ap.sNSSAI",
17830
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_sNSSAI_vals), 0,
17831
16
        NULL, HFILL }},
17832
16
    { &hf_e2ap_valueEnum,
17833
16
      { "valueEnum", "e2ap.valueEnum",
17834
16
        FT_INT32, BASE_DEC, NULL, 0,
17835
16
        "INTEGER", HFILL }},
17836
16
    { &hf_e2ap_valueBool,
17837
16
      { "valueBool", "e2ap.valueBool",
17838
16
        FT_BOOLEAN, BASE_NONE, NULL, 0,
17839
16
        "BOOLEAN", HFILL }},
17840
16
    { &hf_e2ap_valuePrtS,
17841
16
      { "valuePrtS", "e2ap.valuePrtS",
17842
16
        FT_STRING, BASE_NONE, NULL, 0,
17843
16
        "PrintableString", HFILL }},
17844
16
    { &hf_e2ap_binRangeListX,
17845
16
      { "binRangeListX", "e2ap.binRangeListX",
17846
16
        FT_UINT32, BASE_DEC, NULL, 0,
17847
16
        "BinRangeList", HFILL }},
17848
16
    { &hf_e2ap_binRangeListY,
17849
16
      { "binRangeListY", "e2ap.binRangeListY",
17850
16
        FT_UINT32, BASE_DEC, NULL, 0,
17851
16
        "BinRangeList", HFILL }},
17852
16
    { &hf_e2ap_binRangeListZ,
17853
16
      { "binRangeListZ", "e2ap.binRangeListZ",
17854
16
        FT_UINT32, BASE_DEC, NULL, 0,
17855
16
        "BinRangeList", HFILL }},
17856
16
    { &hf_e2ap_BinRangeList_item,
17857
16
      { "BinRangeItem", "e2ap.BinRangeItem_element",
17858
16
        FT_NONE, BASE_NONE, NULL, 0,
17859
16
        NULL, HFILL }},
17860
16
    { &hf_e2ap_binIndex,
17861
16
      { "binIndex", "e2ap.binIndex",
17862
16
        FT_UINT32, BASE_DEC, NULL, 0,
17863
16
        NULL, HFILL }},
17864
16
    { &hf_e2ap_startValue,
17865
16
      { "startValue", "e2ap.startValue",
17866
16
        FT_UINT32, BASE_DEC, VALS(e2ap_BinRangeValue_vals), 0,
17867
16
        "BinRangeValue", HFILL }},
17868
16
    { &hf_e2ap_endValue,
17869
16
      { "endValue", "e2ap.endValue",
17870
16
        FT_UINT32, BASE_DEC, VALS(e2ap_BinRangeValue_vals), 0,
17871
16
        "BinRangeValue", HFILL }},
17872
16
    { &hf_e2ap_DistMeasurementBinRangeList_item,
17873
16
      { "DistMeasurementBinRangeItem", "e2ap.DistMeasurementBinRangeItem_element",
17874
16
        FT_NONE, BASE_NONE, NULL, 0,
17875
16
        NULL, HFILL }},
17876
16
    { &hf_e2ap_measType,
17877
16
      { "measType", "e2ap.measType",
17878
16
        FT_UINT32, BASE_DEC, VALS(e2ap_MeasurementType_vals), 0,
17879
16
        "MeasurementType", HFILL }},
17880
16
    { &hf_e2ap_binRangeDef,
17881
16
      { "binRangeDef", "e2ap.binRangeDef_element",
17882
16
        FT_NONE, BASE_NONE, NULL, 0,
17883
16
        "BinRangeDefinition", HFILL }},
17884
16
    { &hf_e2ap_MeasurementInfoList_item,
17885
16
      { "MeasurementInfoItem", "e2ap.MeasurementInfoItem_element",
17886
16
        FT_NONE, BASE_NONE, NULL, 0,
17887
16
        NULL, HFILL }},
17888
16
    { &hf_e2ap_labelInfoList,
17889
16
      { "labelInfoList", "e2ap.labelInfoList",
17890
16
        FT_UINT32, BASE_DEC, NULL, 0,
17891
16
        NULL, HFILL }},
17892
16
    { &hf_e2ap_LabelInfoList_item,
17893
16
      { "LabelInfoItem", "e2ap.LabelInfoItem_element",
17894
16
        FT_NONE, BASE_NONE, NULL, 0,
17895
16
        NULL, HFILL }},
17896
16
    { &hf_e2ap_measLabel,
17897
16
      { "measLabel", "e2ap.measLabel_element",
17898
16
        FT_NONE, BASE_NONE, NULL, 0,
17899
16
        "MeasurementLabel", HFILL }},
17900
16
    { &hf_e2ap_MeasurementData_item,
17901
16
      { "MeasurementDataItem", "e2ap.MeasurementDataItem_element",
17902
16
        FT_NONE, BASE_NONE, NULL, 0,
17903
16
        NULL, HFILL }},
17904
16
    { &hf_e2ap_measRecord,
17905
16
      { "measRecord", "e2ap.measRecord",
17906
16
        FT_UINT32, BASE_DEC, NULL, 0,
17907
16
        "MeasurementRecord", HFILL }},
17908
16
    { &hf_e2ap_incompleteFlag,
17909
16
      { "incompleteFlag", "e2ap.incompleteFlag",
17910
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_incompleteFlag_vals), 0,
17911
16
        NULL, HFILL }},
17912
16
    { &hf_e2ap_MeasurementRecord_item,
17913
16
      { "MeasurementRecordItem", "e2ap.MeasurementRecordItem",
17914
16
        FT_UINT32, BASE_DEC, VALS(e2ap_MeasurementRecordItem_vals), 0,
17915
16
        NULL, HFILL }},
17916
16
    { &hf_e2ap_integer,
17917
16
      { "integer", "e2ap.integer",
17918
16
        FT_UINT32, BASE_DEC, NULL, 0,
17919
16
        "INTEGER_0_4294967295", HFILL }},
17920
16
    { &hf_e2ap_real,
17921
16
      { "real", "e2ap.real",
17922
16
        FT_DOUBLE, BASE_NONE, NULL, 0,
17923
16
        NULL, HFILL }},
17924
16
    { &hf_e2ap_noValue,
17925
16
      { "noValue", "e2ap.noValue_element",
17926
16
        FT_NONE, BASE_NONE, NULL, 0,
17927
16
        NULL, HFILL }},
17928
16
    { &hf_e2ap_MeasurementInfo_Action_List_item,
17929
16
      { "MeasurementInfo-Action-Item", "e2ap.MeasurementInfo_Action_Item_element",
17930
16
        FT_NONE, BASE_NONE, NULL, 0,
17931
16
        NULL, HFILL }},
17932
16
    { &hf_e2ap_MeasurementCondList_item,
17933
16
      { "MeasurementCondItem", "e2ap.MeasurementCondItem_element",
17934
16
        FT_NONE, BASE_NONE, NULL, 0,
17935
16
        NULL, HFILL }},
17936
16
    { &hf_e2ap_matchingCond,
17937
16
      { "matchingCond", "e2ap.matchingCond",
17938
16
        FT_UINT32, BASE_DEC, NULL, 0,
17939
16
        "MatchingCondList", HFILL }},
17940
16
    { &hf_e2ap_MeasurementCondUEidList_item,
17941
16
      { "MeasurementCondUEidItem", "e2ap.MeasurementCondUEidItem_element",
17942
16
        FT_NONE, BASE_NONE, NULL, 0,
17943
16
        NULL, HFILL }},
17944
16
    { &hf_e2ap_matchingUEidList,
17945
16
      { "matchingUEidList", "e2ap.matchingUEidList",
17946
16
        FT_UINT32, BASE_DEC, NULL, 0,
17947
16
        NULL, HFILL }},
17948
16
    { &hf_e2ap_matchingUEidPerGP,
17949
16
      { "matchingUEidPerGP", "e2ap.matchingUEidPerGP",
17950
16
        FT_UINT32, BASE_DEC, NULL, 0,
17951
16
        NULL, HFILL }},
17952
16
    { &hf_e2ap_MatchingCondList_item,
17953
16
      { "MatchingCondItem", "e2ap.MatchingCondItem_element",
17954
16
        FT_NONE, BASE_NONE, NULL, 0,
17955
16
        NULL, HFILL }},
17956
16
    { &hf_e2ap_matchingCondChoice,
17957
16
      { "matchingCondChoice", "e2ap.matchingCondChoice",
17958
16
        FT_UINT32, BASE_DEC, VALS(e2ap_MatchingCondItem_Choice_vals), 0,
17959
16
        "MatchingCondItem_Choice", HFILL }},
17960
16
    { &hf_e2ap_testCondInfo,
17961
16
      { "testCondInfo", "e2ap.testCondInfo_element",
17962
16
        FT_NONE, BASE_NONE, NULL, 0,
17963
16
        NULL, HFILL }},
17964
16
    { &hf_e2ap_MatchingUEidList_item,
17965
16
      { "MatchingUEidItem", "e2ap.MatchingUEidItem_element",
17966
16
        FT_NONE, BASE_NONE, NULL, 0,
17967
16
        NULL, HFILL }},
17968
16
    { &hf_e2ap_MatchingUEidPerGP_item,
17969
16
      { "MatchingUEidPerGP-Item", "e2ap.MatchingUEidPerGP_Item_element",
17970
16
        FT_NONE, BASE_NONE, NULL, 0,
17971
16
        NULL, HFILL }},
17972
16
    { &hf_e2ap_matchedPerGP,
17973
16
      { "matchedPerGP", "e2ap.matchedPerGP",
17974
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_matchedPerGP_vals), 0,
17975
16
        NULL, HFILL }},
17976
16
    { &hf_e2ap_noUEmatched,
17977
16
      { "noUEmatched", "e2ap.noUEmatched",
17978
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_noUEmatched_vals), 0,
17979
16
        NULL, HFILL }},
17980
16
    { &hf_e2ap_oneOrMoreUEmatched,
17981
16
      { "oneOrMoreUEmatched", "e2ap.oneOrMoreUEmatched",
17982
16
        FT_UINT32, BASE_DEC, NULL, 0,
17983
16
        "MatchingUEidList_PerGP", HFILL }},
17984
16
    { &hf_e2ap_MatchingUEidList_PerGP_item,
17985
16
      { "MatchingUEidItem-PerGP", "e2ap.MatchingUEidItem_PerGP_element",
17986
16
        FT_NONE, BASE_NONE, NULL, 0,
17987
16
        NULL, HFILL }},
17988
16
    { &hf_e2ap_MatchingUeCondPerSubList_item,
17989
16
      { "MatchingUeCondPerSubItem", "e2ap.MatchingUeCondPerSubItem_element",
17990
16
        FT_NONE, BASE_NONE, NULL, 0,
17991
16
        NULL, HFILL }},
17992
16
    { &hf_e2ap_MatchingUEidPerSubList_item,
17993
16
      { "MatchingUEidPerSubItem", "e2ap.MatchingUEidPerSubItem_element",
17994
16
        FT_NONE, BASE_NONE, NULL, 0,
17995
16
        NULL, HFILL }},
17996
16
    { &hf_e2ap_UEMeasurementReportList_item,
17997
16
      { "UEMeasurementReportItem", "e2ap.UEMeasurementReportItem_element",
17998
16
        FT_NONE, BASE_NONE, NULL, 0,
17999
16
        NULL, HFILL }},
18000
16
    { &hf_e2ap_measReport,
18001
16
      { "measReport", "e2ap.measReport_element",
18002
16
        FT_NONE, BASE_NONE, NULL, 0,
18003
16
        "E2SM_KPM_IndicationMessage_Format1", HFILL }},
18004
16
    { &hf_e2ap_eventDefinition_formats,
18005
16
      { "eventDefinition-formats", "e2ap.eventDefinition_formats",
18006
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_eventDefinition_formats_vals), 0,
18007
16
        NULL, HFILL }},
18008
16
    { &hf_e2ap_eventDefinition_Format1,
18009
16
      { "eventDefinition-Format1", "e2ap.eventDefinition_Format1_element",
18010
16
        FT_NONE, BASE_NONE, NULL, 0,
18011
16
        "E2SM_KPM_EventTriggerDefinition_Format1", HFILL }},
18012
16
    { &hf_e2ap_reportingPeriod,
18013
16
      { "reportingPeriod", "e2ap.reportingPeriod",
18014
16
        FT_UINT32, BASE_DEC, NULL, 0,
18015
16
        "INTEGER_1_4294967295", HFILL }},
18016
16
    { &hf_e2ap_actionDefinition_formats,
18017
16
      { "actionDefinition-formats", "e2ap.actionDefinition_formats",
18018
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_actionDefinition_formats_vals), 0,
18019
16
        NULL, HFILL }},
18020
16
    { &hf_e2ap_actionDefinition_Format1_01,
18021
16
      { "actionDefinition-Format1", "e2ap.actionDefinition_Format1_element",
18022
16
        FT_NONE, BASE_NONE, NULL, 0,
18023
16
        "E2SM_KPM_ActionDefinition_Format1", HFILL }},
18024
16
    { &hf_e2ap_actionDefinition_Format2_01,
18025
16
      { "actionDefinition-Format2", "e2ap.actionDefinition_Format2_element",
18026
16
        FT_NONE, BASE_NONE, NULL, 0,
18027
16
        "E2SM_KPM_ActionDefinition_Format2", HFILL }},
18028
16
    { &hf_e2ap_actionDefinition_Format3_01,
18029
16
      { "actionDefinition-Format3", "e2ap.actionDefinition_Format3_element",
18030
16
        FT_NONE, BASE_NONE, NULL, 0,
18031
16
        "E2SM_KPM_ActionDefinition_Format3", HFILL }},
18032
16
    { &hf_e2ap_actionDefinition_Format4_01,
18033
16
      { "actionDefinition-Format4", "e2ap.actionDefinition_Format4_element",
18034
16
        FT_NONE, BASE_NONE, NULL, 0,
18035
16
        "E2SM_KPM_ActionDefinition_Format4", HFILL }},
18036
16
    { &hf_e2ap_actionDefinition_Format5,
18037
16
      { "actionDefinition-Format5", "e2ap.actionDefinition_Format5_element",
18038
16
        FT_NONE, BASE_NONE, NULL, 0,
18039
16
        "E2SM_KPM_ActionDefinition_Format5", HFILL }},
18040
16
    { &hf_e2ap_measInfoList,
18041
16
      { "measInfoList", "e2ap.measInfoList",
18042
16
        FT_UINT32, BASE_DEC, NULL, 0,
18043
16
        "MeasurementInfoList", HFILL }},
18044
16
    { &hf_e2ap_granulPeriod,
18045
16
      { "granulPeriod", "e2ap.granulPeriod",
18046
16
        FT_UINT32, BASE_DEC, NULL, 0,
18047
16
        "GranularityPeriod", HFILL }},
18048
16
    { &hf_e2ap_distMeasBinRangeInfo,
18049
16
      { "distMeasBinRangeInfo", "e2ap.distMeasBinRangeInfo",
18050
16
        FT_UINT32, BASE_DEC, NULL, 0,
18051
16
        "DistMeasurementBinRangeList", HFILL }},
18052
16
    { &hf_e2ap_subscriptInfo,
18053
16
      { "subscriptInfo", "e2ap.subscriptInfo_element",
18054
16
        FT_NONE, BASE_NONE, NULL, 0,
18055
16
        "E2SM_KPM_ActionDefinition_Format1", HFILL }},
18056
16
    { &hf_e2ap_measCondList,
18057
16
      { "measCondList", "e2ap.measCondList",
18058
16
        FT_UINT32, BASE_DEC, NULL, 0,
18059
16
        "MeasurementCondList", HFILL }},
18060
16
    { &hf_e2ap_matchingUeCondList,
18061
16
      { "matchingUeCondList", "e2ap.matchingUeCondList",
18062
16
        FT_UINT32, BASE_DEC, NULL, 0,
18063
16
        "MatchingUeCondPerSubList", HFILL }},
18064
16
    { &hf_e2ap_subscriptionInfo,
18065
16
      { "subscriptionInfo", "e2ap.subscriptionInfo_element",
18066
16
        FT_NONE, BASE_NONE, NULL, 0,
18067
16
        "E2SM_KPM_ActionDefinition_Format1", HFILL }},
18068
16
    { &hf_e2ap_matchingUEidList_01,
18069
16
      { "matchingUEidList", "e2ap.matchingUEidList",
18070
16
        FT_UINT32, BASE_DEC, NULL, 0,
18071
16
        "MatchingUEidPerSubList", HFILL }},
18072
16
    { &hf_e2ap_indicationHeader_formats,
18073
16
      { "indicationHeader-formats", "e2ap.indicationHeader_formats",
18074
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_indicationHeader_formats_vals), 0,
18075
16
        NULL, HFILL }},
18076
16
    { &hf_e2ap_indicationHeader_Format1_01,
18077
16
      { "indicationHeader-Format1", "e2ap.indicationHeader_Format1_element",
18078
16
        FT_NONE, BASE_NONE, NULL, 0,
18079
16
        "E2SM_KPM_IndicationHeader_Format1", HFILL }},
18080
16
    { &hf_e2ap_colletStartTime,
18081
16
      { "colletStartTime", "e2ap.colletStartTime",
18082
16
        FT_BYTES, BASE_NONE, NULL, 0,
18083
16
        NULL, HFILL }},
18084
16
    { &hf_e2ap_fileFormatversion,
18085
16
      { "fileFormatversion", "e2ap.fileFormatversion",
18086
16
        FT_STRING, BASE_NONE, NULL, 0,
18087
16
        "PrintableString_SIZE_0_15_", HFILL }},
18088
16
    { &hf_e2ap_senderName,
18089
16
      { "senderName", "e2ap.senderName",
18090
16
        FT_STRING, BASE_NONE, NULL, 0,
18091
16
        "PrintableString_SIZE_0_400_", HFILL }},
18092
16
    { &hf_e2ap_senderType,
18093
16
      { "senderType", "e2ap.senderType",
18094
16
        FT_STRING, BASE_NONE, NULL, 0,
18095
16
        "PrintableString_SIZE_0_8_", HFILL }},
18096
16
    { &hf_e2ap_vendorName,
18097
16
      { "vendorName", "e2ap.vendorName",
18098
16
        FT_STRING, BASE_NONE, NULL, 0,
18099
16
        "PrintableString_SIZE_0_32_", HFILL }},
18100
16
    { &hf_e2ap_indicationMessage_formats,
18101
16
      { "indicationMessage-formats", "e2ap.indicationMessage_formats",
18102
16
        FT_UINT32, BASE_DEC, VALS(e2ap_T_indicationMessage_formats_vals), 0,
18103
16
        NULL, HFILL }},
18104
16
    { &hf_e2ap_indicationMessage_Format1_01,
18105
16
      { "indicationMessage-Format1", "e2ap.indicationMessage_Format1_element",
18106
16
        FT_NONE, BASE_NONE, NULL, 0,
18107
16
        "E2SM_KPM_IndicationMessage_Format1", HFILL }},
18108
16
    { &hf_e2ap_indicationMessage_Format2_01,
18109
16
      { "indicationMessage-Format2", "e2ap.indicationMessage_Format2_element",
18110
16
        FT_NONE, BASE_NONE, NULL, 0,
18111
16
        "E2SM_KPM_IndicationMessage_Format2", HFILL }},
18112
16
    { &hf_e2ap_indicationMessage_Format3_01,
18113
16
      { "indicationMessage-Format3", "e2ap.indicationMessage_Format3_element",
18114
16
        FT_NONE, BASE_NONE, NULL, 0,
18115
16
        "E2SM_KPM_IndicationMessage_Format3", HFILL }},
18116
16
    { &hf_e2ap_measData,
18117
16
      { "measData", "e2ap.measData",
18118
16
        FT_UINT32, BASE_DEC, NULL, 0,
18119
16
        "MeasurementData", HFILL }},
18120
16
    { &hf_e2ap_measCondUEidList,
18121
16
      { "measCondUEidList", "e2ap.measCondUEidList",
18122
16
        FT_UINT32, BASE_DEC, NULL, 0,
18123
16
        "MeasurementCondUEidList", HFILL }},
18124
16
    { &hf_e2ap_ueMeasReportList,
18125
16
      { "ueMeasReportList", "e2ap.ueMeasReportList",
18126
16
        FT_UINT32, BASE_DEC, NULL, 0,
18127
16
        "UEMeasurementReportList", HFILL }},
18128
16
    { &hf_e2ap_ric_EventTriggerStyle_List_01,
18129
16
      { "ric-EventTriggerStyle-List", "e2ap.ric_EventTriggerStyle_List",
18130
16
        FT_UINT32, BASE_DEC, NULL, 0,
18131
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item", HFILL }},
18132
16
    { &hf_e2ap_ric_EventTriggerStyle_List_item_01,
18133
16
      { "RIC-EventTriggerStyle-Item", "e2ap.RIC_EventTriggerStyle_Item_element",
18134
16
        FT_NONE, BASE_NONE, NULL, 0,
18135
16
        NULL, HFILL }},
18136
16
    { &hf_e2ap_ric_ReportStyle_List_01,
18137
16
      { "ric-ReportStyle-List", "e2ap.ric_ReportStyle_List",
18138
16
        FT_UINT32, BASE_DEC, NULL, 0,
18139
16
        "SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item", HFILL }},
18140
16
    { &hf_e2ap_ric_ReportStyle_List_item_01,
18141
16
      { "RIC-ReportStyle-Item", "e2ap.RIC_ReportStyle_Item_element",
18142
16
        FT_NONE, BASE_NONE, NULL, 0,
18143
16
        NULL, HFILL }},
18144
16
    { &hf_e2ap_ric_ActionFormat_Type,
18145
16
      { "ric-ActionFormat-Type", "e2ap.ric_ActionFormat_Type",
18146
16
        FT_INT32, BASE_DEC, NULL, 0,
18147
16
        "RIC_Format_Type", HFILL }},
18148
16
    { &hf_e2ap_measInfo_Action_List,
18149
16
      { "measInfo-Action-List", "e2ap.measInfo_Action_List",
18150
16
        FT_UINT32, BASE_DEC, NULL, 0,
18151
16
        "MeasurementInfo_Action_List", HFILL }},
18152
16
    { &hf_e2ap_eventDefinition_Format1_01,
18153
16
      { "eventDefinition-Format1", "e2ap.eventDefinition_Format1_element",
18154
16
        FT_NONE, BASE_NONE, NULL, 0,
18155
16
        "E2SM_NI_EventTriggerDefinition_Format1", HFILL }},
18156
16
    { &hf_e2ap_interface_type,
18157
16
      { "interface-type", "e2ap.interface_type",
18158
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NI_Type_vals), 0,
18159
16
        "NI_Type", HFILL }},
18160
16
    { &hf_e2ap_interface_ID,
18161
16
      { "interface-ID", "e2ap.interface_ID",
18162
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NI_Identifier_vals), 0,
18163
16
        "NI_Identifier", HFILL }},
18164
16
    { &hf_e2ap_interfaceDirection,
18165
16
      { "interfaceDirection", "e2ap.interfaceDirection",
18166
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NI_Direction_vals), 0,
18167
16
        "NI_Direction", HFILL }},
18168
16
    { &hf_e2ap_interfaceMessageType,
18169
16
      { "interfaceMessageType", "e2ap.interfaceMessageType",
18170
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NI_MessageType_vals), 0,
18171
16
        "NI_MessageType", HFILL }},
18172
16
    { &hf_e2ap_interfaceProtocolIE_List,
18173
16
      { "interfaceProtocolIE-List", "e2ap.interfaceProtocolIE_List",
18174
16
        FT_UINT32, BASE_DEC, NULL, 0,
18175
16
        "SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item", HFILL }},
18176
16
    { &hf_e2ap_interfaceProtocolIE_List_item,
18177
16
      { "NI-ProtocolIE-Item", "e2ap.NI_ProtocolIE_Item_element",
18178
16
        FT_NONE, BASE_NONE, NULL, 0,
18179
16
        NULL, HFILL }},
18180
16
    { &hf_e2ap_action_Definition_Format,
18181
16
      { "action-Definition-Format", "e2ap.action_Definition_Format",
18182
16
        FT_UINT32, BASE_DEC, VALS(e2ap_E2SM_NI_ActionDefinitionFormat_vals), 0,
18183
16
        "E2SM_NI_ActionDefinitionFormat", HFILL }},
18184
16
    { &hf_e2ap_actionDefinition_Format1_02,
18185
16
      { "actionDefinition-Format1", "e2ap.actionDefinition_Format1_element",
18186
16
        FT_NONE, BASE_NONE, NULL, 0,
18187
16
        "E2SM_NI_ActionDefinition_Format1", HFILL }},
18188
16
    { &hf_e2ap_actionDefinition_Format2_02,
18189
16
      { "actionDefinition-Format2", "e2ap.actionDefinition_Format2_element",
18190
16
        FT_NONE, BASE_NONE, NULL, 0,
18191
16
        "E2SM_NI_ActionDefinition_Format2", HFILL }},
18192
16
    { &hf_e2ap_actionParameter_List,
18193
16
      { "actionParameter-List", "e2ap.actionParameter_List",
18194
16
        FT_UINT32, BASE_DEC, NULL, 0,
18195
16
        "SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item", HFILL }},
18196
16
    { &hf_e2ap_actionParameter_List_item,
18197
16
      { "RANparameter-Item", "e2ap.RANparameter_Item_element",
18198
16
        FT_NONE, BASE_NONE, NULL, 0,
18199
16
        NULL, HFILL }},
18200
16
    { &hf_e2ap_ranUEgroup_List,
18201
16
      { "ranUEgroup-List", "e2ap.ranUEgroup_List",
18202
16
        FT_UINT32, BASE_DEC, NULL, 0,
18203
16
        "SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item", HFILL }},
18204
16
    { &hf_e2ap_ranUEgroup_List_item,
18205
16
      { "RANueGroup-Item", "e2ap.RANueGroup_Item_element",
18206
16
        FT_NONE, BASE_NONE, NULL, 0,
18207
16
        NULL, HFILL }},
18208
16
    { &hf_e2ap_indicationHeader_Format1_02,
18209
16
      { "indicationHeader-Format1", "e2ap.indicationHeader_Format1_element",
18210
16
        FT_NONE, BASE_NONE, NULL, 0,
18211
16
        "E2SM_NI_IndicationHeader_Format1", HFILL }},
18212
16
    { &hf_e2ap_timestamp,
18213
16
      { "timestamp", "e2ap.timestamp",
18214
16
        FT_BYTES, BASE_NONE, NULL, 0,
18215
16
        "NI_TimeStamp", HFILL }},
18216
16
    { &hf_e2ap_indicationMessage_Format1_02,
18217
16
      { "indicationMessage-Format1", "e2ap.indicationMessage_Format1_element",
18218
16
        FT_NONE, BASE_NONE, NULL, 0,
18219
16
        "E2SM_NI_IndicationMessage_Format1", HFILL }},
18220
16
    { &hf_e2ap_interfaceMessage,
18221
16
      { "interfaceMessage", "e2ap.interfaceMessage",
18222
16
        FT_BYTES, BASE_NONE, NULL, 0,
18223
16
        "NI_Message", HFILL }},
18224
16
    { &hf_e2ap_callProcessID_Format1_01,
18225
16
      { "callProcessID-Format1", "e2ap.callProcessID_Format1_element",
18226
16
        FT_NONE, BASE_NONE, NULL, 0,
18227
16
        "E2SM_NI_CallProcessID_Format1", HFILL }},
18228
16
    { &hf_e2ap_callProcessID_Format2,
18229
16
      { "callProcessID-Format2", "e2ap.callProcessID_Format2_element",
18230
16
        FT_NONE, BASE_NONE, NULL, 0,
18231
16
        "E2SM_NI_CallProcessID_Format2", HFILL }},
18232
16
    { &hf_e2ap_callProcess_ID,
18233
16
      { "callProcess-ID", "e2ap.callProcess_ID",
18234
16
        FT_INT32, BASE_DEC, NULL, 0,
18235
16
        "RANcallProcess_ID_number", HFILL }},
18236
16
    { &hf_e2ap_callProcess_ID_format2,
18237
16
      { "callProcess-ID", "e2ap.callProcess_ID_format2",
18238
16
        FT_STRING, BASE_NONE, NULL, 0,
18239
16
        "RANcallProcess_ID_string", HFILL }},
18240
16
    { &hf_e2ap_controlHeader_Format1_01,
18241
16
      { "controlHeader-Format1", "e2ap.controlHeader_Format1_element",
18242
16
        FT_NONE, BASE_NONE, NULL, 0,
18243
16
        "E2SM_NI_ControlHeader_Format1", HFILL }},
18244
16
    { &hf_e2ap_interface_Direction,
18245
16
      { "interface-Direction", "e2ap.interface_Direction",
18246
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NI_Direction_vals), 0,
18247
16
        "NI_Direction", HFILL }},
18248
16
    { &hf_e2ap_ric_Control_Message_Priority,
18249
16
      { "ric-Control-Message-Priority", "e2ap.ric_Control_Message_Priority",
18250
16
        FT_INT32, BASE_DEC, NULL, 0,
18251
16
        NULL, HFILL }},
18252
16
    { &hf_e2ap_controlMessage_Format1_01,
18253
16
      { "controlMessage-Format1", "e2ap.controlMessage_Format1_element",
18254
16
        FT_NONE, BASE_NONE, NULL, 0,
18255
16
        "E2SM_NI_ControlMessage_Format1", HFILL }},
18256
16
    { &hf_e2ap_controlOutcome_Format1_01,
18257
16
      { "controlOutcome-Format1", "e2ap.controlOutcome_Format1_element",
18258
16
        FT_NONE, BASE_NONE, NULL, 0,
18259
16
        "E2SM_NI_ControlOutcome_Format1", HFILL }},
18260
16
    { &hf_e2ap_outcomeElement_List,
18261
16
      { "outcomeElement-List", "e2ap.outcomeElement_List",
18262
16
        FT_UINT32, BASE_DEC, NULL, 0,
18263
16
        "SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item", HFILL }},
18264
16
    { &hf_e2ap_outcomeElement_List_item,
18265
16
      { "RANparameter-Item", "e2ap.RANparameter_Item_element",
18266
16
        FT_NONE, BASE_NONE, NULL, 0,
18267
16
        NULL, HFILL }},
18268
16
    { &hf_e2ap_ni_Type_List,
18269
16
      { "ni-Type-List", "e2ap.ni_Type_List",
18270
16
        FT_UINT32, BASE_DEC, NULL, 0,
18271
16
        "SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item", HFILL }},
18272
16
    { &hf_e2ap_ni_Type_List_item,
18273
16
      { "E2SM-NI-RANfunction-Item", "e2ap.E2SM_NI_RANfunction_Item_element",
18274
16
        FT_NONE, BASE_NONE, NULL, 0,
18275
16
        NULL, HFILL }},
18276
16
    { &hf_e2ap_ric_EventTriggerStyle_List_02,
18277
16
      { "ric-EventTriggerStyle-List", "e2ap.ric_EventTriggerStyle_List",
18278
16
        FT_UINT32, BASE_DEC, NULL, 0,
18279
16
        "SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List", HFILL }},
18280
16
    { &hf_e2ap_ric_EventTriggerStyle_List_item_02,
18281
16
      { "RIC-EventTriggerStyle-List", "e2ap.RIC_EventTriggerStyle_List_element",
18282
16
        FT_NONE, BASE_NONE, NULL, 0,
18283
16
        NULL, HFILL }},
18284
16
    { &hf_e2ap_ric_ReportStyle_List_02,
18285
16
      { "ric-ReportStyle-List", "e2ap.ric_ReportStyle_List",
18286
16
        FT_UINT32, BASE_DEC, NULL, 0,
18287
16
        "SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List", HFILL }},
18288
16
    { &hf_e2ap_ric_ReportStyle_List_item_02,
18289
16
      { "RIC-ReportStyle-List", "e2ap.RIC_ReportStyle_List_element",
18290
16
        FT_NONE, BASE_NONE, NULL, 0,
18291
16
        NULL, HFILL }},
18292
16
    { &hf_e2ap_ric_InsertStyle_List_03,
18293
16
      { "ric-InsertStyle-List", "e2ap.ric_InsertStyle_List",
18294
16
        FT_UINT32, BASE_DEC, NULL, 0,
18295
16
        "SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List", HFILL }},
18296
16
    { &hf_e2ap_ric_InsertStyle_List_item_03,
18297
16
      { "RIC-InsertStyle-List", "e2ap.RIC_InsertStyle_List_element",
18298
16
        FT_NONE, BASE_NONE, NULL, 0,
18299
16
        NULL, HFILL }},
18300
16
    { &hf_e2ap_ric_ControlStyle_List_03,
18301
16
      { "ric-ControlStyle-List", "e2ap.ric_ControlStyle_List",
18302
16
        FT_UINT32, BASE_DEC, NULL, 0,
18303
16
        "SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List", HFILL }},
18304
16
    { &hf_e2ap_ric_ControlStyle_List_item_03,
18305
16
      { "RIC-ControlStyle-List", "e2ap.RIC_ControlStyle_List_element",
18306
16
        FT_NONE, BASE_NONE, NULL, 0,
18307
16
        NULL, HFILL }},
18308
16
    { &hf_e2ap_ric_PolicyStyle_List_01,
18309
16
      { "ric-PolicyStyle-List", "e2ap.ric_PolicyStyle_List",
18310
16
        FT_UINT32, BASE_DEC, NULL, 0,
18311
16
        "SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List", HFILL }},
18312
16
    { &hf_e2ap_ric_PolicyStyle_List_item_01,
18313
16
      { "RIC-PolicyStyle-List", "e2ap.RIC_PolicyStyle_List_element",
18314
16
        FT_NONE, BASE_NONE, NULL, 0,
18315
16
        NULL, HFILL }},
18316
16
    { &hf_e2ap_global_ng_RAN_ID,
18317
16
      { "global-ng-RAN-ID", "e2ap.global_ng_RAN_ID",
18318
16
        FT_UINT32, BASE_DEC, VALS(e2ap_GlobalNG_RANNode_ID_vals), 0,
18319
16
        NULL, HFILL }},
18320
16
    { &hf_e2ap_global_eNB_ID_01,
18321
16
      { "global-eNB-ID", "e2ap.global_eNB_ID_element",
18322
16
        FT_NONE, BASE_NONE, NULL, 0,
18323
16
        NULL, HFILL }},
18324
16
    { &hf_e2ap_global_en_gNB_ID_01,
18325
16
      { "global-en-gNB-ID", "e2ap.global_en_gNB_ID_element",
18326
16
        FT_NONE, BASE_NONE, NULL, 0,
18327
16
        NULL, HFILL }},
18328
16
    { &hf_e2ap_global_gNB_DU_ID,
18329
16
      { "global-gNB-DU-ID", "e2ap.global_gNB_DU_ID_element",
18330
16
        FT_NONE, BASE_NONE, NULL, 0,
18331
16
        NULL, HFILL }},
18332
16
    { &hf_e2ap_global_gNB_CU_UP_ID,
18333
16
      { "global-gNB-CU-UP-ID", "e2ap.global_gNB_CU_UP_ID_element",
18334
16
        FT_NONE, BASE_NONE, NULL, 0,
18335
16
        NULL, HFILL }},
18336
16
    { &hf_e2ap_s1MessageType,
18337
16
      { "s1MessageType", "e2ap.s1MessageType_element",
18338
16
        FT_NONE, BASE_NONE, NULL, 0,
18339
16
        "NI_MessageTypeS1", HFILL }},
18340
16
    { &hf_e2ap_x2MessageType,
18341
16
      { "x2MessageType", "e2ap.x2MessageType_element",
18342
16
        FT_NONE, BASE_NONE, NULL, 0,
18343
16
        "NI_MessageTypeX2", HFILL }},
18344
16
    { &hf_e2ap_ngMessageType,
18345
16
      { "ngMessageType", "e2ap.ngMessageType_element",
18346
16
        FT_NONE, BASE_NONE, NULL, 0,
18347
16
        "NI_MessageTypeNG", HFILL }},
18348
16
    { &hf_e2ap_xnMessageType,
18349
16
      { "xnMessageType", "e2ap.xnMessageType_element",
18350
16
        FT_NONE, BASE_NONE, NULL, 0,
18351
16
        "NI_MessageTypeXn", HFILL }},
18352
16
    { &hf_e2ap_f1MessageType,
18353
16
      { "f1MessageType", "e2ap.f1MessageType_element",
18354
16
        FT_NONE, BASE_NONE, NULL, 0,
18355
16
        "NI_MessageTypeF1", HFILL }},
18356
16
    { &hf_e2ap_e1MessageType,
18357
16
      { "e1MessageType", "e2ap.e1MessageType_element",
18358
16
        FT_NONE, BASE_NONE, NULL, 0,
18359
16
        "NI_MessageTypeE1", HFILL }},
18360
16
    { &hf_e2ap_typeOfMessage,
18361
16
      { "typeOfMessage", "e2ap.typeOfMessage",
18362
16
        FT_UINT32, BASE_DEC, VALS(e2ap_TypeOfMessage_vals), 0,
18363
16
        NULL, HFILL }},
18364
16
    { &hf_e2ap_interfaceProtocolIE_ID,
18365
16
      { "interfaceProtocolIE-ID", "e2ap.interfaceProtocolIE_ID",
18366
16
        FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e2ap_ProtocolIE_ID_vals_ext, 0,
18367
16
        "NI_ProtocolIE_ID", HFILL }},
18368
16
    { &hf_e2ap_interfaceProtocolIE_Test,
18369
16
      { "interfaceProtocolIE-Test", "e2ap.interfaceProtocolIE_Test",
18370
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NI_ProtocolIE_Test_vals), 0,
18371
16
        "NI_ProtocolIE_Test", HFILL }},
18372
16
    { &hf_e2ap_interfaceProtocolIE_Value,
18373
16
      { "interfaceProtocolIE-Value", "e2ap.interfaceProtocolIE_Value",
18374
16
        FT_UINT32, BASE_DEC, VALS(e2ap_NI_ProtocolIE_Value_vals), 0,
18375
16
        "NI_ProtocolIE_Value", HFILL }},
18376
16
    { &hf_e2ap_ranImperativePolicy_List,
18377
16
      { "ranImperativePolicy-List", "e2ap.ranImperativePolicy_List",
18378
16
        FT_UINT32, BASE_DEC, NULL, 0,
18379
16
        "SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item", HFILL }},
18380
16
    { &hf_e2ap_ranImperativePolicy_List_item,
18381
16
      { "RANparameter-Item", "e2ap.RANparameter_Item_element",
18382
16
        FT_NONE, BASE_NONE, NULL, 0,
18383
16
        NULL, HFILL }},
18384
16
    { &hf_e2ap_ranParameter_ID_01,
18385
16
      { "ranParameter-ID", "e2ap.ranParameter_ID",
18386
16
        FT_UINT32, BASE_DEC, NULL, 0,
18387
16
        NULL, HFILL }},
18388
16
    { &hf_e2ap_ranParameter_Value_01,
18389
16
      { "ranParameter-Value", "e2ap.ranParameter_Value",
18390
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANparameter_Value_vals), 0,
18391
16
        NULL, HFILL }},
18392
16
    { &hf_e2ap_ranParameter_Name,
18393
16
      { "ranParameter-Name", "e2ap.ranParameter_Name",
18394
16
        FT_STRING, BASE_NONE, NULL, 0,
18395
16
        NULL, HFILL }},
18396
16
    { &hf_e2ap_ranParameter_Type_01,
18397
16
      { "ranParameter-Type", "e2ap.ranParameter_Type",
18398
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANparameter_Type_vals), 0,
18399
16
        NULL, HFILL }},
18400
16
    { &hf_e2ap_ranUEgroupID,
18401
16
      { "ranUEgroupID", "e2ap.ranUEgroupID",
18402
16
        FT_UINT32, BASE_DEC, NULL, 0,
18403
16
        NULL, HFILL }},
18404
16
    { &hf_e2ap_ranUEgroupDefinition,
18405
16
      { "ranUEgroupDefinition", "e2ap.ranUEgroupDefinition_element",
18406
16
        FT_NONE, BASE_NONE, NULL, 0,
18407
16
        NULL, HFILL }},
18408
16
    { &hf_e2ap_ranPolicy,
18409
16
      { "ranPolicy", "e2ap.ranPolicy_element",
18410
16
        FT_NONE, BASE_NONE, NULL, 0,
18411
16
        "RANimperativePolicy", HFILL }},
18412
16
    { &hf_e2ap_ranUEgroupDef_List,
18413
16
      { "ranUEgroupDef-List", "e2ap.ranUEgroupDef_List",
18414
16
        FT_UINT32, BASE_DEC, NULL, 0,
18415
16
        "SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item", HFILL }},
18416
16
    { &hf_e2ap_ranUEgroupDef_List_item,
18417
16
      { "RANueGroupDef-Item", "e2ap.RANueGroupDef_Item_element",
18418
16
        FT_NONE, BASE_NONE, NULL, 0,
18419
16
        NULL, HFILL }},
18420
16
    { &hf_e2ap_ranParameter_Test,
18421
16
      { "ranParameter-Test", "e2ap.ranParameter_Test",
18422
16
        FT_UINT32, BASE_DEC, VALS(e2ap_RANparameter_Test_Condition_vals), 0,
18423
16
        "RANparameter_Test_Condition", HFILL }},
18424
16
    { &hf_e2ap_ric_ControlFormat_Type,
18425
16
      { "ric-ControlFormat-Type", "e2ap.ric_ControlFormat_Type",
18426
16
        FT_INT32, BASE_DEC, NULL, 0,
18427
16
        "RIC_Format_Type", HFILL }},
18428
16
    { &hf_e2ap_ric_ControlOutcomeRanParaDef_List,
18429
16
      { "ric-ControlOutcomeRanParaDef-List", "e2ap.ric_ControlOutcomeRanParaDef_List",
18430
16
        FT_UINT32, BASE_DEC, NULL, 0,
18431
16
        "SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item", HFILL }},
18432
16
    { &hf_e2ap_ric_ControlOutcomeRanParaDef_List_item,
18433
16
      { "RANparameterDef-Item", "e2ap.RANparameterDef_Item_element",
18434
16
        FT_NONE, BASE_NONE, NULL, 0,
18435
16
        NULL, HFILL }},
18436
16
    { &hf_e2ap_ric_InsertActionFormat_Type,
18437
16
      { "ric-InsertActionFormat-Type", "e2ap.ric_InsertActionFormat_Type",
18438
16
        FT_INT32, BASE_DEC, NULL, 0,
18439
16
        "RIC_Format_Type", HFILL }},
18440
16
    { &hf_e2ap_ric_InsertRanParameterDef_List,
18441
16
      { "ric-InsertRanParameterDef-List", "e2ap.ric_InsertRanParameterDef_List",
18442
16
        FT_UINT32, BASE_DEC, NULL, 0,
18443
16
        "SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item", HFILL }},
18444
16
    { &hf_e2ap_ric_InsertRanParameterDef_List_item,
18445
16
      { "RANparameterDef-Item", "e2ap.RANparameterDef_Item_element",
18446
16
        FT_NONE, BASE_NONE, NULL, 0,
18447
16
        NULL, HFILL }},
18448
16
    { &hf_e2ap_ric_PolicyActionFormat_Type,
18449
16
      { "ric-PolicyActionFormat-Type", "e2ap.ric_PolicyActionFormat_Type",
18450
16
        FT_INT32, BASE_DEC, NULL, 0,
18451
16
        "RIC_Format_Type", HFILL }},
18452
16
    { &hf_e2ap_ric_PolicyRanParameterDef_List,
18453
16
      { "ric-PolicyRanParameterDef-List", "e2ap.ric_PolicyRanParameterDef_List",
18454
16
        FT_UINT32, BASE_DEC, NULL, 0,
18455
16
        "SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item", HFILL }},
18456
16
    { &hf_e2ap_ric_PolicyRanParameterDef_List_item,
18457
16
      { "RANparameterDef-Item", "e2ap.RANparameterDef_Item_element",
18458
16
        FT_NONE, BASE_NONE, NULL, 0,
18459
16
        NULL, HFILL }},
18460
16
    { &hf_e2ap_ric_ReportRanParameterDef_List,
18461
16
      { "ric-ReportRanParameterDef-List", "e2ap.ric_ReportRanParameterDef_List",
18462
16
        FT_UINT32, BASE_DEC, NULL, 0,
18463
16
        "SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item", HFILL }},
18464
16
    { &hf_e2ap_ric_ReportRanParameterDef_List_item,
18465
16
      { "RANparameterDef-Item", "e2ap.RANparameterDef_Item_element",
18466
16
        FT_NONE, BASE_NONE, NULL, 0,
18467
16
        NULL, HFILL }},
18468
16
      { &hf_e2ap_unmapped_ran_function_id,
18469
16
          { "Unmapped RANfunctionID", "e2ap.unmapped-ran-function-id",
18470
16
            FT_NONE, BASE_NONE, NULL, 0x0,
18471
16
            NULL, HFILL }},
18472
16
      { &hf_e2ap_ran_function_name_not_recognised,
18473
16
          { "RANfunction name not recognised", "e2ap.ran-function-name-not-recognised",
18474
16
            FT_NONE, BASE_NONE, NULL, 0x0,
18475
16
            NULL, HFILL }},
18476
16
      { &hf_e2ap_ran_function_setup_frame,
18477
16
          { "RANfunction setup frame", "e2ap.setup-frame",
18478
16
            FT_FRAMENUM, BASE_NONE, NULL, 0x0,
18479
16
            NULL, HFILL }},
18480
18481
16
      { &hf_e2ap_dissector_version,
18482
16
          { "Version (dissector)", "e2ap.version.dissector",
18483
16
            FT_STRING, BASE_NONE, NULL, 0x0,
18484
16
            NULL, HFILL }},
18485
16
      { &hf_e2ap_frame_version,
18486
16
          { "Version (frame)", "e2ap.version.frame",
18487
16
            FT_STRING, BASE_NONE, NULL, 0x0,
18488
16
            NULL, HFILL }},
18489
18490
16
      { &hf_e2ap_timestamp_string,
18491
16
          { "Timestamp string", "e2ap.timestamp-string",
18492
16
            FT_STRING, BASE_NONE, NULL, 0x0,
18493
16
            NULL, HFILL }},
18494
16
  };
18495
18496
  /* List of subtrees */
18497
16
  static int *ett[] = {
18498
16
    &ett_e2ap,
18499
16
    &ett_e2ap_ProtocolIE_Container,
18500
16
    &ett_e2ap_ProtocolIE_Field,
18501
16
    &ett_e2ap_Cause,
18502
16
    &ett_e2ap_CriticalityDiagnostics,
18503
16
    &ett_e2ap_CriticalityDiagnostics_IE_List,
18504
16
    &ett_e2ap_CriticalityDiagnostics_IE_Item,
18505
16
    &ett_e2ap_E2nodeComponentConfiguration,
18506
16
    &ett_e2ap_E2nodeComponentConfigurationAck,
18507
16
    &ett_e2ap_E2nodeComponentID,
18508
16
    &ett_e2ap_E2nodeComponentInterfaceE1,
18509
16
    &ett_e2ap_E2nodeComponentInterfaceF1,
18510
16
    &ett_e2ap_E2nodeComponentInterfaceNG,
18511
16
    &ett_e2ap_E2nodeComponentInterfaceS1,
18512
16
    &ett_e2ap_E2nodeComponentInterfaceX2,
18513
16
    &ett_e2ap_E2nodeComponentInterfaceXn,
18514
16
    &ett_e2ap_E2nodeComponentInterfaceW1,
18515
16
    &ett_e2ap_ENB_ID,
18516
16
    &ett_e2ap_ENB_ID_Choice,
18517
16
    &ett_e2ap_ENGNB_ID,
18518
16
    &ett_e2ap_GlobalE2node_ID,
18519
16
    &ett_e2ap_GlobalE2node_en_gNB_ID,
18520
16
    &ett_e2ap_GlobalE2node_eNB_ID,
18521
16
    &ett_e2ap_GlobalE2node_gNB_ID,
18522
16
    &ett_e2ap_GlobalE2node_ng_eNB_ID,
18523
16
    &ett_e2ap_GlobalENB_ID,
18524
16
    &ett_e2ap_GlobalenGNB_ID,
18525
16
    &ett_e2ap_GlobalgNB_ID,
18526
16
    &ett_e2ap_GlobalngeNB_ID,
18527
16
    &ett_e2ap_GlobalNG_RANNode_ID,
18528
16
    &ett_e2ap_GlobalRIC_ID,
18529
16
    &ett_e2ap_GNB_ID_Choice,
18530
16
    &ett_e2ap_RICrequestID,
18531
16
    &ett_e2ap_RICsubsequentAction,
18532
16
    &ett_e2ap_TNLinformation,
18533
16
    &ett_e2ap_RICsubscriptionRequest,
18534
16
    &ett_e2ap_RICsubscriptionDetails,
18535
16
    &ett_e2ap_RICactions_ToBeSetup_List,
18536
16
    &ett_e2ap_RICaction_ToBeSetup_Item,
18537
16
    &ett_e2ap_RICsubscriptionResponse,
18538
16
    &ett_e2ap_RICaction_Admitted_List,
18539
16
    &ett_e2ap_RICaction_Admitted_Item,
18540
16
    &ett_e2ap_RICaction_NotAdmitted_List,
18541
16
    &ett_e2ap_RICaction_NotAdmitted_Item,
18542
16
    &ett_e2ap_RICsubscriptionFailure,
18543
16
    &ett_e2ap_RICsubscriptionDeleteRequest,
18544
16
    &ett_e2ap_RICsubscriptionDeleteResponse,
18545
16
    &ett_e2ap_RICsubscriptionDeleteFailure,
18546
16
    &ett_e2ap_RICsubscriptionDeleteRequired,
18547
16
    &ett_e2ap_RICsubscription_List_withCause,
18548
16
    &ett_e2ap_RICsubscription_withCause_Item,
18549
16
    &ett_e2ap_RICsubscriptionModificationRequest,
18550
16
    &ett_e2ap_RICactions_ToBeRemovedForModification_List,
18551
16
    &ett_e2ap_RICaction_ToBeRemovedForModification_Item,
18552
16
    &ett_e2ap_RICactions_ToBeModifiedForModification_List,
18553
16
    &ett_e2ap_RICaction_ToBeModifiedForModification_Item,
18554
16
    &ett_e2ap_RICactions_ToBeAddedForModification_List,
18555
16
    &ett_e2ap_RICaction_ToBeAddedForModification_Item,
18556
16
    &ett_e2ap_RICsubscriptionModificationResponse,
18557
16
    &ett_e2ap_RICactions_RemovedForModification_List,
18558
16
    &ett_e2ap_RICaction_RemovedForModification_Item,
18559
16
    &ett_e2ap_RICactions_FailedToBeRemovedForModification_List,
18560
16
    &ett_e2ap_RICaction_FailedToBeRemovedForModification_Item,
18561
16
    &ett_e2ap_RICactions_ModifiedForModification_List,
18562
16
    &ett_e2ap_RICaction_ModifiedForModification_Item,
18563
16
    &ett_e2ap_RICactions_FailedToBeModifiedForModification_List,
18564
16
    &ett_e2ap_RICaction_FailedToBeModifiedForModification_Item,
18565
16
    &ett_e2ap_RICactions_AddedForModification_List,
18566
16
    &ett_e2ap_RICaction_AddedForModification_Item,
18567
16
    &ett_e2ap_RICactions_FailedToBeAddedForModification_List,
18568
16
    &ett_e2ap_RICaction_FailedToBeAddedForModification_Item,
18569
16
    &ett_e2ap_RICsubscriptionModificationFailure,
18570
16
    &ett_e2ap_RICsubscriptionModificationRequired,
18571
16
    &ett_e2ap_RICactions_RequiredToBeModified_List,
18572
16
    &ett_e2ap_RICaction_RequiredToBeModified_Item,
18573
16
    &ett_e2ap_RICactions_RequiredToBeRemoved_List,
18574
16
    &ett_e2ap_RICaction_RequiredToBeRemoved_Item,
18575
16
    &ett_e2ap_RICsubscriptionModificationConfirm,
18576
16
    &ett_e2ap_RICactions_ConfirmedForModification_List,
18577
16
    &ett_e2ap_RICaction_ConfirmedForModification_Item,
18578
16
    &ett_e2ap_RICactions_RefusedToBeModified_List,
18579
16
    &ett_e2ap_RICaction_RefusedToBeModified_Item,
18580
16
    &ett_e2ap_RICactions_ConfirmedForRemoval_List,
18581
16
    &ett_e2ap_RICaction_ConfirmedForRemoval_Item,
18582
16
    &ett_e2ap_RICactions_RefusedToBeRemoved_List,
18583
16
    &ett_e2ap_RICaction_RefusedToBeRemoved_Item,
18584
16
    &ett_e2ap_RICsubscriptionModificationRefuse,
18585
16
    &ett_e2ap_RICindication,
18586
16
    &ett_e2ap_RICcontrolRequest,
18587
16
    &ett_e2ap_RICcontrolAcknowledge,
18588
16
    &ett_e2ap_RICcontrolFailure,
18589
16
    &ett_e2ap_RICQueryRequest,
18590
16
    &ett_e2ap_RICQueryResponse,
18591
16
    &ett_e2ap_RICQueryFailure,
18592
16
    &ett_e2ap_ErrorIndication,
18593
16
    &ett_e2ap_E2setupRequest,
18594
16
    &ett_e2ap_E2setupResponse,
18595
16
    &ett_e2ap_E2setupFailure,
18596
16
    &ett_e2ap_E2connectionUpdate,
18597
16
    &ett_e2ap_E2connectionUpdate_List,
18598
16
    &ett_e2ap_E2connectionUpdate_Item,
18599
16
    &ett_e2ap_E2connectionUpdateRemove_List,
18600
16
    &ett_e2ap_E2connectionUpdateRemove_Item,
18601
16
    &ett_e2ap_E2connectionUpdateAcknowledge,
18602
16
    &ett_e2ap_E2connectionSetupFailed_List,
18603
16
    &ett_e2ap_E2connectionSetupFailed_Item,
18604
16
    &ett_e2ap_E2connectionUpdateFailure,
18605
16
    &ett_e2ap_E2nodeConfigurationUpdate,
18606
16
    &ett_e2ap_E2nodeComponentConfigAddition_List,
18607
16
    &ett_e2ap_E2nodeComponentConfigAddition_Item,
18608
16
    &ett_e2ap_E2nodeComponentConfigUpdate_List,
18609
16
    &ett_e2ap_E2nodeComponentConfigUpdate_Item,
18610
16
    &ett_e2ap_E2nodeComponentConfigRemoval_List,
18611
16
    &ett_e2ap_E2nodeComponentConfigRemoval_Item,
18612
16
    &ett_e2ap_E2nodeTNLassociationRemoval_List,
18613
16
    &ett_e2ap_E2nodeTNLassociationRemoval_Item,
18614
16
    &ett_e2ap_E2nodeConfigurationUpdateAcknowledge,
18615
16
    &ett_e2ap_E2nodeComponentConfigAdditionAck_List,
18616
16
    &ett_e2ap_E2nodeComponentConfigAdditionAck_Item,
18617
16
    &ett_e2ap_E2nodeComponentConfigUpdateAck_List,
18618
16
    &ett_e2ap_E2nodeComponentConfigUpdateAck_Item,
18619
16
    &ett_e2ap_E2nodeComponentConfigRemovalAck_List,
18620
16
    &ett_e2ap_E2nodeComponentConfigRemovalAck_Item,
18621
16
    &ett_e2ap_E2nodeConfigurationUpdateFailure,
18622
16
    &ett_e2ap_ResetRequest,
18623
16
    &ett_e2ap_ResetResponse,
18624
16
    &ett_e2ap_RICserviceUpdate,
18625
16
    &ett_e2ap_RANfunctions_List,
18626
16
    &ett_e2ap_RANfunction_Item,
18627
16
    &ett_e2ap_RANfunctionsID_List,
18628
16
    &ett_e2ap_RANfunctionID_Item,
18629
16
    &ett_e2ap_RICserviceUpdateAcknowledge,
18630
16
    &ett_e2ap_RANfunctionsIDcause_List,
18631
16
    &ett_e2ap_RANfunctionIDcause_Item,
18632
16
    &ett_e2ap_RICserviceUpdateFailure,
18633
16
    &ett_e2ap_RICserviceQuery,
18634
16
    &ett_e2ap_E2RemovalRequest,
18635
16
    &ett_e2ap_E2RemovalResponse,
18636
16
    &ett_e2ap_E2RemovalFailure,
18637
16
    &ett_e2ap_E2AP_PDU,
18638
16
    &ett_e2ap_InitiatingMessage,
18639
16
    &ett_e2ap_SuccessfulOutcome,
18640
16
    &ett_e2ap_UnsuccessfulOutcome,
18641
16
    &ett_e2ap_CGI,
18642
16
    &ett_e2ap_InterfaceIdentifier,
18643
16
    &ett_e2ap_InterfaceID_NG,
18644
16
    &ett_e2ap_InterfaceID_Xn,
18645
16
    &ett_e2ap_InterfaceID_F1,
18646
16
    &ett_e2ap_InterfaceID_E1,
18647
16
    &ett_e2ap_InterfaceID_S1,
18648
16
    &ett_e2ap_InterfaceID_X2,
18649
16
    &ett_e2ap_T_nodeType,
18650
16
    &ett_e2ap_InterfaceID_W1,
18651
16
    &ett_e2ap_Interface_MessageID,
18652
16
    &ett_e2ap_RANfunction_Name,
18653
16
    &ett_e2ap_RRC_MessageID,
18654
16
    &ett_e2ap_T_rrcType,
18655
16
    &ett_e2ap_ServingCell_ARFCN,
18656
16
    &ett_e2ap_ServingCell_PCI,
18657
16
    &ett_e2ap_UEID,
18658
16
    &ett_e2ap_UEID_GNB,
18659
16
    &ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_List,
18660
16
    &ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_Item,
18661
16
    &ett_e2ap_UEID_GNB_CU_F1AP_ID_List,
18662
16
    &ett_e2ap_UEID_GNB_CU_CP_F1AP_ID_Item,
18663
16
    &ett_e2ap_UEID_GNB_DU,
18664
16
    &ett_e2ap_UEID_GNB_CU_UP,
18665
16
    &ett_e2ap_UEID_NG_ENB,
18666
16
    &ett_e2ap_UEID_NG_ENB_DU,
18667
16
    &ett_e2ap_UEID_EN_GNB,
18668
16
    &ett_e2ap_UEID_ENB,
18669
16
    &ett_e2ap_GUMMEI,
18670
16
    &ett_e2ap_EUTRA_CGI,
18671
16
    &ett_e2ap_GlobalGNB_ID,
18672
16
    &ett_e2ap_GlobalNgENB_ID,
18673
16
    &ett_e2ap_GNB_ID,
18674
16
    &ett_e2ap_GUAMI,
18675
16
    &ett_e2ap_NgENB_ID,
18676
16
    &ett_e2ap_NR_CGI,
18677
16
    &ett_e2ap_S_NSSAI,
18678
16
    &ett_e2ap_GlobalNGRANNodeID,
18679
16
    &ett_e2ap_NR_ARFCN,
18680
16
    &ett_e2ap_NRFrequencyBand_List,
18681
16
    &ett_e2ap_NRFrequencyBandItem,
18682
16
    &ett_e2ap_NRFrequencyInfo,
18683
16
    &ett_e2ap_SupportedSULBandList,
18684
16
    &ett_e2ap_SupportedSULFreqBandItem,
18685
16
    &ett_e2ap_NeighborCell_List,
18686
16
    &ett_e2ap_NeighborCell_Item,
18687
16
    &ett_e2ap_NeighborCell_Item_Choice_NR,
18688
16
    &ett_e2ap_NeighborCell_Item_Choice_E_UTRA,
18689
16
    &ett_e2ap_NeighborRelation_Info,
18690
16
    &ett_e2ap_EventTrigger_Cell_Info,
18691
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item,
18692
16
    &ett_e2ap_EventTrigger_Cell_Info_Item,
18693
16
    &ett_e2ap_T_cellType,
18694
16
    &ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual,
18695
16
    &ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Group,
18696
16
    &ett_e2ap_EventTrigger_UE_Info,
18697
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item,
18698
16
    &ett_e2ap_EventTrigger_UE_Info_Item,
18699
16
    &ett_e2ap_T_ueType,
18700
16
    &ett_e2ap_EventTrigger_UE_Info_Item_Choice_Individual,
18701
16
    &ett_e2ap_EventTrigger_UE_Info_Item_Choice_Group,
18702
16
    &ett_e2ap_EventTrigger_UEevent_Info,
18703
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item,
18704
16
    &ett_e2ap_EventTrigger_UEevent_Info_Item,
18705
16
    &ett_e2ap_RANParameter_Definition,
18706
16
    &ett_e2ap_RANParameter_Definition_Choice,
18707
16
    &ett_e2ap_RANParameter_Definition_Choice_LIST,
18708
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item,
18709
16
    &ett_e2ap_RANParameter_Definition_Choice_LIST_Item,
18710
16
    &ett_e2ap_RANParameter_Definition_Choice_STRUCTURE,
18711
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item,
18712
16
    &ett_e2ap_RANParameter_Definition_Choice_STRUCTURE_Item,
18713
16
    &ett_e2ap_RANParameter_Value,
18714
16
    &ett_e2ap_RANParameter_ValueType,
18715
16
    &ett_e2ap_RANParameter_ValueType_Choice_ElementTrue,
18716
16
    &ett_e2ap_RANParameter_ValueType_Choice_ElementFalse,
18717
16
    &ett_e2ap_RANParameter_ValueType_Choice_Structure,
18718
16
    &ett_e2ap_RANParameter_ValueType_Choice_List,
18719
16
    &ett_e2ap_RANParameter_STRUCTURE,
18720
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item,
18721
16
    &ett_e2ap_RANParameter_STRUCTURE_Item,
18722
16
    &ett_e2ap_RANParameter_LIST,
18723
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE,
18724
16
    &ett_e2ap_RANParameter_Testing,
18725
16
    &ett_e2ap_RANParameter_TestingCondition,
18726
16
    &ett_e2ap_RANParameter_Testing_Item,
18727
16
    &ett_e2ap_T_ranParameter_Type,
18728
16
    &ett_e2ap_RANParameter_Testing_Item_Choice_List,
18729
16
    &ett_e2ap_RANParameter_Testing_Item_Choice_Structure,
18730
16
    &ett_e2ap_RANParameter_Testing_Item_Choice_ElementTrue,
18731
16
    &ett_e2ap_RANParameter_Testing_Item_Choice_ElementFalse,
18732
16
    &ett_e2ap_RANParameter_Testing_LIST,
18733
16
    &ett_e2ap_RANParameter_Testing_STRUCTURE,
18734
16
    &ett_e2ap_RIC_PolicyAction,
18735
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item,
18736
16
    &ett_e2ap_RIC_PolicyAction_RANParameter_Item,
18737
16
    &ett_e2ap_E2SM_RC_EventTrigger,
18738
16
    &ett_e2ap_T_ric_eventTrigger_formats,
18739
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format1,
18740
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item,
18741
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format1_Item,
18742
16
    &ett_e2ap_MessageType_Choice,
18743
16
    &ett_e2ap_MessageType_Choice_NI,
18744
16
    &ett_e2ap_MessageType_Choice_RRC,
18745
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format2,
18746
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format3,
18747
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item,
18748
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format3_Item,
18749
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format4,
18750
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item,
18751
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format4_Item,
18752
16
    &ett_e2ap_TriggerType_Choice,
18753
16
    &ett_e2ap_TriggerType_Choice_RRCstate,
18754
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item,
18755
16
    &ett_e2ap_TriggerType_Choice_RRCstate_Item,
18756
16
    &ett_e2ap_TriggerType_Choice_UEID,
18757
16
    &ett_e2ap_TriggerType_Choice_L2state,
18758
16
    &ett_e2ap_E2SM_RC_EventTrigger_Format5,
18759
16
    &ett_e2ap_E2SM_RC_ActionDefinition,
18760
16
    &ett_e2ap_T_ric_actionDefinition_formats,
18761
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format1,
18762
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item,
18763
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format1_Item,
18764
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format2,
18765
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item,
18766
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format2_Item,
18767
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format3,
18768
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item,
18769
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format3_Item,
18770
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format4,
18771
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item,
18772
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format4_Style_Item,
18773
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item,
18774
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format4_Indication_Item,
18775
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item,
18776
16
    &ett_e2ap_E2SM_RC_ActionDefinition_Format4_RANP_Item,
18777
16
    &ett_e2ap_E2SM_RC_IndicationHeader,
18778
16
    &ett_e2ap_T_ric_indicationHeader_formats,
18779
16
    &ett_e2ap_E2SM_RC_IndicationHeader_Format1,
18780
16
    &ett_e2ap_E2SM_RC_IndicationHeader_Format2,
18781
16
    &ett_e2ap_E2SM_RC_IndicationHeader_Format3,
18782
16
    &ett_e2ap_E2SM_RC_IndicationMessage,
18783
16
    &ett_e2ap_T_ric_indicationMessage_formats,
18784
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format1,
18785
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item,
18786
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format1_Item,
18787
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format2,
18788
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item,
18789
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format2_Item,
18790
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item,
18791
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format2_RANParameter_Item,
18792
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format3,
18793
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item,
18794
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format3_Item,
18795
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format4,
18796
16
    &ett_e2ap_SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE,
18797
16
    &ett_e2ap_SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell,
18798
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemUE,
18799
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemCell,
18800
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format5,
18801
16
    &ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item,
18802
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format5_Item,
18803
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format6,
18804
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item,
18805
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format6_Style_Item,
18806
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item,
18807
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format6_Indication_Item,
18808
16
    &ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item,
18809
16
    &ett_e2ap_E2SM_RC_IndicationMessage_Format6_RANP_Item,
18810
16
    &ett_e2ap_E2SM_RC_CallProcessID,
18811
16
    &ett_e2ap_T_ric_callProcessID_formats,
18812
16
    &ett_e2ap_E2SM_RC_CallProcessID_Format1,
18813
16
    &ett_e2ap_E2SM_RC_ControlHeader,
18814
16
    &ett_e2ap_T_ric_controlHeader_formats,
18815
16
    &ett_e2ap_E2SM_RC_ControlHeader_Format1,
18816
16
    &ett_e2ap_E2SM_RC_ControlHeader_Format2,
18817
16
    &ett_e2ap_E2SM_RC_ControlMessage,
18818
16
    &ett_e2ap_T_ric_controlMessage_formats,
18819
16
    &ett_e2ap_E2SM_RC_ControlMessage_Format1,
18820
16
    &ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item,
18821
16
    &ett_e2ap_E2SM_RC_ControlMessage_Format1_Item,
18822
16
    &ett_e2ap_E2SM_RC_ControlMessage_Format2,
18823
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item,
18824
16
    &ett_e2ap_E2SM_RC_ControlMessage_Format2_Style_Item,
18825
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item,
18826
16
    &ett_e2ap_E2SM_RC_ControlMessage_Format2_ControlAction_Item,
18827
16
    &ett_e2ap_E2SM_RC_ControlOutcome,
18828
16
    &ett_e2ap_T_ric_controlOutcome_formats,
18829
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format1,
18830
16
    &ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item,
18831
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format1_Item,
18832
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format2,
18833
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item,
18834
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format2_Style_Item,
18835
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item,
18836
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item,
18837
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item,
18838
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format2_RANP_Item,
18839
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format3,
18840
16
    &ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item,
18841
16
    &ett_e2ap_E2SM_RC_ControlOutcome_Format3_Item,
18842
16
    &ett_e2ap_E2SM_RC_RANFunctionDefinition,
18843
16
    &ett_e2ap_RANFunctionDefinition_EventTrigger,
18844
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item,
18845
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item,
18846
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item,
18847
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item,
18848
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item,
18849
16
    &ett_e2ap_RANFunctionDefinition_EventTrigger_Style_Item,
18850
16
    &ett_e2ap_L2Parameters_RANParameter_Item,
18851
16
    &ett_e2ap_UEIdentification_RANParameter_Item,
18852
16
    &ett_e2ap_CellIdentification_RANParameter_Item,
18853
16
    &ett_e2ap_RANFunctionDefinition_EventTrigger_CallProcess_Item,
18854
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item,
18855
16
    &ett_e2ap_RANFunctionDefinition_EventTrigger_Breakpoint_Item,
18856
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item,
18857
16
    &ett_e2ap_CallProcessBreakpoint_RANParameter_Item,
18858
16
    &ett_e2ap_RANFunctionDefinition_Report,
18859
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item,
18860
16
    &ett_e2ap_RANFunctionDefinition_Report_Item,
18861
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item,
18862
16
    &ett_e2ap_Report_RANParameter_Item,
18863
16
    &ett_e2ap_RANFunctionDefinition_Insert,
18864
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item,
18865
16
    &ett_e2ap_RANFunctionDefinition_Insert_Item,
18866
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item,
18867
16
    &ett_e2ap_RANFunctionDefinition_Insert_Indication_Item,
18868
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item,
18869
16
    &ett_e2ap_InsertIndication_RANParameter_Item,
18870
16
    &ett_e2ap_RANFunctionDefinition_Control,
18871
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item,
18872
16
    &ett_e2ap_RANFunctionDefinition_Control_Item,
18873
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item,
18874
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item,
18875
16
    &ett_e2ap_ControlOutcome_RANParameter_Item,
18876
16
    &ett_e2ap_RANFunctionDefinition_Control_Action_Item,
18877
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item,
18878
16
    &ett_e2ap_ControlAction_RANParameter_Item,
18879
16
    &ett_e2ap_RANFunctionDefinition_Policy,
18880
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item,
18881
16
    &ett_e2ap_RANFunctionDefinition_Policy_Item,
18882
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item,
18883
16
    &ett_e2ap_RANFunctionDefinition_Policy_Action_Item,
18884
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item,
18885
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item,
18886
16
    &ett_e2ap_PolicyAction_RANParameter_Item,
18887
16
    &ett_e2ap_PolicyCondition_RANParameter_Item,
18888
16
    &ett_e2ap_BinRangeValue,
18889
16
    &ett_e2ap_MeasurementType,
18890
16
    &ett_e2ap_MeasurementLabel,
18891
16
    &ett_e2ap_TestCondInfo,
18892
16
    &ett_e2ap_TestCond_Type,
18893
16
    &ett_e2ap_TestCond_Value,
18894
16
    &ett_e2ap_BinRangeDefinition,
18895
16
    &ett_e2ap_BinRangeList,
18896
16
    &ett_e2ap_BinRangeItem,
18897
16
    &ett_e2ap_DistMeasurementBinRangeList,
18898
16
    &ett_e2ap_DistMeasurementBinRangeItem,
18899
16
    &ett_e2ap_MeasurementInfoList,
18900
16
    &ett_e2ap_MeasurementInfoItem,
18901
16
    &ett_e2ap_LabelInfoList,
18902
16
    &ett_e2ap_LabelInfoItem,
18903
16
    &ett_e2ap_MeasurementData,
18904
16
    &ett_e2ap_MeasurementDataItem,
18905
16
    &ett_e2ap_MeasurementRecord,
18906
16
    &ett_e2ap_MeasurementRecordItem,
18907
16
    &ett_e2ap_MeasurementInfo_Action_List,
18908
16
    &ett_e2ap_MeasurementInfo_Action_Item,
18909
16
    &ett_e2ap_MeasurementCondList,
18910
16
    &ett_e2ap_MeasurementCondItem,
18911
16
    &ett_e2ap_MeasurementCondUEidList,
18912
16
    &ett_e2ap_MeasurementCondUEidItem,
18913
16
    &ett_e2ap_MatchingCondList,
18914
16
    &ett_e2ap_MatchingCondItem,
18915
16
    &ett_e2ap_MatchingCondItem_Choice,
18916
16
    &ett_e2ap_MatchingUEidList,
18917
16
    &ett_e2ap_MatchingUEidItem,
18918
16
    &ett_e2ap_MatchingUEidPerGP,
18919
16
    &ett_e2ap_MatchingUEidPerGP_Item,
18920
16
    &ett_e2ap_T_matchedPerGP,
18921
16
    &ett_e2ap_MatchingUEidList_PerGP,
18922
16
    &ett_e2ap_MatchingUEidItem_PerGP,
18923
16
    &ett_e2ap_MatchingUeCondPerSubList,
18924
16
    &ett_e2ap_MatchingUeCondPerSubItem,
18925
16
    &ett_e2ap_MatchingUEidPerSubList,
18926
16
    &ett_e2ap_MatchingUEidPerSubItem,
18927
16
    &ett_e2ap_UEMeasurementReportList,
18928
16
    &ett_e2ap_UEMeasurementReportItem,
18929
16
    &ett_e2ap_E2SM_KPM_EventTriggerDefinition,
18930
16
    &ett_e2ap_T_eventDefinition_formats,
18931
16
    &ett_e2ap_E2SM_KPM_EventTriggerDefinition_Format1,
18932
16
    &ett_e2ap_E2SM_KPM_ActionDefinition,
18933
16
    &ett_e2ap_T_actionDefinition_formats,
18934
16
    &ett_e2ap_E2SM_KPM_ActionDefinition_Format1,
18935
16
    &ett_e2ap_E2SM_KPM_ActionDefinition_Format2,
18936
16
    &ett_e2ap_E2SM_KPM_ActionDefinition_Format3,
18937
16
    &ett_e2ap_E2SM_KPM_ActionDefinition_Format4,
18938
16
    &ett_e2ap_E2SM_KPM_ActionDefinition_Format5,
18939
16
    &ett_e2ap_E2SM_KPM_IndicationHeader,
18940
16
    &ett_e2ap_T_indicationHeader_formats,
18941
16
    &ett_e2ap_E2SM_KPM_IndicationHeader_Format1,
18942
16
    &ett_e2ap_E2SM_KPM_IndicationMessage,
18943
16
    &ett_e2ap_T_indicationMessage_formats,
18944
16
    &ett_e2ap_E2SM_KPM_IndicationMessage_Format1,
18945
16
    &ett_e2ap_E2SM_KPM_IndicationMessage_Format2,
18946
16
    &ett_e2ap_E2SM_KPM_IndicationMessage_Format3,
18947
16
    &ett_e2ap_E2SM_KPM_RANfunction_Description,
18948
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item,
18949
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item,
18950
16
    &ett_e2ap_RIC_EventTriggerStyle_Item,
18951
16
    &ett_e2ap_RIC_ReportStyle_Item,
18952
16
    &ett_e2ap_E2SM_NI_EventTriggerDefinition,
18953
16
    &ett_e2ap_E2SM_NI_EventTriggerDefinition_Format1,
18954
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item,
18955
16
    &ett_e2ap_E2SM_NI_ActionDefinition,
18956
16
    &ett_e2ap_E2SM_NI_ActionDefinitionFormat,
18957
16
    &ett_e2ap_E2SM_NI_ActionDefinition_Format1,
18958
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item,
18959
16
    &ett_e2ap_E2SM_NI_ActionDefinition_Format2,
18960
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item,
18961
16
    &ett_e2ap_E2SM_NI_IndicationHeader,
18962
16
    &ett_e2ap_E2SM_NI_IndicationHeader_Format1,
18963
16
    &ett_e2ap_E2SM_NI_IndicationMessage,
18964
16
    &ett_e2ap_E2SM_NI_IndicationMessage_Format1,
18965
16
    &ett_e2ap_E2SM_NI_CallProcessID,
18966
16
    &ett_e2ap_E2SM_NI_CallProcessID_Format1,
18967
16
    &ett_e2ap_E2SM_NI_CallProcessID_Format2,
18968
16
    &ett_e2ap_E2SM_NI_ControlHeader,
18969
16
    &ett_e2ap_E2SM_NI_ControlHeader_Format1,
18970
16
    &ett_e2ap_E2SM_NI_ControlMessage,
18971
16
    &ett_e2ap_E2SM_NI_ControlMessage_Format1,
18972
16
    &ett_e2ap_E2SM_NI_ControlOutcome,
18973
16
    &ett_e2ap_E2SM_NI_ControlOutcome_Format1,
18974
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item,
18975
16
    &ett_e2ap_E2SM_NI_RANfunction_Description,
18976
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item,
18977
16
    &ett_e2ap_E2SM_NI_RANfunction_Item,
18978
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List,
18979
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List,
18980
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List,
18981
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List,
18982
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List,
18983
16
    &ett_e2ap_Global_gNB_DU_ID,
18984
16
    &ett_e2ap_Global_gNB_CU_UP_ID,
18985
16
    &ett_e2ap_NI_Identifier,
18986
16
    &ett_e2ap_NI_MessageType,
18987
16
    &ett_e2ap_NI_MessageTypeApproach1,
18988
16
    &ett_e2ap_NI_ProtocolIE_Item,
18989
16
    &ett_e2ap_NI_ProtocolIE_Value,
18990
16
    &ett_e2ap_RANimperativePolicy,
18991
16
    &ett_e2ap_RANparameter_Item,
18992
16
    &ett_e2ap_RANparameterDef_Item,
18993
16
    &ett_e2ap_RANparameter_Value,
18994
16
    &ett_e2ap_RANueGroup_Item,
18995
16
    &ett_e2ap_RANueGroupDefinition,
18996
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item,
18997
16
    &ett_e2ap_RANueGroupDef_Item,
18998
16
    &ett_e2ap_RIC_ControlStyle_List,
18999
16
    &ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item,
19000
16
    &ett_e2ap_RIC_EventTriggerStyle_List,
19001
16
    &ett_e2ap_RIC_InsertStyle_List,
19002
16
    &ett_e2ap_RIC_PolicyStyle_List,
19003
16
    &ett_e2ap_RIC_ReportStyle_List,
19004
16
  };
19005
19006
16
  static ei_register_info ei[] = {
19007
16
     { &ei_e2ap_ran_function_names_no_match, { "e2ap.ran-function-names-no-match", PI_PROTOCOL, PI_WARN, "RAN Function name doesn't match known service models", EXPFILL }},
19008
16
     { &ei_e2ap_ran_function_id_not_mapped,   { "e2ap.ran-function-id-not-known", PI_PROTOCOL, PI_WARN, "Service Model not known for RANFunctionID", EXPFILL }},
19009
16
     { &ei_e2ap_ran_function_dissector_mismatch,   { "e2ap.ran-function-dissector-version-mismatch", PI_PROTOCOL, PI_WARN, "Available dissector does not match signalled", EXPFILL }},
19010
16
     { &ei_e2ap_ran_function_max_dissectors_registered,   { "e2ap.ran-function-max-dissectors-registered", PI_PROTOCOL, PI_WARN, "Max dissectors already registered in table", EXPFILL }},
19011
19012
16
  };
19013
19014
16
  expert_module_t* expert_e2ap;
19015
19016
  /* Register protocol */
19017
16
  proto_e2ap = proto_register_protocol("E2 Application Protocol", "E2AP", "e2ap");
19018
  /* Register fields and subtrees */
19019
16
  proto_register_field_array(proto_e2ap, hf, array_length(hf));
19020
16
  proto_register_subtree_array(ett, array_length(ett));
19021
19022
19023
  /* Register dissector */
19024
16
  e2ap_handle = register_dissector("e2ap", dissect_e2ap, proto_e2ap);
19025
19026
16
  module_t *e2ap_module;
19027
16
  expert_e2ap = expert_register_protocol(proto_e2ap);
19028
16
  expert_register_field_array(expert_e2ap, ei, array_length(ei));
19029
19030
  /* Register dissector tables */
19031
16
  e2ap_ies_dissector_table = register_dissector_table("e2ap.ies", "E2AP-PROTOCOL-IES", proto_e2ap, FT_UINT32, BASE_DEC);
19032
19033
  //  e2ap_ies_p1_dissector_table = register_dissector_table("e2ap.ies.pair.first", "E2AP-PROTOCOL-IES-PAIR FirstValue", proto_e2ap, FT_UINT32, BASE_DEC);
19034
  //  e2ap_ies_p2_dissector_table = register_dissector_table("e2ap.ies.pair.second", "E2AP-PROTOCOL-IES-PAIR SecondValue", proto_e2ap, FT_UINT32, BASE_DEC);
19035
16
  e2ap_extension_dissector_table = register_dissector_table("e2ap.extension", "E2AP-PROTOCOL-EXTENSION", proto_e2ap, FT_UINT32, BASE_DEC);
19036
16
  e2ap_proc_imsg_dissector_table = register_dissector_table("e2ap.proc.imsg", "E2AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e2ap, FT_UINT32, BASE_DEC);
19037
16
  e2ap_proc_sout_dissector_table = register_dissector_table("e2ap.proc.sout", "E2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
19038
16
  e2ap_proc_uout_dissector_table = register_dissector_table("e2ap.proc.uout", "E2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
19039
16
  e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, STRING_CASE_SENSITIVE);
19040
19041
  /* Preference settings */
19042
16
  e2ap_module = prefs_register_protocol(proto_e2ap, NULL);
19043
19044
16
  static const enum_val_t rc_version_vals[] = {
19045
16
      {"version-1",        "Version-1",           RC_Version_1},
19046
16
      {"version-3",        "Version-3",           RC_Version_3},
19047
16
      {NULL, NULL, -1}
19048
16
  };
19049
19050
16
  prefs_register_enum_preference(e2ap_module, "rc_manual_version_choice",
19051
16
      "Manual choice of RC dissector version to call",
19052
16
      "Set version of RC dissector to use for that RANFunction. Unfortunately, so far all "
19053
16
      "OIDs say they are version 1..",
19054
16
      &e2ap_rc_version_pref_choice, rc_version_vals, true);
19055
19056
16
  register_init_routine(&e2ap_init_protocol);
19057
19058
16
  e2ap_tap = register_tap("e2ap");
19059
16
}
19060
19061
/*
19062
 * Editor modelines
19063
 *
19064
 * Local Variables:
19065
 * c-basic-offset: 2
19066
 * tab-width: 8
19067
 * indent-tabs-mode: nil
19068
 * End:
19069
 *
19070
 * ex: set shiftwidth=2 tabstop=8 expandtab:
19071
 * :indentSize=2:tabSize=8:noTabs=true:
19072
 */