1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
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 */
7 * Routines for SBc Application Part (SBc-AP) packet dissection
9 * Wireshark - Network traffic analyzer
10 * By Gerald Combs <gerald@wireshark.org>
11 * Copyright 1998 Gerald Combs
13 * SPDX-License-Identifier: GPL-2.0-or-later
20 #include <epan/packet.h>
21 #include <epan/asn1.h>
22 #include <epan/sctpppids.h>
23 #include <epan/proto_data.h>
25 #include <epan/unit_strings.h>
27 #include <wsutil/array.h>
29 #include "packet-ber.h"
30 #include "packet-per.h"
31 #include "packet-e212.h"
32 #include "packet-gsm_map.h"
33 #include "packet-s1ap.h"
34 #include "packet-lte-rrc.h"
36 #define PNAME "SBc Application Part"
37 #define PSNAME "SBcAP"
38 #define PFNAME "sbcap"
40 void proto_register_sbc_ap(void);
41 void proto_reg_handoff_sbc_ap(void);
43 /* The registered port number for SBc-AP is 29168.
44 * The registered payload protocol identifier for SBc-AP is 24.
46 #define SBC_AP_PORT 29168
47 static dissector_handle_t sbc_ap_handle
;
50 #define maxNrOfErrors 256
51 #define maxnoofCellID 65535
52 #define maxnoofCellinEAI 65535
53 #define maxnoofCellinTAI 65535
54 #define maxNrOfTAIs 65535
55 #define maxnoofEmergencyAreaID 65535
56 #define maxnoofTAIforWarning 65535
57 #define maxProtocolExtensions 65535
58 #define maxProtocolIEs 65535
59 #define maxnoofeNBIds 256
60 #define maxnoofRestartedCells 256
61 #define maxnoofRestartTAIs 2048
62 #define maxnoofRestartEAIs 256
63 #define maxnoofFailedCells 256
64 #define maxnoof5GSTAIs 2048
65 #define maxnoofCellsingNB 16384
66 #define maxnoofCellsin5GS 16776960
67 #define maxnoofCellsin5GSTAI 65535
68 #define maxnoofRANNodes 65535
69 #define maxnoofRestart5GSTAIs 2048
70 #define maxnoofCellsforRestartNR 16384
72 typedef enum _ProcedureCode_enum
{
73 id_Write_Replace_Warning
= 0,
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
82 typedef enum _ProtocolIE_ID_enum
{
83 id_Broadcast_Message_Content
= 0,
85 id_Criticality_Diagnostics
= 2,
86 id_Data_Coding_Scheme
= 3,
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,
98 id_Warning_Area_List
= 15,
99 id_Warning_Message_Content
= 16,
100 id_Warning_Security_Information
= 17,
101 id_Warning_Type
= 18,
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
;
132 /* Initialize the protocol and registered fields */
133 static int proto_sbc_ap
;
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
; /* GNB_ID */
249 static int hf_sbc_ap_gNB_ID_01
; /* 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 */
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
;
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
;
393 struct sbc_ap_private_data
{
394 uint8_t data_coding_scheme
;
395 e212_number_type_t number_type
;
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
;
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
;
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 *);
418 static struct sbc_ap_private_data
*
419 sbc_ap_get_private_data(packet_info
*pinfo
)
421 struct sbc_ap_private_data
*sbc_ap_data
= (struct sbc_ap_private_data
*)p_get_proto_data(pinfo
->pool
, pinfo
, proto_sbc_ap
, 0);
423 sbc_ap_data
= wmem_new0(pinfo
->pool
, struct sbc_ap_private_data
);
424 p_add_proto_data(pinfo
->pool
, pinfo
, proto_sbc_ap
, 0, sbc_ap_data
);
430 static const value_string sbc_ap_Criticality_vals
[] = {
439 dissect_sbc_ap_Criticality(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
440 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
441 3, NULL
, false, 0, NULL
);
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" },
460 dissect_sbc_ap_ProcedureCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
461 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
462 0U, 255U, &ProcedureCode
, false);
470 dissect_sbc_ap_ProtocolExtensionID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
471 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
472 0U, 65535U, &ProtocolExtensionID
, false);
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" },
531 dissect_sbc_ap_ProtocolIE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
532 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
533 0U, 65535U, &ProtocolIE_ID
, false);
536 proto_item_append_text(proto_item_get_parent_nth(actx
->created_item
, 2), ": %s", val_to_str(ProtocolIE_ID
, VALS(sbc_ap_ProtocolIE_ID_vals
), "unknown (%d)"));
542 static const value_string sbc_ap_TriggeringMessage_vals
[] = {
543 { 0, "initiating-message" },
544 { 1, "successful-outcome" },
545 { 2, "unsuccessful-outcome" },
552 dissect_sbc_ap_TriggeringMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
553 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
554 4, NULL
, false, 0, NULL
);
562 dissect_sbc_ap_T_ie_field_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
563 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_ProtocolIEFieldValue
);
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
},
577 dissect_sbc_ap_ProtocolIE_Field(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
578 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
579 ett_sbc_ap_ProtocolIE_Field
, ProtocolIE_Field_sequence
);
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
},
590 dissect_sbc_ap_ProtocolIE_Container(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
591 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
592 ett_sbc_ap_ProtocolIE_Container
, ProtocolIE_Container_sequence_of
,
593 0, maxProtocolIEs
, false);
601 dissect_sbc_ap_T_extensionValue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
602 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_ProtocolExtensionFieldExtensionValue
);
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
},
616 dissect_sbc_ap_ProtocolExtensionField(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
617 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
618 ett_sbc_ap_ProtocolExtensionField
, ProtocolExtensionField_sequence
);
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
},
629 dissect_sbc_ap_ProtocolExtensionContainer(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
630 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
631 ett_sbc_ap_ProtocolExtensionContainer
, ProtocolExtensionContainer_sequence_of
,
632 1, maxProtocolExtensions
, false);
641 dissect_sbc_ap_PLMNidentity(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
642 tvbuff_t
*parameter_tvb
=NULL
;
643 struct sbc_ap_private_data
*sbc_ap_data
= sbc_ap_get_private_data(actx
->pinfo
);
644 e212_number_type_t number_type
= sbc_ap_data
->number_type
;
645 sbc_ap_data
->number_type
= E212_NONE
;
647 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
648 3, 3, false, ¶meter_tvb
);
649 if(tvb_reported_length(tvb
)==0)
654 dissect_e212_mcc_mnc(parameter_tvb
, actx
->pinfo
, tree
, 0, number_type
, false);
662 dissect_sbc_ap_CellIdentity(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
663 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
664 28, 28, false, NULL
, 0, NULL
, NULL
);
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
},
678 dissect_sbc_ap_EUTRAN_CGI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
679 struct sbc_ap_private_data
*sbc_ap_data
= sbc_ap_get_private_data(actx
->pinfo
);
680 sbc_ap_data
->number_type
= E212_ECGI
;
681 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
682 ett_sbc_ap_EUTRAN_CGI
, EUTRAN_CGI_sequence
);
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
},
697 dissect_sbc_ap_CellId_Broadcast_List_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
698 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
699 ett_sbc_ap_CellId_Broadcast_List_Item
, CellId_Broadcast_List_Item_sequence
);
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
},
710 dissect_sbc_ap_CellId_Broadcast_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
711 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
712 ett_sbc_ap_CellId_Broadcast_List
, CellId_Broadcast_List_sequence_of
,
713 1, maxnoofCellID
, false);
721 dissect_sbc_ap_TAC(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
722 tvbuff_t
*parameter_tvb
= NULL
;
723 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, -1,
724 2, 2, false, ¶meter_tvb
);
727 actx
->created_item
= proto_tree_add_item(tree
, hf_index
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
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
},
743 dissect_sbc_ap_TAI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
744 struct sbc_ap_private_data
*sbc_ap_data
= sbc_ap_get_private_data(actx
->pinfo
);
745 sbc_ap_data
->number_type
= E212_TAI
;
746 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
747 ett_sbc_ap_TAI
, TAI_sequence
);
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
},
762 dissect_sbc_ap_ScheduledCellinTAI_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
763 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
764 ett_sbc_ap_ScheduledCellinTAI_Item
, ScheduledCellinTAI_Item_sequence
);
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
},
775 dissect_sbc_ap_ScheduledCellinTAI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
776 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
777 ett_sbc_ap_ScheduledCellinTAI
, ScheduledCellinTAI_sequence_of
,
778 1, maxnoofCellinTAI
, false);
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
},
792 dissect_sbc_ap_TAI_Broadcast_List_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
793 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
794 ett_sbc_ap_TAI_Broadcast_List_Item
, TAI_Broadcast_List_Item_sequence
);
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
},
805 dissect_sbc_ap_TAI_Broadcast_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
806 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
807 ett_sbc_ap_TAI_Broadcast_List
, TAI_Broadcast_List_sequence_of
,
808 1, maxnoofTAIforWarning
, false);
816 dissect_sbc_ap_Emergency_Area_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
817 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
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
},
831 dissect_sbc_ap_ScheduledCellinEAI_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
832 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
833 ett_sbc_ap_ScheduledCellinEAI_Item
, ScheduledCellinEAI_Item_sequence
);
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
},
844 dissect_sbc_ap_ScheduledCellinEAI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
845 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
846 ett_sbc_ap_ScheduledCellinEAI
, ScheduledCellinEAI_sequence_of
,
847 1, maxnoofCellinEAI
, false);
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
},
861 dissect_sbc_ap_EmergencyAreaID_Broadcast_List_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
862 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
863 ett_sbc_ap_EmergencyAreaID_Broadcast_List_Item
, EmergencyAreaID_Broadcast_List_Item_sequence
);
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
},
874 dissect_sbc_ap_EmergencyAreaID_Broadcast_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
875 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
876 ett_sbc_ap_EmergencyAreaID_Broadcast_List
, EmergencyAreaID_Broadcast_List_sequence_of
,
877 1, maxnoofEmergencyAreaID
, false);
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
},
892 dissect_sbc_ap_Broadcast_Scheduled_Area_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
893 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
894 ett_sbc_ap_Broadcast_Scheduled_Area_List
, Broadcast_Scheduled_Area_List_sequence
);
902 dissect_sbc_ap_NRCellIdentity(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
903 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
904 36, 36, false, NULL
, 0, NULL
, NULL
);
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
},
918 dissect_sbc_ap_NR_CGI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
919 struct sbc_ap_private_data
*sbc_ap_data
= sbc_ap_get_private_data(actx
->pinfo
);
920 sbc_ap_data
->number_type
= E212_NRCGI
;
921 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
922 ett_sbc_ap_NR_CGI
, NR_CGI_sequence
);
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
},
937 dissect_sbc_ap_CellId_Broadcast_List_5GS_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
938 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
939 ett_sbc_ap_CellId_Broadcast_List_5GS_item
, CellId_Broadcast_List_5GS_item_sequence
);
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
},
950 dissect_sbc_ap_CellId_Broadcast_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
951 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
952 ett_sbc_ap_CellId_Broadcast_List_5GS
, CellId_Broadcast_List_5GS_sequence_of
,
953 1, maxnoofCellsin5GS
, false);
961 dissect_sbc_ap_TAC_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
962 tvbuff_t
*parameter_tvb
= NULL
;
963 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, -1,
964 3, 3, false, ¶meter_tvb
);
967 actx
->created_item
= proto_tree_add_item(tree
, hf_index
, parameter_tvb
, 0, 3, ENC_BIG_ENDIAN
);
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
},
984 dissect_sbc_ap_TAI_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
985 struct sbc_ap_private_data
*sbc_ap_data
= sbc_ap_get_private_data(actx
->pinfo
);
986 sbc_ap_data
->number_type
= E212_5GSTAI
;
987 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
988 ett_sbc_ap_TAI_5GS
, TAI_5GS_sequence
);
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
},
1003 dissect_sbc_ap_ScheduledCellinTAI_5GS_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1004 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1005 ett_sbc_ap_ScheduledCellinTAI_5GS_item
, ScheduledCellinTAI_5GS_item_sequence
);
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
},
1016 dissect_sbc_ap_ScheduledCellinTAI_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1017 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1018 ett_sbc_ap_ScheduledCellinTAI_5GS
, ScheduledCellinTAI_5GS_sequence_of
,
1019 1, maxnoofCellsin5GSTAI
, false);
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
}
1033 dissect_sbc_ap_TAI_Broadcast_List_5GS_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1034 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1035 ett_sbc_ap_TAI_Broadcast_List_5GS_item
, TAI_Broadcast_List_5GS_item_sequence
);
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
},
1046 dissect_sbc_ap_TAI_Broadcast_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1047 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1048 ett_sbc_ap_TAI_Broadcast_List_5GS
, TAI_Broadcast_List_5GS_sequence_of
,
1049 1, maxnoof5GSTAIs
, false);
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
}
1064 dissect_sbc_ap_Broadcast_Scheduled_Area_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1065 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1066 ett_sbc_ap_Broadcast_Scheduled_Area_List_5GS
, Broadcast_Scheduled_Area_List_5GS_sequence
);
1074 dissect_sbc_ap_NumberOfBroadcasts(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1075 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1076 0U, 65535U, NULL
, false);
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
}
1090 dissect_sbc_ap_CellID_Cancelled_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1091 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1092 ett_sbc_ap_CellID_Cancelled_Item
, CellID_Cancelled_Item_sequence
);
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
},
1103 dissect_sbc_ap_CellID_Cancelled_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1104 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1105 ett_sbc_ap_CellID_Cancelled_List
, CellID_Cancelled_List_sequence_of
,
1106 1, maxnoofCellID
, false);
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
}
1120 dissect_sbc_ap_CancelledCellinTAI_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1121 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1122 ett_sbc_ap_CancelledCellinTAI_Item
, CancelledCellinTAI_Item_sequence
);
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
},
1133 dissect_sbc_ap_CancelledCellinTAI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1134 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1135 ett_sbc_ap_CancelledCellinTAI
, CancelledCellinTAI_sequence_of
,
1136 1, maxnoofCellinTAI
, false);
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
}
1150 dissect_sbc_ap_TAI_Cancelled_List_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1151 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1152 ett_sbc_ap_TAI_Cancelled_List_Item
, TAI_Cancelled_List_Item_sequence
);
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
},
1163 dissect_sbc_ap_TAI_Cancelled_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1164 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1165 ett_sbc_ap_TAI_Cancelled_List
, TAI_Cancelled_List_sequence_of
,
1166 1, maxnoofTAIforWarning
, false);
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
}
1180 dissect_sbc_ap_CancelledCellinEAI_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1181 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1182 ett_sbc_ap_CancelledCellinEAI_Item
, CancelledCellinEAI_Item_sequence
);
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
},
1193 dissect_sbc_ap_CancelledCellinEAI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1194 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1195 ett_sbc_ap_CancelledCellinEAI
, CancelledCellinEAI_sequence_of
,
1196 1, maxnoofCellinEAI
, false);
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
}
1210 dissect_sbc_ap_EmergencyAreaID_Cancelled_Item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1211 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1212 ett_sbc_ap_EmergencyAreaID_Cancelled_Item
, EmergencyAreaID_Cancelled_Item_sequence
);
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
},
1223 dissect_sbc_ap_EmergencyAreaID_Cancelled_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1224 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1225 ett_sbc_ap_EmergencyAreaID_Cancelled_List
, EmergencyAreaID_Cancelled_List_sequence_of
,
1226 1, maxnoofEmergencyAreaID
, false);
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
}
1241 dissect_sbc_ap_Broadcast_Cancelled_Area_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1242 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1243 ett_sbc_ap_Broadcast_Cancelled_Area_List
, Broadcast_Cancelled_Area_List_sequence
);
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
}
1257 dissect_sbc_ap_CellID_Cancelled_List_5GS_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1258 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1259 ett_sbc_ap_CellID_Cancelled_List_5GS_item
, CellID_Cancelled_List_5GS_item_sequence
);
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
},
1270 dissect_sbc_ap_CellID_Cancelled_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1271 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1272 ett_sbc_ap_CellID_Cancelled_List_5GS
, CellID_Cancelled_List_5GS_sequence_of
,
1273 1, maxnoofCellsin5GS
, false);
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
}
1287 dissect_sbc_ap_CancelledCellinTAI_5GS_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1288 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1289 ett_sbc_ap_CancelledCellinTAI_5GS_item
, CancelledCellinTAI_5GS_item_sequence
);
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
},
1300 dissect_sbc_ap_CancelledCellinTAI_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1301 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1302 ett_sbc_ap_CancelledCellinTAI_5GS
, CancelledCellinTAI_5GS_sequence_of
,
1303 1, maxnoofCellsin5GSTAI
, false);
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
}
1317 dissect_sbc_ap_TAI_Cancelled_List_5GS_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1318 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1319 ett_sbc_ap_TAI_Cancelled_List_5GS_item
, TAI_Cancelled_List_5GS_item_sequence
);
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
},
1330 dissect_sbc_ap_TAI_Cancelled_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1331 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1332 ett_sbc_ap_TAI_Cancelled_List_5GS
, TAI_Cancelled_List_5GS_sequence_of
,
1333 1, maxnoof5GSTAIs
, false);
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
}
1348 dissect_sbc_ap_Broadcast_Cancelled_Area_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1349 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1350 ett_sbc_ap_Broadcast_Cancelled_Area_List_5GS
, Broadcast_Cancelled_Area_List_5GS_sequence
);
1358 dissect_sbc_ap_BIT_STRING_SIZE_20(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1359 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1360 20, 20, false, NULL
, 0, NULL
, NULL
);
1368 dissect_sbc_ap_BIT_STRING_SIZE_28(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1369 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1370 28, 28, false, NULL
, 0, NULL
, NULL
);
1378 dissect_sbc_ap_BIT_STRING_SIZE_18(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1379 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1380 18, 18, false, NULL
, 0, NULL
, NULL
);
1388 dissect_sbc_ap_BIT_STRING_SIZE_21(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1389 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1390 21, 21, false, NULL
, 0, NULL
, NULL
);
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" },
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
}
1413 dissect_sbc_ap_ENB_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1414 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1415 ett_sbc_ap_ENB_ID
, ENB_ID_choice
,
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
}
1430 dissect_sbc_ap_Global_ENB_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1431 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1432 ett_sbc_ap_Global_ENB_ID
, Global_ENB_ID_sequence
);
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
},
1443 dissect_sbc_ap_Broadcast_Empty_Area_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1444 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1445 ett_sbc_ap_Broadcast_Empty_Area_List
, Broadcast_Empty_Area_List_sequence_of
,
1446 1, maxnoofeNBIds
, false);
1454 dissect_sbc_ap_BIT_STRING_SIZE_22_32(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1455 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1456 22, 32, false, NULL
, 0, NULL
, NULL
);
1462 static const value_string sbc_ap_GNB_ID_vals
[] = {
1467 static const per_choice_t GNB_ID_choice
[] = {
1468 { 0, &hf_sbc_ap_gNB_ID_01
, ASN1_EXTENSION_ROOT
, dissect_sbc_ap_BIT_STRING_SIZE_22_32
},
1469 { 0, NULL
, 0, NULL
}
1473 dissect_sbc_ap_GNB_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1474 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1475 ett_sbc_ap_GNB_ID
, GNB_ID_choice
,
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
, 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
}
1490 dissect_sbc_ap_Global_GNB_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1491 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1492 ett_sbc_ap_Global_GNB_ID
, Global_GNB_ID_sequence
);
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
}
1506 dissect_sbc_ap_Global_NgENB_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1507 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1508 ett_sbc_ap_Global_NgENB_ID
, Global_NgENB_ID_sequence
);
1514 static const value_string sbc_ap_Global_RAN_Node_ID_vals
[] = {
1515 { 0, "global-GNB-ID" },
1516 { 1, "global-NgENB-ID" },
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
}
1527 dissect_sbc_ap_Global_RAN_Node_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1528 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1529 ett_sbc_ap_Global_RAN_Node_ID
, Global_RAN_Node_ID_choice
,
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
},
1541 dissect_sbc_ap_Broadcast_Empty_Area_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1542 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1543 ett_sbc_ap_Broadcast_Empty_Area_List_5GS
, Broadcast_Empty_Area_List_5GS_sequence_of
,
1544 1, maxnoofRANNodes
, false);
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" },
1575 dissect_sbc_ap_Cause(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1576 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1577 0U, 255U, NULL
, false);
1583 static const value_string sbc_ap_Concurrent_Warning_Message_Indicator_vals
[] = {
1590 dissect_sbc_ap_Concurrent_Warning_Message_Indicator(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1591 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1592 1, NULL
, false, 0, NULL
);
1598 static const value_string sbc_ap_TypeOfError_vals
[] = {
1599 { 0, "not-understood" },
1606 dissect_sbc_ap_TypeOfError(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1607 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1608 2, NULL
, true, 0, NULL
);
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
}
1623 dissect_sbc_ap_CriticalityDiagnostics_IE_List_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1624 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1625 ett_sbc_ap_CriticalityDiagnostics_IE_List_item
, CriticalityDiagnostics_IE_List_item_sequence
);
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
},
1636 dissect_sbc_ap_CriticalityDiagnostics_IE_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1637 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1638 ett_sbc_ap_CriticalityDiagnostics_IE_List
, CriticalityDiagnostics_IE_List_sequence_of
,
1639 1, maxNrOfErrors
, false);
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
}
1655 dissect_sbc_ap_Criticality_Diagnostics(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1656 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1657 ett_sbc_ap_Criticality_Diagnostics
, Criticality_Diagnostics_sequence
);
1665 dissect_sbc_ap_Data_Coding_Scheme(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1666 tvbuff_t
*parameter_tvb
= NULL
;
1667 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1668 8, 8, false, NULL
, 0, ¶meter_tvb
, NULL
);
1670 if (parameter_tvb
) {
1671 struct sbc_ap_private_data
*sbc_ap_data
= sbc_ap_get_private_data(actx
->pinfo
);
1672 proto_tree
*subtree
;
1674 subtree
= proto_item_add_subtree(actx
->created_item
, ett_sbc_ap_Data_Coding_Scheme
);
1675 sbc_ap_data
->data_coding_scheme
= dissect_cbs_data_coding_scheme(parameter_tvb
, actx
->pinfo
, subtree
, 0);
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
},
1688 dissect_sbc_ap_ECGIList(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1689 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1690 ett_sbc_ap_ECGIList
, ECGIList_sequence_of
,
1691 1, maxnoofCellID
, false);
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
},
1702 dissect_sbc_ap_Emergency_Area_ID_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1703 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1704 ett_sbc_ap_Emergency_Area_ID_List
, Emergency_Area_ID_List_sequence_of
,
1705 1, maxnoofEmergencyAreaID
, false);
1713 dissect_sbc_ap_Extended_Repetition_Period(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1714 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1715 4096U, 131071U, NULL
, false);
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
},
1726 dissect_sbc_ap_Failed_Cell_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1727 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1728 ett_sbc_ap_Failed_Cell_List
, Failed_Cell_List_sequence_of
,
1729 1, maxnoofFailedCells
, false);
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
},
1740 dissect_sbc_ap_Failed_Cell_List_NR(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1741 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1742 ett_sbc_ap_Failed_Cell_List_NR
, Failed_Cell_List_NR_sequence_of
,
1743 1, maxnoofCellsingNB
, false);
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
}
1755 dissect_sbc_ap_List_of_TAIs_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1756 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1757 ett_sbc_ap_List_of_TAIs_item
, List_of_TAIs_item_sequence
);
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
},
1768 dissect_sbc_ap_List_of_TAIs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1769 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1770 ett_sbc_ap_List_of_TAIs
, List_of_TAIs_sequence_of
,
1771 1, maxNrOfTAIs
, false);
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
}
1783 dissect_sbc_ap_List_of_TAIs_Restart_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1784 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1785 ett_sbc_ap_List_of_TAIs_Restart_item
, List_of_TAIs_Restart_item_sequence
);
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
},
1796 dissect_sbc_ap_List_of_TAIs_Restart(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1797 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1798 ett_sbc_ap_List_of_TAIs_Restart
, List_of_TAIs_Restart_sequence_of
,
1799 1, maxnoofRestartTAIs
, false);
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
},
1810 dissect_sbc_ap_List_of_EAIs_Restart(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1811 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1812 ett_sbc_ap_List_of_EAIs_Restart
, List_of_EAIs_Restart_sequence_of
,
1813 1, maxnoofRestartEAIs
, false);
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
},
1824 dissect_sbc_ap_List_of_5GS_TAIs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1825 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1826 ett_sbc_ap_List_of_5GS_TAIs
, List_of_5GS_TAIs_sequence_of
,
1827 1, maxnoof5GSTAIs
, false);
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
},
1838 dissect_sbc_ap_List_of_5GS_TAI_for_Restart(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1839 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1840 ett_sbc_ap_List_of_5GS_TAI_for_Restart
, List_of_5GS_TAI_for_Restart_sequence_of
,
1841 1, maxnoofRestart5GSTAIs
, false);
1849 dissect_sbc_ap_Message_Identifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1850 tvbuff_t
*parameter_tvb
= NULL
;
1851 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, -1,
1852 16, 16, false, NULL
, 0, ¶meter_tvb
, NULL
);
1854 if (parameter_tvb
) {
1855 actx
->created_item
= proto_tree_add_item(tree
, hf_index
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
1865 dissect_sbc_ap_Number_of_Broadcasts_Requested(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1866 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1867 0U, 65535U, NULL
, false);
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
},
1878 dissect_sbc_ap_NR_CGIList(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1879 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1880 ett_sbc_ap_NR_CGIList
, NR_CGIList_sequence_of
,
1881 1, maxnoofCellsingNB
, false);
1889 dissect_sbc_ap_Omc_Id(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1890 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1891 1, 20, false, NULL
);
1899 dissect_sbc_ap_Repetition_Period(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1900 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1901 0U, 4096U, NULL
, false);
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
},
1912 dissect_sbc_ap_Restarted_Cell_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1913 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1914 ett_sbc_ap_Restarted_Cell_List
, Restarted_Cell_List_sequence_of
,
1915 1, maxnoofRestartedCells
, false);
1921 static const value_string sbc_ap_RAT_Selector_5GS_vals
[] = {
1928 dissect_sbc_ap_RAT_Selector_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1929 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1930 1, NULL
, false, 0, NULL
);
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
},
1941 dissect_sbc_ap_Restarted_Cell_List_NR(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1942 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1943 ett_sbc_ap_Restarted_Cell_List_NR
, Restarted_Cell_List_NR_sequence_of
,
1944 1, maxnoofCellsforRestartNR
, false);
1950 static const value_string sbc_ap_Send_Write_Replace_Warning_Indication_vals
[] = {
1957 dissect_sbc_ap_Send_Write_Replace_Warning_Indication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1958 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1959 1, NULL
, false, 0, NULL
);
1965 static const value_string sbc_ap_Send_Stop_Warning_Indication_vals
[] = {
1972 dissect_sbc_ap_Send_Stop_Warning_Indication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1973 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1974 1, NULL
, false, 0, NULL
);
1982 dissect_sbc_ap_Serial_Number(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1983 tvbuff_t
*parameter_tvb
= NULL
;
1984 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1985 16, 16, false, NULL
, 0, ¶meter_tvb
, NULL
);
1987 if (parameter_tvb
) {
1988 proto_tree
*subtree
= proto_item_add_subtree(actx
->created_item
, ett_sbc_ap_Serial_Number
);
1989 proto_tree_add_item(subtree
, hf_sbc_ap_Serial_Number_gs
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
1990 proto_tree_add_item(subtree
, hf_sbc_ap_Serial_Number_msg_code
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
1991 proto_tree_add_item(subtree
, hf_sbc_ap_Serial_Number_upd_nb
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
1999 static const value_string sbc_ap_Stop_All_Indicator_vals
[] = {
2006 dissect_sbc_ap_Stop_All_Indicator(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2007 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2008 1, NULL
, false, 0, NULL
);
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
},
2019 dissect_sbc_ap_TAI_List_for_Warning(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2020 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2021 ett_sbc_ap_TAI_List_for_Warning
, TAI_List_for_Warning_sequence_of
,
2022 1, maxnoofTAIforWarning
, false);
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
},
2033 dissect_sbc_ap_Unknown_5GS_Tracking_Area_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2034 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2035 ett_sbc_ap_Unknown_5GS_Tracking_Area_List
, Unknown_5GS_Tracking_Area_List_sequence_of
,
2036 1, maxnoof5GSTAIs
, false);
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" },
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
}
2057 dissect_sbc_ap_Warning_Area_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2058 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2059 ett_sbc_ap_Warning_Area_List
, Warning_Area_List_choice
,
2068 dissect_sbc_ap_Warning_Message_Content(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2069 tvbuff_t
*parameter_tvb
= NULL
;
2070 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
2071 1, 9600, false, ¶meter_tvb
);
2073 if (parameter_tvb
) {
2074 struct sbc_ap_private_data
*sbc_ap_data
= sbc_ap_get_private_data(actx
->pinfo
);
2075 proto_tree
*subtree
= proto_item_add_subtree(actx
->created_item
, ett_sbc_ap_Warning_Message_Contents
);
2076 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
);
2087 dissect_sbc_ap_Warning_Area_Coordinates(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2088 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
2089 1, 1024, false, NULL
);
2097 dissect_sbc_ap_Warning_Security_Information(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2098 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
2099 50, 50, false, NULL
);
2107 dissect_sbc_ap_Warning_Type(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2108 tvbuff_t
*parameter_tvb
= NULL
;
2109 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
2110 2, 2, false, ¶meter_tvb
);
2112 if (parameter_tvb
) {
2113 proto_tree
*subtree
= proto_item_add_subtree(actx
->created_item
, ett_sbc_ap_Warning_Type
);
2114 proto_tree_add_item(subtree
, hf_sbc_ap_Warning_Type_value
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
2115 proto_tree_add_item(subtree
, hf_sbc_ap_Warning_Type_emergency_user_alert
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
2116 proto_tree_add_item(subtree
, hf_sbc_ap_Warning_Type_popup
, parameter_tvb
, 0, 2, ENC_BIG_ENDIAN
);
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" },
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
}
2142 dissect_sbc_ap_Warning_Area_List_5GS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2143 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2144 ett_sbc_ap_Warning_Area_List_5GS
, Warning_Area_List_5GS_choice
,
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
}
2158 dissect_sbc_ap_Write_Replace_Warning_Request(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2159 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "Write-Replace-Warning-Request");
2160 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2161 ett_sbc_ap_Write_Replace_Warning_Request
, Write_Replace_Warning_Request_sequence
);
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
}
2174 dissect_sbc_ap_Write_Replace_Warning_Response(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2175 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "Write-Replace-Warning-Response");
2176 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2177 ett_sbc_ap_Write_Replace_Warning_Response
, Write_Replace_Warning_Response_sequence
);
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
}
2190 dissect_sbc_ap_Stop_Warning_Request(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2191 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "Stop-Warning-Request");
2192 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2193 ett_sbc_ap_Stop_Warning_Request
, Stop_Warning_Request_sequence
);
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
}
2206 dissect_sbc_ap_Stop_Warning_Response(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2207 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "Stop-Warning-Response");
2208 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2209 ett_sbc_ap_Stop_Warning_Response
, Stop_Warning_Response_sequence
);
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
}
2222 dissect_sbc_ap_Write_Replace_Warning_Indication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2223 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "Write-Replace-Warning-Indication");
2224 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2225 ett_sbc_ap_Write_Replace_Warning_Indication
, Write_Replace_Warning_Indication_sequence
);
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
}
2238 dissect_sbc_ap_Stop_Warning_Indication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2239 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "Stop-Warning-Indication");
2240 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2241 ett_sbc_ap_Stop_Warning_Indication
, Stop_Warning_Indication_sequence
);
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
}
2254 dissect_sbc_ap_PWS_Restart_Indication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2255 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "PWS-Restart-Indication");
2256 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2257 ett_sbc_ap_PWS_Restart_Indication
, PWS_Restart_Indication_sequence
);
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
}
2270 dissect_sbc_ap_PWS_Failure_Indication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2271 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "PWS-Failure-Indication");
2273 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2274 ett_sbc_ap_PWS_Failure_Indication
, PWS_Failure_Indication_sequence
);
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
}
2286 dissect_sbc_ap_Error_Indication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2287 col_append_sep_str(actx
->pinfo
->cinfo
, COL_INFO
, NULL
, "Error-Indication");
2288 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2289 ett_sbc_ap_Error_Indication
, Error_Indication_sequence
);
2297 dissect_sbc_ap_InitiatingMessage_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2298 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_InitiatingMessageValue
);
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
}
2312 dissect_sbc_ap_InitiatingMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2313 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2314 ett_sbc_ap_InitiatingMessage
, InitiatingMessage_sequence
);
2322 dissect_sbc_ap_SuccessfulOutcome_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2323 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_SuccessfulOutcomeValue
);
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
}
2337 dissect_sbc_ap_SuccessfulOutcome(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2338 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2339 ett_sbc_ap_SuccessfulOutcome
, SuccessfulOutcome_sequence
);
2347 dissect_sbc_ap_UnsuccessfulOutcome_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2348 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_UnsuccessfulOutcomeValue
);
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
}
2362 dissect_sbc_ap_UnsuccessfulOutcome(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2363 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2364 ett_sbc_ap_UnsuccessfulOutcome
, UnsuccessfulOutcome_sequence
);
2370 static const value_string sbc_ap_SBC_AP_PDU_vals
[] = {
2371 { 0, "initiatingMessage" },
2372 { 1, "successfulOutcome" },
2373 { 2, "unsuccessfulOutcome" },
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
}
2385 dissect_sbc_ap_SBC_AP_PDU(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2386 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2387 ett_sbc_ap_SBC_AP_PDU
, SBC_AP_PDU_choice
,
2395 static int dissect_Broadcast_Scheduled_Area_List_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2397 asn1_ctx_t asn1_ctx
;
2398 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2399 offset
= dissect_sbc_ap_Broadcast_Scheduled_Area_List(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Broadcast_Scheduled_Area_List_PDU
);
2400 offset
+= 7; offset
>>= 3;
2403 static int dissect_Broadcast_Scheduled_Area_List_5GS_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2405 asn1_ctx_t asn1_ctx
;
2406 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2407 offset
= dissect_sbc_ap_Broadcast_Scheduled_Area_List_5GS(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Broadcast_Scheduled_Area_List_5GS_PDU
);
2408 offset
+= 7; offset
>>= 3;
2411 static int dissect_Broadcast_Cancelled_Area_List_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2413 asn1_ctx_t asn1_ctx
;
2414 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2415 offset
= dissect_sbc_ap_Broadcast_Cancelled_Area_List(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Broadcast_Cancelled_Area_List_PDU
);
2416 offset
+= 7; offset
>>= 3;
2419 static int dissect_Broadcast_Cancelled_Area_List_5GS_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2421 asn1_ctx_t asn1_ctx
;
2422 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2423 offset
= dissect_sbc_ap_Broadcast_Cancelled_Area_List_5GS(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Broadcast_Cancelled_Area_List_5GS_PDU
);
2424 offset
+= 7; offset
>>= 3;
2427 static int dissect_Broadcast_Empty_Area_List_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2429 asn1_ctx_t asn1_ctx
;
2430 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2431 offset
= dissect_sbc_ap_Broadcast_Empty_Area_List(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Broadcast_Empty_Area_List_PDU
);
2432 offset
+= 7; offset
>>= 3;
2435 static int dissect_Broadcast_Empty_Area_List_5GS_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2437 asn1_ctx_t asn1_ctx
;
2438 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2439 offset
= dissect_sbc_ap_Broadcast_Empty_Area_List_5GS(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Broadcast_Empty_Area_List_5GS_PDU
);
2440 offset
+= 7; offset
>>= 3;
2443 static int dissect_Cause_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2445 asn1_ctx_t asn1_ctx
;
2446 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2447 offset
= dissect_sbc_ap_Cause(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Cause_PDU
);
2448 offset
+= 7; offset
>>= 3;
2451 static int dissect_Concurrent_Warning_Message_Indicator_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2453 asn1_ctx_t asn1_ctx
;
2454 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2455 offset
= dissect_sbc_ap_Concurrent_Warning_Message_Indicator(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Concurrent_Warning_Message_Indicator_PDU
);
2456 offset
+= 7; offset
>>= 3;
2459 static int dissect_Criticality_Diagnostics_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2461 asn1_ctx_t asn1_ctx
;
2462 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2463 offset
= dissect_sbc_ap_Criticality_Diagnostics(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Criticality_Diagnostics_PDU
);
2464 offset
+= 7; offset
>>= 3;
2467 static int dissect_Data_Coding_Scheme_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2469 asn1_ctx_t asn1_ctx
;
2470 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2471 offset
= dissect_sbc_ap_Data_Coding_Scheme(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Data_Coding_Scheme_PDU
);
2472 offset
+= 7; offset
>>= 3;
2475 static int dissect_Extended_Repetition_Period_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2477 asn1_ctx_t asn1_ctx
;
2478 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2479 offset
= dissect_sbc_ap_Extended_Repetition_Period(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Extended_Repetition_Period_PDU
);
2480 offset
+= 7; offset
>>= 3;
2483 static int dissect_Failed_Cell_List_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2485 asn1_ctx_t asn1_ctx
;
2486 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2487 offset
= dissect_sbc_ap_Failed_Cell_List(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Failed_Cell_List_PDU
);
2488 offset
+= 7; offset
>>= 3;
2491 static int dissect_Failed_Cell_List_NR_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2493 asn1_ctx_t asn1_ctx
;
2494 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2495 offset
= dissect_sbc_ap_Failed_Cell_List_NR(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Failed_Cell_List_NR_PDU
);
2496 offset
+= 7; offset
>>= 3;
2499 static int dissect_Global_ENB_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2501 asn1_ctx_t asn1_ctx
;
2502 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2503 offset
= dissect_sbc_ap_Global_ENB_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Global_ENB_ID_PDU
);
2504 offset
+= 7; offset
>>= 3;
2507 static int dissect_Global_RAN_Node_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2509 asn1_ctx_t asn1_ctx
;
2510 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2511 offset
= dissect_sbc_ap_Global_RAN_Node_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Global_RAN_Node_ID_PDU
);
2512 offset
+= 7; offset
>>= 3;
2515 static int dissect_Global_GNB_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2517 asn1_ctx_t asn1_ctx
;
2518 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2519 offset
= dissect_sbc_ap_Global_GNB_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Global_GNB_ID_PDU
);
2520 offset
+= 7; offset
>>= 3;
2523 static int dissect_List_of_TAIs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2525 asn1_ctx_t asn1_ctx
;
2526 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2527 offset
= dissect_sbc_ap_List_of_TAIs(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_List_of_TAIs_PDU
);
2528 offset
+= 7; offset
>>= 3;
2531 static int dissect_List_of_TAIs_Restart_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2533 asn1_ctx_t asn1_ctx
;
2534 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2535 offset
= dissect_sbc_ap_List_of_TAIs_Restart(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_List_of_TAIs_Restart_PDU
);
2536 offset
+= 7; offset
>>= 3;
2539 static int dissect_List_of_EAIs_Restart_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2541 asn1_ctx_t asn1_ctx
;
2542 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2543 offset
= dissect_sbc_ap_List_of_EAIs_Restart(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_List_of_EAIs_Restart_PDU
);
2544 offset
+= 7; offset
>>= 3;
2547 static int dissect_List_of_5GS_TAIs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2549 asn1_ctx_t asn1_ctx
;
2550 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2551 offset
= dissect_sbc_ap_List_of_5GS_TAIs(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_List_of_5GS_TAIs_PDU
);
2552 offset
+= 7; offset
>>= 3;
2555 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_
) {
2557 asn1_ctx_t asn1_ctx
;
2558 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2559 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 offset
+= 7; offset
>>= 3;
2563 static int dissect_Message_Identifier_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2565 asn1_ctx_t asn1_ctx
;
2566 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2567 offset
= dissect_sbc_ap_Message_Identifier(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Message_Identifier_PDU
);
2568 offset
+= 7; offset
>>= 3;
2571 static int dissect_Number_of_Broadcasts_Requested_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2573 asn1_ctx_t asn1_ctx
;
2574 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2575 offset
= dissect_sbc_ap_Number_of_Broadcasts_Requested(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Number_of_Broadcasts_Requested_PDU
);
2576 offset
+= 7; offset
>>= 3;
2579 static int dissect_Omc_Id_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2581 asn1_ctx_t asn1_ctx
;
2582 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2583 offset
= dissect_sbc_ap_Omc_Id(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Omc_Id_PDU
);
2584 offset
+= 7; offset
>>= 3;
2587 static int dissect_Repetition_Period_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2589 asn1_ctx_t asn1_ctx
;
2590 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2591 offset
= dissect_sbc_ap_Repetition_Period(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Repetition_Period_PDU
);
2592 offset
+= 7; offset
>>= 3;
2595 static int dissect_Restarted_Cell_List_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2597 asn1_ctx_t asn1_ctx
;
2598 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2599 offset
= dissect_sbc_ap_Restarted_Cell_List(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Restarted_Cell_List_PDU
);
2600 offset
+= 7; offset
>>= 3;
2603 static int dissect_RAT_Selector_5GS_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2605 asn1_ctx_t asn1_ctx
;
2606 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2607 offset
= dissect_sbc_ap_RAT_Selector_5GS(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_RAT_Selector_5GS_PDU
);
2608 offset
+= 7; offset
>>= 3;
2611 static int dissect_Restarted_Cell_List_NR_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2613 asn1_ctx_t asn1_ctx
;
2614 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2615 offset
= dissect_sbc_ap_Restarted_Cell_List_NR(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Restarted_Cell_List_NR_PDU
);
2616 offset
+= 7; offset
>>= 3;
2619 static int dissect_Send_Write_Replace_Warning_Indication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2621 asn1_ctx_t asn1_ctx
;
2622 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2623 offset
= dissect_sbc_ap_Send_Write_Replace_Warning_Indication(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Send_Write_Replace_Warning_Indication_PDU
);
2624 offset
+= 7; offset
>>= 3;
2627 static int dissect_Send_Stop_Warning_Indication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2629 asn1_ctx_t asn1_ctx
;
2630 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2631 offset
= dissect_sbc_ap_Send_Stop_Warning_Indication(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Send_Stop_Warning_Indication_PDU
);
2632 offset
+= 7; offset
>>= 3;
2635 static int dissect_Serial_Number_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2637 asn1_ctx_t asn1_ctx
;
2638 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2639 offset
= dissect_sbc_ap_Serial_Number(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Serial_Number_PDU
);
2640 offset
+= 7; offset
>>= 3;
2643 static int dissect_Stop_All_Indicator_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2645 asn1_ctx_t asn1_ctx
;
2646 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2647 offset
= dissect_sbc_ap_Stop_All_Indicator(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Stop_All_Indicator_PDU
);
2648 offset
+= 7; offset
>>= 3;
2651 static int dissect_Unknown_5GS_Tracking_Area_List_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2653 asn1_ctx_t asn1_ctx
;
2654 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2655 offset
= dissect_sbc_ap_Unknown_5GS_Tracking_Area_List(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Unknown_5GS_Tracking_Area_List_PDU
);
2656 offset
+= 7; offset
>>= 3;
2659 static int dissect_Warning_Area_List_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2661 asn1_ctx_t asn1_ctx
;
2662 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2663 offset
= dissect_sbc_ap_Warning_Area_List(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Warning_Area_List_PDU
);
2664 offset
+= 7; offset
>>= 3;
2667 static int dissect_Warning_Message_Content_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2669 asn1_ctx_t asn1_ctx
;
2670 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2671 offset
= dissect_sbc_ap_Warning_Message_Content(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Warning_Message_Content_PDU
);
2672 offset
+= 7; offset
>>= 3;
2675 static int dissect_Warning_Area_Coordinates_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2677 asn1_ctx_t asn1_ctx
;
2678 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2679 offset
= dissect_sbc_ap_Warning_Area_Coordinates(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Warning_Area_Coordinates_PDU
);
2680 offset
+= 7; offset
>>= 3;
2683 static int dissect_Warning_Security_Information_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2685 asn1_ctx_t asn1_ctx
;
2686 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2687 offset
= dissect_sbc_ap_Warning_Security_Information(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Warning_Security_Information_PDU
);
2688 offset
+= 7; offset
>>= 3;
2691 static int dissect_Warning_Type_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2693 asn1_ctx_t asn1_ctx
;
2694 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2695 offset
= dissect_sbc_ap_Warning_Type(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Warning_Type_PDU
);
2696 offset
+= 7; offset
>>= 3;
2699 static int dissect_Warning_Area_List_5GS_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2701 asn1_ctx_t asn1_ctx
;
2702 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2703 offset
= dissect_sbc_ap_Warning_Area_List_5GS(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Warning_Area_List_5GS_PDU
);
2704 offset
+= 7; offset
>>= 3;
2707 static int dissect_Write_Replace_Warning_Request_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2709 asn1_ctx_t asn1_ctx
;
2710 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2711 offset
= dissect_sbc_ap_Write_Replace_Warning_Request(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Write_Replace_Warning_Request_PDU
);
2712 offset
+= 7; offset
>>= 3;
2715 static int dissect_Write_Replace_Warning_Response_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2717 asn1_ctx_t asn1_ctx
;
2718 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2719 offset
= dissect_sbc_ap_Write_Replace_Warning_Response(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Write_Replace_Warning_Response_PDU
);
2720 offset
+= 7; offset
>>= 3;
2723 static int dissect_Stop_Warning_Request_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2725 asn1_ctx_t asn1_ctx
;
2726 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2727 offset
= dissect_sbc_ap_Stop_Warning_Request(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Stop_Warning_Request_PDU
);
2728 offset
+= 7; offset
>>= 3;
2731 static int dissect_Stop_Warning_Response_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2733 asn1_ctx_t asn1_ctx
;
2734 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2735 offset
= dissect_sbc_ap_Stop_Warning_Response(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Stop_Warning_Response_PDU
);
2736 offset
+= 7; offset
>>= 3;
2739 static int dissect_Write_Replace_Warning_Indication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2741 asn1_ctx_t asn1_ctx
;
2742 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2743 offset
= dissect_sbc_ap_Write_Replace_Warning_Indication(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Write_Replace_Warning_Indication_PDU
);
2744 offset
+= 7; offset
>>= 3;
2747 static int dissect_Stop_Warning_Indication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2749 asn1_ctx_t asn1_ctx
;
2750 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2751 offset
= dissect_sbc_ap_Stop_Warning_Indication(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Stop_Warning_Indication_PDU
);
2752 offset
+= 7; offset
>>= 3;
2755 static int dissect_PWS_Restart_Indication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2757 asn1_ctx_t asn1_ctx
;
2758 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2759 offset
= dissect_sbc_ap_PWS_Restart_Indication(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_PWS_Restart_Indication_PDU
);
2760 offset
+= 7; offset
>>= 3;
2763 static int dissect_PWS_Failure_Indication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2765 asn1_ctx_t asn1_ctx
;
2766 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2767 offset
= dissect_sbc_ap_PWS_Failure_Indication(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_PWS_Failure_Indication_PDU
);
2768 offset
+= 7; offset
>>= 3;
2771 static int dissect_Error_Indication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2773 asn1_ctx_t asn1_ctx
;
2774 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2775 offset
= dissect_sbc_ap_Error_Indication(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_Error_Indication_PDU
);
2776 offset
+= 7; offset
>>= 3;
2779 static int dissect_SBC_AP_PDU_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2781 asn1_ctx_t asn1_ctx
;
2782 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2783 offset
= dissect_sbc_ap_SBC_AP_PDU(tvb
, offset
, &asn1_ctx
, tree
, hf_sbc_ap_SBC_AP_PDU_PDU
);
2784 offset
+= 7; offset
>>= 3;
2789 static int dissect_ProtocolIEFieldValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2791 return (dissector_try_uint(sbc_ap_ies_dissector_table
, ProtocolIE_ID
, tvb
, pinfo
, tree
)) ? tvb_captured_length(tvb
) : 0;
2793 /* Currently not used
2794 static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2796 return (dissector_try_uint(sbc_ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2799 static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2801 return (dissector_try_uint(sbc_ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
2805 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2807 return (dissector_try_uint(sbc_ap_extension_dissector_table
, ProtocolExtensionID
, tvb
, pinfo
, tree
)) ? tvb_captured_length(tvb
) : 0;
2810 static int dissect_InitiatingMessageValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2812 return (dissector_try_uint(sbc_ap_proc_imsg_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
)) ? tvb_captured_length(tvb
) : 0;
2815 static int dissect_SuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2817 return (dissector_try_uint(sbc_ap_proc_sout_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
)) ? tvb_captured_length(tvb
) : 0;
2820 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2822 return (dissector_try_uint(sbc_ap_proc_uout_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
)) ? tvb_captured_length(tvb
) : 0;
2827 dissect_sbc_ap(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
2829 proto_item
*sbc_ap_item
= NULL
;
2830 proto_tree
*sbc_ap_tree
= NULL
;
2832 /* make entry in the Protocol column on summary display */
2833 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, PSNAME
);
2834 col_clear(pinfo
->cinfo
, COL_INFO
);
2836 /* create the sbc_ap protocol tree */
2837 sbc_ap_item
= proto_tree_add_item(tree
, proto_sbc_ap
, tvb
, 0, -1, ENC_NA
);
2838 sbc_ap_tree
= proto_item_add_subtree(sbc_ap_item
, ett_sbc_ap
);
2840 dissect_SBC_AP_PDU_PDU(tvb
, pinfo
, sbc_ap_tree
, NULL
);
2842 return tvb_captured_length(tvb
);
2844 /*--- proto_register_sbc_ap -------------------------------------------*/
2845 void proto_register_sbc_ap(void) {
2847 /* List of fields */
2848 static hf_register_info hf
[] = {
2849 { &hf_sbc_ap_Serial_Number_gs
,
2850 { "Geographical Scope", "sbc_ap.SerialNumber.gs",
2851 FT_UINT16
, BASE_DEC
, VALS(s1ap_serialNumber_gs_vals
), 0xc000,
2853 { &hf_sbc_ap_Serial_Number_msg_code
,
2854 { "Message Code", "sbc_ap.SerialNumber.msg_code",
2855 FT_UINT16
, BASE_DEC
, NULL
, 0x3ff0,
2857 { &hf_sbc_ap_Serial_Number_upd_nb
,
2858 { "Update Number", "sbc_ap.SerialNumber.upd_nb",
2859 FT_UINT16
, BASE_DEC
, NULL
, 0x000f,
2861 { &hf_sbc_ap_Warning_Type_value
,
2862 { "Warning Type Value", "sbc-ap.WarningType.value",
2863 FT_UINT16
, BASE_DEC
, VALS(s1ap_warningType_vals
), 0xfe00,
2865 { &hf_sbc_ap_Warning_Type_emergency_user_alert
,
2866 { "Emergency User Alert", "sbc-ap.WarningType.emergency_user_alert",
2867 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0100,
2869 { &hf_sbc_ap_Warning_Type_popup
,
2870 { "Popup", "sbc-ap.WarningType.popup",
2871 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0080,
2873 { &hf_sbc_ap_Warning_Message_Contents_nb_pages
,
2874 { "Number of Pages", "sbc-ap.WarningMessageContents.nb_pages",
2875 FT_UINT8
, BASE_DEC
, NULL
, 0,
2877 { &hf_sbc_ap_Warning_Message_Contents_decoded_page
,
2878 { "Decoded Page", "sbc-ap.WarningMessageContents.decoded_page",
2879 FT_STRING
, BASE_NONE
, NULL
, 0,
2881 { &hf_sbc_ap_Broadcast_Scheduled_Area_List_PDU
,
2882 { "Broadcast-Scheduled-Area-List", "sbc-ap.Broadcast_Scheduled_Area_List_element",
2883 FT_NONE
, BASE_NONE
, NULL
, 0,
2885 { &hf_sbc_ap_Broadcast_Scheduled_Area_List_5GS_PDU
,
2886 { "Broadcast-Scheduled-Area-List-5GS", "sbc-ap.Broadcast_Scheduled_Area_List_5GS_element",
2887 FT_NONE
, BASE_NONE
, NULL
, 0,
2889 { &hf_sbc_ap_Broadcast_Cancelled_Area_List_PDU
,
2890 { "Broadcast-Cancelled-Area-List", "sbc-ap.Broadcast_Cancelled_Area_List_element",
2891 FT_NONE
, BASE_NONE
, NULL
, 0,
2893 { &hf_sbc_ap_Broadcast_Cancelled_Area_List_5GS_PDU
,
2894 { "Broadcast-Cancelled-Area-List-5GS", "sbc-ap.Broadcast_Cancelled_Area_List_5GS_element",
2895 FT_NONE
, BASE_NONE
, NULL
, 0,
2897 { &hf_sbc_ap_Broadcast_Empty_Area_List_PDU
,
2898 { "Broadcast-Empty-Area-List", "sbc-ap.Broadcast_Empty_Area_List",
2899 FT_UINT32
, BASE_DEC
, NULL
, 0,
2901 { &hf_sbc_ap_Broadcast_Empty_Area_List_5GS_PDU
,
2902 { "Broadcast-Empty-Area-List-5GS", "sbc-ap.Broadcast_Empty_Area_List_5GS",
2903 FT_UINT32
, BASE_DEC
, NULL
, 0,
2905 { &hf_sbc_ap_Cause_PDU
,
2906 { "Cause", "sbc-ap.Cause",
2907 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Cause_vals
), 0,
2909 { &hf_sbc_ap_Concurrent_Warning_Message_Indicator_PDU
,
2910 { "Concurrent-Warning-Message-Indicator", "sbc-ap.Concurrent_Warning_Message_Indicator",
2911 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Concurrent_Warning_Message_Indicator_vals
), 0,
2913 { &hf_sbc_ap_Criticality_Diagnostics_PDU
,
2914 { "Criticality-Diagnostics", "sbc-ap.Criticality_Diagnostics_element",
2915 FT_NONE
, BASE_NONE
, NULL
, 0,
2917 { &hf_sbc_ap_Data_Coding_Scheme_PDU
,
2918 { "Data-Coding-Scheme", "sbc-ap.Data_Coding_Scheme",
2919 FT_BYTES
, BASE_NONE
, NULL
, 0,
2921 { &hf_sbc_ap_Extended_Repetition_Period_PDU
,
2922 { "Extended-Repetition-Period", "sbc-ap.Extended_Repetition_Period",
2923 FT_UINT32
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_seconds
), 0,
2925 { &hf_sbc_ap_Failed_Cell_List_PDU
,
2926 { "Failed-Cell-List", "sbc-ap.Failed_Cell_List",
2927 FT_UINT32
, BASE_DEC
, NULL
, 0,
2929 { &hf_sbc_ap_Failed_Cell_List_NR_PDU
,
2930 { "Failed-Cell-List-NR", "sbc-ap.Failed_Cell_List_NR",
2931 FT_UINT32
, BASE_DEC
, NULL
, 0,
2933 { &hf_sbc_ap_Global_ENB_ID_PDU
,
2934 { "Global-ENB-ID", "sbc-ap.Global_ENB_ID_element",
2935 FT_NONE
, BASE_NONE
, NULL
, 0,
2937 { &hf_sbc_ap_Global_RAN_Node_ID_PDU
,
2938 { "Global-RAN-Node-ID", "sbc-ap.Global_RAN_Node_ID",
2939 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Global_RAN_Node_ID_vals
), 0,
2941 { &hf_sbc_ap_Global_GNB_ID_PDU
,
2942 { "Global-GNB-ID", "sbc-ap.Global_GNB_ID_element",
2943 FT_NONE
, BASE_NONE
, NULL
, 0,
2945 { &hf_sbc_ap_List_of_TAIs_PDU
,
2946 { "List-of-TAIs", "sbc-ap.List_of_TAIs",
2947 FT_UINT32
, BASE_DEC
, NULL
, 0,
2949 { &hf_sbc_ap_List_of_TAIs_Restart_PDU
,
2950 { "List-of-TAIs-Restart", "sbc-ap.List_of_TAIs_Restart",
2951 FT_UINT32
, BASE_DEC
, NULL
, 0,
2953 { &hf_sbc_ap_List_of_EAIs_Restart_PDU
,
2954 { "List-of-EAIs-Restart", "sbc-ap.List_of_EAIs_Restart",
2955 FT_UINT32
, BASE_DEC
, NULL
, 0,
2957 { &hf_sbc_ap_List_of_5GS_TAIs_PDU
,
2958 { "List-of-5GS-TAIs", "sbc-ap.List_of_5GS_TAIs",
2959 FT_UINT32
, BASE_DEC
, NULL
, 0,
2961 { &hf_sbc_ap_List_of_5GS_TAI_for_Restart_PDU
,
2962 { "List-of-5GS-TAI-for-Restart", "sbc-ap.List_of_5GS_TAI_for_Restart",
2963 FT_UINT32
, BASE_DEC
, NULL
, 0,
2965 { &hf_sbc_ap_Message_Identifier_PDU
,
2966 { "Message-Identifier", "sbc-ap.Message_Identifier",
2967 FT_UINT16
, BASE_DEC
|BASE_EXT_STRING
, <e_rrc_messageIdentifier_vals_ext
, 0,
2969 { &hf_sbc_ap_Number_of_Broadcasts_Requested_PDU
,
2970 { "Number-of-Broadcasts-Requested", "sbc-ap.Number_of_Broadcasts_Requested",
2971 FT_UINT32
, BASE_DEC
, NULL
, 0,
2973 { &hf_sbc_ap_Omc_Id_PDU
,
2974 { "Omc-Id", "sbc-ap.Omc_Id",
2975 FT_BYTES
, BASE_NONE
, NULL
, 0,
2977 { &hf_sbc_ap_Repetition_Period_PDU
,
2978 { "Repetition-Period", "sbc-ap.Repetition_Period",
2979 FT_UINT32
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_seconds
), 0,
2981 { &hf_sbc_ap_Restarted_Cell_List_PDU
,
2982 { "Restarted-Cell-List", "sbc-ap.Restarted_Cell_List",
2983 FT_UINT32
, BASE_DEC
, NULL
, 0,
2985 { &hf_sbc_ap_RAT_Selector_5GS_PDU
,
2986 { "RAT-Selector-5GS", "sbc-ap.RAT_Selector_5GS",
2987 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_RAT_Selector_5GS_vals
), 0,
2989 { &hf_sbc_ap_Restarted_Cell_List_NR_PDU
,
2990 { "Restarted-Cell-List-NR", "sbc-ap.Restarted_Cell_List_NR",
2991 FT_UINT32
, BASE_DEC
, NULL
, 0,
2993 { &hf_sbc_ap_Send_Write_Replace_Warning_Indication_PDU
,
2994 { "Send-Write-Replace-Warning-Indication", "sbc-ap.Send_Write_Replace_Warning_Indication",
2995 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Send_Write_Replace_Warning_Indication_vals
), 0,
2997 { &hf_sbc_ap_Send_Stop_Warning_Indication_PDU
,
2998 { "Send-Stop-Warning-Indication", "sbc-ap.Send_Stop_Warning_Indication",
2999 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Send_Stop_Warning_Indication_vals
), 0,
3001 { &hf_sbc_ap_Serial_Number_PDU
,
3002 { "Serial-Number", "sbc-ap.Serial_Number",
3003 FT_BYTES
, BASE_NONE
, NULL
, 0,
3005 { &hf_sbc_ap_Stop_All_Indicator_PDU
,
3006 { "Stop-All-Indicator", "sbc-ap.Stop_All_Indicator",
3007 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Stop_All_Indicator_vals
), 0,
3009 { &hf_sbc_ap_Unknown_5GS_Tracking_Area_List_PDU
,
3010 { "Unknown-5GS-Tracking-Area-List", "sbc-ap.Unknown_5GS_Tracking_Area_List",
3011 FT_UINT32
, BASE_DEC
, NULL
, 0,
3013 { &hf_sbc_ap_Warning_Area_List_PDU
,
3014 { "Warning-Area-List", "sbc-ap.Warning_Area_List",
3015 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Warning_Area_List_vals
), 0,
3017 { &hf_sbc_ap_Warning_Message_Content_PDU
,
3018 { "Warning-Message-Content", "sbc-ap.Warning_Message_Content",
3019 FT_BYTES
, BASE_NONE
, NULL
, 0,
3021 { &hf_sbc_ap_Warning_Area_Coordinates_PDU
,
3022 { "Warning-Area-Coordinates", "sbc-ap.Warning_Area_Coordinates",
3023 FT_BYTES
, BASE_NONE
, NULL
, 0,
3025 { &hf_sbc_ap_Warning_Security_Information_PDU
,
3026 { "Warning-Security-Information", "sbc-ap.Warning_Security_Information",
3027 FT_BYTES
, BASE_NONE
, NULL
, 0,
3029 { &hf_sbc_ap_Warning_Type_PDU
,
3030 { "Warning-Type", "sbc-ap.Warning_Type",
3031 FT_BYTES
, BASE_NONE
, NULL
, 0,
3033 { &hf_sbc_ap_Warning_Area_List_5GS_PDU
,
3034 { "Warning-Area-List-5GS", "sbc-ap.Warning_Area_List_5GS",
3035 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Warning_Area_List_5GS_vals
), 0,
3037 { &hf_sbc_ap_Write_Replace_Warning_Request_PDU
,
3038 { "Write-Replace-Warning-Request", "sbc-ap.Write_Replace_Warning_Request_element",
3039 FT_NONE
, BASE_NONE
, NULL
, 0,
3041 { &hf_sbc_ap_Write_Replace_Warning_Response_PDU
,
3042 { "Write-Replace-Warning-Response", "sbc-ap.Write_Replace_Warning_Response_element",
3043 FT_NONE
, BASE_NONE
, NULL
, 0,
3045 { &hf_sbc_ap_Stop_Warning_Request_PDU
,
3046 { "Stop-Warning-Request", "sbc-ap.Stop_Warning_Request_element",
3047 FT_NONE
, BASE_NONE
, NULL
, 0,
3049 { &hf_sbc_ap_Stop_Warning_Response_PDU
,
3050 { "Stop-Warning-Response", "sbc-ap.Stop_Warning_Response_element",
3051 FT_NONE
, BASE_NONE
, NULL
, 0,
3053 { &hf_sbc_ap_Write_Replace_Warning_Indication_PDU
,
3054 { "Write-Replace-Warning-Indication", "sbc-ap.Write_Replace_Warning_Indication_element",
3055 FT_NONE
, BASE_NONE
, NULL
, 0,
3057 { &hf_sbc_ap_Stop_Warning_Indication_PDU
,
3058 { "Stop-Warning-Indication", "sbc-ap.Stop_Warning_Indication_element",
3059 FT_NONE
, BASE_NONE
, NULL
, 0,
3061 { &hf_sbc_ap_PWS_Restart_Indication_PDU
,
3062 { "PWS-Restart-Indication", "sbc-ap.PWS_Restart_Indication_element",
3063 FT_NONE
, BASE_NONE
, NULL
, 0,
3065 { &hf_sbc_ap_PWS_Failure_Indication_PDU
,
3066 { "PWS-Failure-Indication", "sbc-ap.PWS_Failure_Indication_element",
3067 FT_NONE
, BASE_NONE
, NULL
, 0,
3069 { &hf_sbc_ap_Error_Indication_PDU
,
3070 { "Error-Indication", "sbc-ap.Error_Indication_element",
3071 FT_NONE
, BASE_NONE
, NULL
, 0,
3073 { &hf_sbc_ap_SBC_AP_PDU_PDU
,
3074 { "SBC-AP-PDU", "sbc-ap.SBC_AP_PDU",
3075 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_SBC_AP_PDU_vals
), 0,
3077 { &hf_sbc_ap_ProtocolIE_Container_item
,
3078 { "ProtocolIE-Field", "sbc-ap.ProtocolIE_Field_element",
3079 FT_NONE
, BASE_NONE
, NULL
, 0,
3082 { "id", "sbc-ap.id",
3083 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_ProtocolIE_ID_vals
), 0,
3084 "ProtocolIE_ID", HFILL
}},
3085 { &hf_sbc_ap_criticality
,
3086 { "criticality", "sbc-ap.criticality",
3087 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Criticality_vals
), 0,
3089 { &hf_sbc_ap_ie_field_value
,
3090 { "value", "sbc-ap.value_element",
3091 FT_NONE
, BASE_NONE
, NULL
, 0,
3092 "T_ie_field_value", HFILL
}},
3093 { &hf_sbc_ap_ProtocolExtensionContainer_item
,
3094 { "ProtocolExtensionField", "sbc-ap.ProtocolExtensionField_element",
3095 FT_NONE
, BASE_NONE
, NULL
, 0,
3097 { &hf_sbc_ap_ext_id
,
3098 { "id", "sbc-ap.id",
3099 FT_UINT8
, BASE_DEC
, VALS(sbc_ap_ProtocolIE_ID_vals
), 0,
3100 "ProtocolExtensionID", HFILL
}},
3101 { &hf_sbc_ap_extensionValue
,
3102 { "extensionValue", "sbc-ap.extensionValue_element",
3103 FT_NONE
, BASE_NONE
, NULL
, 0,
3105 { &hf_sbc_ap_cellId_Broadcast_List
,
3106 { "cellId-Broadcast-List", "sbc-ap.cellId_Broadcast_List",
3107 FT_UINT32
, BASE_DEC
, NULL
, 0,
3109 { &hf_sbc_ap_tAI_Broadcast_List
,
3110 { "tAI-Broadcast-List", "sbc-ap.tAI_Broadcast_List",
3111 FT_UINT32
, BASE_DEC
, NULL
, 0,
3113 { &hf_sbc_ap_emergencyAreaID_Broadcast_List
,
3114 { "emergencyAreaID-Broadcast-List", "sbc-ap.emergencyAreaID_Broadcast_List",
3115 FT_UINT32
, BASE_DEC
, NULL
, 0,
3117 { &hf_sbc_ap_iE_Extensions
,
3118 { "iE-Extensions", "sbc-ap.iE_Extensions",
3119 FT_UINT32
, BASE_DEC
, NULL
, 0,
3120 "ProtocolExtensionContainer", HFILL
}},
3121 { &hf_sbc_ap_cellId_Broadcast_List_5GS
,
3122 { "cellId-Broadcast-List-5GS", "sbc-ap.cellId_Broadcast_List_5GS",
3123 FT_UINT32
, BASE_DEC
, NULL
, 0,
3125 { &hf_sbc_ap_tAI_Broadcast_List_5GS
,
3126 { "tAI-Broadcast-List-5GS", "sbc-ap.tAI_Broadcast_List_5GS",
3127 FT_UINT32
, BASE_DEC
, NULL
, 0,
3129 { &hf_sbc_ap_cellID_Cancelled_List
,
3130 { "cellID-Cancelled-List", "sbc-ap.cellID_Cancelled_List",
3131 FT_UINT32
, BASE_DEC
, NULL
, 0,
3133 { &hf_sbc_ap_tAI_Cancelled_List
,
3134 { "tAI-Cancelled-List", "sbc-ap.tAI_Cancelled_List",
3135 FT_UINT32
, BASE_DEC
, NULL
, 0,
3137 { &hf_sbc_ap_emergencyAreaID_Cancelled_List
,
3138 { "emergencyAreaID-Cancelled-List", "sbc-ap.emergencyAreaID_Cancelled_List",
3139 FT_UINT32
, BASE_DEC
, NULL
, 0,
3141 { &hf_sbc_ap_cellID_Cancelled_List_5GS
,
3142 { "cellID-Cancelled-List-5GS", "sbc-ap.cellID_Cancelled_List_5GS",
3143 FT_UINT32
, BASE_DEC
, NULL
, 0,
3145 { &hf_sbc_ap_tAI_Cancelled_List_5GS
,
3146 { "tAI-Cancelled-List-5GS", "sbc-ap.tAI_Cancelled_List_5GS",
3147 FT_UINT32
, BASE_DEC
, NULL
, 0,
3149 { &hf_sbc_ap_Broadcast_Empty_Area_List_item
,
3150 { "Global-ENB-ID", "sbc-ap.Global_ENB_ID_element",
3151 FT_NONE
, BASE_NONE
, NULL
, 0,
3153 { &hf_sbc_ap_Broadcast_Empty_Area_List_5GS_item
,
3154 { "Global-RAN-Node-ID", "sbc-ap.Global_RAN_Node_ID",
3155 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Global_RAN_Node_ID_vals
), 0,
3157 { &hf_sbc_ap_CancelledCellinEAI_item
,
3158 { "CancelledCellinEAI-Item", "sbc-ap.CancelledCellinEAI_Item_element",
3159 FT_NONE
, BASE_NONE
, NULL
, 0,
3162 { "eCGI", "sbc-ap.eCGI_element",
3163 FT_NONE
, BASE_NONE
, NULL
, 0,
3164 "EUTRAN_CGI", HFILL
}},
3165 { &hf_sbc_ap_numberOfBroadcasts
,
3166 { "numberOfBroadcasts", "sbc-ap.numberOfBroadcasts",
3167 FT_UINT32
, BASE_DEC
, NULL
, 0,
3169 { &hf_sbc_ap_CancelledCellinTAI_item
,
3170 { "CancelledCellinTAI-Item", "sbc-ap.CancelledCellinTAI_Item_element",
3171 FT_NONE
, BASE_NONE
, NULL
, 0,
3173 { &hf_sbc_ap_CancelledCellinTAI_5GS_item
,
3174 { "CancelledCellinTAI-5GS item", "sbc-ap.CancelledCellinTAI_5GS_item_element",
3175 FT_NONE
, BASE_NONE
, NULL
, 0,
3177 { &hf_sbc_ap_nR_CGI
,
3178 { "nR-CGI", "sbc-ap.nR_CGI_element",
3179 FT_NONE
, BASE_NONE
, NULL
, 0,
3181 { &hf_sbc_ap_CellId_Broadcast_List_item
,
3182 { "CellId-Broadcast-List-Item", "sbc-ap.CellId_Broadcast_List_Item_element",
3183 FT_NONE
, BASE_NONE
, NULL
, 0,
3185 { &hf_sbc_ap_CellId_Broadcast_List_5GS_item
,
3186 { "CellId-Broadcast-List-5GS item", "sbc-ap.CellId_Broadcast_List_5GS_item_element",
3187 FT_NONE
, BASE_NONE
, NULL
, 0,
3189 { &hf_sbc_ap_CellID_Cancelled_List_item
,
3190 { "CellID-Cancelled-Item", "sbc-ap.CellID_Cancelled_Item_element",
3191 FT_NONE
, BASE_NONE
, NULL
, 0,
3193 { &hf_sbc_ap_CellID_Cancelled_List_5GS_item
,
3194 { "CellID-Cancelled-List-5GS item", "sbc-ap.CellID_Cancelled_List_5GS_item_element",
3195 FT_NONE
, BASE_NONE
, NULL
, 0,
3197 { &hf_sbc_ap_procedureCode
,
3198 { "procedureCode", "sbc-ap.procedureCode",
3199 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_ProcedureCode_vals
), 0,
3201 { &hf_sbc_ap_triggeringMessage
,
3202 { "triggeringMessage", "sbc-ap.triggeringMessage",
3203 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_TriggeringMessage_vals
), 0,
3205 { &hf_sbc_ap_procedureCriticality
,
3206 { "procedureCriticality", "sbc-ap.procedureCriticality",
3207 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Criticality_vals
), 0,
3208 "Criticality", HFILL
}},
3209 { &hf_sbc_ap_iE_CriticalityDiagnostics
,
3210 { "iE-CriticalityDiagnostics", "sbc-ap.iE_CriticalityDiagnostics",
3211 FT_UINT32
, BASE_DEC
, NULL
, 0,
3212 "CriticalityDiagnostics_IE_List", HFILL
}},
3213 { &hf_sbc_ap_CriticalityDiagnostics_IE_List_item
,
3214 { "CriticalityDiagnostics-IE-List item", "sbc-ap.CriticalityDiagnostics_IE_List_item_element",
3215 FT_NONE
, BASE_NONE
, NULL
, 0,
3217 { &hf_sbc_ap_iECriticality
,
3218 { "iECriticality", "sbc-ap.iECriticality",
3219 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_Criticality_vals
), 0,
3220 "Criticality", HFILL
}},
3222 { "iE-ID", "sbc-ap.iE_ID",
3223 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_ProtocolIE_ID_vals
), 0,
3224 "ProtocolIE_ID", HFILL
}},
3225 { &hf_sbc_ap_typeOfError
,
3226 { "typeOfError", "sbc-ap.typeOfError",
3227 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_TypeOfError_vals
), 0,
3229 { &hf_sbc_ap_ECGIList_item
,
3230 { "EUTRAN-CGI", "sbc-ap.EUTRAN_CGI_element",
3231 FT_NONE
, BASE_NONE
, NULL
, 0,
3233 { &hf_sbc_ap_Emergency_Area_ID_List_item
,
3234 { "Emergency-Area-ID", "sbc-ap.Emergency_Area_ID",
3235 FT_BYTES
, BASE_NONE
, NULL
, 0,
3237 { &hf_sbc_ap_EmergencyAreaID_Broadcast_List_item
,
3238 { "EmergencyAreaID-Broadcast-List-Item", "sbc-ap.EmergencyAreaID_Broadcast_List_Item_element",
3239 FT_NONE
, BASE_NONE
, NULL
, 0,
3241 { &hf_sbc_ap_emergencyAreaID
,
3242 { "emergencyAreaID", "sbc-ap.emergencyAreaID",
3243 FT_BYTES
, BASE_NONE
, NULL
, 0,
3244 "Emergency_Area_ID", HFILL
}},
3245 { &hf_sbc_ap_scheduledCellinEAI
,
3246 { "scheduledCellinEAI", "sbc-ap.scheduledCellinEAI",
3247 FT_UINT32
, BASE_DEC
, NULL
, 0,
3249 { &hf_sbc_ap_EmergencyAreaID_Cancelled_List_item
,
3250 { "EmergencyAreaID-Cancelled-Item", "sbc-ap.EmergencyAreaID_Cancelled_Item_element",
3251 FT_NONE
, BASE_NONE
, NULL
, 0,
3253 { &hf_sbc_ap_cancelledCellinEAI
,
3254 { "cancelledCellinEAI", "sbc-ap.cancelledCellinEAI",
3255 FT_UINT32
, BASE_DEC
, NULL
, 0,
3257 { &hf_sbc_ap_pLMNidentity
,
3258 { "pLMNidentity", "sbc-ap.pLMNidentity",
3259 FT_BYTES
, BASE_NONE
, NULL
, 0,
3261 { &hf_sbc_ap_cell_ID
,
3262 { "cell-ID", "sbc-ap.cell_ID",
3263 FT_BYTES
, BASE_NONE
, NULL
, 0,
3264 "CellIdentity", HFILL
}},
3265 { &hf_sbc_ap_macroENB_ID
,
3266 { "macroENB-ID", "sbc-ap.macroENB_ID",
3267 FT_BYTES
, BASE_NONE
, NULL
, 0,
3268 "BIT_STRING_SIZE_20", HFILL
}},
3269 { &hf_sbc_ap_homeENB_ID
,
3270 { "homeENB-ID", "sbc-ap.homeENB_ID",
3271 FT_BYTES
, BASE_NONE
, NULL
, 0,
3272 "BIT_STRING_SIZE_28", HFILL
}},
3273 { &hf_sbc_ap_short_macroENB_ID
,
3274 { "short-macroENB-ID", "sbc-ap.short_macroENB_ID",
3275 FT_BYTES
, BASE_NONE
, NULL
, 0,
3276 "BIT_STRING_SIZE_18", HFILL
}},
3277 { &hf_sbc_ap_long_macroENB_ID
,
3278 { "long-macroENB-ID", "sbc-ap.long_macroENB_ID",
3279 FT_BYTES
, BASE_NONE
, NULL
, 0,
3280 "BIT_STRING_SIZE_21", HFILL
}},
3281 { &hf_sbc_ap_Failed_Cell_List_item
,
3282 { "EUTRAN-CGI", "sbc-ap.EUTRAN_CGI_element",
3283 FT_NONE
, BASE_NONE
, NULL
, 0,
3285 { &hf_sbc_ap_Failed_Cell_List_NR_item
,
3286 { "NR-CGI", "sbc-ap.NR_CGI_element",
3287 FT_NONE
, BASE_NONE
, NULL
, 0,
3289 { &hf_sbc_ap_eNB_ID
,
3290 { "eNB-ID", "sbc-ap.eNB_ID",
3291 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_ENB_ID_vals
), 0,
3293 { &hf_sbc_ap_global_GNB_ID
,
3294 { "global-GNB-ID", "sbc-ap.global_GNB_ID_element",
3295 FT_NONE
, BASE_NONE
, NULL
, 0,
3297 { &hf_sbc_ap_global_NgENB_ID
,
3298 { "global-NgENB-ID", "sbc-ap.global_NgENB_ID_element",
3299 FT_NONE
, BASE_NONE
, NULL
, 0,
3301 { &hf_sbc_ap_gNB_ID
,
3302 { "gNB-ID", "sbc-ap.gNB_ID",
3303 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_GNB_ID_vals
), 0,
3305 { &hf_sbc_ap_gNB_ID_01
,
3306 { "gNB-ID", "sbc-ap.gNB_ID",
3307 FT_BYTES
, BASE_NONE
, NULL
, 0,
3308 "BIT_STRING_SIZE_22_32", HFILL
}},
3309 { &hf_sbc_ap_ngENB_ID
,
3310 { "ngENB-ID", "sbc-ap.ngENB_ID",
3311 FT_UINT32
, BASE_DEC
, VALS(sbc_ap_ENB_ID_vals
), 0,
3313 { &hf_sbc_ap_List_of_TAIs_item
,
3314 { "List-of-TAIs item", "sbc-ap.List_of_TAIs_item_element",
3315 FT_NONE
, BASE_NONE
, NULL
, 0,
3318 { "tai", "sbc-ap.tai_element",
3319 FT_NONE
, BASE_NONE
, NULL
, 0,
3321 { &hf_sbc_ap_List_of_TAIs_Restart_item
,
3322 { "List-of-TAIs-Restart item", "sbc-ap.List_of_TAIs_Restart_item_element",
3323 FT_NONE
, BASE_NONE
, NULL
, 0,
3325 { &hf_sbc_ap_List_of_EAIs_Restart_item
,
3326 { "Emergency-Area-ID", "sbc-ap.Emergency_Area_ID",
3327 FT_BYTES
, BASE_NONE
, NULL
, 0,
3329 { &hf_sbc_ap_List_of_5GS_TAIs_item
,
3330 { "TAI-5GS", "sbc-ap.TAI_5GS_element",
3331 FT_NONE
, BASE_NONE
, NULL
, 0,
3333 { &hf_sbc_ap_List_of_5GS_TAI_for_Restart_item
,
3334 { "TAI-5GS", "sbc-ap.TAI_5GS_element",
3335 FT_NONE
, BASE_NONE
, NULL
, 0,
3337 { &hf_sbc_ap_NR_CGIList_item
,
3338 { "NR-CGI", "sbc-ap.NR_CGI_element",
3339 FT_NONE
, BASE_NONE
, NULL
, 0,
3341 { &hf_sbc_ap_nRCellIdentity
,
3342 { "nRCellIdentity", "sbc-ap.nRCellIdentity",
3343 FT_BYTES
, BASE_NONE
, NULL
, 0,
3345 { &hf_sbc_ap_Restarted_Cell_List_item
,
3346 { "EUTRAN-CGI", "sbc-ap.EUTRAN_CGI_element",
3347 FT_NONE
, BASE_NONE
, NULL
, 0,
3349 { &hf_sbc_ap_Restarted_Cell_List_NR_item
,
3350 { "NR-CGI", "sbc-ap.NR_CGI_element",
3351 FT_NONE
, BASE_NONE
, NULL
, 0,
3353 { &hf_sbc_ap_ScheduledCellinEAI_item
,
3354 { "ScheduledCellinEAI-Item", "sbc-ap.ScheduledCellinEAI_Item_element",
3355 FT_NONE
, BASE_NONE
, NULL
, 0,
3357 { &hf_sbc_ap_ScheduledCellinTAI_item
,
3358 { "ScheduledCellinTAI-Item", "sbc-ap.ScheduledCellinTAI_Item_element",
3359 FT_NONE
, BASE_NONE
, NULL
, 0,
3361 { &hf_sbc_ap_ScheduledCellinTAI_5GS_item
,
3362 { "ScheduledCellinTAI-5GS item", "sbc-ap.ScheduledCellinTAI_5GS_item_element",
3363 FT_NONE
, BASE_NONE
, NULL
, 0,
3365 { &hf_sbc_ap_TAI_Broadcast_List_item
,
3366 { "TAI-Broadcast-List-Item", "sbc-ap.TAI_Broadcast_List_Item_element",
3367 FT_NONE
, BASE_NONE
, NULL
, 0,
3370 { "tAI", "sbc-ap.tAI_element",
3371 FT_NONE
, BASE_NONE
, NULL
, 0,
3373 { &hf_sbc_ap_scheduledCellinTAI
,
3374 { "scheduledCellinTAI", "sbc-ap.scheduledCellinTAI",
3375 FT_UINT32
, BASE_DEC
, NULL
, 0,
3377 { &hf_sbc_ap_TAI_Broadcast_List_5GS_item
,
3378 { "TAI-Broadcast-List-5GS item", "sbc-ap.TAI_Broadcast_List_5GS_item_element",
3379 FT_NONE
, BASE_NONE
, NULL
, 0,
3381 { &hf_sbc_ap_tAI_5GS
,
3382 { "tAI-5GS", "sbc-ap.tAI_5GS_element",
3383 FT_NONE
, BASE_NONE
, NULL
, 0,
3385 { &hf_sbc_ap_scheduledCellinTAI_5GS
,
3386 { "scheduledCellinTAI-5GS", "sbc-ap.scheduledCellinTAI_5GS",
3387 FT_UINT32
, BASE_DEC
, NULL
, 0,
3389 { &hf_sbc_ap_TAI_Cancelled_List_item
,
3390 { "TAI-Cancelled-List-Item", "sbc-ap.TAI_Cancelled_List_Item_element",
3391 FT_NONE
, BASE_NONE
, NULL
, 0,
3393 { &hf_sbc_ap_cancelledCellinTAI
,
3394 { "cancelledCellinTAI", "sbc-ap.cancelledCellinTAI",
3395 FT_UINT32
, BASE_DEC
, NULL
, 0,
3397 { &hf_sbc_ap_TAI_Cancelled_List_5GS_item
,
3398 { "TAI-Cancelled-List-5GS item", "sbc-ap.TAI_Cancelled_List_5GS_item_element",
3399 FT_NONE
, BASE_NONE
, NULL
, 0,
3401 { &hf_sbc_ap_cancelledCellinTAI_5GS
,
3402 { "cancelledCellinTAI-5GS", "sbc-ap.cancelledCellinTAI_5GS",
3403 FT_UINT32
, BASE_DEC
, NULL
, 0,
3405 { &hf_sbc_ap_TAI_List_for_Warning_item
,
3406 { "TAI", "sbc-ap.TAI_element",
3407 FT_NONE
, BASE_NONE
, NULL
, 0,
3410 { "tAC", "sbc-ap.tAC",
3411 FT_UINT16
, BASE_DEC_HEX
, NULL
, 0,
3413 { &hf_sbc_ap_tAC_5GS
,
3414 { "tAC-5GS", "sbc-ap.tAC_5GS",
3415 FT_UINT24
, BASE_DEC_HEX
, NULL
, 0,
3417 { &hf_sbc_ap_Unknown_5GS_Tracking_Area_List_item
,
3418 { "TAI-5GS", "sbc-ap.TAI_5GS_element",
3419 FT_NONE
, BASE_NONE
, NULL
, 0,
3421 { &hf_sbc_ap_cell_ID_List
,
3422 { "cell-ID-List", "sbc-ap.cell_ID_List",
3423 FT_UINT32
, BASE_DEC
, NULL
, 0,
3424 "ECGIList", HFILL
}},
3425 { &hf_sbc_ap_tracking_Area_List_for_Warning
,
3426 { "tracking-Area-List-for-Warning", "sbc-ap.tracking_Area_List_for_Warning",
3427 FT_UINT32
, BASE_DEC
, NULL
, 0,
3428 "TAI_List_for_Warning", HFILL
}},
3429 { &hf_sbc_ap_emergency_Area_ID_List
,
3430 { "emergency-Area-ID-List", "sbc-ap.emergency_Area_ID_List",
3431 FT_UINT32
, BASE_DEC
, NULL
, 0,
3433 { &hf_sbc_ap_nR_CGIList
,
3434 { "nR-CGIList", "sbc-ap.nR_CGIList",
3435 FT_UINT32
, BASE_DEC
, NULL
, 0,
3437 { &hf_sbc_ap_tAIList_5GS
,
3438 { "tAIList-5GS", "sbc-ap.tAIList_5GS_element",
3439 FT_NONE
, BASE_NONE
, NULL
, 0,
3440 "TAI_5GS", HFILL
}},
3441 { &hf_sbc_ap_emergencyAreaIDList
,
3442 { "emergencyAreaIDList", "sbc-ap.emergencyAreaIDList",
3443 FT_UINT32
, BASE_DEC
, NULL
, 0,
3444 "Emergency_Area_ID_List", HFILL
}},
3445 { &hf_sbc_ap_protocolIEs
,
3446 { "protocolIEs", "sbc-ap.protocolIEs",
3447 FT_UINT32
, BASE_DEC
, NULL
, 0,
3448 "ProtocolIE_Container", HFILL
}},
3449 { &hf_sbc_ap_protocolExtensions
,
3450 { "protocolExtensions", "sbc-ap.protocolExtensions",
3451 FT_UINT32
, BASE_DEC
, NULL
, 0,
3452 "ProtocolExtensionContainer", HFILL
}},
3453 { &hf_sbc_ap_initiatingMessage
,
3454 { "initiatingMessage", "sbc-ap.initiatingMessage_element",
3455 FT_NONE
, BASE_NONE
, NULL
, 0,
3457 { &hf_sbc_ap_successfulOutcome
,
3458 { "successfulOutcome", "sbc-ap.successfulOutcome_element",
3459 FT_NONE
, BASE_NONE
, NULL
, 0,
3461 { &hf_sbc_ap_unsuccessfulOutcome
,
3462 { "unsuccessfulOutcome", "sbc-ap.unsuccessfulOutcome_element",
3463 FT_NONE
, BASE_NONE
, NULL
, 0,
3465 { &hf_sbc_ap_initiatingMessagevalue
,
3466 { "value", "sbc-ap.value_element",
3467 FT_NONE
, BASE_NONE
, NULL
, 0,
3468 "InitiatingMessage_value", HFILL
}},
3469 { &hf_sbc_ap_successfulOutcome_value
,
3470 { "value", "sbc-ap.value_element",
3471 FT_NONE
, BASE_NONE
, NULL
, 0,
3472 "SuccessfulOutcome_value", HFILL
}},
3473 { &hf_sbc_ap_unsuccessfulOutcome_value
,
3474 { "value", "sbc-ap.value_element",
3475 FT_NONE
, BASE_NONE
, NULL
, 0,
3476 "UnsuccessfulOutcome_value", HFILL
}},
3479 /* List of subtrees */
3480 static int *ett
[] = {
3482 &ett_sbc_ap_Serial_Number
,
3483 &ett_sbc_ap_Warning_Type
,
3484 &ett_sbc_ap_Data_Coding_Scheme
,
3485 &ett_sbc_ap_Warning_Message_Contents
,
3486 &ett_sbc_ap_ProtocolIE_Container
,
3487 &ett_sbc_ap_ProtocolIE_Field
,
3488 &ett_sbc_ap_ProtocolExtensionContainer
,
3489 &ett_sbc_ap_ProtocolExtensionField
,
3490 &ett_sbc_ap_Broadcast_Scheduled_Area_List
,
3491 &ett_sbc_ap_Broadcast_Scheduled_Area_List_5GS
,
3492 &ett_sbc_ap_Broadcast_Cancelled_Area_List
,
3493 &ett_sbc_ap_Broadcast_Cancelled_Area_List_5GS
,
3494 &ett_sbc_ap_Broadcast_Empty_Area_List
,
3495 &ett_sbc_ap_Broadcast_Empty_Area_List_5GS
,
3496 &ett_sbc_ap_CancelledCellinEAI
,
3497 &ett_sbc_ap_CancelledCellinEAI_Item
,
3498 &ett_sbc_ap_CancelledCellinTAI
,
3499 &ett_sbc_ap_CancelledCellinTAI_Item
,
3500 &ett_sbc_ap_CancelledCellinTAI_5GS
,
3501 &ett_sbc_ap_CancelledCellinTAI_5GS_item
,
3502 &ett_sbc_ap_CellId_Broadcast_List
,
3503 &ett_sbc_ap_CellId_Broadcast_List_Item
,
3504 &ett_sbc_ap_CellId_Broadcast_List_5GS
,
3505 &ett_sbc_ap_CellId_Broadcast_List_5GS_item
,
3506 &ett_sbc_ap_CellID_Cancelled_List
,
3507 &ett_sbc_ap_CellID_Cancelled_Item
,
3508 &ett_sbc_ap_CellID_Cancelled_List_5GS
,
3509 &ett_sbc_ap_CellID_Cancelled_List_5GS_item
,
3510 &ett_sbc_ap_Criticality_Diagnostics
,
3511 &ett_sbc_ap_CriticalityDiagnostics_IE_List
,
3512 &ett_sbc_ap_CriticalityDiagnostics_IE_List_item
,
3513 &ett_sbc_ap_ECGIList
,
3514 &ett_sbc_ap_Emergency_Area_ID_List
,
3515 &ett_sbc_ap_EmergencyAreaID_Broadcast_List
,
3516 &ett_sbc_ap_EmergencyAreaID_Broadcast_List_Item
,
3517 &ett_sbc_ap_EmergencyAreaID_Cancelled_List
,
3518 &ett_sbc_ap_EmergencyAreaID_Cancelled_Item
,
3519 &ett_sbc_ap_EUTRAN_CGI
,
3521 &ett_sbc_ap_Failed_Cell_List
,
3522 &ett_sbc_ap_Failed_Cell_List_NR
,
3523 &ett_sbc_ap_Global_ENB_ID
,
3524 &ett_sbc_ap_Global_RAN_Node_ID
,
3525 &ett_sbc_ap_Global_GNB_ID
,
3527 &ett_sbc_ap_Global_NgENB_ID
,
3528 &ett_sbc_ap_List_of_TAIs
,
3529 &ett_sbc_ap_List_of_TAIs_item
,
3530 &ett_sbc_ap_List_of_TAIs_Restart
,
3531 &ett_sbc_ap_List_of_TAIs_Restart_item
,
3532 &ett_sbc_ap_List_of_EAIs_Restart
,
3533 &ett_sbc_ap_List_of_5GS_TAIs
,
3534 &ett_sbc_ap_List_of_5GS_TAI_for_Restart
,
3535 &ett_sbc_ap_NR_CGIList
,
3537 &ett_sbc_ap_Restarted_Cell_List
,
3538 &ett_sbc_ap_Restarted_Cell_List_NR
,
3539 &ett_sbc_ap_ScheduledCellinEAI
,
3540 &ett_sbc_ap_ScheduledCellinEAI_Item
,
3541 &ett_sbc_ap_ScheduledCellinTAI
,
3542 &ett_sbc_ap_ScheduledCellinTAI_Item
,
3543 &ett_sbc_ap_ScheduledCellinTAI_5GS
,
3544 &ett_sbc_ap_ScheduledCellinTAI_5GS_item
,
3545 &ett_sbc_ap_TAI_Broadcast_List
,
3546 &ett_sbc_ap_TAI_Broadcast_List_Item
,
3547 &ett_sbc_ap_TAI_Broadcast_List_5GS
,
3548 &ett_sbc_ap_TAI_Broadcast_List_5GS_item
,
3549 &ett_sbc_ap_TAI_Cancelled_List
,
3550 &ett_sbc_ap_TAI_Cancelled_List_Item
,
3551 &ett_sbc_ap_TAI_Cancelled_List_5GS
,
3552 &ett_sbc_ap_TAI_Cancelled_List_5GS_item
,
3553 &ett_sbc_ap_TAI_List_for_Warning
,
3555 &ett_sbc_ap_TAI_5GS
,
3556 &ett_sbc_ap_Unknown_5GS_Tracking_Area_List
,
3557 &ett_sbc_ap_Warning_Area_List
,
3558 &ett_sbc_ap_Warning_Area_List_5GS
,
3559 &ett_sbc_ap_Write_Replace_Warning_Request
,
3560 &ett_sbc_ap_Write_Replace_Warning_Response
,
3561 &ett_sbc_ap_Stop_Warning_Request
,
3562 &ett_sbc_ap_Stop_Warning_Response
,
3563 &ett_sbc_ap_Write_Replace_Warning_Indication
,
3564 &ett_sbc_ap_Stop_Warning_Indication
,
3565 &ett_sbc_ap_PWS_Restart_Indication
,
3566 &ett_sbc_ap_PWS_Failure_Indication
,
3567 &ett_sbc_ap_Error_Indication
,
3568 &ett_sbc_ap_SBC_AP_PDU
,
3569 &ett_sbc_ap_InitiatingMessage
,
3570 &ett_sbc_ap_SuccessfulOutcome
,
3571 &ett_sbc_ap_UnsuccessfulOutcome
,
3575 /* Register protocol */
3576 proto_sbc_ap
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
3577 /* Register fields and subtrees */
3578 proto_register_field_array(proto_sbc_ap
, hf
, array_length(hf
));
3579 proto_register_subtree_array(ett
, array_length(ett
));
3581 /* Register dissector */
3582 sbc_ap_handle
= register_dissector(PFNAME
, dissect_sbc_ap
, proto_sbc_ap
);
3584 /* Register dissector tables */
3585 sbc_ap_ies_dissector_table
= register_dissector_table("sbc_ap.ies", "SBC-AP-PROTOCOL-IES", proto_sbc_ap
, FT_UINT32
, BASE_DEC
);
3586 sbc_ap_extension_dissector_table
= register_dissector_table("sbc_ap.extension", "SBC-AP-PROTOCOL-EXTENSION", proto_sbc_ap
, FT_UINT32
, BASE_DEC
);
3587 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 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 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
);
3595 /*--- proto_reg_handoff_sbc_ap ---------------------------------------*/
3597 proto_reg_handoff_sbc_ap(void)
3599 static bool inited
= false;
3600 static unsigned SctpPort
;
3603 dissector_add_uint("sctp.ppi", SBC_AP_PAYLOAD_PROTOCOL_ID
, sbc_ap_handle
);
3605 dissector_add_uint("sbc_ap.ies", id_Cause
, create_dissector_handle(dissect_Cause_PDU
, proto_sbc_ap
));
3606 dissector_add_uint("sbc_ap.ies", id_Criticality_Diagnostics
, create_dissector_handle(dissect_Criticality_Diagnostics_PDU
, proto_sbc_ap
));
3607 dissector_add_uint("sbc_ap.ies", id_Data_Coding_Scheme
, create_dissector_handle(dissect_Data_Coding_Scheme_PDU
, proto_sbc_ap
));
3608 dissector_add_uint("sbc_ap.ies", id_Message_Identifier
, create_dissector_handle(dissect_Message_Identifier_PDU
, proto_sbc_ap
));
3609 dissector_add_uint("sbc_ap.ies", id_Number_of_Broadcasts_Requested
, create_dissector_handle(dissect_Number_of_Broadcasts_Requested_PDU
, proto_sbc_ap
));
3610 dissector_add_uint("sbc_ap.ies", id_Repetition_Period
, create_dissector_handle(dissect_Repetition_Period_PDU
, proto_sbc_ap
));
3611 dissector_add_uint("sbc_ap.ies", id_Serial_Number
, create_dissector_handle(dissect_Serial_Number_PDU
, proto_sbc_ap
));
3612 dissector_add_uint("sbc_ap.ies", id_List_of_TAIs
, create_dissector_handle(dissect_List_of_TAIs_PDU
, proto_sbc_ap
));
3613 dissector_add_uint("sbc_ap.ies", id_Warning_Area_List
, create_dissector_handle(dissect_Warning_Area_List_PDU
, proto_sbc_ap
));
3614 dissector_add_uint("sbc_ap.ies", id_Warning_Message_Content
, create_dissector_handle(dissect_Warning_Message_Content_PDU
, proto_sbc_ap
));
3615 dissector_add_uint("sbc_ap.ies", id_Warning_Security_Information
, create_dissector_handle(dissect_Warning_Security_Information_PDU
, proto_sbc_ap
));
3616 dissector_add_uint("sbc_ap.ies", id_Warning_Type
, create_dissector_handle(dissect_Warning_Type_PDU
, proto_sbc_ap
));
3617 dissector_add_uint("sbc_ap.ies", id_Omc_Id
, create_dissector_handle(dissect_Omc_Id_PDU
, proto_sbc_ap
));
3618 dissector_add_uint("sbc_ap.ies", id_Concurrent_Warning_Message_Indicator
, create_dissector_handle(dissect_Concurrent_Warning_Message_Indicator_PDU
, proto_sbc_ap
));
3619 dissector_add_uint("sbc_ap.ies", id_Extended_Repetition_Period
, create_dissector_handle(dissect_Extended_Repetition_Period_PDU
, proto_sbc_ap
));
3620 dissector_add_uint("sbc_ap.ies", id_Unknown_Tracking_Area_List
, create_dissector_handle(dissect_List_of_TAIs_PDU
, proto_sbc_ap
));
3621 dissector_add_uint("sbc_ap.ies", id_Broadcast_Scheduled_Area_List
, create_dissector_handle(dissect_Broadcast_Scheduled_Area_List_PDU
, proto_sbc_ap
));
3622 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 dissector_add_uint("sbc_ap.ies", id_Broadcast_Cancelled_Area_List
, create_dissector_handle(dissect_Broadcast_Cancelled_Area_List_PDU
, proto_sbc_ap
));
3624 dissector_add_uint("sbc_ap.ies", id_Send_Stop_Warning_Indication
, create_dissector_handle(dissect_Send_Stop_Warning_Indication_PDU
, proto_sbc_ap
));
3625 dissector_add_uint("sbc_ap.ies", id_Stop_All_Indicator
, create_dissector_handle(dissect_Stop_All_Indicator_PDU
, proto_sbc_ap
));
3626 dissector_add_uint("sbc_ap.ies", id_Global_ENB_ID
, create_dissector_handle(dissect_Global_ENB_ID_PDU
, proto_sbc_ap
));
3627 dissector_add_uint("sbc_ap.ies", id_Broadcast_Empty_Area_List
, create_dissector_handle(dissect_Broadcast_Empty_Area_List_PDU
, proto_sbc_ap
));
3628 dissector_add_uint("sbc_ap.ies", id_Restarted_Cell_List
, create_dissector_handle(dissect_Restarted_Cell_List_PDU
, proto_sbc_ap
));
3629 dissector_add_uint("sbc_ap.ies", id_List_of_TAIs_Restart
, create_dissector_handle(dissect_List_of_TAIs_Restart_PDU
, proto_sbc_ap
));
3630 dissector_add_uint("sbc_ap.ies", id_List_of_EAIs_Restart
, create_dissector_handle(dissect_List_of_EAIs_Restart_PDU
, proto_sbc_ap
));
3631 dissector_add_uint("sbc_ap.ies", id_Failed_Cell_List
, create_dissector_handle(dissect_Failed_Cell_List_PDU
, proto_sbc_ap
));
3632 dissector_add_uint("sbc_ap.extension", id_List_of_5GS_TAIs
, create_dissector_handle(dissect_List_of_5GS_TAIs_PDU
, proto_sbc_ap
));
3633 dissector_add_uint("sbc_ap.extension", id_Warning_Area_List_5GS
, create_dissector_handle(dissect_Warning_Area_List_5GS_PDU
, proto_sbc_ap
));
3634 dissector_add_uint("sbc_ap.extension", id_Global_RAN_Node_ID
, create_dissector_handle(dissect_Global_RAN_Node_ID_PDU
, proto_sbc_ap
));
3635 dissector_add_uint("sbc_ap.extension", id_Global_GNB_ID
, create_dissector_handle(dissect_Global_GNB_ID_PDU
, proto_sbc_ap
));
3636 dissector_add_uint("sbc_ap.extension", id_RAT_Selector_5GS
, create_dissector_handle(dissect_RAT_Selector_5GS_PDU
, proto_sbc_ap
));
3637 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 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 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 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 dissector_add_uint("sbc_ap.extension", id_Restarted_Cell_List_NR
, create_dissector_handle(dissect_Restarted_Cell_List_NR_PDU
, proto_sbc_ap
));
3642 dissector_add_uint("sbc_ap.extension", id_Failed_Cell_List_NR
, create_dissector_handle(dissect_Failed_Cell_List_NR_PDU
, proto_sbc_ap
));
3643 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 dissector_add_uint("sbc_ap.ies", id_Warning_Area_Coordinates
, create_dissector_handle(dissect_Warning_Area_Coordinates_PDU
, proto_sbc_ap
));
3645 dissector_add_uint("sbc_ap.proc.imsg", id_Write_Replace_Warning
, create_dissector_handle(dissect_Write_Replace_Warning_Request_PDU
, proto_sbc_ap
));
3646 dissector_add_uint("sbc_ap.proc.sout", id_Write_Replace_Warning
, create_dissector_handle(dissect_Write_Replace_Warning_Response_PDU
, proto_sbc_ap
));
3647 dissector_add_uint("sbc_ap.proc.imsg", id_Stop_Warning
, create_dissector_handle(dissect_Stop_Warning_Request_PDU
, proto_sbc_ap
));
3648 dissector_add_uint("sbc_ap.proc.sout", id_Stop_Warning
, create_dissector_handle(dissect_Stop_Warning_Response_PDU
, proto_sbc_ap
));
3649 dissector_add_uint("sbc_ap.proc.imsg", id_Error_Indication
, create_dissector_handle(dissect_Error_Indication_PDU
, proto_sbc_ap
));
3650 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 dissector_add_uint("sbc_ap.proc.imsg", id_Stop_Warning_Indication
, create_dissector_handle(dissect_Stop_Warning_Indication_PDU
, proto_sbc_ap
));
3652 dissector_add_uint("sbc_ap.proc.imsg", id_PWS_Restart_Indication
, create_dissector_handle(dissect_PWS_Restart_Indication_PDU
, proto_sbc_ap
));
3653 dissector_add_uint("sbc_ap.proc.imsg", id_PWS_Failure_Indication
, create_dissector_handle(dissect_PWS_Failure_Indication_PDU
, proto_sbc_ap
));
3656 if (SctpPort
!= 0) {
3657 dissector_delete_uint("sctp.port", SctpPort
, sbc_ap_handle
);
3661 SctpPort
= global_sbc_ap_port
;
3662 if (SctpPort
!= 0) {
3663 dissector_add_uint("sctp.port", SctpPort
, sbc_ap_handle
);
3675 * indent-tabs-mode: nil
3678 * ex: set shiftwidth=2 tabstop=8 expandtab:
3679 * :indentSize=2:tabSize=8:noTabs=true: