Coverage Report

Created: 2026-01-02 06:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-sbc-ap.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-sbc-ap.c                                                            */
4
/* asn2wrs.py -q -L -p sbc-ap -c ./sbc-ap.cnf -s ./packet-sbc-ap-template -D . -O ../.. SBC-AP-CommonDataTypes.asn SBC-AP-Constants.asn SBC-AP-Containers.asn SBC-AP-IEs.asn SBC-AP-PDU-Contents.asn SBC-AP-PDU-Descriptions.asn */
5
6
/* packet-sbc-ap.c
7
 * Routines for SBc Application Part (SBc-AP) packet dissection
8
 *
9
 * Wireshark - Network traffic analyzer
10
 * By Gerald Combs <gerald@wireshark.org>
11
 * Copyright 1998 Gerald Combs
12
 *
13
 * SPDX-License-Identifier: GPL-2.0-or-later
14
 *
15
 * Ref 3GPP TS 29.168
16
 */
17
18
#include "config.h"
19
20
#include <epan/packet.h>
21
#include <epan/asn1.h>
22
#include <epan/proto_data.h>
23
#include <epan/tfs.h>
24
#include <epan/unit_strings.h>
25
26
#include <wsutil/array.h>
27
28
#include "packet-ber.h"
29
#include "packet-per.h"
30
#include "packet-e212.h"
31
#include "packet-gsm_map.h"
32
#include "packet-s1ap.h"
33
#include "packet-lte-rrc.h"
34
#include "packet-sctp.h"
35
36
14
#define PNAME  "SBc Application Part"
37
99
#define PSNAME "SBcAP"
38
28
#define PFNAME "sbcap"
39
40
void proto_register_sbc_ap(void);
41
void proto_reg_handoff_sbc_ap(void);
42
43
/* The registered port number for SBc-AP is 29168.
44
 * The registered payload protocol identifier for SBc-AP is 24.
45
 */
46
#define SBC_AP_PORT 29168
47
static dissector_handle_t sbc_ap_handle;
48
49
50
6
#define maxNrOfErrors                  256
51
9
#define maxnoofCellID                  65535
52
9
#define maxnoofCellinEAI               65535
53
0
#define maxnoofCellinTAI               65535
54
11
#define maxNrOfTAIs                    65535
55
9
#define maxnoofEmergencyAreaID         65535
56
0
#define maxnoofTAIforWarning           65535
57
53
#define maxProtocolExtensions          65535
58
78
#define maxProtocolIEs                 65535
59
3
#define maxnoofeNBIds                  256
60
0
#define maxnoofRestartedCells          256
61
3
#define maxnoofRestartTAIs             2048
62
6
#define maxnoofRestartEAIs             256
63
2
#define maxnoofFailedCells             256
64
1
#define maxnoof5GSTAIs                 2048
65
0
#define maxnoofCellsingNB              16384
66
0
#define maxnoofCellsin5GS              16776960
67
0
#define maxnoofCellsin5GSTAI           65535
68
0
#define maxnoofRANNodes                65535
69
0
#define maxnoofRestart5GSTAIs          2048
70
0
#define maxnoofCellsforRestartNR       16384
71
72
typedef enum _ProcedureCode_enum {
73
  id_Write_Replace_Warning =   0,
74
  id_Stop_Warning =   1,
75
  id_Error_Indication =   2,
76
  id_Write_Replace_Warning_Indication =   3,
77
  id_Stop_Warning_Indication =   4,
78
  id_PWS_Restart_Indication =   5,
79
  id_PWS_Failure_Indication =   6
80
} ProcedureCode_enum;
81
82
typedef enum _ProtocolIE_ID_enum {
83
  id_Broadcast_Message_Content =   0,
84
  id_Cause     =   1,
85
  id_Criticality_Diagnostics =   2,
86
  id_Data_Coding_Scheme =   3,
87
  id_Failure_List =   4,
88
  id_Message_Identifier =   5,
89
  id_Number_of_Broadcasts_Completed_List =   6,
90
  id_Number_of_Broadcasts_Requested =   7,
91
  id_Radio_Resource_Loading_List =   8,
92
  id_Recovery_Indication =   9,
93
  id_Repetition_Period =  10,
94
  id_Serial_Number =  11,
95
  id_Service_Areas_List =  12,
96
  id_TypeOfError =  13,
97
  id_List_of_TAIs =  14,
98
  id_Warning_Area_List =  15,
99
  id_Warning_Message_Content =  16,
100
  id_Warning_Security_Information =  17,
101
  id_Warning_Type =  18,
102
  id_Omc_Id    =  19,
103
  id_Concurrent_Warning_Message_Indicator =  20,
104
  id_Extended_Repetition_Period =  21,
105
  id_Unknown_Tracking_Area_List =  22,
106
  id_Broadcast_Scheduled_Area_List =  23,
107
  id_Send_Write_Replace_Warning_Indication =  24,
108
  id_Broadcast_Cancelled_Area_List =  25,
109
  id_Send_Stop_Warning_Indication =  26,
110
  id_Stop_All_Indicator =  27,
111
  id_Global_ENB_ID =  28,
112
  id_Broadcast_Empty_Area_List =  29,
113
  id_Restarted_Cell_List =  30,
114
  id_List_of_TAIs_Restart =  31,
115
  id_List_of_EAIs_Restart =  32,
116
  id_Failed_Cell_List =  33,
117
  id_List_of_5GS_TAIs =  34,
118
  id_Warning_Area_List_5GS =  35,
119
  id_Global_RAN_Node_ID =  36,
120
  id_Global_GNB_ID =  37,
121
  id_RAT_Selector_5GS =  38,
122
  id_Unknown_5GS_Tracking_Area_List =  39,
123
  id_Broadcast_Scheduled_Area_List_5GS =  40,
124
  id_Broadcast_Cancelled_Area_List_5GS =  41,
125
  id_Broadcast_Empty_Area_List_5GS =  42,
126
  id_Restarted_Cell_List_NR =  43,
127
  id_Failed_Cell_List_NR =  44,
128
  id_List_of_5GS_TAI_for_Restart =  45,
129
  id_Warning_Area_Coordinates =  46
130
} ProtocolIE_ID_enum;
131
132
/* Initialize the protocol and registered fields */
133
static int proto_sbc_ap;
134
135
static int hf_sbc_ap_Serial_Number_gs;
136
static int hf_sbc_ap_Serial_Number_msg_code;
137
static int hf_sbc_ap_Serial_Number_upd_nb;
138
static int hf_sbc_ap_Warning_Type_value;
139
static int hf_sbc_ap_Warning_Type_emergency_user_alert;
140
static int hf_sbc_ap_Warning_Type_popup;
141
static int hf_sbc_ap_Warning_Message_Contents_nb_pages;
142
static int hf_sbc_ap_Warning_Message_Contents_decoded_page;
143
static int hf_sbc_ap_Broadcast_Scheduled_Area_List_PDU;  /* Broadcast_Scheduled_Area_List */
144
static int hf_sbc_ap_Broadcast_Scheduled_Area_List_5GS_PDU;  /* Broadcast_Scheduled_Area_List_5GS */
145
static int hf_sbc_ap_Broadcast_Cancelled_Area_List_PDU;  /* Broadcast_Cancelled_Area_List */
146
static int hf_sbc_ap_Broadcast_Cancelled_Area_List_5GS_PDU;  /* Broadcast_Cancelled_Area_List_5GS */
147
static int hf_sbc_ap_Broadcast_Empty_Area_List_PDU;  /* Broadcast_Empty_Area_List */
148
static int hf_sbc_ap_Broadcast_Empty_Area_List_5GS_PDU;  /* Broadcast_Empty_Area_List_5GS */
149
static int hf_sbc_ap_Cause_PDU;                   /* Cause */
150
static int hf_sbc_ap_Concurrent_Warning_Message_Indicator_PDU;  /* Concurrent_Warning_Message_Indicator */
151
static int hf_sbc_ap_Criticality_Diagnostics_PDU;  /* Criticality_Diagnostics */
152
static int hf_sbc_ap_Data_Coding_Scheme_PDU;      /* Data_Coding_Scheme */
153
static int hf_sbc_ap_Extended_Repetition_Period_PDU;  /* Extended_Repetition_Period */
154
static int hf_sbc_ap_Failed_Cell_List_PDU;        /* Failed_Cell_List */
155
static int hf_sbc_ap_Failed_Cell_List_NR_PDU;     /* Failed_Cell_List_NR */
156
static int hf_sbc_ap_Global_ENB_ID_PDU;           /* Global_ENB_ID */
157
static int hf_sbc_ap_Global_RAN_Node_ID_PDU;      /* Global_RAN_Node_ID */
158
static int hf_sbc_ap_Global_GNB_ID_PDU;           /* Global_GNB_ID */
159
static int hf_sbc_ap_List_of_TAIs_PDU;            /* List_of_TAIs */
160
static int hf_sbc_ap_List_of_TAIs_Restart_PDU;    /* List_of_TAIs_Restart */
161
static int hf_sbc_ap_List_of_EAIs_Restart_PDU;    /* List_of_EAIs_Restart */
162
static int hf_sbc_ap_List_of_5GS_TAIs_PDU;        /* List_of_5GS_TAIs */
163
static int hf_sbc_ap_List_of_5GS_TAI_for_Restart_PDU;  /* List_of_5GS_TAI_for_Restart */
164
static int hf_sbc_ap_Message_Identifier_PDU;      /* Message_Identifier */
165
static int hf_sbc_ap_Number_of_Broadcasts_Requested_PDU;  /* Number_of_Broadcasts_Requested */
166
static int hf_sbc_ap_Omc_Id_PDU;                  /* Omc_Id */
167
static int hf_sbc_ap_Repetition_Period_PDU;       /* Repetition_Period */
168
static int hf_sbc_ap_Restarted_Cell_List_PDU;     /* Restarted_Cell_List */
169
static int hf_sbc_ap_RAT_Selector_5GS_PDU;        /* RAT_Selector_5GS */
170
static int hf_sbc_ap_Restarted_Cell_List_NR_PDU;  /* Restarted_Cell_List_NR */
171
static int hf_sbc_ap_Send_Write_Replace_Warning_Indication_PDU;  /* Send_Write_Replace_Warning_Indication */
172
static int hf_sbc_ap_Send_Stop_Warning_Indication_PDU;  /* Send_Stop_Warning_Indication */
173
static int hf_sbc_ap_Serial_Number_PDU;           /* Serial_Number */
174
static int hf_sbc_ap_Stop_All_Indicator_PDU;      /* Stop_All_Indicator */
175
static int hf_sbc_ap_Unknown_5GS_Tracking_Area_List_PDU;  /* Unknown_5GS_Tracking_Area_List */
176
static int hf_sbc_ap_Warning_Area_List_PDU;       /* Warning_Area_List */
177
static int hf_sbc_ap_Warning_Message_Content_PDU;  /* Warning_Message_Content */
178
static int hf_sbc_ap_Warning_Area_Coordinates_PDU;  /* Warning_Area_Coordinates */
179
static int hf_sbc_ap_Warning_Security_Information_PDU;  /* Warning_Security_Information */
180
static int hf_sbc_ap_Warning_Type_PDU;            /* Warning_Type */
181
static int hf_sbc_ap_Warning_Area_List_5GS_PDU;   /* Warning_Area_List_5GS */
182
static int hf_sbc_ap_Write_Replace_Warning_Request_PDU;  /* Write_Replace_Warning_Request */
183
static int hf_sbc_ap_Write_Replace_Warning_Response_PDU;  /* Write_Replace_Warning_Response */
184
static int hf_sbc_ap_Stop_Warning_Request_PDU;    /* Stop_Warning_Request */
185
static int hf_sbc_ap_Stop_Warning_Response_PDU;   /* Stop_Warning_Response */
186
static int hf_sbc_ap_Write_Replace_Warning_Indication_PDU;  /* Write_Replace_Warning_Indication */
187
static int hf_sbc_ap_Stop_Warning_Indication_PDU;  /* Stop_Warning_Indication */
188
static int hf_sbc_ap_PWS_Restart_Indication_PDU;  /* PWS_Restart_Indication */
189
static int hf_sbc_ap_PWS_Failure_Indication_PDU;  /* PWS_Failure_Indication */
190
static int hf_sbc_ap_Error_Indication_PDU;        /* Error_Indication */
191
static int hf_sbc_ap_SBC_AP_PDU_PDU;              /* SBC_AP_PDU */
192
static int hf_sbc_ap_ProtocolIE_Container_item;   /* ProtocolIE_Field */
193
static int hf_sbc_ap_id;                          /* ProtocolIE_ID */
194
static int hf_sbc_ap_criticality;                 /* Criticality */
195
static int hf_sbc_ap_ie_field_value;              /* T_ie_field_value */
196
static int hf_sbc_ap_ProtocolExtensionContainer_item;  /* ProtocolExtensionField */
197
static int hf_sbc_ap_ext_id;                      /* ProtocolExtensionID */
198
static int hf_sbc_ap_extensionValue;              /* T_extensionValue */
199
static int hf_sbc_ap_cellId_Broadcast_List;       /* CellId_Broadcast_List */
200
static int hf_sbc_ap_tAI_Broadcast_List;          /* TAI_Broadcast_List */
201
static int hf_sbc_ap_emergencyAreaID_Broadcast_List;  /* EmergencyAreaID_Broadcast_List */
202
static int hf_sbc_ap_iE_Extensions;               /* ProtocolExtensionContainer */
203
static int hf_sbc_ap_cellId_Broadcast_List_5GS;   /* CellId_Broadcast_List_5GS */
204
static int hf_sbc_ap_tAI_Broadcast_List_5GS;      /* TAI_Broadcast_List_5GS */
205
static int hf_sbc_ap_cellID_Cancelled_List;       /* CellID_Cancelled_List */
206
static int hf_sbc_ap_tAI_Cancelled_List;          /* TAI_Cancelled_List */
207
static int hf_sbc_ap_emergencyAreaID_Cancelled_List;  /* EmergencyAreaID_Cancelled_List */
208
static int hf_sbc_ap_cellID_Cancelled_List_5GS;   /* CellID_Cancelled_List_5GS */
209
static int hf_sbc_ap_tAI_Cancelled_List_5GS;      /* TAI_Cancelled_List_5GS */
210
static int hf_sbc_ap_Broadcast_Empty_Area_List_item;  /* Global_ENB_ID */
211
static int hf_sbc_ap_Broadcast_Empty_Area_List_5GS_item;  /* Global_RAN_Node_ID */
212
static int hf_sbc_ap_CancelledCellinEAI_item;     /* CancelledCellinEAI_Item */
213
static int hf_sbc_ap_eCGI;                        /* EUTRAN_CGI */
214
static int hf_sbc_ap_numberOfBroadcasts;          /* NumberOfBroadcasts */
215
static int hf_sbc_ap_CancelledCellinTAI_item;     /* CancelledCellinTAI_Item */
216
static int hf_sbc_ap_CancelledCellinTAI_5GS_item;  /* CancelledCellinTAI_5GS_item */
217
static int hf_sbc_ap_nR_CGI;                      /* NR_CGI */
218
static int hf_sbc_ap_CellId_Broadcast_List_item;  /* CellId_Broadcast_List_Item */
219
static int hf_sbc_ap_CellId_Broadcast_List_5GS_item;  /* CellId_Broadcast_List_5GS_item */
220
static int hf_sbc_ap_CellID_Cancelled_List_item;  /* CellID_Cancelled_Item */
221
static int hf_sbc_ap_CellID_Cancelled_List_5GS_item;  /* CellID_Cancelled_List_5GS_item */
222
static int hf_sbc_ap_procedureCode;               /* ProcedureCode */
223
static int hf_sbc_ap_triggeringMessage;           /* TriggeringMessage */
224
static int hf_sbc_ap_procedureCriticality;        /* Criticality */
225
static int hf_sbc_ap_iE_CriticalityDiagnostics;   /* CriticalityDiagnostics_IE_List */
226
static int hf_sbc_ap_CriticalityDiagnostics_IE_List_item;  /* CriticalityDiagnostics_IE_List_item */
227
static int hf_sbc_ap_iECriticality;               /* Criticality */
228
static int hf_sbc_ap_iE_ID;                       /* ProtocolIE_ID */
229
static int hf_sbc_ap_typeOfError;                 /* TypeOfError */
230
static int hf_sbc_ap_ECGIList_item;               /* EUTRAN_CGI */
231
static int hf_sbc_ap_Emergency_Area_ID_List_item;  /* Emergency_Area_ID */
232
static int hf_sbc_ap_EmergencyAreaID_Broadcast_List_item;  /* EmergencyAreaID_Broadcast_List_Item */
233
static int hf_sbc_ap_emergencyAreaID;             /* Emergency_Area_ID */
234
static int hf_sbc_ap_scheduledCellinEAI;          /* ScheduledCellinEAI */
235
static int hf_sbc_ap_EmergencyAreaID_Cancelled_List_item;  /* EmergencyAreaID_Cancelled_Item */
236
static int hf_sbc_ap_cancelledCellinEAI;          /* CancelledCellinEAI */
237
static int hf_sbc_ap_pLMNidentity;                /* PLMNidentity */
238
static int hf_sbc_ap_cell_ID;                     /* CellIdentity */
239
static int hf_sbc_ap_macroENB_ID;                 /* BIT_STRING_SIZE_20 */
240
static int hf_sbc_ap_homeENB_ID;                  /* BIT_STRING_SIZE_28 */
241
static int hf_sbc_ap_short_macroENB_ID;           /* BIT_STRING_SIZE_18 */
242
static int hf_sbc_ap_long_macroENB_ID;            /* BIT_STRING_SIZE_21 */
243
static int hf_sbc_ap_Failed_Cell_List_item;       /* EUTRAN_CGI */
244
static int hf_sbc_ap_Failed_Cell_List_NR_item;    /* NR_CGI */
245
static int hf_sbc_ap_eNB_ID;                      /* ENB_ID */
246
static int hf_sbc_ap_global_GNB_ID;               /* Global_GNB_ID */
247
static int hf_sbc_ap_global_NgENB_ID;             /* Global_NgENB_ID */
248
static int hf_sbc_ap_gnb_id_choice;               /* GNB_ID */
249
static int hf_sbc_ap_gNB_ID;                      /* BIT_STRING_SIZE_22_32 */
250
static int hf_sbc_ap_ngENB_ID;                    /* ENB_ID */
251
static int hf_sbc_ap_List_of_TAIs_item;           /* List_of_TAIs_item */
252
static int hf_sbc_ap_tai;                         /* TAI */
253
static int hf_sbc_ap_List_of_TAIs_Restart_item;   /* List_of_TAIs_Restart_item */
254
static int hf_sbc_ap_List_of_EAIs_Restart_item;   /* Emergency_Area_ID */
255
static int hf_sbc_ap_List_of_5GS_TAIs_item;       /* TAI_5GS */
256
static int hf_sbc_ap_List_of_5GS_TAI_for_Restart_item;  /* TAI_5GS */
257
static int hf_sbc_ap_NR_CGIList_item;             /* NR_CGI */
258
static int hf_sbc_ap_nRCellIdentity;              /* NRCellIdentity */
259
static int hf_sbc_ap_Restarted_Cell_List_item;    /* EUTRAN_CGI */
260
static int hf_sbc_ap_Restarted_Cell_List_NR_item;  /* NR_CGI */
261
static int hf_sbc_ap_ScheduledCellinEAI_item;     /* ScheduledCellinEAI_Item */
262
static int hf_sbc_ap_ScheduledCellinTAI_item;     /* ScheduledCellinTAI_Item */
263
static int hf_sbc_ap_ScheduledCellinTAI_5GS_item;  /* ScheduledCellinTAI_5GS_item */
264
static int hf_sbc_ap_TAI_Broadcast_List_item;     /* TAI_Broadcast_List_Item */
265
static int hf_sbc_ap_tAI;                         /* TAI */
266
static int hf_sbc_ap_scheduledCellinTAI;          /* ScheduledCellinTAI */
267
static int hf_sbc_ap_TAI_Broadcast_List_5GS_item;  /* TAI_Broadcast_List_5GS_item */
268
static int hf_sbc_ap_tAI_5GS;                     /* TAI_5GS */
269
static int hf_sbc_ap_scheduledCellinTAI_5GS;      /* ScheduledCellinTAI_5GS */
270
static int hf_sbc_ap_TAI_Cancelled_List_item;     /* TAI_Cancelled_List_Item */
271
static int hf_sbc_ap_cancelledCellinTAI;          /* CancelledCellinTAI */
272
static int hf_sbc_ap_TAI_Cancelled_List_5GS_item;  /* TAI_Cancelled_List_5GS_item */
273
static int hf_sbc_ap_cancelledCellinTAI_5GS;      /* CancelledCellinTAI_5GS */
274
static int hf_sbc_ap_TAI_List_for_Warning_item;   /* TAI */
275
static int hf_sbc_ap_tAC;                         /* TAC */
276
static int hf_sbc_ap_tAC_5GS;                     /* TAC_5GS */
277
static int hf_sbc_ap_Unknown_5GS_Tracking_Area_List_item;  /* TAI_5GS */
278
static int hf_sbc_ap_cell_ID_List;                /* ECGIList */
279
static int hf_sbc_ap_tracking_Area_List_for_Warning;  /* TAI_List_for_Warning */
280
static int hf_sbc_ap_emergency_Area_ID_List;      /* Emergency_Area_ID_List */
281
static int hf_sbc_ap_nR_CGIList;                  /* NR_CGIList */
282
static int hf_sbc_ap_tAIList_5GS;                 /* TAI_5GS */
283
static int hf_sbc_ap_emergencyAreaIDList;         /* Emergency_Area_ID_List */
284
static int hf_sbc_ap_protocolIEs;                 /* ProtocolIE_Container */
285
static int hf_sbc_ap_protocolExtensions;          /* ProtocolExtensionContainer */
286
static int hf_sbc_ap_initiatingMessage;           /* InitiatingMessage */
287
static int hf_sbc_ap_successfulOutcome;           /* SuccessfulOutcome */
288
static int hf_sbc_ap_unsuccessfulOutcome;         /* UnsuccessfulOutcome */
289
static int hf_sbc_ap_initiatingMessagevalue;      /* InitiatingMessage_value */
290
static int hf_sbc_ap_successfulOutcome_value;     /* SuccessfulOutcome_value */
291
static int hf_sbc_ap_unsuccessfulOutcome_value;   /* UnsuccessfulOutcome_value */
292
293
/* Initialize the subtree pointers */
294
static int ett_sbc_ap;
295
static int ett_sbc_ap_Serial_Number;
296
static int ett_sbc_ap_Warning_Type;
297
static int ett_sbc_ap_Data_Coding_Scheme;
298
static int ett_sbc_ap_Warning_Message_Contents;
299
300
static int ett_sbc_ap_ProtocolIE_Container;
301
static int ett_sbc_ap_ProtocolIE_Field;
302
static int ett_sbc_ap_ProtocolExtensionContainer;
303
static int ett_sbc_ap_ProtocolExtensionField;
304
static int ett_sbc_ap_Broadcast_Scheduled_Area_List;
305
static int ett_sbc_ap_Broadcast_Scheduled_Area_List_5GS;
306
static int ett_sbc_ap_Broadcast_Cancelled_Area_List;
307
static int ett_sbc_ap_Broadcast_Cancelled_Area_List_5GS;
308
static int ett_sbc_ap_Broadcast_Empty_Area_List;
309
static int ett_sbc_ap_Broadcast_Empty_Area_List_5GS;
310
static int ett_sbc_ap_CancelledCellinEAI;
311
static int ett_sbc_ap_CancelledCellinEAI_Item;
312
static int ett_sbc_ap_CancelledCellinTAI;
313
static int ett_sbc_ap_CancelledCellinTAI_Item;
314
static int ett_sbc_ap_CancelledCellinTAI_5GS;
315
static int ett_sbc_ap_CancelledCellinTAI_5GS_item;
316
static int ett_sbc_ap_CellId_Broadcast_List;
317
static int ett_sbc_ap_CellId_Broadcast_List_Item;
318
static int ett_sbc_ap_CellId_Broadcast_List_5GS;
319
static int ett_sbc_ap_CellId_Broadcast_List_5GS_item;
320
static int ett_sbc_ap_CellID_Cancelled_List;
321
static int ett_sbc_ap_CellID_Cancelled_Item;
322
static int ett_sbc_ap_CellID_Cancelled_List_5GS;
323
static int ett_sbc_ap_CellID_Cancelled_List_5GS_item;
324
static int ett_sbc_ap_Criticality_Diagnostics;
325
static int ett_sbc_ap_CriticalityDiagnostics_IE_List;
326
static int ett_sbc_ap_CriticalityDiagnostics_IE_List_item;
327
static int ett_sbc_ap_ECGIList;
328
static int ett_sbc_ap_Emergency_Area_ID_List;
329
static int ett_sbc_ap_EmergencyAreaID_Broadcast_List;
330
static int ett_sbc_ap_EmergencyAreaID_Broadcast_List_Item;
331
static int ett_sbc_ap_EmergencyAreaID_Cancelled_List;
332
static int ett_sbc_ap_EmergencyAreaID_Cancelled_Item;
333
static int ett_sbc_ap_EUTRAN_CGI;
334
static int ett_sbc_ap_ENB_ID;
335
static int ett_sbc_ap_Failed_Cell_List;
336
static int ett_sbc_ap_Failed_Cell_List_NR;
337
static int ett_sbc_ap_Global_ENB_ID;
338
static int ett_sbc_ap_Global_RAN_Node_ID;
339
static int ett_sbc_ap_Global_GNB_ID;
340
static int ett_sbc_ap_GNB_ID;
341
static int ett_sbc_ap_Global_NgENB_ID;
342
static int ett_sbc_ap_List_of_TAIs;
343
static int ett_sbc_ap_List_of_TAIs_item;
344
static int ett_sbc_ap_List_of_TAIs_Restart;
345
static int ett_sbc_ap_List_of_TAIs_Restart_item;
346
static int ett_sbc_ap_List_of_EAIs_Restart;
347
static int ett_sbc_ap_List_of_5GS_TAIs;
348
static int ett_sbc_ap_List_of_5GS_TAI_for_Restart;
349
static int ett_sbc_ap_NR_CGIList;
350
static int ett_sbc_ap_NR_CGI;
351
static int ett_sbc_ap_Restarted_Cell_List;
352
static int ett_sbc_ap_Restarted_Cell_List_NR;
353
static int ett_sbc_ap_ScheduledCellinEAI;
354
static int ett_sbc_ap_ScheduledCellinEAI_Item;
355
static int ett_sbc_ap_ScheduledCellinTAI;
356
static int ett_sbc_ap_ScheduledCellinTAI_Item;
357
static int ett_sbc_ap_ScheduledCellinTAI_5GS;
358
static int ett_sbc_ap_ScheduledCellinTAI_5GS_item;
359
static int ett_sbc_ap_TAI_Broadcast_List;
360
static int ett_sbc_ap_TAI_Broadcast_List_Item;
361
static int ett_sbc_ap_TAI_Broadcast_List_5GS;
362
static int ett_sbc_ap_TAI_Broadcast_List_5GS_item;
363
static int ett_sbc_ap_TAI_Cancelled_List;
364
static int ett_sbc_ap_TAI_Cancelled_List_Item;
365
static int ett_sbc_ap_TAI_Cancelled_List_5GS;
366
static int ett_sbc_ap_TAI_Cancelled_List_5GS_item;
367
static int ett_sbc_ap_TAI_List_for_Warning;
368
static int ett_sbc_ap_TAI;
369
static int ett_sbc_ap_TAI_5GS;
370
static int ett_sbc_ap_Unknown_5GS_Tracking_Area_List;
371
static int ett_sbc_ap_Warning_Area_List;
372
static int ett_sbc_ap_Warning_Area_List_5GS;
373
static int ett_sbc_ap_Write_Replace_Warning_Request;
374
static int ett_sbc_ap_Write_Replace_Warning_Response;
375
static int ett_sbc_ap_Stop_Warning_Request;
376
static int ett_sbc_ap_Stop_Warning_Response;
377
static int ett_sbc_ap_Write_Replace_Warning_Indication;
378
static int ett_sbc_ap_Stop_Warning_Indication;
379
static int ett_sbc_ap_PWS_Restart_Indication;
380
static int ett_sbc_ap_PWS_Failure_Indication;
381
static int ett_sbc_ap_Error_Indication;
382
static int ett_sbc_ap_SBC_AP_PDU;
383
static int ett_sbc_ap_InitiatingMessage;
384
static int ett_sbc_ap_SuccessfulOutcome;
385
static int ett_sbc_ap_UnsuccessfulOutcome;
386
387
enum{
388
  INITIATING_MESSAGE,
389
  SUCCESSFUL_OUTCOME,
390
  UNSUCCESSFUL_OUTCOME
391
};
392
393
struct sbc_ap_private_data {
394
  uint8_t data_coding_scheme;
395
  e212_number_type_t number_type;
396
};
397
398
/* Global variables */
399
static uint32_t ProcedureCode;
400
static uint32_t ProtocolIE_ID;
401
static uint32_t ProtocolExtensionID;
402
static int global_sbc_ap_port = SBC_AP_PORT;
403
404
/* Dissector tables */
405
static dissector_table_t sbc_ap_ies_dissector_table;
406
static dissector_table_t sbc_ap_extension_dissector_table;
407
static dissector_table_t sbc_ap_proc_imsg_dissector_table;
408
static dissector_table_t sbc_ap_proc_sout_dissector_table;
409
static dissector_table_t sbc_ap_proc_uout_dissector_table;
410
411
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
412
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
413
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
414
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
415
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
416
417
418
static struct sbc_ap_private_data*
419
sbc_ap_get_private_data(packet_info *pinfo)
420
359
{
421
359
  struct sbc_ap_private_data *sbc_ap_data = (struct sbc_ap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_sbc_ap, 0);
422
359
  if (!sbc_ap_data) {
423
29
    sbc_ap_data = wmem_new0(pinfo->pool, struct sbc_ap_private_data);
424
29
    p_add_proto_data(pinfo->pool, pinfo, proto_sbc_ap, 0, sbc_ap_data);
425
29
  }
426
359
  return sbc_ap_data;
427
359
}
428
429
430
static const value_string sbc_ap_Criticality_vals[] = {
431
  {   0, "reject" },
432
  {   1, "ignore" },
433
  {   2, "notify" },
434
  { 0, NULL }
435
};
436
437
438
static unsigned
439
977
dissect_sbc_ap_Criticality(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
440
977
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
441
977
                                     3, NULL, false, 0, NULL);
442
443
977
  return offset;
444
977
}
445
446
447
static const value_string sbc_ap_ProcedureCode_vals[] = {
448
  { id_Write_Replace_Warning, "id-Write-Replace-Warning" },
449
  { id_Stop_Warning, "id-Stop-Warning" },
450
  { id_Error_Indication, "id-Error-Indication" },
451
  { id_Write_Replace_Warning_Indication, "id-Write-Replace-Warning-Indication" },
452
  { id_Stop_Warning_Indication, "id-Stop-Warning-Indication" },
453
  { id_PWS_Restart_Indication, "id-PWS-Restart-Indication" },
454
  { id_PWS_Failure_Indication, "id-PWS-Failure-Indication" },
455
  { 0, NULL }
456
};
457
458
459
static unsigned
460
90
dissect_sbc_ap_ProcedureCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
461
90
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
462
90
                                                            0U, 255U, &ProcedureCode, false);
463
464
90
  return offset;
465
90
}
466
467
468
469
static unsigned
470
201
dissect_sbc_ap_ProtocolExtensionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
471
201
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
472
201
                                                            0U, 65535U, &ProtocolExtensionID, false);
473
474
201
  return offset;
475
201
}
476
477
478
static const value_string sbc_ap_ProtocolIE_ID_vals[] = {
479
  { id_Broadcast_Message_Content, "id-Broadcast-Message-Content" },
480
  { id_Cause, "id-Cause" },
481
  { id_Criticality_Diagnostics, "id-Criticality-Diagnostics" },
482
  { id_Data_Coding_Scheme, "id-Data-Coding-Scheme" },
483
  { id_Failure_List, "id-Failure-List" },
484
  { id_Message_Identifier, "id-Message-Identifier" },
485
  { id_Number_of_Broadcasts_Completed_List, "id-Number-of-Broadcasts-Completed-List" },
486
  { id_Number_of_Broadcasts_Requested, "id-Number-of-Broadcasts-Requested" },
487
  { id_Radio_Resource_Loading_List, "id-Radio-Resource-Loading-List" },
488
  { id_Recovery_Indication, "id-Recovery-Indication" },
489
  { id_Repetition_Period, "id-Repetition-Period" },
490
  { id_Serial_Number, "id-Serial-Number" },
491
  { id_Service_Areas_List, "id-Service-Areas-List" },
492
  { id_TypeOfError, "id-TypeOfError" },
493
  { id_List_of_TAIs, "id-List-of-TAIs" },
494
  { id_Warning_Area_List, "id-Warning-Area-List" },
495
  { id_Warning_Message_Content, "id-Warning-Message-Content" },
496
  { id_Warning_Security_Information, "id-Warning-Security-Information" },
497
  { id_Warning_Type, "id-Warning-Type" },
498
  { id_Omc_Id, "id-Omc-Id" },
499
  { id_Concurrent_Warning_Message_Indicator, "id-Concurrent-Warning-Message-Indicator" },
500
  { id_Extended_Repetition_Period, "id-Extended-Repetition-Period" },
501
  { id_Unknown_Tracking_Area_List, "id-Unknown-Tracking-Area-List" },
502
  { id_Broadcast_Scheduled_Area_List, "id-Broadcast-Scheduled-Area-List" },
503
  { id_Send_Write_Replace_Warning_Indication, "id-Send-Write-Replace-Warning-Indication" },
504
  { id_Broadcast_Cancelled_Area_List, "id-Broadcast-Cancelled-Area-List" },
505
  { id_Send_Stop_Warning_Indication, "id-Send-Stop-Warning-Indication" },
506
  { id_Stop_All_Indicator, "id-Stop-All-Indicator" },
507
  { id_Global_ENB_ID, "id-Global-ENB-ID" },
508
  { id_Broadcast_Empty_Area_List, "id-Broadcast-Empty-Area-List" },
509
  { id_Restarted_Cell_List, "id-Restarted-Cell-List" },
510
  { id_List_of_TAIs_Restart, "id-List-of-TAIs-Restart" },
511
  { id_List_of_EAIs_Restart, "id-List-of-EAIs-Restart" },
512
  { id_Failed_Cell_List, "id-Failed-Cell-List" },
513
  { id_List_of_5GS_TAIs, "id-List-of-5GS-TAIs" },
514
  { id_Warning_Area_List_5GS, "id-Warning-Area-List-5GS" },
515
  { id_Global_RAN_Node_ID, "id-Global-RAN-Node-ID" },
516
  { id_Global_GNB_ID, "id-Global-GNB-ID" },
517
  { id_RAT_Selector_5GS, "id-RAT-Selector-5GS" },
518
  { id_Unknown_5GS_Tracking_Area_List, "id-Unknown-5GS-Tracking-Area-List" },
519
  { id_Broadcast_Scheduled_Area_List_5GS, "id-Broadcast-Scheduled-Area-List-5GS" },
520
  { id_Broadcast_Cancelled_Area_List_5GS, "id-Broadcast-Cancelled-Area-List-5GS" },
521
  { id_Broadcast_Empty_Area_List_5GS, "id-Broadcast-Empty-Area-List-5GS" },
522
  { id_Restarted_Cell_List_NR, "id-Restarted-Cell-List-NR" },
523
  { id_Failed_Cell_List_NR, "id-Failed-Cell-List-NR" },
524
  { id_List_of_5GS_TAI_for_Restart, "id-List-of-5GS-TAI-for-Restart" },
525
  { id_Warning_Area_Coordinates, "id-Warning-Area-Coordinates" },
526
  { 0, NULL }
527
};
528
529
530
static unsigned
531
689
dissect_sbc_ap_ProtocolIE_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
532
689
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
533
689
                                                            0U, 65535U, &ProtocolIE_ID, false);
534
535
689
  if (tree) {
536
689
    proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(actx->pinfo->pool, ProtocolIE_ID, VALS(sbc_ap_ProtocolIE_ID_vals), "unknown (%d)"));
537
689
  }
538
689
  return offset;
539
689
}
540
541
542
static const value_string sbc_ap_TriggeringMessage_vals[] = {
543
  {   0, "initiating-message" },
544
  {   1, "successful-outcome" },
545
  {   2, "unsuccessful-outcome" },
546
  {   3, "outcome" },
547
  { 0, NULL }
548
};
549
550
551
static unsigned
552
5
dissect_sbc_ap_TriggeringMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
553
5
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
554
5
                                     4, NULL, false, 0, NULL);
555
556
5
  return offset;
557
5
}
558
559
560
561
static unsigned
562
680
dissect_sbc_ap_T_ie_field_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
563
680
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue);
564
565
680
  return offset;
566
680
}
567
568
569
static const per_sequence_t ProtocolIE_Field_sequence[] = {
570
  { &hf_sbc_ap_id           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_ID },
571
  { &hf_sbc_ap_criticality  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Criticality },
572
  { &hf_sbc_ap_ie_field_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_T_ie_field_value },
573
  { NULL, 0, 0, NULL }
574
};
575
576
static unsigned
577
716
dissect_sbc_ap_ProtocolIE_Field(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
578
716
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
579
716
                                   ett_sbc_ap_ProtocolIE_Field, ProtocolIE_Field_sequence);
580
581
716
  return offset;
582
716
}
583
584
585
static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
586
  { &hf_sbc_ap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Field },
587
};
588
589
static unsigned
590
78
dissect_sbc_ap_ProtocolIE_Container(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
591
78
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
592
78
                                                  ett_sbc_ap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
593
78
                                                  0, maxProtocolIEs, false);
594
595
78
  return offset;
596
78
}
597
598
599
600
static unsigned
601
196
dissect_sbc_ap_T_extensionValue(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
602
196
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolExtensionFieldExtensionValue);
603
604
196
  return offset;
605
196
}
606
607
608
static const per_sequence_t ProtocolExtensionField_sequence[] = {
609
  { &hf_sbc_ap_ext_id       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolExtensionID },
610
  { &hf_sbc_ap_criticality  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Criticality },
611
  { &hf_sbc_ap_extensionValue, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_T_extensionValue },
612
  { NULL, 0, 0, NULL }
613
};
614
615
static unsigned
616
225
dissect_sbc_ap_ProtocolExtensionField(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
617
225
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
618
225
                                   ett_sbc_ap_ProtocolExtensionField, ProtocolExtensionField_sequence);
619
620
225
  return offset;
621
225
}
622
623
624
static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
625
  { &hf_sbc_ap_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolExtensionField },
626
};
627
628
static unsigned
629
53
dissect_sbc_ap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
630
53
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
631
53
                                                  ett_sbc_ap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
632
53
                                                  1, maxProtocolExtensions, false);
633
634
53
  return offset;
635
53
}
636
637
638
639
640
static unsigned
641
180
dissect_sbc_ap_PLMNidentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
642
180
  tvbuff_t *parameter_tvb=NULL;
643
180
  struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
644
180
  e212_number_type_t number_type = sbc_ap_data->number_type;
645
180
  sbc_ap_data->number_type = E212_NONE;
646
647
180
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
648
180
                                       3, 3, false, &parameter_tvb);
649
180
    if(tvb_reported_length(tvb)==0)
650
0
        return offset;
651
652
180
    if (!parameter_tvb)
653
0
        return offset;
654
180
    dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, false);
655
656
180
  return offset;
657
180
}
658
659
660
661
static unsigned
662
47
dissect_sbc_ap_CellIdentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
663
47
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
664
47
                                     28, 28, false, NULL, 0, NULL, NULL);
665
666
47
  return offset;
667
47
}
668
669
670
static const per_sequence_t EUTRAN_CGI_sequence[] = {
671
  { &hf_sbc_ap_pLMNidentity , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_PLMNidentity },
672
  { &hf_sbc_ap_cell_ID      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CellIdentity },
673
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
674
  { NULL, 0, 0, NULL }
675
};
676
677
static unsigned
678
49
dissect_sbc_ap_EUTRAN_CGI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
679
49
  struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
680
49
  sbc_ap_data->number_type = E212_ECGI;
681
49
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
682
49
                                   ett_sbc_ap_EUTRAN_CGI, EUTRAN_CGI_sequence);
683
684
685
686
49
  return offset;
687
49
}
688
689
690
static const per_sequence_t CellId_Broadcast_List_Item_sequence[] = {
691
  { &hf_sbc_ap_eCGI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
692
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
693
  { NULL, 0, 0, NULL }
694
};
695
696
static unsigned
697
8
dissect_sbc_ap_CellId_Broadcast_List_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
698
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
699
8
                                   ett_sbc_ap_CellId_Broadcast_List_Item, CellId_Broadcast_List_Item_sequence);
700
701
8
  return offset;
702
8
}
703
704
705
static const per_sequence_t CellId_Broadcast_List_sequence_of[1] = {
706
  { &hf_sbc_ap_CellId_Broadcast_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CellId_Broadcast_List_Item },
707
};
708
709
static unsigned
710
3
dissect_sbc_ap_CellId_Broadcast_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
711
3
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
712
3
                                                  ett_sbc_ap_CellId_Broadcast_List, CellId_Broadcast_List_sequence_of,
713
3
                                                  1, maxnoofCellID, false);
714
715
3
  return offset;
716
3
}
717
718
719
720
static unsigned
721
113
dissect_sbc_ap_TAC(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
722
113
  tvbuff_t *parameter_tvb = NULL;
723
113
  offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
724
113
                                       2, 2, false, &parameter_tvb);
725
726
113
  if (parameter_tvb) {
727
112
    actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
728
112
  }
729
730
731
113
  return offset;
732
113
}
733
734
735
static const per_sequence_t TAI_sequence[] = {
736
  { &hf_sbc_ap_pLMNidentity , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_PLMNidentity },
737
  { &hf_sbc_ap_tAC          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAC },
738
  { &hf_sbc_ap_iE_Extensions, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
739
  { NULL, 0, 0, NULL }
740
};
741
742
static unsigned
743
115
dissect_sbc_ap_TAI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
744
115
  struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
745
115
  sbc_ap_data->number_type = E212_TAI;
746
115
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
747
115
                                   ett_sbc_ap_TAI, TAI_sequence);
748
749
750
751
115
  return offset;
752
115
}
753
754
755
static const per_sequence_t ScheduledCellinTAI_Item_sequence[] = {
756
  { &hf_sbc_ap_eCGI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
757
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
758
  { NULL, 0, 0, NULL }
759
};
760
761
static unsigned
762
0
dissect_sbc_ap_ScheduledCellinTAI_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
763
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
764
0
                                   ett_sbc_ap_ScheduledCellinTAI_Item, ScheduledCellinTAI_Item_sequence);
765
766
0
  return offset;
767
0
}
768
769
770
static const per_sequence_t ScheduledCellinTAI_sequence_of[1] = {
771
  { &hf_sbc_ap_ScheduledCellinTAI_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ScheduledCellinTAI_Item },
772
};
773
774
static unsigned
775
0
dissect_sbc_ap_ScheduledCellinTAI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
776
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
777
0
                                                  ett_sbc_ap_ScheduledCellinTAI, ScheduledCellinTAI_sequence_of,
778
0
                                                  1, maxnoofCellinTAI, false);
779
780
0
  return offset;
781
0
}
782
783
784
static const per_sequence_t TAI_Broadcast_List_Item_sequence[] = {
785
  { &hf_sbc_ap_tAI          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI },
786
  { &hf_sbc_ap_scheduledCellinTAI, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ScheduledCellinTAI },
787
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
788
  { NULL, 0, 0, NULL }
789
};
790
791
static unsigned
792
0
dissect_sbc_ap_TAI_Broadcast_List_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
793
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
794
0
                                   ett_sbc_ap_TAI_Broadcast_List_Item, TAI_Broadcast_List_Item_sequence);
795
796
0
  return offset;
797
0
}
798
799
800
static const per_sequence_t TAI_Broadcast_List_sequence_of[1] = {
801
  { &hf_sbc_ap_TAI_Broadcast_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_Broadcast_List_Item },
802
};
803
804
static unsigned
805
0
dissect_sbc_ap_TAI_Broadcast_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
806
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
807
0
                                                  ett_sbc_ap_TAI_Broadcast_List, TAI_Broadcast_List_sequence_of,
808
0
                                                  1, maxnoofTAIforWarning, false);
809
810
0
  return offset;
811
0
}
812
813
814
815
static unsigned
816
60
dissect_sbc_ap_Emergency_Area_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
817
60
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
818
60
                                       3, 3, false, NULL);
819
820
60
  return offset;
821
60
}
822
823
824
static const per_sequence_t ScheduledCellinEAI_Item_sequence[] = {
825
  { &hf_sbc_ap_eCGI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
826
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
827
  { NULL, 0, 0, NULL }
828
};
829
830
static unsigned
831
9
dissect_sbc_ap_ScheduledCellinEAI_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
832
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
833
9
                                   ett_sbc_ap_ScheduledCellinEAI_Item, ScheduledCellinEAI_Item_sequence);
834
835
9
  return offset;
836
9
}
837
838
839
static const per_sequence_t ScheduledCellinEAI_sequence_of[1] = {
840
  { &hf_sbc_ap_ScheduledCellinEAI_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ScheduledCellinEAI_Item },
841
};
842
843
static unsigned
844
5
dissect_sbc_ap_ScheduledCellinEAI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
845
5
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
846
5
                                                  ett_sbc_ap_ScheduledCellinEAI, ScheduledCellinEAI_sequence_of,
847
5
                                                  1, maxnoofCellinEAI, false);
848
849
5
  return offset;
850
5
}
851
852
853
static const per_sequence_t EmergencyAreaID_Broadcast_List_Item_sequence[] = {
854
  { &hf_sbc_ap_emergencyAreaID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Emergency_Area_ID },
855
  { &hf_sbc_ap_scheduledCellinEAI, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ScheduledCellinEAI },
856
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
857
  { NULL, 0, 0, NULL }
858
};
859
860
static unsigned
861
5
dissect_sbc_ap_EmergencyAreaID_Broadcast_List_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
862
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
863
5
                                   ett_sbc_ap_EmergencyAreaID_Broadcast_List_Item, EmergencyAreaID_Broadcast_List_Item_sequence);
864
865
5
  return offset;
866
5
}
867
868
869
static const per_sequence_t EmergencyAreaID_Broadcast_List_sequence_of[1] = {
870
  { &hf_sbc_ap_EmergencyAreaID_Broadcast_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EmergencyAreaID_Broadcast_List_Item },
871
};
872
873
static unsigned
874
5
dissect_sbc_ap_EmergencyAreaID_Broadcast_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
875
5
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
876
5
                                                  ett_sbc_ap_EmergencyAreaID_Broadcast_List, EmergencyAreaID_Broadcast_List_sequence_of,
877
5
                                                  1, maxnoofEmergencyAreaID, false);
878
879
5
  return offset;
880
5
}
881
882
883
static const per_sequence_t Broadcast_Scheduled_Area_List_sequence[] = {
884
  { &hf_sbc_ap_cellId_Broadcast_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_CellId_Broadcast_List },
885
  { &hf_sbc_ap_tAI_Broadcast_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_TAI_Broadcast_List },
886
  { &hf_sbc_ap_emergencyAreaID_Broadcast_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_EmergencyAreaID_Broadcast_List },
887
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
888
  { NULL, 0, 0, NULL }
889
};
890
891
static unsigned
892
8
dissect_sbc_ap_Broadcast_Scheduled_Area_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
893
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
894
8
                                   ett_sbc_ap_Broadcast_Scheduled_Area_List, Broadcast_Scheduled_Area_List_sequence);
895
896
8
  return offset;
897
8
}
898
899
900
901
static unsigned
902
0
dissect_sbc_ap_NRCellIdentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
903
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
904
0
                                     36, 36, false, NULL, 0, NULL, NULL);
905
906
0
  return offset;
907
0
}
908
909
910
static const per_sequence_t NR_CGI_sequence[] = {
911
  { &hf_sbc_ap_pLMNidentity , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_PLMNidentity },
912
  { &hf_sbc_ap_nRCellIdentity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NRCellIdentity },
913
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
914
  { NULL, 0, 0, NULL }
915
};
916
917
static unsigned
918
0
dissect_sbc_ap_NR_CGI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
919
0
  struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
920
0
  sbc_ap_data->number_type = E212_NRCGI;
921
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
922
0
                                   ett_sbc_ap_NR_CGI, NR_CGI_sequence);
923
924
925
926
0
  return offset;
927
0
}
928
929
930
static const per_sequence_t CellId_Broadcast_List_5GS_item_sequence[] = {
931
  { &hf_sbc_ap_nR_CGI       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NR_CGI },
932
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
933
  { NULL, 0, 0, NULL }
934
};
935
936
static unsigned
937
0
dissect_sbc_ap_CellId_Broadcast_List_5GS_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
938
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
939
0
                                   ett_sbc_ap_CellId_Broadcast_List_5GS_item, CellId_Broadcast_List_5GS_item_sequence);
940
941
0
  return offset;
942
0
}
943
944
945
static const per_sequence_t CellId_Broadcast_List_5GS_sequence_of[1] = {
946
  { &hf_sbc_ap_CellId_Broadcast_List_5GS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CellId_Broadcast_List_5GS_item },
947
};
948
949
static unsigned
950
0
dissect_sbc_ap_CellId_Broadcast_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
951
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
952
0
                                                  ett_sbc_ap_CellId_Broadcast_List_5GS, CellId_Broadcast_List_5GS_sequence_of,
953
0
                                                  1, maxnoofCellsin5GS, false);
954
955
0
  return offset;
956
0
}
957
958
959
960
static unsigned
961
12
dissect_sbc_ap_TAC_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
962
12
  tvbuff_t *parameter_tvb = NULL;
963
12
  offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
964
12
                                       3, 3, false, &parameter_tvb);
965
966
12
  if (parameter_tvb) {
967
12
    actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 3, ENC_BIG_ENDIAN);
968
12
  }
969
970
971
972
12
  return offset;
973
12
}
974
975
976
static const per_sequence_t TAI_5GS_sequence[] = {
977
  { &hf_sbc_ap_pLMNidentity , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_PLMNidentity },
978
  { &hf_sbc_ap_tAC_5GS      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAC_5GS },
979
  { &hf_sbc_ap_iE_Extensions, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
980
  { NULL, 0, 0, NULL }
981
};
982
983
static unsigned
984
12
dissect_sbc_ap_TAI_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
985
12
  struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
986
12
  sbc_ap_data->number_type = E212_5GSTAI;
987
12
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
988
12
                                   ett_sbc_ap_TAI_5GS, TAI_5GS_sequence);
989
990
991
992
12
  return offset;
993
12
}
994
995
996
static const per_sequence_t ScheduledCellinTAI_5GS_item_sequence[] = {
997
  { &hf_sbc_ap_nR_CGI       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NR_CGI },
998
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
999
  { NULL, 0, 0, NULL }
1000
};
1001
1002
static unsigned
1003
0
dissect_sbc_ap_ScheduledCellinTAI_5GS_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1004
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1005
0
                                   ett_sbc_ap_ScheduledCellinTAI_5GS_item, ScheduledCellinTAI_5GS_item_sequence);
1006
1007
0
  return offset;
1008
0
}
1009
1010
1011
static const per_sequence_t ScheduledCellinTAI_5GS_sequence_of[1] = {
1012
  { &hf_sbc_ap_ScheduledCellinTAI_5GS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ScheduledCellinTAI_5GS_item },
1013
};
1014
1015
static unsigned
1016
0
dissect_sbc_ap_ScheduledCellinTAI_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1017
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1018
0
                                                  ett_sbc_ap_ScheduledCellinTAI_5GS, ScheduledCellinTAI_5GS_sequence_of,
1019
0
                                                  1, maxnoofCellsin5GSTAI, false);
1020
1021
0
  return offset;
1022
0
}
1023
1024
1025
static const per_sequence_t TAI_Broadcast_List_5GS_item_sequence[] = {
1026
  { &hf_sbc_ap_tAI_5GS      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_5GS },
1027
  { &hf_sbc_ap_scheduledCellinTAI_5GS, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ScheduledCellinTAI_5GS },
1028
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1029
  { NULL, 0, 0, NULL }
1030
};
1031
1032
static unsigned
1033
0
dissect_sbc_ap_TAI_Broadcast_List_5GS_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1034
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1035
0
                                   ett_sbc_ap_TAI_Broadcast_List_5GS_item, TAI_Broadcast_List_5GS_item_sequence);
1036
1037
0
  return offset;
1038
0
}
1039
1040
1041
static const per_sequence_t TAI_Broadcast_List_5GS_sequence_of[1] = {
1042
  { &hf_sbc_ap_TAI_Broadcast_List_5GS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_Broadcast_List_5GS_item },
1043
};
1044
1045
static unsigned
1046
0
dissect_sbc_ap_TAI_Broadcast_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1047
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1048
0
                                                  ett_sbc_ap_TAI_Broadcast_List_5GS, TAI_Broadcast_List_5GS_sequence_of,
1049
0
                                                  1, maxnoof5GSTAIs, false);
1050
1051
0
  return offset;
1052
0
}
1053
1054
1055
static const per_sequence_t Broadcast_Scheduled_Area_List_5GS_sequence[] = {
1056
  { &hf_sbc_ap_cellId_Broadcast_List_5GS, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_CellId_Broadcast_List_5GS },
1057
  { &hf_sbc_ap_tAI_Broadcast_List_5GS, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_TAI_Broadcast_List_5GS },
1058
  { &hf_sbc_ap_emergencyAreaID_Broadcast_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_EmergencyAreaID_Broadcast_List },
1059
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1060
  { NULL, 0, 0, NULL }
1061
};
1062
1063
static unsigned
1064
0
dissect_sbc_ap_Broadcast_Scheduled_Area_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1065
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1066
0
                                   ett_sbc_ap_Broadcast_Scheduled_Area_List_5GS, Broadcast_Scheduled_Area_List_5GS_sequence);
1067
1068
0
  return offset;
1069
0
}
1070
1071
1072
1073
static unsigned
1074
5
dissect_sbc_ap_NumberOfBroadcasts(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1075
5
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1076
5
                                                            0U, 65535U, NULL, false);
1077
1078
5
  return offset;
1079
5
}
1080
1081
1082
static const per_sequence_t CellID_Cancelled_Item_sequence[] = {
1083
  { &hf_sbc_ap_eCGI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
1084
  { &hf_sbc_ap_numberOfBroadcasts, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NumberOfBroadcasts },
1085
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1086
  { NULL, 0, 0, NULL }
1087
};
1088
1089
static unsigned
1090
0
dissect_sbc_ap_CellID_Cancelled_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1091
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1092
0
                                   ett_sbc_ap_CellID_Cancelled_Item, CellID_Cancelled_Item_sequence);
1093
1094
0
  return offset;
1095
0
}
1096
1097
1098
static const per_sequence_t CellID_Cancelled_List_sequence_of[1] = {
1099
  { &hf_sbc_ap_CellID_Cancelled_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CellID_Cancelled_Item },
1100
};
1101
1102
static unsigned
1103
0
dissect_sbc_ap_CellID_Cancelled_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1104
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1105
0
                                                  ett_sbc_ap_CellID_Cancelled_List, CellID_Cancelled_List_sequence_of,
1106
0
                                                  1, maxnoofCellID, false);
1107
1108
0
  return offset;
1109
0
}
1110
1111
1112
static const per_sequence_t CancelledCellinTAI_Item_sequence[] = {
1113
  { &hf_sbc_ap_eCGI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
1114
  { &hf_sbc_ap_numberOfBroadcasts, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NumberOfBroadcasts },
1115
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1116
  { NULL, 0, 0, NULL }
1117
};
1118
1119
static unsigned
1120
0
dissect_sbc_ap_CancelledCellinTAI_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1121
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1122
0
                                   ett_sbc_ap_CancelledCellinTAI_Item, CancelledCellinTAI_Item_sequence);
1123
1124
0
  return offset;
1125
0
}
1126
1127
1128
static const per_sequence_t CancelledCellinTAI_sequence_of[1] = {
1129
  { &hf_sbc_ap_CancelledCellinTAI_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CancelledCellinTAI_Item },
1130
};
1131
1132
static unsigned
1133
0
dissect_sbc_ap_CancelledCellinTAI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1134
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1135
0
                                                  ett_sbc_ap_CancelledCellinTAI, CancelledCellinTAI_sequence_of,
1136
0
                                                  1, maxnoofCellinTAI, false);
1137
1138
0
  return offset;
1139
0
}
1140
1141
1142
static const per_sequence_t TAI_Cancelled_List_Item_sequence[] = {
1143
  { &hf_sbc_ap_tAI          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI },
1144
  { &hf_sbc_ap_cancelledCellinTAI, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CancelledCellinTAI },
1145
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1146
  { NULL, 0, 0, NULL }
1147
};
1148
1149
static unsigned
1150
0
dissect_sbc_ap_TAI_Cancelled_List_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1151
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1152
0
                                   ett_sbc_ap_TAI_Cancelled_List_Item, TAI_Cancelled_List_Item_sequence);
1153
1154
0
  return offset;
1155
0
}
1156
1157
1158
static const per_sequence_t TAI_Cancelled_List_sequence_of[1] = {
1159
  { &hf_sbc_ap_TAI_Cancelled_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_Cancelled_List_Item },
1160
};
1161
1162
static unsigned
1163
0
dissect_sbc_ap_TAI_Cancelled_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1164
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1165
0
                                                  ett_sbc_ap_TAI_Cancelled_List, TAI_Cancelled_List_sequence_of,
1166
0
                                                  1, maxnoofTAIforWarning, false);
1167
1168
0
  return offset;
1169
0
}
1170
1171
1172
static const per_sequence_t CancelledCellinEAI_Item_sequence[] = {
1173
  { &hf_sbc_ap_eCGI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
1174
  { &hf_sbc_ap_numberOfBroadcasts, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NumberOfBroadcasts },
1175
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1176
  { NULL, 0, 0, NULL }
1177
};
1178
1179
static unsigned
1180
6
dissect_sbc_ap_CancelledCellinEAI_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1181
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1182
6
                                   ett_sbc_ap_CancelledCellinEAI_Item, CancelledCellinEAI_Item_sequence);
1183
1184
6
  return offset;
1185
6
}
1186
1187
1188
static const per_sequence_t CancelledCellinEAI_sequence_of[1] = {
1189
  { &hf_sbc_ap_CancelledCellinEAI_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CancelledCellinEAI_Item },
1190
};
1191
1192
static unsigned
1193
4
dissect_sbc_ap_CancelledCellinEAI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1194
4
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1195
4
                                                  ett_sbc_ap_CancelledCellinEAI, CancelledCellinEAI_sequence_of,
1196
4
                                                  1, maxnoofCellinEAI, false);
1197
1198
4
  return offset;
1199
4
}
1200
1201
1202
static const per_sequence_t EmergencyAreaID_Cancelled_Item_sequence[] = {
1203
  { &hf_sbc_ap_emergencyAreaID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Emergency_Area_ID },
1204
  { &hf_sbc_ap_cancelledCellinEAI, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CancelledCellinEAI },
1205
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1206
  { NULL, 0, 0, NULL }
1207
};
1208
1209
static unsigned
1210
4
dissect_sbc_ap_EmergencyAreaID_Cancelled_Item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1211
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1212
4
                                   ett_sbc_ap_EmergencyAreaID_Cancelled_Item, EmergencyAreaID_Cancelled_Item_sequence);
1213
1214
4
  return offset;
1215
4
}
1216
1217
1218
static const per_sequence_t EmergencyAreaID_Cancelled_List_sequence_of[1] = {
1219
  { &hf_sbc_ap_EmergencyAreaID_Cancelled_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EmergencyAreaID_Cancelled_Item },
1220
};
1221
1222
static unsigned
1223
3
dissect_sbc_ap_EmergencyAreaID_Cancelled_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1224
3
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1225
3
                                                  ett_sbc_ap_EmergencyAreaID_Cancelled_List, EmergencyAreaID_Cancelled_List_sequence_of,
1226
3
                                                  1, maxnoofEmergencyAreaID, false);
1227
1228
3
  return offset;
1229
3
}
1230
1231
1232
static const per_sequence_t Broadcast_Cancelled_Area_List_sequence[] = {
1233
  { &hf_sbc_ap_cellID_Cancelled_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_CellID_Cancelled_List },
1234
  { &hf_sbc_ap_tAI_Cancelled_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_TAI_Cancelled_List },
1235
  { &hf_sbc_ap_emergencyAreaID_Cancelled_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_EmergencyAreaID_Cancelled_List },
1236
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1237
  { NULL, 0, 0, NULL }
1238
};
1239
1240
static unsigned
1241
3
dissect_sbc_ap_Broadcast_Cancelled_Area_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1242
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1243
3
                                   ett_sbc_ap_Broadcast_Cancelled_Area_List, Broadcast_Cancelled_Area_List_sequence);
1244
1245
3
  return offset;
1246
3
}
1247
1248
1249
static const per_sequence_t CellID_Cancelled_List_5GS_item_sequence[] = {
1250
  { &hf_sbc_ap_nR_CGI       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NR_CGI },
1251
  { &hf_sbc_ap_numberOfBroadcasts, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NumberOfBroadcasts },
1252
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1253
  { NULL, 0, 0, NULL }
1254
};
1255
1256
static unsigned
1257
0
dissect_sbc_ap_CellID_Cancelled_List_5GS_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1258
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1259
0
                                   ett_sbc_ap_CellID_Cancelled_List_5GS_item, CellID_Cancelled_List_5GS_item_sequence);
1260
1261
0
  return offset;
1262
0
}
1263
1264
1265
static const per_sequence_t CellID_Cancelled_List_5GS_sequence_of[1] = {
1266
  { &hf_sbc_ap_CellID_Cancelled_List_5GS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CellID_Cancelled_List_5GS_item },
1267
};
1268
1269
static unsigned
1270
0
dissect_sbc_ap_CellID_Cancelled_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1271
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1272
0
                                                  ett_sbc_ap_CellID_Cancelled_List_5GS, CellID_Cancelled_List_5GS_sequence_of,
1273
0
                                                  1, maxnoofCellsin5GS, false);
1274
1275
0
  return offset;
1276
0
}
1277
1278
1279
static const per_sequence_t CancelledCellinTAI_5GS_item_sequence[] = {
1280
  { &hf_sbc_ap_nR_CGI       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NR_CGI },
1281
  { &hf_sbc_ap_numberOfBroadcasts, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NumberOfBroadcasts },
1282
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1283
  { NULL, 0, 0, NULL }
1284
};
1285
1286
static unsigned
1287
0
dissect_sbc_ap_CancelledCellinTAI_5GS_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1288
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1289
0
                                   ett_sbc_ap_CancelledCellinTAI_5GS_item, CancelledCellinTAI_5GS_item_sequence);
1290
1291
0
  return offset;
1292
0
}
1293
1294
1295
static const per_sequence_t CancelledCellinTAI_5GS_sequence_of[1] = {
1296
  { &hf_sbc_ap_CancelledCellinTAI_5GS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CancelledCellinTAI_5GS_item },
1297
};
1298
1299
static unsigned
1300
0
dissect_sbc_ap_CancelledCellinTAI_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1301
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1302
0
                                                  ett_sbc_ap_CancelledCellinTAI_5GS, CancelledCellinTAI_5GS_sequence_of,
1303
0
                                                  1, maxnoofCellsin5GSTAI, false);
1304
1305
0
  return offset;
1306
0
}
1307
1308
1309
static const per_sequence_t TAI_Cancelled_List_5GS_item_sequence[] = {
1310
  { &hf_sbc_ap_tAI_5GS      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_5GS },
1311
  { &hf_sbc_ap_cancelledCellinTAI_5GS, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CancelledCellinTAI_5GS },
1312
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1313
  { NULL, 0, 0, NULL }
1314
};
1315
1316
static unsigned
1317
0
dissect_sbc_ap_TAI_Cancelled_List_5GS_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1318
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1319
0
                                   ett_sbc_ap_TAI_Cancelled_List_5GS_item, TAI_Cancelled_List_5GS_item_sequence);
1320
1321
0
  return offset;
1322
0
}
1323
1324
1325
static const per_sequence_t TAI_Cancelled_List_5GS_sequence_of[1] = {
1326
  { &hf_sbc_ap_TAI_Cancelled_List_5GS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_Cancelled_List_5GS_item },
1327
};
1328
1329
static unsigned
1330
0
dissect_sbc_ap_TAI_Cancelled_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1331
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1332
0
                                                  ett_sbc_ap_TAI_Cancelled_List_5GS, TAI_Cancelled_List_5GS_sequence_of,
1333
0
                                                  1, maxnoof5GSTAIs, false);
1334
1335
0
  return offset;
1336
0
}
1337
1338
1339
static const per_sequence_t Broadcast_Cancelled_Area_List_5GS_sequence[] = {
1340
  { &hf_sbc_ap_cellID_Cancelled_List_5GS, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_CellID_Cancelled_List_5GS },
1341
  { &hf_sbc_ap_tAI_Cancelled_List_5GS, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_TAI_Cancelled_List_5GS },
1342
  { &hf_sbc_ap_emergencyAreaID_Cancelled_List, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_EmergencyAreaID_Cancelled_List },
1343
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1344
  { NULL, 0, 0, NULL }
1345
};
1346
1347
static unsigned
1348
0
dissect_sbc_ap_Broadcast_Cancelled_Area_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1349
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1350
0
                                   ett_sbc_ap_Broadcast_Cancelled_Area_List_5GS, Broadcast_Cancelled_Area_List_5GS_sequence);
1351
1352
0
  return offset;
1353
0
}
1354
1355
1356
1357
static unsigned
1358
5
dissect_sbc_ap_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_) {
1359
5
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1360
5
                                     20, 20, false, NULL, 0, NULL, NULL);
1361
1362
5
  return offset;
1363
5
}
1364
1365
1366
1367
static unsigned
1368
0
dissect_sbc_ap_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_) {
1369
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1370
0
                                     28, 28, false, NULL, 0, NULL, NULL);
1371
1372
0
  return offset;
1373
0
}
1374
1375
1376
1377
static unsigned
1378
0
dissect_sbc_ap_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_) {
1379
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1380
0
                                     18, 18, false, NULL, 0, NULL, NULL);
1381
1382
0
  return offset;
1383
0
}
1384
1385
1386
1387
static unsigned
1388
0
dissect_sbc_ap_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_) {
1389
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1390
0
                                     21, 21, false, NULL, 0, NULL, NULL);
1391
1392
0
  return offset;
1393
0
}
1394
1395
1396
static const value_string sbc_ap_ENB_ID_vals[] = {
1397
  {   0, "macroENB-ID" },
1398
  {   1, "homeENB-ID" },
1399
  {   2, "short-macroENB-ID" },
1400
  {   3, "long-macroENB-ID" },
1401
  { 0, NULL }
1402
};
1403
1404
static const per_choice_t ENB_ID_choice[] = {
1405
  {   0, &hf_sbc_ap_macroENB_ID  , ASN1_EXTENSION_ROOT    , dissect_sbc_ap_BIT_STRING_SIZE_20 },
1406
  {   1, &hf_sbc_ap_homeENB_ID   , ASN1_EXTENSION_ROOT    , dissect_sbc_ap_BIT_STRING_SIZE_28 },
1407
  {   2, &hf_sbc_ap_short_macroENB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_sbc_ap_BIT_STRING_SIZE_18 },
1408
  {   3, &hf_sbc_ap_long_macroENB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_sbc_ap_BIT_STRING_SIZE_21 },
1409
  { 0, NULL, 0, NULL }
1410
};
1411
1412
static unsigned
1413
5
dissect_sbc_ap_ENB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1414
5
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1415
5
                                 ett_sbc_ap_ENB_ID, ENB_ID_choice,
1416
5
                                 NULL);
1417
1418
5
  return offset;
1419
5
}
1420
1421
1422
static const per_sequence_t Global_ENB_ID_sequence[] = {
1423
  { &hf_sbc_ap_pLMNidentity , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_PLMNidentity },
1424
  { &hf_sbc_ap_eNB_ID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ENB_ID },
1425
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1426
  { NULL, 0, 0, NULL }
1427
};
1428
1429
static unsigned
1430
6
dissect_sbc_ap_Global_ENB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1431
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1432
6
                                   ett_sbc_ap_Global_ENB_ID, Global_ENB_ID_sequence);
1433
1434
6
  return offset;
1435
6
}
1436
1437
1438
static const per_sequence_t Broadcast_Empty_Area_List_sequence_of[1] = {
1439
  { &hf_sbc_ap_Broadcast_Empty_Area_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Global_ENB_ID },
1440
};
1441
1442
static unsigned
1443
3
dissect_sbc_ap_Broadcast_Empty_Area_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1444
3
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1445
3
                                                  ett_sbc_ap_Broadcast_Empty_Area_List, Broadcast_Empty_Area_List_sequence_of,
1446
3
                                                  1, maxnoofeNBIds, false);
1447
1448
3
  return offset;
1449
3
}
1450
1451
1452
1453
static unsigned
1454
0
dissect_sbc_ap_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_) {
1455
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1456
0
                                     22, 32, false, NULL, 0, NULL, NULL);
1457
1458
0
  return offset;
1459
0
}
1460
1461
1462
static const value_string sbc_ap_GNB_ID_vals[] = {
1463
  {   0, "gNB-ID" },
1464
  { 0, NULL }
1465
};
1466
1467
static const per_choice_t GNB_ID_choice[] = {
1468
  {   0, &hf_sbc_ap_gNB_ID       , ASN1_EXTENSION_ROOT    , dissect_sbc_ap_BIT_STRING_SIZE_22_32 },
1469
  { 0, NULL, 0, NULL }
1470
};
1471
1472
static unsigned
1473
0
dissect_sbc_ap_GNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1474
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1475
0
                                 ett_sbc_ap_GNB_ID, GNB_ID_choice,
1476
0
                                 NULL);
1477
1478
0
  return offset;
1479
0
}
1480
1481
1482
static const per_sequence_t Global_GNB_ID_sequence[] = {
1483
  { &hf_sbc_ap_pLMNidentity , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_PLMNidentity },
1484
  { &hf_sbc_ap_gnb_id_choice, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_GNB_ID },
1485
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1486
  { NULL, 0, 0, NULL }
1487
};
1488
1489
static unsigned
1490
0
dissect_sbc_ap_Global_GNB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1491
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1492
0
                                   ett_sbc_ap_Global_GNB_ID, Global_GNB_ID_sequence);
1493
1494
0
  return offset;
1495
0
}
1496
1497
1498
static const per_sequence_t Global_NgENB_ID_sequence[] = {
1499
  { &hf_sbc_ap_pLMNidentity , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_PLMNidentity },
1500
  { &hf_sbc_ap_ngENB_ID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ENB_ID },
1501
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1502
  { NULL, 0, 0, NULL }
1503
};
1504
1505
static unsigned
1506
0
dissect_sbc_ap_Global_NgENB_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1507
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1508
0
                                   ett_sbc_ap_Global_NgENB_ID, Global_NgENB_ID_sequence);
1509
1510
0
  return offset;
1511
0
}
1512
1513
1514
static const value_string sbc_ap_Global_RAN_Node_ID_vals[] = {
1515
  {   0, "global-GNB-ID" },
1516
  {   1, "global-NgENB-ID" },
1517
  { 0, NULL }
1518
};
1519
1520
static const per_choice_t Global_RAN_Node_ID_choice[] = {
1521
  {   0, &hf_sbc_ap_global_GNB_ID, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_Global_GNB_ID },
1522
  {   1, &hf_sbc_ap_global_NgENB_ID, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_Global_NgENB_ID },
1523
  { 0, NULL, 0, NULL }
1524
};
1525
1526
static unsigned
1527
0
dissect_sbc_ap_Global_RAN_Node_ID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1528
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1529
0
                                 ett_sbc_ap_Global_RAN_Node_ID, Global_RAN_Node_ID_choice,
1530
0
                                 NULL);
1531
1532
0
  return offset;
1533
0
}
1534
1535
1536
static const per_sequence_t Broadcast_Empty_Area_List_5GS_sequence_of[1] = {
1537
  { &hf_sbc_ap_Broadcast_Empty_Area_List_5GS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Global_RAN_Node_ID },
1538
};
1539
1540
static unsigned
1541
0
dissect_sbc_ap_Broadcast_Empty_Area_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1542
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1543
0
                                                  ett_sbc_ap_Broadcast_Empty_Area_List_5GS, Broadcast_Empty_Area_List_5GS_sequence_of,
1544
0
                                                  1, maxnoofRANNodes, false);
1545
1546
0
  return offset;
1547
0
}
1548
1549
1550
static const value_string sbc_ap_Cause_vals[] = {
1551
  {   0, "message-accepted" },
1552
  {   1, "parameter-not-recognised" },
1553
  {   2, "parameter-value-invalid" },
1554
  {   3, "valid-message-not-identified" },
1555
  {   4, "tracking-area-not-valid" },
1556
  {   5, "unrecognised-message" },
1557
  {   6, "missing-mandatory-element" },
1558
  {   7, "mME-capacity-exceeded" },
1559
  {   8, "mME-memory-exceeded" },
1560
  {   9, "warning-broadcast-not-supported" },
1561
  {  10, "warning-broadcast-not-operational" },
1562
  {  11, "message-reference-already-used" },
1563
  {  12, "unspecifed-error" },
1564
  {  13, "transfer-syntax-error" },
1565
  {  14, "semantic-error" },
1566
  {  15, "message-not-compatible-with-receiver-state" },
1567
  {  16, "abstract-syntax-error-reject" },
1568
  {  17, "abstract-syntax-error-ignore-and-notify" },
1569
  {  18, "abstract-syntax-error-falsely-constructed-message" },
1570
  { 0, NULL }
1571
};
1572
1573
1574
static unsigned
1575
11
dissect_sbc_ap_Cause(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1576
11
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1577
11
                                                            0U, 255U, NULL, false);
1578
1579
11
  return offset;
1580
11
}
1581
1582
1583
static const value_string sbc_ap_Concurrent_Warning_Message_Indicator_vals[] = {
1584
  {   0, "true" },
1585
  { 0, NULL }
1586
};
1587
1588
1589
static unsigned
1590
1
dissect_sbc_ap_Concurrent_Warning_Message_Indicator(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1591
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1592
1
                                     1, NULL, false, 0, NULL);
1593
1594
1
  return offset;
1595
1
}
1596
1597
1598
static const value_string sbc_ap_TypeOfError_vals[] = {
1599
  {   0, "not-understood" },
1600
  {   1, "missing" },
1601
  { 0, NULL }
1602
};
1603
1604
1605
static unsigned
1606
9
dissect_sbc_ap_TypeOfError(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1607
9
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1608
9
                                     2, NULL, true, 0, NULL);
1609
1610
9
  return offset;
1611
9
}
1612
1613
1614
static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
1615
  { &hf_sbc_ap_iECriticality, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Criticality },
1616
  { &hf_sbc_ap_iE_ID        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_ID },
1617
  { &hf_sbc_ap_typeOfError  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TypeOfError },
1618
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1619
  { NULL, 0, 0, NULL }
1620
};
1621
1622
static unsigned
1623
9
dissect_sbc_ap_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1624
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1625
9
                                   ett_sbc_ap_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
1626
1627
9
  return offset;
1628
9
}
1629
1630
1631
static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
1632
  { &hf_sbc_ap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_CriticalityDiagnostics_IE_List_item },
1633
};
1634
1635
static unsigned
1636
6
dissect_sbc_ap_CriticalityDiagnostics_IE_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1637
6
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1638
6
                                                  ett_sbc_ap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
1639
6
                                                  1, maxNrOfErrors, false);
1640
1641
6
  return offset;
1642
6
}
1643
1644
1645
static const per_sequence_t Criticality_Diagnostics_sequence[] = {
1646
  { &hf_sbc_ap_procedureCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProcedureCode },
1647
  { &hf_sbc_ap_triggeringMessage, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_TriggeringMessage },
1648
  { &hf_sbc_ap_procedureCriticality, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_Criticality },
1649
  { &hf_sbc_ap_iE_CriticalityDiagnostics, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_CriticalityDiagnostics_IE_List },
1650
  { &hf_sbc_ap_iE_Extensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
1651
  { NULL, 0, 0, NULL }
1652
};
1653
1654
static unsigned
1655
8
dissect_sbc_ap_Criticality_Diagnostics(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1656
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1657
8
                                   ett_sbc_ap_Criticality_Diagnostics, Criticality_Diagnostics_sequence);
1658
1659
8
  return offset;
1660
8
}
1661
1662
1663
1664
static unsigned
1665
3
dissect_sbc_ap_Data_Coding_Scheme(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1666
3
  tvbuff_t *parameter_tvb = NULL;
1667
3
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1668
3
                                     8, 8, false, NULL, 0, &parameter_tvb, NULL);
1669
1670
3
  if (parameter_tvb) {
1671
3
    struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
1672
3
    proto_tree *subtree;
1673
1674
3
    subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Data_Coding_Scheme);
1675
3
    sbc_ap_data->data_coding_scheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
1676
3
  }
1677
1678
1679
3
  return offset;
1680
3
}
1681
1682
1683
static const per_sequence_t ECGIList_sequence_of[1] = {
1684
  { &hf_sbc_ap_ECGIList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
1685
};
1686
1687
static unsigned
1688
6
dissect_sbc_ap_ECGIList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1689
6
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1690
6
                                                  ett_sbc_ap_ECGIList, ECGIList_sequence_of,
1691
6
                                                  1, maxnoofCellID, false);
1692
1693
6
  return offset;
1694
6
}
1695
1696
1697
static const per_sequence_t Emergency_Area_ID_List_sequence_of[1] = {
1698
  { &hf_sbc_ap_Emergency_Area_ID_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Emergency_Area_ID },
1699
};
1700
1701
static unsigned
1702
1
dissect_sbc_ap_Emergency_Area_ID_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1703
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1704
1
                                                  ett_sbc_ap_Emergency_Area_ID_List, Emergency_Area_ID_List_sequence_of,
1705
1
                                                  1, maxnoofEmergencyAreaID, false);
1706
1707
1
  return offset;
1708
1
}
1709
1710
1711
1712
static unsigned
1713
0
dissect_sbc_ap_Extended_Repetition_Period(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1714
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1715
0
                                                            4096U, 131071U, NULL, false);
1716
1717
0
  return offset;
1718
0
}
1719
1720
1721
static const per_sequence_t Failed_Cell_List_sequence_of[1] = {
1722
  { &hf_sbc_ap_Failed_Cell_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
1723
};
1724
1725
static unsigned
1726
2
dissect_sbc_ap_Failed_Cell_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1727
2
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1728
2
                                                  ett_sbc_ap_Failed_Cell_List, Failed_Cell_List_sequence_of,
1729
2
                                                  1, maxnoofFailedCells, false);
1730
1731
2
  return offset;
1732
2
}
1733
1734
1735
static const per_sequence_t Failed_Cell_List_NR_sequence_of[1] = {
1736
  { &hf_sbc_ap_Failed_Cell_List_NR_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NR_CGI },
1737
};
1738
1739
static unsigned
1740
0
dissect_sbc_ap_Failed_Cell_List_NR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1741
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1742
0
                                                  ett_sbc_ap_Failed_Cell_List_NR, Failed_Cell_List_NR_sequence_of,
1743
0
                                                  1, maxnoofCellsingNB, false);
1744
1745
0
  return offset;
1746
0
}
1747
1748
1749
static const per_sequence_t List_of_TAIs_item_sequence[] = {
1750
  { &hf_sbc_ap_tai          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI },
1751
  { NULL, 0, 0, NULL }
1752
};
1753
1754
static unsigned
1755
106
dissect_sbc_ap_List_of_TAIs_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1756
106
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1757
106
                                   ett_sbc_ap_List_of_TAIs_item, List_of_TAIs_item_sequence);
1758
1759
106
  return offset;
1760
106
}
1761
1762
1763
static const per_sequence_t List_of_TAIs_sequence_of[1] = {
1764
  { &hf_sbc_ap_List_of_TAIs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_List_of_TAIs_item },
1765
};
1766
1767
static unsigned
1768
11
dissect_sbc_ap_List_of_TAIs(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1769
11
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1770
11
                                                  ett_sbc_ap_List_of_TAIs, List_of_TAIs_sequence_of,
1771
11
                                                  1, maxNrOfTAIs, false);
1772
1773
11
  return offset;
1774
11
}
1775
1776
1777
static const per_sequence_t List_of_TAIs_Restart_item_sequence[] = {
1778
  { &hf_sbc_ap_tai          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI },
1779
  { NULL, 0, 0, NULL }
1780
};
1781
1782
static unsigned
1783
11
dissect_sbc_ap_List_of_TAIs_Restart_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1784
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1785
11
                                   ett_sbc_ap_List_of_TAIs_Restart_item, List_of_TAIs_Restart_item_sequence);
1786
1787
11
  return offset;
1788
11
}
1789
1790
1791
static const per_sequence_t List_of_TAIs_Restart_sequence_of[1] = {
1792
  { &hf_sbc_ap_List_of_TAIs_Restart_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_List_of_TAIs_Restart_item },
1793
};
1794
1795
static unsigned
1796
3
dissect_sbc_ap_List_of_TAIs_Restart(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1797
3
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1798
3
                                                  ett_sbc_ap_List_of_TAIs_Restart, List_of_TAIs_Restart_sequence_of,
1799
3
                                                  1, maxnoofRestartTAIs, false);
1800
1801
3
  return offset;
1802
3
}
1803
1804
1805
static const per_sequence_t List_of_EAIs_Restart_sequence_of[1] = {
1806
  { &hf_sbc_ap_List_of_EAIs_Restart_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Emergency_Area_ID },
1807
};
1808
1809
static unsigned
1810
6
dissect_sbc_ap_List_of_EAIs_Restart(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1811
6
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1812
6
                                                  ett_sbc_ap_List_of_EAIs_Restart, List_of_EAIs_Restart_sequence_of,
1813
6
                                                  1, maxnoofRestartEAIs, false);
1814
1815
6
  return offset;
1816
6
}
1817
1818
1819
static const per_sequence_t List_of_5GS_TAIs_sequence_of[1] = {
1820
  { &hf_sbc_ap_List_of_5GS_TAIs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_5GS },
1821
};
1822
1823
static unsigned
1824
1
dissect_sbc_ap_List_of_5GS_TAIs(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1825
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1826
1
                                                  ett_sbc_ap_List_of_5GS_TAIs, List_of_5GS_TAIs_sequence_of,
1827
1
                                                  1, maxnoof5GSTAIs, false);
1828
1829
1
  return offset;
1830
1
}
1831
1832
1833
static const per_sequence_t List_of_5GS_TAI_for_Restart_sequence_of[1] = {
1834
  { &hf_sbc_ap_List_of_5GS_TAI_for_Restart_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_5GS },
1835
};
1836
1837
static unsigned
1838
0
dissect_sbc_ap_List_of_5GS_TAI_for_Restart(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1839
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1840
0
                                                  ett_sbc_ap_List_of_5GS_TAI_for_Restart, List_of_5GS_TAI_for_Restart_sequence_of,
1841
0
                                                  1, maxnoofRestart5GSTAIs, false);
1842
1843
0
  return offset;
1844
0
}
1845
1846
1847
1848
static unsigned
1849
8
dissect_sbc_ap_Message_Identifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1850
8
  tvbuff_t *parameter_tvb = NULL;
1851
8
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
1852
8
                                     16, 16, false, NULL, 0, &parameter_tvb, NULL);
1853
1854
8
  if (parameter_tvb) {
1855
7
    actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
1856
7
  }
1857
1858
1859
8
  return offset;
1860
8
}
1861
1862
1863
1864
static unsigned
1865
0
dissect_sbc_ap_Number_of_Broadcasts_Requested(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1866
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1867
0
                                                            0U, 65535U, NULL, false);
1868
1869
0
  return offset;
1870
0
}
1871
1872
1873
static const per_sequence_t NR_CGIList_sequence_of[1] = {
1874
  { &hf_sbc_ap_NR_CGIList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NR_CGI },
1875
};
1876
1877
static unsigned
1878
0
dissect_sbc_ap_NR_CGIList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1879
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1880
0
                                                  ett_sbc_ap_NR_CGIList, NR_CGIList_sequence_of,
1881
0
                                                  1, maxnoofCellsingNB, false);
1882
1883
0
  return offset;
1884
0
}
1885
1886
1887
1888
static unsigned
1889
0
dissect_sbc_ap_Omc_Id(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1890
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1891
0
                                       1, 20, false, NULL);
1892
1893
0
  return offset;
1894
0
}
1895
1896
1897
1898
static unsigned
1899
4
dissect_sbc_ap_Repetition_Period(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1900
4
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1901
4
                                                            0U, 4096U, NULL, false);
1902
1903
4
  return offset;
1904
4
}
1905
1906
1907
static const per_sequence_t Restarted_Cell_List_sequence_of[1] = {
1908
  { &hf_sbc_ap_Restarted_Cell_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_EUTRAN_CGI },
1909
};
1910
1911
static unsigned
1912
0
dissect_sbc_ap_Restarted_Cell_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1913
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1914
0
                                                  ett_sbc_ap_Restarted_Cell_List, Restarted_Cell_List_sequence_of,
1915
0
                                                  1, maxnoofRestartedCells, false);
1916
1917
0
  return offset;
1918
0
}
1919
1920
1921
static const value_string sbc_ap_RAT_Selector_5GS_vals[] = {
1922
  {   0, "true" },
1923
  { 0, NULL }
1924
};
1925
1926
1927
static unsigned
1928
0
dissect_sbc_ap_RAT_Selector_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1929
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1930
0
                                     1, NULL, false, 0, NULL);
1931
1932
0
  return offset;
1933
0
}
1934
1935
1936
static const per_sequence_t Restarted_Cell_List_NR_sequence_of[1] = {
1937
  { &hf_sbc_ap_Restarted_Cell_List_NR_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_NR_CGI },
1938
};
1939
1940
static unsigned
1941
0
dissect_sbc_ap_Restarted_Cell_List_NR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1942
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1943
0
                                                  ett_sbc_ap_Restarted_Cell_List_NR, Restarted_Cell_List_NR_sequence_of,
1944
0
                                                  1, maxnoofCellsforRestartNR, false);
1945
1946
0
  return offset;
1947
0
}
1948
1949
1950
static const value_string sbc_ap_Send_Write_Replace_Warning_Indication_vals[] = {
1951
  {   0, "true" },
1952
  { 0, NULL }
1953
};
1954
1955
1956
static unsigned
1957
5
dissect_sbc_ap_Send_Write_Replace_Warning_Indication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1958
5
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1959
5
                                     1, NULL, false, 0, NULL);
1960
1961
5
  return offset;
1962
5
}
1963
1964
1965
static const value_string sbc_ap_Send_Stop_Warning_Indication_vals[] = {
1966
  {   0, "true" },
1967
  { 0, NULL }
1968
};
1969
1970
1971
static unsigned
1972
1
dissect_sbc_ap_Send_Stop_Warning_Indication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1973
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1974
1
                                     1, NULL, false, 0, NULL);
1975
1976
1
  return offset;
1977
1
}
1978
1979
1980
1981
static unsigned
1982
2
dissect_sbc_ap_Serial_Number(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1983
2
  tvbuff_t *parameter_tvb = NULL;
1984
2
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1985
2
                                     16, 16, false, NULL, 0, &parameter_tvb, NULL);
1986
1987
2
  if (parameter_tvb) {
1988
2
    proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Serial_Number);
1989
2
    proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_gs, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
1990
2
    proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_msg_code, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
1991
2
    proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_upd_nb, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
1992
2
  }
1993
1994
1995
2
  return offset;
1996
2
}
1997
1998
1999
static const value_string sbc_ap_Stop_All_Indicator_vals[] = {
2000
  {   0, "true" },
2001
  { 0, NULL }
2002
};
2003
2004
2005
static unsigned
2006
1
dissect_sbc_ap_Stop_All_Indicator(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2007
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2008
1
                                     1, NULL, false, 0, NULL);
2009
2010
1
  return offset;
2011
1
}
2012
2013
2014
static const per_sequence_t TAI_List_for_Warning_sequence_of[1] = {
2015
  { &hf_sbc_ap_TAI_List_for_Warning_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI },
2016
};
2017
2018
static unsigned
2019
0
dissect_sbc_ap_TAI_List_for_Warning(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2020
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2021
0
                                                  ett_sbc_ap_TAI_List_for_Warning, TAI_List_for_Warning_sequence_of,
2022
0
                                                  1, maxnoofTAIforWarning, false);
2023
2024
0
  return offset;
2025
0
}
2026
2027
2028
static const per_sequence_t Unknown_5GS_Tracking_Area_List_sequence_of[1] = {
2029
  { &hf_sbc_ap_Unknown_5GS_Tracking_Area_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_TAI_5GS },
2030
};
2031
2032
static unsigned
2033
0
dissect_sbc_ap_Unknown_5GS_Tracking_Area_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2034
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2035
0
                                                  ett_sbc_ap_Unknown_5GS_Tracking_Area_List, Unknown_5GS_Tracking_Area_List_sequence_of,
2036
0
                                                  1, maxnoof5GSTAIs, false);
2037
2038
0
  return offset;
2039
0
}
2040
2041
2042
static const value_string sbc_ap_Warning_Area_List_vals[] = {
2043
  {   0, "cell-ID-List" },
2044
  {   1, "tracking-Area-List-for-Warning" },
2045
  {   2, "emergency-Area-ID-List" },
2046
  { 0, NULL }
2047
};
2048
2049
static const per_choice_t Warning_Area_List_choice[] = {
2050
  {   0, &hf_sbc_ap_cell_ID_List , ASN1_EXTENSION_ROOT    , dissect_sbc_ap_ECGIList },
2051
  {   1, &hf_sbc_ap_tracking_Area_List_for_Warning, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_TAI_List_for_Warning },
2052
  {   2, &hf_sbc_ap_emergency_Area_ID_List, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_Emergency_Area_ID_List },
2053
  { 0, NULL, 0, NULL }
2054
};
2055
2056
static unsigned
2057
7
dissect_sbc_ap_Warning_Area_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2058
7
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2059
7
                                 ett_sbc_ap_Warning_Area_List, Warning_Area_List_choice,
2060
7
                                 NULL);
2061
2062
7
  return offset;
2063
7
}
2064
2065
2066
2067
static unsigned
2068
3
dissect_sbc_ap_Warning_Message_Content(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2069
3
  tvbuff_t *parameter_tvb = NULL;
2070
3
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2071
3
                                       1, 9600, false, &parameter_tvb);
2072
2073
3
  if (parameter_tvb) {
2074
0
    struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
2075
0
    proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Warning_Message_Contents);
2076
0
    dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, sbc_ap_data->data_coding_scheme, hf_sbc_ap_Warning_Message_Contents_nb_pages, hf_sbc_ap_Warning_Message_Contents_decoded_page);
2077
0
  }
2078
2079
2080
2081
3
  return offset;
2082
3
}
2083
2084
2085
2086
static unsigned
2087
1
dissect_sbc_ap_Warning_Area_Coordinates(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2088
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2089
1
                                       1, 1024, false, NULL);
2090
2091
1
  return offset;
2092
1
}
2093
2094
2095
2096
static unsigned
2097
1
dissect_sbc_ap_Warning_Security_Information(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2098
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2099
1
                                       50, 50, false, NULL);
2100
2101
1
  return offset;
2102
1
}
2103
2104
2105
2106
static unsigned
2107
1
dissect_sbc_ap_Warning_Type(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2108
1
  tvbuff_t *parameter_tvb = NULL;
2109
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2110
1
                                       2, 2, false, &parameter_tvb);
2111
2112
1
  if (parameter_tvb) {
2113
1
    proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Warning_Type);
2114
1
    proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_value, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
2115
1
    proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_emergency_user_alert, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
2116
1
    proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_popup, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
2117
1
  }
2118
2119
2120
2121
1
  return offset;
2122
1
}
2123
2124
2125
static const value_string sbc_ap_Warning_Area_List_5GS_vals[] = {
2126
  {   0, "cell-ID-List" },
2127
  {   1, "nR-CGIList" },
2128
  {   2, "tAIList-5GS" },
2129
  {   3, "emergencyAreaIDList" },
2130
  { 0, NULL }
2131
};
2132
2133
static const per_choice_t Warning_Area_List_5GS_choice[] = {
2134
  {   0, &hf_sbc_ap_cell_ID_List , ASN1_EXTENSION_ROOT    , dissect_sbc_ap_ECGIList },
2135
  {   1, &hf_sbc_ap_nR_CGIList   , ASN1_EXTENSION_ROOT    , dissect_sbc_ap_NR_CGIList },
2136
  {   2, &hf_sbc_ap_tAIList_5GS  , ASN1_EXTENSION_ROOT    , dissect_sbc_ap_TAI_5GS },
2137
  {   3, &hf_sbc_ap_emergencyAreaIDList, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_Emergency_Area_ID_List },
2138
  { 0, NULL, 0, NULL }
2139
};
2140
2141
static unsigned
2142
0
dissect_sbc_ap_Warning_Area_List_5GS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2143
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2144
0
                                 ett_sbc_ap_Warning_Area_List_5GS, Warning_Area_List_5GS_choice,
2145
0
                                 NULL);
2146
2147
0
  return offset;
2148
0
}
2149
2150
2151
static const per_sequence_t Write_Replace_Warning_Request_sequence[] = {
2152
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2153
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2154
  { NULL, 0, 0, NULL }
2155
};
2156
2157
static unsigned
2158
25
dissect_sbc_ap_Write_Replace_Warning_Request(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2159
25
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Request");
2160
25
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2161
25
                                   ett_sbc_ap_Write_Replace_Warning_Request, Write_Replace_Warning_Request_sequence);
2162
2163
25
  return offset;
2164
25
}
2165
2166
2167
static const per_sequence_t Write_Replace_Warning_Response_sequence[] = {
2168
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2169
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2170
  { NULL, 0, 0, NULL }
2171
};
2172
2173
static unsigned
2174
11
dissect_sbc_ap_Write_Replace_Warning_Response(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2175
11
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Response");
2176
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2177
11
                                   ett_sbc_ap_Write_Replace_Warning_Response, Write_Replace_Warning_Response_sequence);
2178
2179
11
  return offset;
2180
11
}
2181
2182
2183
static const per_sequence_t Stop_Warning_Request_sequence[] = {
2184
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2185
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2186
  { NULL, 0, 0, NULL }
2187
};
2188
2189
static unsigned
2190
17
dissect_sbc_ap_Stop_Warning_Request(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2191
17
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Request");
2192
17
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2193
17
                                   ett_sbc_ap_Stop_Warning_Request, Stop_Warning_Request_sequence);
2194
2195
17
  return offset;
2196
17
}
2197
2198
2199
static const per_sequence_t Stop_Warning_Response_sequence[] = {
2200
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2201
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2202
  { NULL, 0, 0, NULL }
2203
};
2204
2205
static unsigned
2206
1
dissect_sbc_ap_Stop_Warning_Response(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2207
1
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Response");
2208
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2209
1
                                   ett_sbc_ap_Stop_Warning_Response, Stop_Warning_Response_sequence);
2210
2211
1
  return offset;
2212
1
}
2213
2214
2215
static const per_sequence_t Write_Replace_Warning_Indication_sequence[] = {
2216
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2217
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2218
  { NULL, 0, 0, NULL }
2219
};
2220
2221
static unsigned
2222
0
dissect_sbc_ap_Write_Replace_Warning_Indication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2223
0
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Indication");
2224
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2225
0
                                   ett_sbc_ap_Write_Replace_Warning_Indication, Write_Replace_Warning_Indication_sequence);
2226
2227
0
  return offset;
2228
0
}
2229
2230
2231
static const per_sequence_t Stop_Warning_Indication_sequence[] = {
2232
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2233
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2234
  { NULL, 0, 0, NULL }
2235
};
2236
2237
static unsigned
2238
8
dissect_sbc_ap_Stop_Warning_Indication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2239
8
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Indication");
2240
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2241
8
                                   ett_sbc_ap_Stop_Warning_Indication, Stop_Warning_Indication_sequence);
2242
2243
8
  return offset;
2244
8
}
2245
2246
2247
static const per_sequence_t PWS_Restart_Indication_sequence[] = {
2248
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2249
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2250
  { NULL, 0, 0, NULL }
2251
};
2252
2253
static unsigned
2254
0
dissect_sbc_ap_PWS_Restart_Indication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2255
0
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWS-Restart-Indication");
2256
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2257
0
                                   ett_sbc_ap_PWS_Restart_Indication, PWS_Restart_Indication_sequence);
2258
2259
0
  return offset;
2260
0
}
2261
2262
2263
static const per_sequence_t PWS_Failure_Indication_sequence[] = {
2264
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2265
  { &hf_sbc_ap_protocolExtensions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sbc_ap_ProtocolExtensionContainer },
2266
  { NULL, 0, 0, NULL }
2267
};
2268
2269
static unsigned
2270
8
dissect_sbc_ap_PWS_Failure_Indication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2271
8
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWS-Failure-Indication");
2272
2273
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2274
8
                                   ett_sbc_ap_PWS_Failure_Indication, PWS_Failure_Indication_sequence);
2275
2276
8
  return offset;
2277
8
}
2278
2279
2280
static const per_sequence_t Error_Indication_sequence[] = {
2281
  { &hf_sbc_ap_protocolIEs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProtocolIE_Container },
2282
  { NULL, 0, 0, NULL }
2283
};
2284
2285
static unsigned
2286
8
dissect_sbc_ap_Error_Indication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2287
8
  col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error-Indication");
2288
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2289
8
                                   ett_sbc_ap_Error_Indication, Error_Indication_sequence);
2290
2291
8
  return offset;
2292
8
}
2293
2294
2295
2296
static unsigned
2297
68
dissect_sbc_ap_InitiatingMessage_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2298
68
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
2299
2300
68
  return offset;
2301
68
}
2302
2303
2304
static const per_sequence_t InitiatingMessage_sequence[] = {
2305
  { &hf_sbc_ap_procedureCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProcedureCode },
2306
  { &hf_sbc_ap_criticality  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Criticality },
2307
  { &hf_sbc_ap_initiatingMessagevalue, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_InitiatingMessage_value },
2308
  { NULL, 0, 0, NULL }
2309
};
2310
2311
static unsigned
2312
68
dissect_sbc_ap_InitiatingMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2313
68
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2314
68
                                   ett_sbc_ap_InitiatingMessage, InitiatingMessage_sequence);
2315
2316
68
  return offset;
2317
68
}
2318
2319
2320
2321
static unsigned
2322
14
dissect_sbc_ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2323
14
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
2324
2325
14
  return offset;
2326
14
}
2327
2328
2329
static const per_sequence_t SuccessfulOutcome_sequence[] = {
2330
  { &hf_sbc_ap_procedureCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProcedureCode },
2331
  { &hf_sbc_ap_criticality  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Criticality },
2332
  { &hf_sbc_ap_successfulOutcome_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_SuccessfulOutcome_value },
2333
  { NULL, 0, 0, NULL }
2334
};
2335
2336
static unsigned
2337
14
dissect_sbc_ap_SuccessfulOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2338
14
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2339
14
                                   ett_sbc_ap_SuccessfulOutcome, SuccessfulOutcome_sequence);
2340
2341
14
  return offset;
2342
14
}
2343
2344
2345
2346
static unsigned
2347
3
dissect_sbc_ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2348
3
  offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue);
2349
2350
3
  return offset;
2351
3
}
2352
2353
2354
static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
2355
  { &hf_sbc_ap_procedureCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_ProcedureCode },
2356
  { &hf_sbc_ap_criticality  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_Criticality },
2357
  { &hf_sbc_ap_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sbc_ap_UnsuccessfulOutcome_value },
2358
  { NULL, 0, 0, NULL }
2359
};
2360
2361
static unsigned
2362
3
dissect_sbc_ap_UnsuccessfulOutcome(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2363
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2364
3
                                   ett_sbc_ap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
2365
2366
3
  return offset;
2367
3
}
2368
2369
2370
static const value_string sbc_ap_SBC_AP_PDU_vals[] = {
2371
  {   0, "initiatingMessage" },
2372
  {   1, "successfulOutcome" },
2373
  {   2, "unsuccessfulOutcome" },
2374
  { 0, NULL }
2375
};
2376
2377
static const per_choice_t SBC_AP_PDU_choice[] = {
2378
  {   0, &hf_sbc_ap_initiatingMessage, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_InitiatingMessage },
2379
  {   1, &hf_sbc_ap_successfulOutcome, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_SuccessfulOutcome },
2380
  {   2, &hf_sbc_ap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT    , dissect_sbc_ap_UnsuccessfulOutcome },
2381
  { 0, NULL, 0, NULL }
2382
};
2383
2384
static unsigned
2385
85
dissect_sbc_ap_SBC_AP_PDU(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2386
85
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2387
85
                                 ett_sbc_ap_SBC_AP_PDU, SBC_AP_PDU_choice,
2388
85
                                 NULL);
2389
2390
85
  return offset;
2391
85
}
2392
2393
/*--- PDUs ---*/
2394
2395
8
static int dissect_Broadcast_Scheduled_Area_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2396
8
  unsigned offset = 0;
2397
8
  asn1_ctx_t asn1_ctx;
2398
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2399
8
  offset = dissect_sbc_ap_Broadcast_Scheduled_Area_List(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Broadcast_Scheduled_Area_List_PDU);
2400
8
  offset += 7; offset >>= 3;
2401
8
  return offset;
2402
8
}
2403
0
static int dissect_Broadcast_Scheduled_Area_List_5GS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2404
0
  unsigned offset = 0;
2405
0
  asn1_ctx_t asn1_ctx;
2406
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2407
0
  offset = dissect_sbc_ap_Broadcast_Scheduled_Area_List_5GS(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Broadcast_Scheduled_Area_List_5GS_PDU);
2408
0
  offset += 7; offset >>= 3;
2409
0
  return offset;
2410
0
}
2411
3
static int dissect_Broadcast_Cancelled_Area_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2412
3
  unsigned offset = 0;
2413
3
  asn1_ctx_t asn1_ctx;
2414
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2415
3
  offset = dissect_sbc_ap_Broadcast_Cancelled_Area_List(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Broadcast_Cancelled_Area_List_PDU);
2416
3
  offset += 7; offset >>= 3;
2417
3
  return offset;
2418
3
}
2419
0
static int dissect_Broadcast_Cancelled_Area_List_5GS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2420
0
  unsigned offset = 0;
2421
0
  asn1_ctx_t asn1_ctx;
2422
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2423
0
  offset = dissect_sbc_ap_Broadcast_Cancelled_Area_List_5GS(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Broadcast_Cancelled_Area_List_5GS_PDU);
2424
0
  offset += 7; offset >>= 3;
2425
0
  return offset;
2426
0
}
2427
3
static int dissect_Broadcast_Empty_Area_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2428
3
  unsigned offset = 0;
2429
3
  asn1_ctx_t asn1_ctx;
2430
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2431
3
  offset = dissect_sbc_ap_Broadcast_Empty_Area_List(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Broadcast_Empty_Area_List_PDU);
2432
3
  offset += 7; offset >>= 3;
2433
3
  return offset;
2434
3
}
2435
0
static int dissect_Broadcast_Empty_Area_List_5GS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2436
0
  unsigned offset = 0;
2437
0
  asn1_ctx_t asn1_ctx;
2438
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2439
0
  offset = dissect_sbc_ap_Broadcast_Empty_Area_List_5GS(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Broadcast_Empty_Area_List_5GS_PDU);
2440
0
  offset += 7; offset >>= 3;
2441
0
  return offset;
2442
0
}
2443
11
static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2444
11
  unsigned offset = 0;
2445
11
  asn1_ctx_t asn1_ctx;
2446
11
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2447
11
  offset = dissect_sbc_ap_Cause(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Cause_PDU);
2448
11
  offset += 7; offset >>= 3;
2449
11
  return offset;
2450
11
}
2451
1
static int dissect_Concurrent_Warning_Message_Indicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2452
1
  unsigned offset = 0;
2453
1
  asn1_ctx_t asn1_ctx;
2454
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2455
1
  offset = dissect_sbc_ap_Concurrent_Warning_Message_Indicator(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Concurrent_Warning_Message_Indicator_PDU);
2456
1
  offset += 7; offset >>= 3;
2457
1
  return offset;
2458
1
}
2459
8
static int dissect_Criticality_Diagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2460
8
  unsigned offset = 0;
2461
8
  asn1_ctx_t asn1_ctx;
2462
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2463
8
  offset = dissect_sbc_ap_Criticality_Diagnostics(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Criticality_Diagnostics_PDU);
2464
8
  offset += 7; offset >>= 3;
2465
8
  return offset;
2466
8
}
2467
3
static int dissect_Data_Coding_Scheme_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2468
3
  unsigned offset = 0;
2469
3
  asn1_ctx_t asn1_ctx;
2470
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2471
3
  offset = dissect_sbc_ap_Data_Coding_Scheme(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Data_Coding_Scheme_PDU);
2472
3
  offset += 7; offset >>= 3;
2473
3
  return offset;
2474
3
}
2475
0
static int dissect_Extended_Repetition_Period_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2476
0
  unsigned offset = 0;
2477
0
  asn1_ctx_t asn1_ctx;
2478
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2479
0
  offset = dissect_sbc_ap_Extended_Repetition_Period(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Extended_Repetition_Period_PDU);
2480
0
  offset += 7; offset >>= 3;
2481
0
  return offset;
2482
0
}
2483
2
static int dissect_Failed_Cell_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2484
2
  unsigned offset = 0;
2485
2
  asn1_ctx_t asn1_ctx;
2486
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2487
2
  offset = dissect_sbc_ap_Failed_Cell_List(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Failed_Cell_List_PDU);
2488
2
  offset += 7; offset >>= 3;
2489
2
  return offset;
2490
2
}
2491
0
static int dissect_Failed_Cell_List_NR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2492
0
  unsigned offset = 0;
2493
0
  asn1_ctx_t asn1_ctx;
2494
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2495
0
  offset = dissect_sbc_ap_Failed_Cell_List_NR(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Failed_Cell_List_NR_PDU);
2496
0
  offset += 7; offset >>= 3;
2497
0
  return offset;
2498
0
}
2499
0
static int dissect_Global_ENB_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2500
0
  unsigned offset = 0;
2501
0
  asn1_ctx_t asn1_ctx;
2502
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2503
0
  offset = dissect_sbc_ap_Global_ENB_ID(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Global_ENB_ID_PDU);
2504
0
  offset += 7; offset >>= 3;
2505
0
  return offset;
2506
0
}
2507
0
static int dissect_Global_RAN_Node_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2508
0
  unsigned offset = 0;
2509
0
  asn1_ctx_t asn1_ctx;
2510
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2511
0
  offset = dissect_sbc_ap_Global_RAN_Node_ID(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Global_RAN_Node_ID_PDU);
2512
0
  offset += 7; offset >>= 3;
2513
0
  return offset;
2514
0
}
2515
0
static int dissect_Global_GNB_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2516
0
  unsigned offset = 0;
2517
0
  asn1_ctx_t asn1_ctx;
2518
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2519
0
  offset = dissect_sbc_ap_Global_GNB_ID(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Global_GNB_ID_PDU);
2520
0
  offset += 7; offset >>= 3;
2521
0
  return offset;
2522
0
}
2523
11
static int dissect_List_of_TAIs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2524
11
  unsigned offset = 0;
2525
11
  asn1_ctx_t asn1_ctx;
2526
11
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2527
11
  offset = dissect_sbc_ap_List_of_TAIs(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_List_of_TAIs_PDU);
2528
11
  offset += 7; offset >>= 3;
2529
11
  return offset;
2530
11
}
2531
3
static int dissect_List_of_TAIs_Restart_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2532
3
  unsigned offset = 0;
2533
3
  asn1_ctx_t asn1_ctx;
2534
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2535
3
  offset = dissect_sbc_ap_List_of_TAIs_Restart(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_List_of_TAIs_Restart_PDU);
2536
3
  offset += 7; offset >>= 3;
2537
3
  return offset;
2538
3
}
2539
6
static int dissect_List_of_EAIs_Restart_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2540
6
  unsigned offset = 0;
2541
6
  asn1_ctx_t asn1_ctx;
2542
6
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2543
6
  offset = dissect_sbc_ap_List_of_EAIs_Restart(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_List_of_EAIs_Restart_PDU);
2544
6
  offset += 7; offset >>= 3;
2545
6
  return offset;
2546
6
}
2547
1
static int dissect_List_of_5GS_TAIs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2548
1
  unsigned offset = 0;
2549
1
  asn1_ctx_t asn1_ctx;
2550
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2551
1
  offset = dissect_sbc_ap_List_of_5GS_TAIs(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_List_of_5GS_TAIs_PDU);
2552
1
  offset += 7; offset >>= 3;
2553
1
  return offset;
2554
1
}
2555
0
static int dissect_List_of_5GS_TAI_for_Restart_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2556
0
  unsigned offset = 0;
2557
0
  asn1_ctx_t asn1_ctx;
2558
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2559
0
  offset = dissect_sbc_ap_List_of_5GS_TAI_for_Restart(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_List_of_5GS_TAI_for_Restart_PDU);
2560
0
  offset += 7; offset >>= 3;
2561
0
  return offset;
2562
0
}
2563
8
static int dissect_Message_Identifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2564
8
  unsigned offset = 0;
2565
8
  asn1_ctx_t asn1_ctx;
2566
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2567
8
  offset = dissect_sbc_ap_Message_Identifier(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Message_Identifier_PDU);
2568
8
  offset += 7; offset >>= 3;
2569
8
  return offset;
2570
8
}
2571
0
static int dissect_Number_of_Broadcasts_Requested_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2572
0
  unsigned offset = 0;
2573
0
  asn1_ctx_t asn1_ctx;
2574
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2575
0
  offset = dissect_sbc_ap_Number_of_Broadcasts_Requested(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Number_of_Broadcasts_Requested_PDU);
2576
0
  offset += 7; offset >>= 3;
2577
0
  return offset;
2578
0
}
2579
0
static int dissect_Omc_Id_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2580
0
  unsigned offset = 0;
2581
0
  asn1_ctx_t asn1_ctx;
2582
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2583
0
  offset = dissect_sbc_ap_Omc_Id(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Omc_Id_PDU);
2584
0
  offset += 7; offset >>= 3;
2585
0
  return offset;
2586
0
}
2587
4
static int dissect_Repetition_Period_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2588
4
  unsigned offset = 0;
2589
4
  asn1_ctx_t asn1_ctx;
2590
4
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2591
4
  offset = dissect_sbc_ap_Repetition_Period(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Repetition_Period_PDU);
2592
4
  offset += 7; offset >>= 3;
2593
4
  return offset;
2594
4
}
2595
0
static int dissect_Restarted_Cell_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2596
0
  unsigned offset = 0;
2597
0
  asn1_ctx_t asn1_ctx;
2598
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2599
0
  offset = dissect_sbc_ap_Restarted_Cell_List(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Restarted_Cell_List_PDU);
2600
0
  offset += 7; offset >>= 3;
2601
0
  return offset;
2602
0
}
2603
0
static int dissect_RAT_Selector_5GS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2604
0
  unsigned offset = 0;
2605
0
  asn1_ctx_t asn1_ctx;
2606
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2607
0
  offset = dissect_sbc_ap_RAT_Selector_5GS(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_RAT_Selector_5GS_PDU);
2608
0
  offset += 7; offset >>= 3;
2609
0
  return offset;
2610
0
}
2611
0
static int dissect_Restarted_Cell_List_NR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2612
0
  unsigned offset = 0;
2613
0
  asn1_ctx_t asn1_ctx;
2614
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2615
0
  offset = dissect_sbc_ap_Restarted_Cell_List_NR(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Restarted_Cell_List_NR_PDU);
2616
0
  offset += 7; offset >>= 3;
2617
0
  return offset;
2618
0
}
2619
5
static int dissect_Send_Write_Replace_Warning_Indication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2620
5
  unsigned offset = 0;
2621
5
  asn1_ctx_t asn1_ctx;
2622
5
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2623
5
  offset = dissect_sbc_ap_Send_Write_Replace_Warning_Indication(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Send_Write_Replace_Warning_Indication_PDU);
2624
5
  offset += 7; offset >>= 3;
2625
5
  return offset;
2626
5
}
2627
1
static int dissect_Send_Stop_Warning_Indication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2628
1
  unsigned offset = 0;
2629
1
  asn1_ctx_t asn1_ctx;
2630
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2631
1
  offset = dissect_sbc_ap_Send_Stop_Warning_Indication(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Send_Stop_Warning_Indication_PDU);
2632
1
  offset += 7; offset >>= 3;
2633
1
  return offset;
2634
1
}
2635
2
static int dissect_Serial_Number_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2636
2
  unsigned offset = 0;
2637
2
  asn1_ctx_t asn1_ctx;
2638
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2639
2
  offset = dissect_sbc_ap_Serial_Number(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Serial_Number_PDU);
2640
2
  offset += 7; offset >>= 3;
2641
2
  return offset;
2642
2
}
2643
1
static int dissect_Stop_All_Indicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2644
1
  unsigned offset = 0;
2645
1
  asn1_ctx_t asn1_ctx;
2646
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2647
1
  offset = dissect_sbc_ap_Stop_All_Indicator(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Stop_All_Indicator_PDU);
2648
1
  offset += 7; offset >>= 3;
2649
1
  return offset;
2650
1
}
2651
0
static int dissect_Unknown_5GS_Tracking_Area_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2652
0
  unsigned offset = 0;
2653
0
  asn1_ctx_t asn1_ctx;
2654
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2655
0
  offset = dissect_sbc_ap_Unknown_5GS_Tracking_Area_List(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Unknown_5GS_Tracking_Area_List_PDU);
2656
0
  offset += 7; offset >>= 3;
2657
0
  return offset;
2658
0
}
2659
7
static int dissect_Warning_Area_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2660
7
  unsigned offset = 0;
2661
7
  asn1_ctx_t asn1_ctx;
2662
7
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2663
7
  offset = dissect_sbc_ap_Warning_Area_List(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Warning_Area_List_PDU);
2664
7
  offset += 7; offset >>= 3;
2665
7
  return offset;
2666
7
}
2667
3
static int dissect_Warning_Message_Content_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2668
3
  unsigned offset = 0;
2669
3
  asn1_ctx_t asn1_ctx;
2670
3
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2671
3
  offset = dissect_sbc_ap_Warning_Message_Content(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Warning_Message_Content_PDU);
2672
3
  offset += 7; offset >>= 3;
2673
3
  return offset;
2674
3
}
2675
1
static int dissect_Warning_Area_Coordinates_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2676
1
  unsigned offset = 0;
2677
1
  asn1_ctx_t asn1_ctx;
2678
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2679
1
  offset = dissect_sbc_ap_Warning_Area_Coordinates(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Warning_Area_Coordinates_PDU);
2680
1
  offset += 7; offset >>= 3;
2681
1
  return offset;
2682
1
}
2683
1
static int dissect_Warning_Security_Information_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2684
1
  unsigned offset = 0;
2685
1
  asn1_ctx_t asn1_ctx;
2686
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2687
1
  offset = dissect_sbc_ap_Warning_Security_Information(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Warning_Security_Information_PDU);
2688
1
  offset += 7; offset >>= 3;
2689
1
  return offset;
2690
1
}
2691
1
static int dissect_Warning_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2692
1
  unsigned offset = 0;
2693
1
  asn1_ctx_t asn1_ctx;
2694
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2695
1
  offset = dissect_sbc_ap_Warning_Type(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Warning_Type_PDU);
2696
1
  offset += 7; offset >>= 3;
2697
1
  return offset;
2698
1
}
2699
0
static int dissect_Warning_Area_List_5GS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2700
0
  unsigned offset = 0;
2701
0
  asn1_ctx_t asn1_ctx;
2702
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2703
0
  offset = dissect_sbc_ap_Warning_Area_List_5GS(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Warning_Area_List_5GS_PDU);
2704
0
  offset += 7; offset >>= 3;
2705
0
  return offset;
2706
0
}
2707
25
static int dissect_Write_Replace_Warning_Request_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2708
25
  unsigned offset = 0;
2709
25
  asn1_ctx_t asn1_ctx;
2710
25
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2711
25
  offset = dissect_sbc_ap_Write_Replace_Warning_Request(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Write_Replace_Warning_Request_PDU);
2712
25
  offset += 7; offset >>= 3;
2713
25
  return offset;
2714
25
}
2715
11
static int dissect_Write_Replace_Warning_Response_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2716
11
  unsigned offset = 0;
2717
11
  asn1_ctx_t asn1_ctx;
2718
11
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2719
11
  offset = dissect_sbc_ap_Write_Replace_Warning_Response(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Write_Replace_Warning_Response_PDU);
2720
11
  offset += 7; offset >>= 3;
2721
11
  return offset;
2722
11
}
2723
17
static int dissect_Stop_Warning_Request_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2724
17
  unsigned offset = 0;
2725
17
  asn1_ctx_t asn1_ctx;
2726
17
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2727
17
  offset = dissect_sbc_ap_Stop_Warning_Request(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Stop_Warning_Request_PDU);
2728
17
  offset += 7; offset >>= 3;
2729
17
  return offset;
2730
17
}
2731
1
static int dissect_Stop_Warning_Response_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2732
1
  unsigned offset = 0;
2733
1
  asn1_ctx_t asn1_ctx;
2734
1
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2735
1
  offset = dissect_sbc_ap_Stop_Warning_Response(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Stop_Warning_Response_PDU);
2736
1
  offset += 7; offset >>= 3;
2737
1
  return offset;
2738
1
}
2739
0
static int dissect_Write_Replace_Warning_Indication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2740
0
  unsigned offset = 0;
2741
0
  asn1_ctx_t asn1_ctx;
2742
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2743
0
  offset = dissect_sbc_ap_Write_Replace_Warning_Indication(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Write_Replace_Warning_Indication_PDU);
2744
0
  offset += 7; offset >>= 3;
2745
0
  return offset;
2746
0
}
2747
8
static int dissect_Stop_Warning_Indication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2748
8
  unsigned offset = 0;
2749
8
  asn1_ctx_t asn1_ctx;
2750
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2751
8
  offset = dissect_sbc_ap_Stop_Warning_Indication(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Stop_Warning_Indication_PDU);
2752
8
  offset += 7; offset >>= 3;
2753
8
  return offset;
2754
8
}
2755
0
static int dissect_PWS_Restart_Indication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2756
0
  unsigned offset = 0;
2757
0
  asn1_ctx_t asn1_ctx;
2758
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2759
0
  offset = dissect_sbc_ap_PWS_Restart_Indication(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_PWS_Restart_Indication_PDU);
2760
0
  offset += 7; offset >>= 3;
2761
0
  return offset;
2762
0
}
2763
8
static int dissect_PWS_Failure_Indication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2764
8
  unsigned offset = 0;
2765
8
  asn1_ctx_t asn1_ctx;
2766
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2767
8
  offset = dissect_sbc_ap_PWS_Failure_Indication(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_PWS_Failure_Indication_PDU);
2768
8
  offset += 7; offset >>= 3;
2769
8
  return offset;
2770
8
}
2771
8
static int dissect_Error_Indication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2772
8
  unsigned offset = 0;
2773
8
  asn1_ctx_t asn1_ctx;
2774
8
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2775
8
  offset = dissect_sbc_ap_Error_Indication(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_Error_Indication_PDU);
2776
8
  offset += 7; offset >>= 3;
2777
8
  return offset;
2778
8
}
2779
85
static int dissect_SBC_AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2780
85
  unsigned offset = 0;
2781
85
  asn1_ctx_t asn1_ctx;
2782
85
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2783
85
  offset = dissect_sbc_ap_SBC_AP_PDU(tvb, offset, &asn1_ctx, tree, hf_sbc_ap_SBC_AP_PDU_PDU);
2784
85
  offset += 7; offset >>= 3;
2785
85
  return offset;
2786
85
}
2787
2788
2789
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2790
356
{
2791
356
  return (dissector_try_uint(sbc_ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2792
356
}
2793
/* Currently not used
2794
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2795
{
2796
  return (dissector_try_uint(sbc_ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2797
}
2798
2799
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2800
{
2801
  return (dissector_try_uint(sbc_ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2802
}
2803
*/
2804
2805
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2806
99
{
2807
99
  return (dissector_try_uint(sbc_ap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2808
99
}
2809
2810
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2811
68
{
2812
68
  return (dissector_try_uint(sbc_ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2813
68
}
2814
2815
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2816
14
{
2817
14
  return (dissector_try_uint(sbc_ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2818
14
}
2819
2820
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2821
2
{
2822
2
  return (dissector_try_uint(sbc_ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2823
2
}
2824
2825
2826
static int
2827
dissect_sbc_ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
2828
85
{
2829
85
    proto_item      *sbc_ap_item = NULL;
2830
85
    proto_tree      *sbc_ap_tree = NULL;
2831
2832
    /* make entry in the Protocol column on summary display */
2833
85
    col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
2834
85
    col_clear(pinfo->cinfo, COL_INFO);
2835
2836
    /* create the sbc_ap protocol tree */
2837
85
    sbc_ap_item = proto_tree_add_item(tree, proto_sbc_ap, tvb, 0, -1, ENC_NA);
2838
85
    sbc_ap_tree = proto_item_add_subtree(sbc_ap_item, ett_sbc_ap);
2839
2840
85
    dissect_SBC_AP_PDU_PDU(tvb, pinfo, sbc_ap_tree, NULL);
2841
2842
85
    return tvb_captured_length(tvb);
2843
85
}
2844
/*--- proto_register_sbc_ap -------------------------------------------*/
2845
14
void proto_register_sbc_ap(void) {
2846
2847
  /* List of fields */
2848
14
  static hf_register_info hf[] = {
2849
14
    { &hf_sbc_ap_Serial_Number_gs,
2850
14
      { "Geographical Scope", "sbc_ap.SerialNumber.gs",
2851
14
        FT_UINT16, BASE_DEC, VALS(s1ap_serialNumber_gs_vals), 0xc000,
2852
14
        NULL, HFILL }},
2853
14
    { &hf_sbc_ap_Serial_Number_msg_code,
2854
14
      { "Message Code", "sbc_ap.SerialNumber.msg_code",
2855
14
        FT_UINT16, BASE_DEC, NULL, 0x3ff0,
2856
14
        NULL, HFILL }},
2857
14
    { &hf_sbc_ap_Serial_Number_upd_nb,
2858
14
      { "Update Number", "sbc_ap.SerialNumber.upd_nb",
2859
14
        FT_UINT16, BASE_DEC, NULL, 0x000f,
2860
14
        NULL, HFILL }},
2861
14
    { &hf_sbc_ap_Warning_Type_value,
2862
14
      { "Warning Type Value", "sbc-ap.WarningType.value",
2863
14
        FT_UINT16, BASE_DEC, VALS(s1ap_warningType_vals), 0xfe00,
2864
14
        NULL, HFILL }},
2865
14
    { &hf_sbc_ap_Warning_Type_emergency_user_alert,
2866
14
      { "Emergency User Alert", "sbc-ap.WarningType.emergency_user_alert",
2867
14
        FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0100,
2868
14
        NULL, HFILL }},
2869
14
    { &hf_sbc_ap_Warning_Type_popup,
2870
14
      { "Popup", "sbc-ap.WarningType.popup",
2871
14
        FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0080,
2872
14
        NULL, HFILL }},
2873
14
    { &hf_sbc_ap_Warning_Message_Contents_nb_pages,
2874
14
      { "Number of Pages", "sbc-ap.WarningMessageContents.nb_pages",
2875
14
        FT_UINT8, BASE_DEC, NULL, 0,
2876
14
        NULL, HFILL }},
2877
14
    { &hf_sbc_ap_Warning_Message_Contents_decoded_page,
2878
14
      { "Decoded Page", "sbc-ap.WarningMessageContents.decoded_page",
2879
14
        FT_STRING, BASE_NONE, NULL, 0,
2880
14
        NULL, HFILL }},
2881
14
    { &hf_sbc_ap_Broadcast_Scheduled_Area_List_PDU,
2882
14
      { "Broadcast-Scheduled-Area-List", "sbc-ap.Broadcast_Scheduled_Area_List_element",
2883
14
        FT_NONE, BASE_NONE, NULL, 0,
2884
14
        NULL, HFILL }},
2885
14
    { &hf_sbc_ap_Broadcast_Scheduled_Area_List_5GS_PDU,
2886
14
      { "Broadcast-Scheduled-Area-List-5GS", "sbc-ap.Broadcast_Scheduled_Area_List_5GS_element",
2887
14
        FT_NONE, BASE_NONE, NULL, 0,
2888
14
        NULL, HFILL }},
2889
14
    { &hf_sbc_ap_Broadcast_Cancelled_Area_List_PDU,
2890
14
      { "Broadcast-Cancelled-Area-List", "sbc-ap.Broadcast_Cancelled_Area_List_element",
2891
14
        FT_NONE, BASE_NONE, NULL, 0,
2892
14
        NULL, HFILL }},
2893
14
    { &hf_sbc_ap_Broadcast_Cancelled_Area_List_5GS_PDU,
2894
14
      { "Broadcast-Cancelled-Area-List-5GS", "sbc-ap.Broadcast_Cancelled_Area_List_5GS_element",
2895
14
        FT_NONE, BASE_NONE, NULL, 0,
2896
14
        NULL, HFILL }},
2897
14
    { &hf_sbc_ap_Broadcast_Empty_Area_List_PDU,
2898
14
      { "Broadcast-Empty-Area-List", "sbc-ap.Broadcast_Empty_Area_List",
2899
14
        FT_UINT32, BASE_DEC, NULL, 0,
2900
14
        NULL, HFILL }},
2901
14
    { &hf_sbc_ap_Broadcast_Empty_Area_List_5GS_PDU,
2902
14
      { "Broadcast-Empty-Area-List-5GS", "sbc-ap.Broadcast_Empty_Area_List_5GS",
2903
14
        FT_UINT32, BASE_DEC, NULL, 0,
2904
14
        NULL, HFILL }},
2905
14
    { &hf_sbc_ap_Cause_PDU,
2906
14
      { "Cause", "sbc-ap.Cause",
2907
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Cause_vals), 0,
2908
14
        NULL, HFILL }},
2909
14
    { &hf_sbc_ap_Concurrent_Warning_Message_Indicator_PDU,
2910
14
      { "Concurrent-Warning-Message-Indicator", "sbc-ap.Concurrent_Warning_Message_Indicator",
2911
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Concurrent_Warning_Message_Indicator_vals), 0,
2912
14
        NULL, HFILL }},
2913
14
    { &hf_sbc_ap_Criticality_Diagnostics_PDU,
2914
14
      { "Criticality-Diagnostics", "sbc-ap.Criticality_Diagnostics_element",
2915
14
        FT_NONE, BASE_NONE, NULL, 0,
2916
14
        NULL, HFILL }},
2917
14
    { &hf_sbc_ap_Data_Coding_Scheme_PDU,
2918
14
      { "Data-Coding-Scheme", "sbc-ap.Data_Coding_Scheme",
2919
14
        FT_BYTES, BASE_NONE, NULL, 0,
2920
14
        NULL, HFILL }},
2921
14
    { &hf_sbc_ap_Extended_Repetition_Period_PDU,
2922
14
      { "Extended-Repetition-Period", "sbc-ap.Extended_Repetition_Period",
2923
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
2924
14
        NULL, HFILL }},
2925
14
    { &hf_sbc_ap_Failed_Cell_List_PDU,
2926
14
      { "Failed-Cell-List", "sbc-ap.Failed_Cell_List",
2927
14
        FT_UINT32, BASE_DEC, NULL, 0,
2928
14
        NULL, HFILL }},
2929
14
    { &hf_sbc_ap_Failed_Cell_List_NR_PDU,
2930
14
      { "Failed-Cell-List-NR", "sbc-ap.Failed_Cell_List_NR",
2931
14
        FT_UINT32, BASE_DEC, NULL, 0,
2932
14
        NULL, HFILL }},
2933
14
    { &hf_sbc_ap_Global_ENB_ID_PDU,
2934
14
      { "Global-ENB-ID", "sbc-ap.Global_ENB_ID_element",
2935
14
        FT_NONE, BASE_NONE, NULL, 0,
2936
14
        NULL, HFILL }},
2937
14
    { &hf_sbc_ap_Global_RAN_Node_ID_PDU,
2938
14
      { "Global-RAN-Node-ID", "sbc-ap.Global_RAN_Node_ID",
2939
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Global_RAN_Node_ID_vals), 0,
2940
14
        NULL, HFILL }},
2941
14
    { &hf_sbc_ap_Global_GNB_ID_PDU,
2942
14
      { "Global-GNB-ID", "sbc-ap.Global_GNB_ID_element",
2943
14
        FT_NONE, BASE_NONE, NULL, 0,
2944
14
        NULL, HFILL }},
2945
14
    { &hf_sbc_ap_List_of_TAIs_PDU,
2946
14
      { "List-of-TAIs", "sbc-ap.List_of_TAIs",
2947
14
        FT_UINT32, BASE_DEC, NULL, 0,
2948
14
        NULL, HFILL }},
2949
14
    { &hf_sbc_ap_List_of_TAIs_Restart_PDU,
2950
14
      { "List-of-TAIs-Restart", "sbc-ap.List_of_TAIs_Restart",
2951
14
        FT_UINT32, BASE_DEC, NULL, 0,
2952
14
        NULL, HFILL }},
2953
14
    { &hf_sbc_ap_List_of_EAIs_Restart_PDU,
2954
14
      { "List-of-EAIs-Restart", "sbc-ap.List_of_EAIs_Restart",
2955
14
        FT_UINT32, BASE_DEC, NULL, 0,
2956
14
        NULL, HFILL }},
2957
14
    { &hf_sbc_ap_List_of_5GS_TAIs_PDU,
2958
14
      { "List-of-5GS-TAIs", "sbc-ap.List_of_5GS_TAIs",
2959
14
        FT_UINT32, BASE_DEC, NULL, 0,
2960
14
        NULL, HFILL }},
2961
14
    { &hf_sbc_ap_List_of_5GS_TAI_for_Restart_PDU,
2962
14
      { "List-of-5GS-TAI-for-Restart", "sbc-ap.List_of_5GS_TAI_for_Restart",
2963
14
        FT_UINT32, BASE_DEC, NULL, 0,
2964
14
        NULL, HFILL }},
2965
14
    { &hf_sbc_ap_Message_Identifier_PDU,
2966
14
      { "Message-Identifier", "sbc-ap.Message_Identifier",
2967
14
        FT_UINT16, BASE_DEC|BASE_EXT_STRING, &lte_rrc_messageIdentifier_vals_ext, 0,
2968
14
        NULL, HFILL }},
2969
14
    { &hf_sbc_ap_Number_of_Broadcasts_Requested_PDU,
2970
14
      { "Number-of-Broadcasts-Requested", "sbc-ap.Number_of_Broadcasts_Requested",
2971
14
        FT_UINT32, BASE_DEC, NULL, 0,
2972
14
        NULL, HFILL }},
2973
14
    { &hf_sbc_ap_Omc_Id_PDU,
2974
14
      { "Omc-Id", "sbc-ap.Omc_Id",
2975
14
        FT_BYTES, BASE_NONE, NULL, 0,
2976
14
        NULL, HFILL }},
2977
14
    { &hf_sbc_ap_Repetition_Period_PDU,
2978
14
      { "Repetition-Period", "sbc-ap.Repetition_Period",
2979
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
2980
14
        NULL, HFILL }},
2981
14
    { &hf_sbc_ap_Restarted_Cell_List_PDU,
2982
14
      { "Restarted-Cell-List", "sbc-ap.Restarted_Cell_List",
2983
14
        FT_UINT32, BASE_DEC, NULL, 0,
2984
14
        NULL, HFILL }},
2985
14
    { &hf_sbc_ap_RAT_Selector_5GS_PDU,
2986
14
      { "RAT-Selector-5GS", "sbc-ap.RAT_Selector_5GS",
2987
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_RAT_Selector_5GS_vals), 0,
2988
14
        NULL, HFILL }},
2989
14
    { &hf_sbc_ap_Restarted_Cell_List_NR_PDU,
2990
14
      { "Restarted-Cell-List-NR", "sbc-ap.Restarted_Cell_List_NR",
2991
14
        FT_UINT32, BASE_DEC, NULL, 0,
2992
14
        NULL, HFILL }},
2993
14
    { &hf_sbc_ap_Send_Write_Replace_Warning_Indication_PDU,
2994
14
      { "Send-Write-Replace-Warning-Indication", "sbc-ap.Send_Write_Replace_Warning_Indication",
2995
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Send_Write_Replace_Warning_Indication_vals), 0,
2996
14
        NULL, HFILL }},
2997
14
    { &hf_sbc_ap_Send_Stop_Warning_Indication_PDU,
2998
14
      { "Send-Stop-Warning-Indication", "sbc-ap.Send_Stop_Warning_Indication",
2999
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Send_Stop_Warning_Indication_vals), 0,
3000
14
        NULL, HFILL }},
3001
14
    { &hf_sbc_ap_Serial_Number_PDU,
3002
14
      { "Serial-Number", "sbc-ap.Serial_Number",
3003
14
        FT_BYTES, BASE_NONE, NULL, 0,
3004
14
        NULL, HFILL }},
3005
14
    { &hf_sbc_ap_Stop_All_Indicator_PDU,
3006
14
      { "Stop-All-Indicator", "sbc-ap.Stop_All_Indicator",
3007
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Stop_All_Indicator_vals), 0,
3008
14
        NULL, HFILL }},
3009
14
    { &hf_sbc_ap_Unknown_5GS_Tracking_Area_List_PDU,
3010
14
      { "Unknown-5GS-Tracking-Area-List", "sbc-ap.Unknown_5GS_Tracking_Area_List",
3011
14
        FT_UINT32, BASE_DEC, NULL, 0,
3012
14
        NULL, HFILL }},
3013
14
    { &hf_sbc_ap_Warning_Area_List_PDU,
3014
14
      { "Warning-Area-List", "sbc-ap.Warning_Area_List",
3015
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Warning_Area_List_vals), 0,
3016
14
        NULL, HFILL }},
3017
14
    { &hf_sbc_ap_Warning_Message_Content_PDU,
3018
14
      { "Warning-Message-Content", "sbc-ap.Warning_Message_Content",
3019
14
        FT_BYTES, BASE_NONE, NULL, 0,
3020
14
        NULL, HFILL }},
3021
14
    { &hf_sbc_ap_Warning_Area_Coordinates_PDU,
3022
14
      { "Warning-Area-Coordinates", "sbc-ap.Warning_Area_Coordinates",
3023
14
        FT_BYTES, BASE_NONE, NULL, 0,
3024
14
        NULL, HFILL }},
3025
14
    { &hf_sbc_ap_Warning_Security_Information_PDU,
3026
14
      { "Warning-Security-Information", "sbc-ap.Warning_Security_Information",
3027
14
        FT_BYTES, BASE_NONE, NULL, 0,
3028
14
        NULL, HFILL }},
3029
14
    { &hf_sbc_ap_Warning_Type_PDU,
3030
14
      { "Warning-Type", "sbc-ap.Warning_Type",
3031
14
        FT_BYTES, BASE_NONE, NULL, 0,
3032
14
        NULL, HFILL }},
3033
14
    { &hf_sbc_ap_Warning_Area_List_5GS_PDU,
3034
14
      { "Warning-Area-List-5GS", "sbc-ap.Warning_Area_List_5GS",
3035
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Warning_Area_List_5GS_vals), 0,
3036
14
        NULL, HFILL }},
3037
14
    { &hf_sbc_ap_Write_Replace_Warning_Request_PDU,
3038
14
      { "Write-Replace-Warning-Request", "sbc-ap.Write_Replace_Warning_Request_element",
3039
14
        FT_NONE, BASE_NONE, NULL, 0,
3040
14
        NULL, HFILL }},
3041
14
    { &hf_sbc_ap_Write_Replace_Warning_Response_PDU,
3042
14
      { "Write-Replace-Warning-Response", "sbc-ap.Write_Replace_Warning_Response_element",
3043
14
        FT_NONE, BASE_NONE, NULL, 0,
3044
14
        NULL, HFILL }},
3045
14
    { &hf_sbc_ap_Stop_Warning_Request_PDU,
3046
14
      { "Stop-Warning-Request", "sbc-ap.Stop_Warning_Request_element",
3047
14
        FT_NONE, BASE_NONE, NULL, 0,
3048
14
        NULL, HFILL }},
3049
14
    { &hf_sbc_ap_Stop_Warning_Response_PDU,
3050
14
      { "Stop-Warning-Response", "sbc-ap.Stop_Warning_Response_element",
3051
14
        FT_NONE, BASE_NONE, NULL, 0,
3052
14
        NULL, HFILL }},
3053
14
    { &hf_sbc_ap_Write_Replace_Warning_Indication_PDU,
3054
14
      { "Write-Replace-Warning-Indication", "sbc-ap.Write_Replace_Warning_Indication_element",
3055
14
        FT_NONE, BASE_NONE, NULL, 0,
3056
14
        NULL, HFILL }},
3057
14
    { &hf_sbc_ap_Stop_Warning_Indication_PDU,
3058
14
      { "Stop-Warning-Indication", "sbc-ap.Stop_Warning_Indication_element",
3059
14
        FT_NONE, BASE_NONE, NULL, 0,
3060
14
        NULL, HFILL }},
3061
14
    { &hf_sbc_ap_PWS_Restart_Indication_PDU,
3062
14
      { "PWS-Restart-Indication", "sbc-ap.PWS_Restart_Indication_element",
3063
14
        FT_NONE, BASE_NONE, NULL, 0,
3064
14
        NULL, HFILL }},
3065
14
    { &hf_sbc_ap_PWS_Failure_Indication_PDU,
3066
14
      { "PWS-Failure-Indication", "sbc-ap.PWS_Failure_Indication_element",
3067
14
        FT_NONE, BASE_NONE, NULL, 0,
3068
14
        NULL, HFILL }},
3069
14
    { &hf_sbc_ap_Error_Indication_PDU,
3070
14
      { "Error-Indication", "sbc-ap.Error_Indication_element",
3071
14
        FT_NONE, BASE_NONE, NULL, 0,
3072
14
        NULL, HFILL }},
3073
14
    { &hf_sbc_ap_SBC_AP_PDU_PDU,
3074
14
      { "SBC-AP-PDU", "sbc-ap.SBC_AP_PDU",
3075
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_SBC_AP_PDU_vals), 0,
3076
14
        NULL, HFILL }},
3077
14
    { &hf_sbc_ap_ProtocolIE_Container_item,
3078
14
      { "ProtocolIE-Field", "sbc-ap.ProtocolIE_Field_element",
3079
14
        FT_NONE, BASE_NONE, NULL, 0,
3080
14
        NULL, HFILL }},
3081
14
    { &hf_sbc_ap_id,
3082
14
      { "id", "sbc-ap.id",
3083
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_ProtocolIE_ID_vals), 0,
3084
14
        "ProtocolIE_ID", HFILL }},
3085
14
    { &hf_sbc_ap_criticality,
3086
14
      { "criticality", "sbc-ap.criticality",
3087
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Criticality_vals), 0,
3088
14
        NULL, HFILL }},
3089
14
    { &hf_sbc_ap_ie_field_value,
3090
14
      { "value", "sbc-ap.ie_field_value_element",
3091
14
        FT_NONE, BASE_NONE, NULL, 0,
3092
14
        "T_ie_field_value", HFILL }},
3093
14
    { &hf_sbc_ap_ProtocolExtensionContainer_item,
3094
14
      { "ProtocolExtensionField", "sbc-ap.ProtocolExtensionField_element",
3095
14
        FT_NONE, BASE_NONE, NULL, 0,
3096
14
        NULL, HFILL }},
3097
14
    { &hf_sbc_ap_ext_id,
3098
14
      { "id", "sbc-ap.ext_id",
3099
14
        FT_UINT8, BASE_DEC, VALS(sbc_ap_ProtocolIE_ID_vals), 0,
3100
14
        "ProtocolExtensionID", HFILL }},
3101
14
    { &hf_sbc_ap_extensionValue,
3102
14
      { "extensionValue", "sbc-ap.extensionValue_element",
3103
14
        FT_NONE, BASE_NONE, NULL, 0,
3104
14
        NULL, HFILL }},
3105
14
    { &hf_sbc_ap_cellId_Broadcast_List,
3106
14
      { "cellId-Broadcast-List", "sbc-ap.cellId_Broadcast_List",
3107
14
        FT_UINT32, BASE_DEC, NULL, 0,
3108
14
        NULL, HFILL }},
3109
14
    { &hf_sbc_ap_tAI_Broadcast_List,
3110
14
      { "tAI-Broadcast-List", "sbc-ap.tAI_Broadcast_List",
3111
14
        FT_UINT32, BASE_DEC, NULL, 0,
3112
14
        NULL, HFILL }},
3113
14
    { &hf_sbc_ap_emergencyAreaID_Broadcast_List,
3114
14
      { "emergencyAreaID-Broadcast-List", "sbc-ap.emergencyAreaID_Broadcast_List",
3115
14
        FT_UINT32, BASE_DEC, NULL, 0,
3116
14
        NULL, HFILL }},
3117
14
    { &hf_sbc_ap_iE_Extensions,
3118
14
      { "iE-Extensions", "sbc-ap.iE_Extensions",
3119
14
        FT_UINT32, BASE_DEC, NULL, 0,
3120
14
        "ProtocolExtensionContainer", HFILL }},
3121
14
    { &hf_sbc_ap_cellId_Broadcast_List_5GS,
3122
14
      { "cellId-Broadcast-List-5GS", "sbc-ap.cellId_Broadcast_List_5GS",
3123
14
        FT_UINT32, BASE_DEC, NULL, 0,
3124
14
        NULL, HFILL }},
3125
14
    { &hf_sbc_ap_tAI_Broadcast_List_5GS,
3126
14
      { "tAI-Broadcast-List-5GS", "sbc-ap.tAI_Broadcast_List_5GS",
3127
14
        FT_UINT32, BASE_DEC, NULL, 0,
3128
14
        NULL, HFILL }},
3129
14
    { &hf_sbc_ap_cellID_Cancelled_List,
3130
14
      { "cellID-Cancelled-List", "sbc-ap.cellID_Cancelled_List",
3131
14
        FT_UINT32, BASE_DEC, NULL, 0,
3132
14
        NULL, HFILL }},
3133
14
    { &hf_sbc_ap_tAI_Cancelled_List,
3134
14
      { "tAI-Cancelled-List", "sbc-ap.tAI_Cancelled_List",
3135
14
        FT_UINT32, BASE_DEC, NULL, 0,
3136
14
        NULL, HFILL }},
3137
14
    { &hf_sbc_ap_emergencyAreaID_Cancelled_List,
3138
14
      { "emergencyAreaID-Cancelled-List", "sbc-ap.emergencyAreaID_Cancelled_List",
3139
14
        FT_UINT32, BASE_DEC, NULL, 0,
3140
14
        NULL, HFILL }},
3141
14
    { &hf_sbc_ap_cellID_Cancelled_List_5GS,
3142
14
      { "cellID-Cancelled-List-5GS", "sbc-ap.cellID_Cancelled_List_5GS",
3143
14
        FT_UINT32, BASE_DEC, NULL, 0,
3144
14
        NULL, HFILL }},
3145
14
    { &hf_sbc_ap_tAI_Cancelled_List_5GS,
3146
14
      { "tAI-Cancelled-List-5GS", "sbc-ap.tAI_Cancelled_List_5GS",
3147
14
        FT_UINT32, BASE_DEC, NULL, 0,
3148
14
        NULL, HFILL }},
3149
14
    { &hf_sbc_ap_Broadcast_Empty_Area_List_item,
3150
14
      { "Global-ENB-ID", "sbc-ap.Global_ENB_ID_element",
3151
14
        FT_NONE, BASE_NONE, NULL, 0,
3152
14
        NULL, HFILL }},
3153
14
    { &hf_sbc_ap_Broadcast_Empty_Area_List_5GS_item,
3154
14
      { "Global-RAN-Node-ID", "sbc-ap.Global_RAN_Node_ID",
3155
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Global_RAN_Node_ID_vals), 0,
3156
14
        NULL, HFILL }},
3157
14
    { &hf_sbc_ap_CancelledCellinEAI_item,
3158
14
      { "CancelledCellinEAI-Item", "sbc-ap.CancelledCellinEAI_Item_element",
3159
14
        FT_NONE, BASE_NONE, NULL, 0,
3160
14
        NULL, HFILL }},
3161
14
    { &hf_sbc_ap_eCGI,
3162
14
      { "eCGI", "sbc-ap.eCGI_element",
3163
14
        FT_NONE, BASE_NONE, NULL, 0,
3164
14
        "EUTRAN_CGI", HFILL }},
3165
14
    { &hf_sbc_ap_numberOfBroadcasts,
3166
14
      { "numberOfBroadcasts", "sbc-ap.numberOfBroadcasts",
3167
14
        FT_UINT32, BASE_DEC, NULL, 0,
3168
14
        NULL, HFILL }},
3169
14
    { &hf_sbc_ap_CancelledCellinTAI_item,
3170
14
      { "CancelledCellinTAI-Item", "sbc-ap.CancelledCellinTAI_Item_element",
3171
14
        FT_NONE, BASE_NONE, NULL, 0,
3172
14
        NULL, HFILL }},
3173
14
    { &hf_sbc_ap_CancelledCellinTAI_5GS_item,
3174
14
      { "CancelledCellinTAI-5GS item", "sbc-ap.CancelledCellinTAI_5GS_item_element",
3175
14
        FT_NONE, BASE_NONE, NULL, 0,
3176
14
        NULL, HFILL }},
3177
14
    { &hf_sbc_ap_nR_CGI,
3178
14
      { "nR-CGI", "sbc-ap.nR_CGI_element",
3179
14
        FT_NONE, BASE_NONE, NULL, 0,
3180
14
        NULL, HFILL }},
3181
14
    { &hf_sbc_ap_CellId_Broadcast_List_item,
3182
14
      { "CellId-Broadcast-List-Item", "sbc-ap.CellId_Broadcast_List_Item_element",
3183
14
        FT_NONE, BASE_NONE, NULL, 0,
3184
14
        NULL, HFILL }},
3185
14
    { &hf_sbc_ap_CellId_Broadcast_List_5GS_item,
3186
14
      { "CellId-Broadcast-List-5GS item", "sbc-ap.CellId_Broadcast_List_5GS_item_element",
3187
14
        FT_NONE, BASE_NONE, NULL, 0,
3188
14
        NULL, HFILL }},
3189
14
    { &hf_sbc_ap_CellID_Cancelled_List_item,
3190
14
      { "CellID-Cancelled-Item", "sbc-ap.CellID_Cancelled_Item_element",
3191
14
        FT_NONE, BASE_NONE, NULL, 0,
3192
14
        NULL, HFILL }},
3193
14
    { &hf_sbc_ap_CellID_Cancelled_List_5GS_item,
3194
14
      { "CellID-Cancelled-List-5GS item", "sbc-ap.CellID_Cancelled_List_5GS_item_element",
3195
14
        FT_NONE, BASE_NONE, NULL, 0,
3196
14
        NULL, HFILL }},
3197
14
    { &hf_sbc_ap_procedureCode,
3198
14
      { "procedureCode", "sbc-ap.procedureCode",
3199
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_ProcedureCode_vals), 0,
3200
14
        NULL, HFILL }},
3201
14
    { &hf_sbc_ap_triggeringMessage,
3202
14
      { "triggeringMessage", "sbc-ap.triggeringMessage",
3203
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_TriggeringMessage_vals), 0,
3204
14
        NULL, HFILL }},
3205
14
    { &hf_sbc_ap_procedureCriticality,
3206
14
      { "procedureCriticality", "sbc-ap.procedureCriticality",
3207
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Criticality_vals), 0,
3208
14
        "Criticality", HFILL }},
3209
14
    { &hf_sbc_ap_iE_CriticalityDiagnostics,
3210
14
      { "iE-CriticalityDiagnostics", "sbc-ap.iE_CriticalityDiagnostics",
3211
14
        FT_UINT32, BASE_DEC, NULL, 0,
3212
14
        "CriticalityDiagnostics_IE_List", HFILL }},
3213
14
    { &hf_sbc_ap_CriticalityDiagnostics_IE_List_item,
3214
14
      { "CriticalityDiagnostics-IE-List item", "sbc-ap.CriticalityDiagnostics_IE_List_item_element",
3215
14
        FT_NONE, BASE_NONE, NULL, 0,
3216
14
        NULL, HFILL }},
3217
14
    { &hf_sbc_ap_iECriticality,
3218
14
      { "iECriticality", "sbc-ap.iECriticality",
3219
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_Criticality_vals), 0,
3220
14
        "Criticality", HFILL }},
3221
14
    { &hf_sbc_ap_iE_ID,
3222
14
      { "iE-ID", "sbc-ap.iE_ID",
3223
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_ProtocolIE_ID_vals), 0,
3224
14
        "ProtocolIE_ID", HFILL }},
3225
14
    { &hf_sbc_ap_typeOfError,
3226
14
      { "typeOfError", "sbc-ap.typeOfError",
3227
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_TypeOfError_vals), 0,
3228
14
        NULL, HFILL }},
3229
14
    { &hf_sbc_ap_ECGIList_item,
3230
14
      { "EUTRAN-CGI", "sbc-ap.EUTRAN_CGI_element",
3231
14
        FT_NONE, BASE_NONE, NULL, 0,
3232
14
        NULL, HFILL }},
3233
14
    { &hf_sbc_ap_Emergency_Area_ID_List_item,
3234
14
      { "Emergency-Area-ID", "sbc-ap.Emergency_Area_ID",
3235
14
        FT_BYTES, BASE_NONE, NULL, 0,
3236
14
        NULL, HFILL }},
3237
14
    { &hf_sbc_ap_EmergencyAreaID_Broadcast_List_item,
3238
14
      { "EmergencyAreaID-Broadcast-List-Item", "sbc-ap.EmergencyAreaID_Broadcast_List_Item_element",
3239
14
        FT_NONE, BASE_NONE, NULL, 0,
3240
14
        NULL, HFILL }},
3241
14
    { &hf_sbc_ap_emergencyAreaID,
3242
14
      { "emergencyAreaID", "sbc-ap.emergencyAreaID",
3243
14
        FT_BYTES, BASE_NONE, NULL, 0,
3244
14
        "Emergency_Area_ID", HFILL }},
3245
14
    { &hf_sbc_ap_scheduledCellinEAI,
3246
14
      { "scheduledCellinEAI", "sbc-ap.scheduledCellinEAI",
3247
14
        FT_UINT32, BASE_DEC, NULL, 0,
3248
14
        NULL, HFILL }},
3249
14
    { &hf_sbc_ap_EmergencyAreaID_Cancelled_List_item,
3250
14
      { "EmergencyAreaID-Cancelled-Item", "sbc-ap.EmergencyAreaID_Cancelled_Item_element",
3251
14
        FT_NONE, BASE_NONE, NULL, 0,
3252
14
        NULL, HFILL }},
3253
14
    { &hf_sbc_ap_cancelledCellinEAI,
3254
14
      { "cancelledCellinEAI", "sbc-ap.cancelledCellinEAI",
3255
14
        FT_UINT32, BASE_DEC, NULL, 0,
3256
14
        NULL, HFILL }},
3257
14
    { &hf_sbc_ap_pLMNidentity,
3258
14
      { "pLMNidentity", "sbc-ap.pLMNidentity",
3259
14
        FT_BYTES, BASE_NONE, NULL, 0,
3260
14
        NULL, HFILL }},
3261
14
    { &hf_sbc_ap_cell_ID,
3262
14
      { "cell-ID", "sbc-ap.cell_ID",
3263
14
        FT_BYTES, BASE_NONE, NULL, 0,
3264
14
        "CellIdentity", HFILL }},
3265
14
    { &hf_sbc_ap_macroENB_ID,
3266
14
      { "macroENB-ID", "sbc-ap.macroENB_ID",
3267
14
        FT_BYTES, BASE_NONE, NULL, 0,
3268
14
        "BIT_STRING_SIZE_20", HFILL }},
3269
14
    { &hf_sbc_ap_homeENB_ID,
3270
14
      { "homeENB-ID", "sbc-ap.homeENB_ID",
3271
14
        FT_BYTES, BASE_NONE, NULL, 0,
3272
14
        "BIT_STRING_SIZE_28", HFILL }},
3273
14
    { &hf_sbc_ap_short_macroENB_ID,
3274
14
      { "short-macroENB-ID", "sbc-ap.short_macroENB_ID",
3275
14
        FT_BYTES, BASE_NONE, NULL, 0,
3276
14
        "BIT_STRING_SIZE_18", HFILL }},
3277
14
    { &hf_sbc_ap_long_macroENB_ID,
3278
14
      { "long-macroENB-ID", "sbc-ap.long_macroENB_ID",
3279
14
        FT_BYTES, BASE_NONE, NULL, 0,
3280
14
        "BIT_STRING_SIZE_21", HFILL }},
3281
14
    { &hf_sbc_ap_Failed_Cell_List_item,
3282
14
      { "EUTRAN-CGI", "sbc-ap.EUTRAN_CGI_element",
3283
14
        FT_NONE, BASE_NONE, NULL, 0,
3284
14
        NULL, HFILL }},
3285
14
    { &hf_sbc_ap_Failed_Cell_List_NR_item,
3286
14
      { "NR-CGI", "sbc-ap.NR_CGI_element",
3287
14
        FT_NONE, BASE_NONE, NULL, 0,
3288
14
        NULL, HFILL }},
3289
14
    { &hf_sbc_ap_eNB_ID,
3290
14
      { "eNB-ID", "sbc-ap.eNB_ID",
3291
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_ENB_ID_vals), 0,
3292
14
        NULL, HFILL }},
3293
14
    { &hf_sbc_ap_global_GNB_ID,
3294
14
      { "global-GNB-ID", "sbc-ap.global_GNB_ID_element",
3295
14
        FT_NONE, BASE_NONE, NULL, 0,
3296
14
        NULL, HFILL }},
3297
14
    { &hf_sbc_ap_global_NgENB_ID,
3298
14
      { "global-NgENB-ID", "sbc-ap.global_NgENB_ID_element",
3299
14
        FT_NONE, BASE_NONE, NULL, 0,
3300
14
        NULL, HFILL }},
3301
14
    { &hf_sbc_ap_gnb_id_choice,
3302
14
      { "gNB-ID", "sbc-ap.gnb_id_choice",
3303
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_GNB_ID_vals), 0,
3304
14
        NULL, HFILL }},
3305
14
    { &hf_sbc_ap_gNB_ID,
3306
14
      { "gNB-ID", "sbc-ap.gNB_ID",
3307
14
        FT_BYTES, BASE_NONE, NULL, 0,
3308
14
        "BIT_STRING_SIZE_22_32", HFILL }},
3309
14
    { &hf_sbc_ap_ngENB_ID,
3310
14
      { "ngENB-ID", "sbc-ap.ngENB_ID",
3311
14
        FT_UINT32, BASE_DEC, VALS(sbc_ap_ENB_ID_vals), 0,
3312
14
        "ENB_ID", HFILL }},
3313
14
    { &hf_sbc_ap_List_of_TAIs_item,
3314
14
      { "List-of-TAIs item", "sbc-ap.List_of_TAIs_item_element",
3315
14
        FT_NONE, BASE_NONE, NULL, 0,
3316
14
        NULL, HFILL }},
3317
14
    { &hf_sbc_ap_tai,
3318
14
      { "tai", "sbc-ap.tai_element",
3319
14
        FT_NONE, BASE_NONE, NULL, 0,
3320
14
        NULL, HFILL }},
3321
14
    { &hf_sbc_ap_List_of_TAIs_Restart_item,
3322
14
      { "List-of-TAIs-Restart item", "sbc-ap.List_of_TAIs_Restart_item_element",
3323
14
        FT_NONE, BASE_NONE, NULL, 0,
3324
14
        NULL, HFILL }},
3325
14
    { &hf_sbc_ap_List_of_EAIs_Restart_item,
3326
14
      { "Emergency-Area-ID", "sbc-ap.Emergency_Area_ID",
3327
14
        FT_BYTES, BASE_NONE, NULL, 0,
3328
14
        NULL, HFILL }},
3329
14
    { &hf_sbc_ap_List_of_5GS_TAIs_item,
3330
14
      { "TAI-5GS", "sbc-ap.TAI_5GS_element",
3331
14
        FT_NONE, BASE_NONE, NULL, 0,
3332
14
        NULL, HFILL }},
3333
14
    { &hf_sbc_ap_List_of_5GS_TAI_for_Restart_item,
3334
14
      { "TAI-5GS", "sbc-ap.TAI_5GS_element",
3335
14
        FT_NONE, BASE_NONE, NULL, 0,
3336
14
        NULL, HFILL }},
3337
14
    { &hf_sbc_ap_NR_CGIList_item,
3338
14
      { "NR-CGI", "sbc-ap.NR_CGI_element",
3339
14
        FT_NONE, BASE_NONE, NULL, 0,
3340
14
        NULL, HFILL }},
3341
14
    { &hf_sbc_ap_nRCellIdentity,
3342
14
      { "nRCellIdentity", "sbc-ap.nRCellIdentity",
3343
14
        FT_BYTES, BASE_NONE, NULL, 0,
3344
14
        NULL, HFILL }},
3345
14
    { &hf_sbc_ap_Restarted_Cell_List_item,
3346
14
      { "EUTRAN-CGI", "sbc-ap.EUTRAN_CGI_element",
3347
14
        FT_NONE, BASE_NONE, NULL, 0,
3348
14
        NULL, HFILL }},
3349
14
    { &hf_sbc_ap_Restarted_Cell_List_NR_item,
3350
14
      { "NR-CGI", "sbc-ap.NR_CGI_element",
3351
14
        FT_NONE, BASE_NONE, NULL, 0,
3352
14
        NULL, HFILL }},
3353
14
    { &hf_sbc_ap_ScheduledCellinEAI_item,
3354
14
      { "ScheduledCellinEAI-Item", "sbc-ap.ScheduledCellinEAI_Item_element",
3355
14
        FT_NONE, BASE_NONE, NULL, 0,
3356
14
        NULL, HFILL }},
3357
14
    { &hf_sbc_ap_ScheduledCellinTAI_item,
3358
14
      { "ScheduledCellinTAI-Item", "sbc-ap.ScheduledCellinTAI_Item_element",
3359
14
        FT_NONE, BASE_NONE, NULL, 0,
3360
14
        NULL, HFILL }},
3361
14
    { &hf_sbc_ap_ScheduledCellinTAI_5GS_item,
3362
14
      { "ScheduledCellinTAI-5GS item", "sbc-ap.ScheduledCellinTAI_5GS_item_element",
3363
14
        FT_NONE, BASE_NONE, NULL, 0,
3364
14
        NULL, HFILL }},
3365
14
    { &hf_sbc_ap_TAI_Broadcast_List_item,
3366
14
      { "TAI-Broadcast-List-Item", "sbc-ap.TAI_Broadcast_List_Item_element",
3367
14
        FT_NONE, BASE_NONE, NULL, 0,
3368
14
        NULL, HFILL }},
3369
14
    { &hf_sbc_ap_tAI,
3370
14
      { "tAI", "sbc-ap.tAI_element",
3371
14
        FT_NONE, BASE_NONE, NULL, 0,
3372
14
        NULL, HFILL }},
3373
14
    { &hf_sbc_ap_scheduledCellinTAI,
3374
14
      { "scheduledCellinTAI", "sbc-ap.scheduledCellinTAI",
3375
14
        FT_UINT32, BASE_DEC, NULL, 0,
3376
14
        NULL, HFILL }},
3377
14
    { &hf_sbc_ap_TAI_Broadcast_List_5GS_item,
3378
14
      { "TAI-Broadcast-List-5GS item", "sbc-ap.TAI_Broadcast_List_5GS_item_element",
3379
14
        FT_NONE, BASE_NONE, NULL, 0,
3380
14
        NULL, HFILL }},
3381
14
    { &hf_sbc_ap_tAI_5GS,
3382
14
      { "tAI-5GS", "sbc-ap.tAI_5GS_element",
3383
14
        FT_NONE, BASE_NONE, NULL, 0,
3384
14
        NULL, HFILL }},
3385
14
    { &hf_sbc_ap_scheduledCellinTAI_5GS,
3386
14
      { "scheduledCellinTAI-5GS", "sbc-ap.scheduledCellinTAI_5GS",
3387
14
        FT_UINT32, BASE_DEC, NULL, 0,
3388
14
        NULL, HFILL }},
3389
14
    { &hf_sbc_ap_TAI_Cancelled_List_item,
3390
14
      { "TAI-Cancelled-List-Item", "sbc-ap.TAI_Cancelled_List_Item_element",
3391
14
        FT_NONE, BASE_NONE, NULL, 0,
3392
14
        NULL, HFILL }},
3393
14
    { &hf_sbc_ap_cancelledCellinTAI,
3394
14
      { "cancelledCellinTAI", "sbc-ap.cancelledCellinTAI",
3395
14
        FT_UINT32, BASE_DEC, NULL, 0,
3396
14
        NULL, HFILL }},
3397
14
    { &hf_sbc_ap_TAI_Cancelled_List_5GS_item,
3398
14
      { "TAI-Cancelled-List-5GS item", "sbc-ap.TAI_Cancelled_List_5GS_item_element",
3399
14
        FT_NONE, BASE_NONE, NULL, 0,
3400
14
        NULL, HFILL }},
3401
14
    { &hf_sbc_ap_cancelledCellinTAI_5GS,
3402
14
      { "cancelledCellinTAI-5GS", "sbc-ap.cancelledCellinTAI_5GS",
3403
14
        FT_UINT32, BASE_DEC, NULL, 0,
3404
14
        NULL, HFILL }},
3405
14
    { &hf_sbc_ap_TAI_List_for_Warning_item,
3406
14
      { "TAI", "sbc-ap.TAI_element",
3407
14
        FT_NONE, BASE_NONE, NULL, 0,
3408
14
        NULL, HFILL }},
3409
14
    { &hf_sbc_ap_tAC,
3410
14
      { "tAC", "sbc-ap.tAC",
3411
14
        FT_UINT16, BASE_DEC_HEX, NULL, 0,
3412
14
        NULL, HFILL }},
3413
14
    { &hf_sbc_ap_tAC_5GS,
3414
14
      { "tAC-5GS", "sbc-ap.tAC_5GS",
3415
14
        FT_UINT24, BASE_DEC_HEX, NULL, 0,
3416
14
        NULL, HFILL }},
3417
14
    { &hf_sbc_ap_Unknown_5GS_Tracking_Area_List_item,
3418
14
      { "TAI-5GS", "sbc-ap.TAI_5GS_element",
3419
14
        FT_NONE, BASE_NONE, NULL, 0,
3420
14
        NULL, HFILL }},
3421
14
    { &hf_sbc_ap_cell_ID_List,
3422
14
      { "cell-ID-List", "sbc-ap.cell_ID_List",
3423
14
        FT_UINT32, BASE_DEC, NULL, 0,
3424
14
        "ECGIList", HFILL }},
3425
14
    { &hf_sbc_ap_tracking_Area_List_for_Warning,
3426
14
      { "tracking-Area-List-for-Warning", "sbc-ap.tracking_Area_List_for_Warning",
3427
14
        FT_UINT32, BASE_DEC, NULL, 0,
3428
14
        "TAI_List_for_Warning", HFILL }},
3429
14
    { &hf_sbc_ap_emergency_Area_ID_List,
3430
14
      { "emergency-Area-ID-List", "sbc-ap.emergency_Area_ID_List",
3431
14
        FT_UINT32, BASE_DEC, NULL, 0,
3432
14
        NULL, HFILL }},
3433
14
    { &hf_sbc_ap_nR_CGIList,
3434
14
      { "nR-CGIList", "sbc-ap.nR_CGIList",
3435
14
        FT_UINT32, BASE_DEC, NULL, 0,
3436
14
        NULL, HFILL }},
3437
14
    { &hf_sbc_ap_tAIList_5GS,
3438
14
      { "tAIList-5GS", "sbc-ap.tAIList_5GS_element",
3439
14
        FT_NONE, BASE_NONE, NULL, 0,
3440
14
        "TAI_5GS", HFILL }},
3441
14
    { &hf_sbc_ap_emergencyAreaIDList,
3442
14
      { "emergencyAreaIDList", "sbc-ap.emergencyAreaIDList",
3443
14
        FT_UINT32, BASE_DEC, NULL, 0,
3444
14
        "Emergency_Area_ID_List", HFILL }},
3445
14
    { &hf_sbc_ap_protocolIEs,
3446
14
      { "protocolIEs", "sbc-ap.protocolIEs",
3447
14
        FT_UINT32, BASE_DEC, NULL, 0,
3448
14
        "ProtocolIE_Container", HFILL }},
3449
14
    { &hf_sbc_ap_protocolExtensions,
3450
14
      { "protocolExtensions", "sbc-ap.protocolExtensions",
3451
14
        FT_UINT32, BASE_DEC, NULL, 0,
3452
14
        "ProtocolExtensionContainer", HFILL }},
3453
14
    { &hf_sbc_ap_initiatingMessage,
3454
14
      { "initiatingMessage", "sbc-ap.initiatingMessage_element",
3455
14
        FT_NONE, BASE_NONE, NULL, 0,
3456
14
        NULL, HFILL }},
3457
14
    { &hf_sbc_ap_successfulOutcome,
3458
14
      { "successfulOutcome", "sbc-ap.successfulOutcome_element",
3459
14
        FT_NONE, BASE_NONE, NULL, 0,
3460
14
        NULL, HFILL }},
3461
14
    { &hf_sbc_ap_unsuccessfulOutcome,
3462
14
      { "unsuccessfulOutcome", "sbc-ap.unsuccessfulOutcome_element",
3463
14
        FT_NONE, BASE_NONE, NULL, 0,
3464
14
        NULL, HFILL }},
3465
14
    { &hf_sbc_ap_initiatingMessagevalue,
3466
14
      { "value", "sbc-ap.initiatingMessagevalue_element",
3467
14
        FT_NONE, BASE_NONE, NULL, 0,
3468
14
        "InitiatingMessage_value", HFILL }},
3469
14
    { &hf_sbc_ap_successfulOutcome_value,
3470
14
      { "value", "sbc-ap.successfulOutcome_value_element",
3471
14
        FT_NONE, BASE_NONE, NULL, 0,
3472
14
        "SuccessfulOutcome_value", HFILL }},
3473
14
    { &hf_sbc_ap_unsuccessfulOutcome_value,
3474
14
      { "value", "sbc-ap.unsuccessfulOutcome_value_element",
3475
14
        FT_NONE, BASE_NONE, NULL, 0,
3476
14
        "UnsuccessfulOutcome_value", HFILL }},
3477
14
  };
3478
3479
  /* List of subtrees */
3480
14
  static int *ett[] = {
3481
14
                  &ett_sbc_ap,
3482
14
                  &ett_sbc_ap_Serial_Number,
3483
14
                  &ett_sbc_ap_Warning_Type,
3484
14
                  &ett_sbc_ap_Data_Coding_Scheme,
3485
14
                  &ett_sbc_ap_Warning_Message_Contents,
3486
14
    &ett_sbc_ap_ProtocolIE_Container,
3487
14
    &ett_sbc_ap_ProtocolIE_Field,
3488
14
    &ett_sbc_ap_ProtocolExtensionContainer,
3489
14
    &ett_sbc_ap_ProtocolExtensionField,
3490
14
    &ett_sbc_ap_Broadcast_Scheduled_Area_List,
3491
14
    &ett_sbc_ap_Broadcast_Scheduled_Area_List_5GS,
3492
14
    &ett_sbc_ap_Broadcast_Cancelled_Area_List,
3493
14
    &ett_sbc_ap_Broadcast_Cancelled_Area_List_5GS,
3494
14
    &ett_sbc_ap_Broadcast_Empty_Area_List,
3495
14
    &ett_sbc_ap_Broadcast_Empty_Area_List_5GS,
3496
14
    &ett_sbc_ap_CancelledCellinEAI,
3497
14
    &ett_sbc_ap_CancelledCellinEAI_Item,
3498
14
    &ett_sbc_ap_CancelledCellinTAI,
3499
14
    &ett_sbc_ap_CancelledCellinTAI_Item,
3500
14
    &ett_sbc_ap_CancelledCellinTAI_5GS,
3501
14
    &ett_sbc_ap_CancelledCellinTAI_5GS_item,
3502
14
    &ett_sbc_ap_CellId_Broadcast_List,
3503
14
    &ett_sbc_ap_CellId_Broadcast_List_Item,
3504
14
    &ett_sbc_ap_CellId_Broadcast_List_5GS,
3505
14
    &ett_sbc_ap_CellId_Broadcast_List_5GS_item,
3506
14
    &ett_sbc_ap_CellID_Cancelled_List,
3507
14
    &ett_sbc_ap_CellID_Cancelled_Item,
3508
14
    &ett_sbc_ap_CellID_Cancelled_List_5GS,
3509
14
    &ett_sbc_ap_CellID_Cancelled_List_5GS_item,
3510
14
    &ett_sbc_ap_Criticality_Diagnostics,
3511
14
    &ett_sbc_ap_CriticalityDiagnostics_IE_List,
3512
14
    &ett_sbc_ap_CriticalityDiagnostics_IE_List_item,
3513
14
    &ett_sbc_ap_ECGIList,
3514
14
    &ett_sbc_ap_Emergency_Area_ID_List,
3515
14
    &ett_sbc_ap_EmergencyAreaID_Broadcast_List,
3516
14
    &ett_sbc_ap_EmergencyAreaID_Broadcast_List_Item,
3517
14
    &ett_sbc_ap_EmergencyAreaID_Cancelled_List,
3518
14
    &ett_sbc_ap_EmergencyAreaID_Cancelled_Item,
3519
14
    &ett_sbc_ap_EUTRAN_CGI,
3520
14
    &ett_sbc_ap_ENB_ID,
3521
14
    &ett_sbc_ap_Failed_Cell_List,
3522
14
    &ett_sbc_ap_Failed_Cell_List_NR,
3523
14
    &ett_sbc_ap_Global_ENB_ID,
3524
14
    &ett_sbc_ap_Global_RAN_Node_ID,
3525
14
    &ett_sbc_ap_Global_GNB_ID,
3526
14
    &ett_sbc_ap_GNB_ID,
3527
14
    &ett_sbc_ap_Global_NgENB_ID,
3528
14
    &ett_sbc_ap_List_of_TAIs,
3529
14
    &ett_sbc_ap_List_of_TAIs_item,
3530
14
    &ett_sbc_ap_List_of_TAIs_Restart,
3531
14
    &ett_sbc_ap_List_of_TAIs_Restart_item,
3532
14
    &ett_sbc_ap_List_of_EAIs_Restart,
3533
14
    &ett_sbc_ap_List_of_5GS_TAIs,
3534
14
    &ett_sbc_ap_List_of_5GS_TAI_for_Restart,
3535
14
    &ett_sbc_ap_NR_CGIList,
3536
14
    &ett_sbc_ap_NR_CGI,
3537
14
    &ett_sbc_ap_Restarted_Cell_List,
3538
14
    &ett_sbc_ap_Restarted_Cell_List_NR,
3539
14
    &ett_sbc_ap_ScheduledCellinEAI,
3540
14
    &ett_sbc_ap_ScheduledCellinEAI_Item,
3541
14
    &ett_sbc_ap_ScheduledCellinTAI,
3542
14
    &ett_sbc_ap_ScheduledCellinTAI_Item,
3543
14
    &ett_sbc_ap_ScheduledCellinTAI_5GS,
3544
14
    &ett_sbc_ap_ScheduledCellinTAI_5GS_item,
3545
14
    &ett_sbc_ap_TAI_Broadcast_List,
3546
14
    &ett_sbc_ap_TAI_Broadcast_List_Item,
3547
14
    &ett_sbc_ap_TAI_Broadcast_List_5GS,
3548
14
    &ett_sbc_ap_TAI_Broadcast_List_5GS_item,
3549
14
    &ett_sbc_ap_TAI_Cancelled_List,
3550
14
    &ett_sbc_ap_TAI_Cancelled_List_Item,
3551
14
    &ett_sbc_ap_TAI_Cancelled_List_5GS,
3552
14
    &ett_sbc_ap_TAI_Cancelled_List_5GS_item,
3553
14
    &ett_sbc_ap_TAI_List_for_Warning,
3554
14
    &ett_sbc_ap_TAI,
3555
14
    &ett_sbc_ap_TAI_5GS,
3556
14
    &ett_sbc_ap_Unknown_5GS_Tracking_Area_List,
3557
14
    &ett_sbc_ap_Warning_Area_List,
3558
14
    &ett_sbc_ap_Warning_Area_List_5GS,
3559
14
    &ett_sbc_ap_Write_Replace_Warning_Request,
3560
14
    &ett_sbc_ap_Write_Replace_Warning_Response,
3561
14
    &ett_sbc_ap_Stop_Warning_Request,
3562
14
    &ett_sbc_ap_Stop_Warning_Response,
3563
14
    &ett_sbc_ap_Write_Replace_Warning_Indication,
3564
14
    &ett_sbc_ap_Stop_Warning_Indication,
3565
14
    &ett_sbc_ap_PWS_Restart_Indication,
3566
14
    &ett_sbc_ap_PWS_Failure_Indication,
3567
14
    &ett_sbc_ap_Error_Indication,
3568
14
    &ett_sbc_ap_SBC_AP_PDU,
3569
14
    &ett_sbc_ap_InitiatingMessage,
3570
14
    &ett_sbc_ap_SuccessfulOutcome,
3571
14
    &ett_sbc_ap_UnsuccessfulOutcome,
3572
14
  };
3573
3574
3575
  /* Register protocol */
3576
14
  proto_sbc_ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
3577
  /* Register fields and subtrees */
3578
14
  proto_register_field_array(proto_sbc_ap, hf, array_length(hf));
3579
14
  proto_register_subtree_array(ett, array_length(ett));
3580
3581
  /* Register dissector */
3582
14
  sbc_ap_handle = register_dissector(PFNAME, dissect_sbc_ap, proto_sbc_ap);
3583
3584
  /* Register dissector tables */
3585
14
  sbc_ap_ies_dissector_table = register_dissector_table("sbc_ap.ies", "SBC-AP-PROTOCOL-IES", proto_sbc_ap, FT_UINT32, BASE_DEC);
3586
14
  sbc_ap_extension_dissector_table = register_dissector_table("sbc_ap.extension", "SBC-AP-PROTOCOL-EXTENSION", proto_sbc_ap, FT_UINT32, BASE_DEC);
3587
14
  sbc_ap_proc_imsg_dissector_table = register_dissector_table("sbc_ap.proc.imsg", "SBC-AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_sbc_ap, FT_UINT32, BASE_DEC);
3588
14
  sbc_ap_proc_sout_dissector_table = register_dissector_table("sbc_ap.proc.sout", "SBC-AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_sbc_ap, FT_UINT32, BASE_DEC);
3589
14
  sbc_ap_proc_uout_dissector_table = register_dissector_table("sbc_ap.proc.uout", "SBC-AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_sbc_ap, FT_UINT32, BASE_DEC);
3590
3591
3592
14
}
3593
3594
3595
/*--- proto_reg_handoff_sbc_ap ---------------------------------------*/
3596
void
3597
proto_reg_handoff_sbc_ap(void)
3598
14
{
3599
14
    static bool inited = false;
3600
14
  static unsigned SctpPort;
3601
3602
14
    if( !inited ) {
3603
14
        dissector_add_uint("sctp.ppi", SBC_AP_PAYLOAD_PROTOCOL_ID,   sbc_ap_handle);
3604
14
        inited = true;
3605
14
  dissector_add_uint("sbc_ap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_sbc_ap));
3606
14
  dissector_add_uint("sbc_ap.ies", id_Criticality_Diagnostics, create_dissector_handle(dissect_Criticality_Diagnostics_PDU, proto_sbc_ap));
3607
14
  dissector_add_uint("sbc_ap.ies", id_Data_Coding_Scheme, create_dissector_handle(dissect_Data_Coding_Scheme_PDU, proto_sbc_ap));
3608
14
  dissector_add_uint("sbc_ap.ies", id_Message_Identifier, create_dissector_handle(dissect_Message_Identifier_PDU, proto_sbc_ap));
3609
14
  dissector_add_uint("sbc_ap.ies", id_Number_of_Broadcasts_Requested, create_dissector_handle(dissect_Number_of_Broadcasts_Requested_PDU, proto_sbc_ap));
3610
14
  dissector_add_uint("sbc_ap.ies", id_Repetition_Period, create_dissector_handle(dissect_Repetition_Period_PDU, proto_sbc_ap));
3611
14
  dissector_add_uint("sbc_ap.ies", id_Serial_Number, create_dissector_handle(dissect_Serial_Number_PDU, proto_sbc_ap));
3612
14
  dissector_add_uint("sbc_ap.ies", id_List_of_TAIs, create_dissector_handle(dissect_List_of_TAIs_PDU, proto_sbc_ap));
3613
14
  dissector_add_uint("sbc_ap.ies", id_Warning_Area_List, create_dissector_handle(dissect_Warning_Area_List_PDU, proto_sbc_ap));
3614
14
  dissector_add_uint("sbc_ap.ies", id_Warning_Message_Content, create_dissector_handle(dissect_Warning_Message_Content_PDU, proto_sbc_ap));
3615
14
  dissector_add_uint("sbc_ap.ies", id_Warning_Security_Information, create_dissector_handle(dissect_Warning_Security_Information_PDU, proto_sbc_ap));
3616
14
  dissector_add_uint("sbc_ap.ies", id_Warning_Type, create_dissector_handle(dissect_Warning_Type_PDU, proto_sbc_ap));
3617
14
  dissector_add_uint("sbc_ap.ies", id_Omc_Id, create_dissector_handle(dissect_Omc_Id_PDU, proto_sbc_ap));
3618
14
  dissector_add_uint("sbc_ap.ies", id_Concurrent_Warning_Message_Indicator, create_dissector_handle(dissect_Concurrent_Warning_Message_Indicator_PDU, proto_sbc_ap));
3619
14
  dissector_add_uint("sbc_ap.ies", id_Extended_Repetition_Period, create_dissector_handle(dissect_Extended_Repetition_Period_PDU, proto_sbc_ap));
3620
14
  dissector_add_uint("sbc_ap.ies", id_Unknown_Tracking_Area_List, create_dissector_handle(dissect_List_of_TAIs_PDU, proto_sbc_ap));
3621
14
  dissector_add_uint("sbc_ap.ies", id_Broadcast_Scheduled_Area_List, create_dissector_handle(dissect_Broadcast_Scheduled_Area_List_PDU, proto_sbc_ap));
3622
14
  dissector_add_uint("sbc_ap.ies", id_Send_Write_Replace_Warning_Indication, create_dissector_handle(dissect_Send_Write_Replace_Warning_Indication_PDU, proto_sbc_ap));
3623
14
  dissector_add_uint("sbc_ap.ies", id_Broadcast_Cancelled_Area_List, create_dissector_handle(dissect_Broadcast_Cancelled_Area_List_PDU, proto_sbc_ap));
3624
14
  dissector_add_uint("sbc_ap.ies", id_Send_Stop_Warning_Indication, create_dissector_handle(dissect_Send_Stop_Warning_Indication_PDU, proto_sbc_ap));
3625
14
  dissector_add_uint("sbc_ap.ies", id_Stop_All_Indicator, create_dissector_handle(dissect_Stop_All_Indicator_PDU, proto_sbc_ap));
3626
14
  dissector_add_uint("sbc_ap.ies", id_Global_ENB_ID, create_dissector_handle(dissect_Global_ENB_ID_PDU, proto_sbc_ap));
3627
14
  dissector_add_uint("sbc_ap.ies", id_Broadcast_Empty_Area_List, create_dissector_handle(dissect_Broadcast_Empty_Area_List_PDU, proto_sbc_ap));
3628
14
  dissector_add_uint("sbc_ap.ies", id_Restarted_Cell_List, create_dissector_handle(dissect_Restarted_Cell_List_PDU, proto_sbc_ap));
3629
14
  dissector_add_uint("sbc_ap.ies", id_List_of_TAIs_Restart, create_dissector_handle(dissect_List_of_TAIs_Restart_PDU, proto_sbc_ap));
3630
14
  dissector_add_uint("sbc_ap.ies", id_List_of_EAIs_Restart, create_dissector_handle(dissect_List_of_EAIs_Restart_PDU, proto_sbc_ap));
3631
14
  dissector_add_uint("sbc_ap.ies", id_Failed_Cell_List, create_dissector_handle(dissect_Failed_Cell_List_PDU, proto_sbc_ap));
3632
14
  dissector_add_uint("sbc_ap.extension", id_List_of_5GS_TAIs, create_dissector_handle(dissect_List_of_5GS_TAIs_PDU, proto_sbc_ap));
3633
14
  dissector_add_uint("sbc_ap.extension", id_Warning_Area_List_5GS, create_dissector_handle(dissect_Warning_Area_List_5GS_PDU, proto_sbc_ap));
3634
14
  dissector_add_uint("sbc_ap.extension", id_Global_RAN_Node_ID, create_dissector_handle(dissect_Global_RAN_Node_ID_PDU, proto_sbc_ap));
3635
14
  dissector_add_uint("sbc_ap.extension", id_Global_GNB_ID, create_dissector_handle(dissect_Global_GNB_ID_PDU, proto_sbc_ap));
3636
14
  dissector_add_uint("sbc_ap.extension", id_RAT_Selector_5GS, create_dissector_handle(dissect_RAT_Selector_5GS_PDU, proto_sbc_ap));
3637
14
  dissector_add_uint("sbc_ap.extension", id_Unknown_5GS_Tracking_Area_List, create_dissector_handle(dissect_Unknown_5GS_Tracking_Area_List_PDU, proto_sbc_ap));
3638
14
  dissector_add_uint("sbc_ap.extension", id_Broadcast_Scheduled_Area_List_5GS, create_dissector_handle(dissect_Broadcast_Scheduled_Area_List_5GS_PDU, proto_sbc_ap));
3639
14
  dissector_add_uint("sbc_ap.extension", id_Broadcast_Cancelled_Area_List_5GS, create_dissector_handle(dissect_Broadcast_Cancelled_Area_List_5GS_PDU, proto_sbc_ap));
3640
14
  dissector_add_uint("sbc_ap.extension", id_Broadcast_Empty_Area_List_5GS, create_dissector_handle(dissect_Broadcast_Empty_Area_List_5GS_PDU, proto_sbc_ap));
3641
14
  dissector_add_uint("sbc_ap.extension", id_Restarted_Cell_List_NR, create_dissector_handle(dissect_Restarted_Cell_List_NR_PDU, proto_sbc_ap));
3642
14
  dissector_add_uint("sbc_ap.extension", id_Failed_Cell_List_NR, create_dissector_handle(dissect_Failed_Cell_List_NR_PDU, proto_sbc_ap));
3643
14
  dissector_add_uint("sbc_ap.extension", id_List_of_5GS_TAI_for_Restart, create_dissector_handle(dissect_List_of_5GS_TAI_for_Restart_PDU, proto_sbc_ap));
3644
14
  dissector_add_uint("sbc_ap.ies", id_Warning_Area_Coordinates, create_dissector_handle(dissect_Warning_Area_Coordinates_PDU, proto_sbc_ap));
3645
14
  dissector_add_uint("sbc_ap.proc.imsg", id_Write_Replace_Warning, create_dissector_handle(dissect_Write_Replace_Warning_Request_PDU, proto_sbc_ap));
3646
14
  dissector_add_uint("sbc_ap.proc.sout", id_Write_Replace_Warning, create_dissector_handle(dissect_Write_Replace_Warning_Response_PDU, proto_sbc_ap));
3647
14
  dissector_add_uint("sbc_ap.proc.imsg", id_Stop_Warning, create_dissector_handle(dissect_Stop_Warning_Request_PDU, proto_sbc_ap));
3648
14
  dissector_add_uint("sbc_ap.proc.sout", id_Stop_Warning, create_dissector_handle(dissect_Stop_Warning_Response_PDU, proto_sbc_ap));
3649
14
  dissector_add_uint("sbc_ap.proc.imsg", id_Error_Indication, create_dissector_handle(dissect_Error_Indication_PDU, proto_sbc_ap));
3650
14
  dissector_add_uint("sbc_ap.proc.imsg", id_Write_Replace_Warning_Indication, create_dissector_handle(dissect_Write_Replace_Warning_Indication_PDU, proto_sbc_ap));
3651
14
  dissector_add_uint("sbc_ap.proc.imsg", id_Stop_Warning_Indication, create_dissector_handle(dissect_Stop_Warning_Indication_PDU, proto_sbc_ap));
3652
14
  dissector_add_uint("sbc_ap.proc.imsg", id_PWS_Restart_Indication, create_dissector_handle(dissect_PWS_Restart_Indication_PDU, proto_sbc_ap));
3653
14
  dissector_add_uint("sbc_ap.proc.imsg", id_PWS_Failure_Indication, create_dissector_handle(dissect_PWS_Failure_Indication_PDU, proto_sbc_ap));
3654
3655
14
  } else {
3656
0
    if (SctpPort != 0) {
3657
0
      dissector_delete_uint("sctp.port", SctpPort, sbc_ap_handle);
3658
0
    }
3659
0
  }
3660
3661
14
  SctpPort = global_sbc_ap_port;
3662
14
  if (SctpPort != 0) {
3663
14
    dissector_add_uint("sctp.port", SctpPort, sbc_ap_handle);
3664
14
  }
3665
3666
14
}
3667
3668
3669
/*
3670
 * Editor modelines
3671
 *
3672
 * Local Variables:
3673
 * c-basic-offset: 2
3674
 * tab-width: 8
3675
 * indent-tabs-mode: nil
3676
 * End:
3677
 *
3678
 * ex: set shiftwidth=2 tabstop=8 expandtab:
3679
 * :indentSize=2:tabSize=8:noTabs=true:
3680
 */