1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -p rua -c ./rua.cnf -s ./packet-rua-template -D . -O ../../epan/dissectors RUA-CommonDataTypes.asn RUA-Constants.asn RUA-Containers.asn RUA-IEs.asn RUA-PDU-Contents.asn RUA-PDU-Descriptions.asn */
6 /* Input file: packet-rua-template.c */
8 #line 1 "../../asn1/rua/packet-rua-template.c"
9 /* packet-rua-template.c
10 * Routines for UMTS Home Node B RANAP User Adaptation (RUA) packet dissection
11 * Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
33 * Ref: 3GPP TS 25.468 version 8.1.0 Release 8
41 #include <epan/packet.h>
42 #include <epan/sctpppids.h>
43 #include <epan/asn1.h>
44 #include <epan/prefs.h>
46 #include "packet-per.h"
49 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
50 #pragma warning(disable:4146)
53 #define PNAME "UTRAN Iuh interface RUA signalling"
56 /* Dissector to use SCTP PPID 19 or a configured SCTP port. IANA assigned port = 29169*/
57 #define SCTP_PORT_RUA 29169;
59 void proto_register_rua(void);
62 /*--- Included file: packet-rua-val.h ---*/
63 #line 1 "../../asn1/rua/packet-rua-val.h"
64 #define maxPrivateIEs 65535
65 #define maxProtocolExtensions 65535
66 #define maxProtocolIEs 65535
67 #define maxNrOfErrors 256
69 typedef enum _ProcedureCode_enum
{
71 id_DirectTransfer
= 2,
73 id_ConnectionlessTransfer
= 4,
74 id_ErrorIndication
= 5,
78 typedef enum _ProtocolIE_ID_enum
{
80 id_CriticalityDiagnostics
= 2,
83 id_IntraDomainNasNodeSelector
= 5,
84 id_Establishment_Cause
= 6,
85 id_CN_DomainIndicator
= 7,
86 id_CSGMembershipStatus
= 9
89 /*--- End of included file: packet-rua-val.h ---*/
90 #line 54 "../../asn1/rua/packet-rua-template.c"
92 /* Initialize the protocol and registered fields */
93 static int proto_rua
= -1;
96 /*--- Included file: packet-rua-hf.c ---*/
97 #line 1 "../../asn1/rua/packet-rua-hf.c"
98 static int hf_rua_CN_DomainIndicator_PDU
= -1; /* CN_DomainIndicator */
99 static int hf_rua_CSGMembershipStatus_PDU
= -1; /* CSGMembershipStatus */
100 static int hf_rua_Establishment_Cause_PDU
= -1; /* Establishment_Cause */
101 static int hf_rua_Context_ID_PDU
= -1; /* Context_ID */
102 static int hf_rua_IntraDomainNasNodeSelector_PDU
= -1; /* IntraDomainNasNodeSelector */
103 static int hf_rua_RANAP_Message_PDU
= -1; /* RANAP_Message */
104 static int hf_rua_Cause_PDU
= -1; /* Cause */
105 static int hf_rua_CriticalityDiagnostics_PDU
= -1; /* CriticalityDiagnostics */
106 static int hf_rua_Connect_PDU
= -1; /* Connect */
107 static int hf_rua_DirectTransfer_PDU
= -1; /* DirectTransfer */
108 static int hf_rua_Disconnect_PDU
= -1; /* Disconnect */
109 static int hf_rua_ConnectionlessTransfer_PDU
= -1; /* ConnectionlessTransfer */
110 static int hf_rua_ErrorIndication_PDU
= -1; /* ErrorIndication */
111 static int hf_rua_PrivateMessage_PDU
= -1; /* PrivateMessage */
112 static int hf_rua_RUA_PDU_PDU
= -1; /* RUA_PDU */
113 static int hf_rua_local
= -1; /* INTEGER_0_65535 */
114 static int hf_rua_global
= -1; /* OBJECT_IDENTIFIER */
115 static int hf_rua_ProtocolIE_Container_item
= -1; /* ProtocolIE_Field */
116 static int hf_rua_protocol_ie_field_id
= -1; /* ProtocolIE_ID */
117 static int hf_rua_criticality
= -1; /* Criticality */
118 static int hf_rua_ie_field_value
= -1; /* ProtocolIE_Field_value */
119 static int hf_rua_ProtocolExtensionContainer_item
= -1; /* ProtocolExtensionField */
120 static int hf_rua_id
= -1; /* ProtocolIE_ID */
121 static int hf_rua_extensionValue
= -1; /* T_extensionValue */
122 static int hf_rua_PrivateIE_Container_item
= -1; /* PrivateIE_Field */
123 static int hf_rua_private_ie_field_id
= -1; /* PrivateIE_ID */
124 static int hf_rua_private_value
= -1; /* PrivateIE_Field_value */
125 static int hf_rua_version
= -1; /* T_version */
126 static int hf_rua_release99
= -1; /* T_release99 */
127 static int hf_rua_cn_Type
= -1; /* T_cn_Type */
128 static int hf_rua_gsm_Map_IDNNS
= -1; /* Gsm_map_IDNNS */
129 static int hf_rua_ansi_41_IDNNS
= -1; /* Ansi_41_IDNNS */
130 static int hf_rua_later
= -1; /* T_later */
131 static int hf_rua_futurecoding
= -1; /* BIT_STRING_SIZE_15 */
132 static int hf_rua_routingbasis
= -1; /* T_routingbasis */
133 static int hf_rua_localPTMSI
= -1; /* T_localPTMSI */
134 static int hf_rua_routingparameter
= -1; /* RoutingParameter */
135 static int hf_rua_tMSIofsamePLMN
= -1; /* T_tMSIofsamePLMN */
136 static int hf_rua_tMSIofdifferentPLMN
= -1; /* T_tMSIofdifferentPLMN */
137 static int hf_rua_iMSIresponsetopaging
= -1; /* T_iMSIresponsetopaging */
138 static int hf_rua_iMSIcauseUEinitiatedEvent
= -1; /* T_iMSIcauseUEinitiatedEvent */
139 static int hf_rua_iMEI
= -1; /* T_iMEI */
140 static int hf_rua_spare2
= -1; /* T_spare2 */
141 static int hf_rua_spare1
= -1; /* T_spare1 */
142 static int hf_rua_dummy
= -1; /* BOOLEAN */
143 static int hf_rua_radioNetwork
= -1; /* CauseRadioNetwork */
144 static int hf_rua_transport
= -1; /* CauseTransport */
145 static int hf_rua_protocol
= -1; /* CauseProtocol */
146 static int hf_rua_misc
= -1; /* CauseMisc */
147 static int hf_rua_procedureCode
= -1; /* ProcedureCode */
148 static int hf_rua_triggeringMessage
= -1; /* TriggeringMessage */
149 static int hf_rua_procedureCriticality
= -1; /* Criticality */
150 static int hf_rua_iEsCriticalityDiagnostics
= -1; /* CriticalityDiagnostics_IE_List */
151 static int hf_rua_iE_Extensions
= -1; /* ProtocolExtensionContainer */
152 static int hf_rua_CriticalityDiagnostics_IE_List_item
= -1; /* CriticalityDiagnostics_IE_List_item */
153 static int hf_rua_iECriticality
= -1; /* Criticality */
154 static int hf_rua_iE_ID
= -1; /* ProtocolIE_ID */
155 static int hf_rua_typeOfError
= -1; /* TypeOfError */
156 static int hf_rua_protocolIEs
= -1; /* ProtocolIE_Container */
157 static int hf_rua_protocolExtensions
= -1; /* ProtocolExtensionContainer */
158 static int hf_rua_privateIEs
= -1; /* PrivateIE_Container */
159 static int hf_rua_initiatingMessage
= -1; /* InitiatingMessage */
160 static int hf_rua_successfulOutcome
= -1; /* SuccessfulOutcome */
161 static int hf_rua_unsuccessfulOutcome
= -1; /* UnsuccessfulOutcome */
162 static int hf_rua_initiatingMessagevalue
= -1; /* InitiatingMessage_value */
163 static int hf_rua_successfulOutcome_value
= -1; /* SuccessfulOutcome_value */
164 static int hf_rua_unsuccessfulOutcome_value
= -1; /* UnsuccessfulOutcome_value */
166 /*--- End of included file: packet-rua-hf.c ---*/
167 #line 59 "../../asn1/rua/packet-rua-template.c"
169 /* Initialize the subtree pointers */
170 static int ett_rua
= -1;
172 /* initialise sub-dissector handles */
173 static dissector_handle_t ranap_handle
= NULL
;
176 /*--- Included file: packet-rua-ett.c ---*/
177 #line 1 "../../asn1/rua/packet-rua-ett.c"
178 static gint ett_rua_PrivateIE_ID
= -1;
179 static gint ett_rua_ProtocolIE_Container
= -1;
180 static gint ett_rua_ProtocolIE_Field
= -1;
181 static gint ett_rua_ProtocolExtensionContainer
= -1;
182 static gint ett_rua_ProtocolExtensionField
= -1;
183 static gint ett_rua_PrivateIE_Container
= -1;
184 static gint ett_rua_PrivateIE_Field
= -1;
185 static gint ett_rua_IntraDomainNasNodeSelector
= -1;
186 static gint ett_rua_T_version
= -1;
187 static gint ett_rua_T_release99
= -1;
188 static gint ett_rua_T_cn_Type
= -1;
189 static gint ett_rua_T_later
= -1;
190 static gint ett_rua_Gsm_map_IDNNS
= -1;
191 static gint ett_rua_T_routingbasis
= -1;
192 static gint ett_rua_T_localPTMSI
= -1;
193 static gint ett_rua_T_tMSIofsamePLMN
= -1;
194 static gint ett_rua_T_tMSIofdifferentPLMN
= -1;
195 static gint ett_rua_T_iMSIresponsetopaging
= -1;
196 static gint ett_rua_T_iMSIcauseUEinitiatedEvent
= -1;
197 static gint ett_rua_T_iMEI
= -1;
198 static gint ett_rua_T_spare2
= -1;
199 static gint ett_rua_T_spare1
= -1;
200 static gint ett_rua_Cause
= -1;
201 static gint ett_rua_CriticalityDiagnostics
= -1;
202 static gint ett_rua_CriticalityDiagnostics_IE_List
= -1;
203 static gint ett_rua_CriticalityDiagnostics_IE_List_item
= -1;
204 static gint ett_rua_Connect
= -1;
205 static gint ett_rua_DirectTransfer
= -1;
206 static gint ett_rua_Disconnect
= -1;
207 static gint ett_rua_ConnectionlessTransfer
= -1;
208 static gint ett_rua_ErrorIndication
= -1;
209 static gint ett_rua_PrivateMessage
= -1;
210 static gint ett_rua_RUA_PDU
= -1;
211 static gint ett_rua_InitiatingMessage
= -1;
212 static gint ett_rua_SuccessfulOutcome
= -1;
213 static gint ett_rua_UnsuccessfulOutcome
= -1;
215 /*--- End of included file: packet-rua-ett.c ---*/
216 #line 67 "../../asn1/rua/packet-rua-template.c"
218 /* Global variables */
219 static guint32 ProcedureCode
;
220 static guint32 ProtocolIE_ID
;
221 static guint global_sctp_port
= SCTP_PORT_RUA
223 /* Dissector tables */
224 static dissector_table_t rua_ies_dissector_table
;
225 static dissector_table_t rua_extension_dissector_table
;
226 static dissector_table_t rua_proc_imsg_dissector_table
;
227 static dissector_table_t rua_proc_sout_dissector_table
;
228 static dissector_table_t rua_proc_uout_dissector_table
;
230 static int dissect_ProtocolIEFieldValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
231 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
232 static int dissect_InitiatingMessageValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
233 static int dissect_SuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
234 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
236 void proto_reg_handoff_rua(void);
239 /*--- Included file: packet-rua-fn.c ---*/
240 #line 1 "../../asn1/rua/packet-rua-fn.c"
242 static const value_string rua_Criticality_vals
[] = {
251 dissect_rua_Criticality(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
252 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
253 3, NULL
, FALSE
, 0, NULL
);
259 static const value_string rua_ProcedureCode_vals
[] = {
260 { id_Connect
, "id-Connect" },
261 { id_DirectTransfer
, "id-DirectTransfer" },
262 { id_Disconnect
, "id-Disconnect" },
263 { id_ConnectionlessTransfer
, "id-ConnectionlessTransfer" },
264 { id_ErrorIndication
, "id-ErrorIndication" },
265 { id_privateMessage
, "id-privateMessage" },
271 dissect_rua_ProcedureCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
272 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
273 0U, 255U, &ProcedureCode
, FALSE
);
275 #line 53 "../../asn1/rua/rua.cnf"
276 if (strcmp(val_to_str(ProcedureCode
, rua_ProcedureCode_vals
, "Unknown"), "Unknown") == 0) {
277 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
279 } /* Known Procedures should be included below and broken out as ELEMENTARY names to avoid confusion */
288 dissect_rua_INTEGER_0_65535(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
289 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
290 0U, 65535U, NULL
, FALSE
);
298 dissect_rua_OBJECT_IDENTIFIER(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
299 offset
= dissect_per_object_identifier(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
305 static const value_string rua_PrivateIE_ID_vals
[] = {
311 static const per_choice_t PrivateIE_ID_choice
[] = {
312 { 0, &hf_rua_local
, ASN1_NO_EXTENSIONS
, dissect_rua_INTEGER_0_65535
},
313 { 1, &hf_rua_global
, ASN1_NO_EXTENSIONS
, dissect_rua_OBJECT_IDENTIFIER
},
318 dissect_rua_PrivateIE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
319 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
320 ett_rua_PrivateIE_ID
, PrivateIE_ID_choice
,
327 static const value_string rua_ProtocolIE_ID_vals
[] = {
328 { id_Cause
, "id-Cause" },
329 { id_CriticalityDiagnostics
, "id-CriticalityDiagnostics" },
330 { id_Context_ID
, "id-Context-ID" },
331 { id_RANAP_Message
, "id-RANAP-Message" },
332 { id_IntraDomainNasNodeSelector
, "id-IntraDomainNasNodeSelector" },
333 { id_Establishment_Cause
, "id-Establishment-Cause" },
334 { id_CN_DomainIndicator
, "id-CN-DomainIndicator" },
335 { id_CSGMembershipStatus
, "id-CSGMembershipStatus" },
341 dissect_rua_ProtocolIE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
342 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
343 0U, maxProtocolIEs
, &ProtocolIE_ID
, FALSE
);
345 #line 42 "../../asn1/rua/rua.cnf"
347 proto_item_append_text(proto_item_get_parent_nth(actx
->created_item
, 2), ": %s", val_to_str(ProtocolIE_ID
, VALS(rua_ProtocolIE_ID_vals
), "unknown (%d)"));
354 static const value_string rua_TriggeringMessage_vals
[] = {
355 { 0, "initiating-message" },
356 { 1, "successful-outcome" },
357 { 2, "unsuccessful-outcome" },
363 dissect_rua_TriggeringMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
364 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
365 3, NULL
, FALSE
, 0, NULL
);
373 dissect_rua_ProtocolIE_Field_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
374 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_ProtocolIEFieldValue
);
380 static const per_sequence_t ProtocolIE_Field_sequence
[] = {
381 { &hf_rua_protocol_ie_field_id
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_ID
},
382 { &hf_rua_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_Criticality
},
383 { &hf_rua_ie_field_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_Field_value
},
388 dissect_rua_ProtocolIE_Field(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
389 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
390 ett_rua_ProtocolIE_Field
, ProtocolIE_Field_sequence
);
396 static const per_sequence_t ProtocolIE_Container_sequence_of
[1] = {
397 { &hf_rua_ProtocolIE_Container_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_Field
},
401 dissect_rua_ProtocolIE_Container(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
402 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
403 ett_rua_ProtocolIE_Container
, ProtocolIE_Container_sequence_of
,
404 0, maxProtocolIEs
, FALSE
);
412 dissect_rua_T_extensionValue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
413 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_ProtocolExtensionFieldExtensionValue
);
419 static const per_sequence_t ProtocolExtensionField_sequence
[] = {
420 { &hf_rua_id
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_ID
},
421 { &hf_rua_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_Criticality
},
422 { &hf_rua_extensionValue
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_T_extensionValue
},
427 dissect_rua_ProtocolExtensionField(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
428 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
429 ett_rua_ProtocolExtensionField
, ProtocolExtensionField_sequence
);
435 static const per_sequence_t ProtocolExtensionContainer_sequence_of
[1] = {
436 { &hf_rua_ProtocolExtensionContainer_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolExtensionField
},
440 dissect_rua_ProtocolExtensionContainer(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
441 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
442 ett_rua_ProtocolExtensionContainer
, ProtocolExtensionContainer_sequence_of
,
443 1, maxProtocolExtensions
, FALSE
);
451 dissect_rua_PrivateIE_Field_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
452 offset
= dissect_per_open_type(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
458 static const per_sequence_t PrivateIE_Field_sequence
[] = {
459 { &hf_rua_private_ie_field_id
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_PrivateIE_ID
},
460 { &hf_rua_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_Criticality
},
461 { &hf_rua_private_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_PrivateIE_Field_value
},
466 dissect_rua_PrivateIE_Field(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
467 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
468 ett_rua_PrivateIE_Field
, PrivateIE_Field_sequence
);
474 static const per_sequence_t PrivateIE_Container_sequence_of
[1] = {
475 { &hf_rua_PrivateIE_Container_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_PrivateIE_Field
},
479 dissect_rua_PrivateIE_Container(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
480 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
481 ett_rua_PrivateIE_Container
, PrivateIE_Container_sequence_of
,
482 1, maxPrivateIEs
, FALSE
);
488 static const value_string rua_CN_DomainIndicator_vals
[] = {
496 dissect_rua_CN_DomainIndicator(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
497 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
498 2, NULL
, FALSE
, 0, NULL
);
504 static const value_string rua_CSGMembershipStatus_vals
[] = {
512 dissect_rua_CSGMembershipStatus(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
513 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
514 2, NULL
, TRUE
, 0, NULL
);
520 static const value_string rua_Establishment_Cause_vals
[] = {
521 { 0, "emergency-call" },
522 { 1, "normal-call" },
528 dissect_rua_Establishment_Cause(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
529 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
530 2, NULL
, TRUE
, 0, NULL
);
538 dissect_rua_Context_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
539 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
540 24, 24, FALSE
, NULL
);
548 dissect_rua_RoutingParameter(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
549 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
550 10, 10, FALSE
, NULL
);
556 static const per_sequence_t T_localPTMSI_sequence
[] = {
557 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
562 dissect_rua_T_localPTMSI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
563 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
564 ett_rua_T_localPTMSI
, T_localPTMSI_sequence
);
570 static const per_sequence_t T_tMSIofsamePLMN_sequence
[] = {
571 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
576 dissect_rua_T_tMSIofsamePLMN(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
577 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
578 ett_rua_T_tMSIofsamePLMN
, T_tMSIofsamePLMN_sequence
);
584 static const per_sequence_t T_tMSIofdifferentPLMN_sequence
[] = {
585 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
590 dissect_rua_T_tMSIofdifferentPLMN(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
591 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
592 ett_rua_T_tMSIofdifferentPLMN
, T_tMSIofdifferentPLMN_sequence
);
598 static const per_sequence_t T_iMSIresponsetopaging_sequence
[] = {
599 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
604 dissect_rua_T_iMSIresponsetopaging(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
605 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
606 ett_rua_T_iMSIresponsetopaging
, T_iMSIresponsetopaging_sequence
);
612 static const per_sequence_t T_iMSIcauseUEinitiatedEvent_sequence
[] = {
613 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
618 dissect_rua_T_iMSIcauseUEinitiatedEvent(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
619 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
620 ett_rua_T_iMSIcauseUEinitiatedEvent
, T_iMSIcauseUEinitiatedEvent_sequence
);
626 static const per_sequence_t T_iMEI_sequence
[] = {
627 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
632 dissect_rua_T_iMEI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
633 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
634 ett_rua_T_iMEI
, T_iMEI_sequence
);
640 static const per_sequence_t T_spare2_sequence
[] = {
641 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
646 dissect_rua_T_spare2(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
647 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
648 ett_rua_T_spare2
, T_spare2_sequence
);
654 static const per_sequence_t T_spare1_sequence
[] = {
655 { &hf_rua_routingparameter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_RoutingParameter
},
660 dissect_rua_T_spare1(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
661 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
662 ett_rua_T_spare1
, T_spare1_sequence
);
668 static const value_string rua_T_routingbasis_vals
[] = {
670 { 1, "tMSIofsamePLMN" },
671 { 2, "tMSIofdifferentPLMN" },
672 { 3, "iMSIresponsetopaging" },
673 { 4, "iMSIcauseUEinitiatedEvent" },
680 static const per_choice_t T_routingbasis_choice
[] = {
681 { 0, &hf_rua_localPTMSI
, ASN1_NO_EXTENSIONS
, dissect_rua_T_localPTMSI
},
682 { 1, &hf_rua_tMSIofsamePLMN
, ASN1_NO_EXTENSIONS
, dissect_rua_T_tMSIofsamePLMN
},
683 { 2, &hf_rua_tMSIofdifferentPLMN
, ASN1_NO_EXTENSIONS
, dissect_rua_T_tMSIofdifferentPLMN
},
684 { 3, &hf_rua_iMSIresponsetopaging
, ASN1_NO_EXTENSIONS
, dissect_rua_T_iMSIresponsetopaging
},
685 { 4, &hf_rua_iMSIcauseUEinitiatedEvent
, ASN1_NO_EXTENSIONS
, dissect_rua_T_iMSIcauseUEinitiatedEvent
},
686 { 5, &hf_rua_iMEI
, ASN1_NO_EXTENSIONS
, dissect_rua_T_iMEI
},
687 { 6, &hf_rua_spare2
, ASN1_NO_EXTENSIONS
, dissect_rua_T_spare2
},
688 { 7, &hf_rua_spare1
, ASN1_NO_EXTENSIONS
, dissect_rua_T_spare1
},
693 dissect_rua_T_routingbasis(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
694 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
695 ett_rua_T_routingbasis
, T_routingbasis_choice
,
704 dissect_rua_BOOLEAN(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
705 offset
= dissect_per_boolean(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
711 static const per_sequence_t Gsm_map_IDNNS_sequence
[] = {
712 { &hf_rua_routingbasis
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_T_routingbasis
},
713 { &hf_rua_dummy
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_BOOLEAN
},
718 dissect_rua_Gsm_map_IDNNS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
719 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
720 ett_rua_Gsm_map_IDNNS
, Gsm_map_IDNNS_sequence
);
728 dissect_rua_Ansi_41_IDNNS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
729 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
730 14, 14, FALSE
, NULL
);
736 static const value_string rua_T_cn_Type_vals
[] = {
737 { 0, "gsm-Map-IDNNS" },
738 { 1, "ansi-41-IDNNS" },
742 static const per_choice_t T_cn_Type_choice
[] = {
743 { 0, &hf_rua_gsm_Map_IDNNS
, ASN1_NO_EXTENSIONS
, dissect_rua_Gsm_map_IDNNS
},
744 { 1, &hf_rua_ansi_41_IDNNS
, ASN1_NO_EXTENSIONS
, dissect_rua_Ansi_41_IDNNS
},
749 dissect_rua_T_cn_Type(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
750 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
751 ett_rua_T_cn_Type
, T_cn_Type_choice
,
758 static const per_sequence_t T_release99_sequence
[] = {
759 { &hf_rua_cn_Type
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_T_cn_Type
},
764 dissect_rua_T_release99(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
765 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
766 ett_rua_T_release99
, T_release99_sequence
);
774 dissect_rua_BIT_STRING_SIZE_15(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
775 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
776 15, 15, FALSE
, NULL
);
782 static const per_sequence_t T_later_sequence
[] = {
783 { &hf_rua_futurecoding
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_BIT_STRING_SIZE_15
},
788 dissect_rua_T_later(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
789 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
790 ett_rua_T_later
, T_later_sequence
);
796 static const value_string rua_T_version_vals
[] = {
802 static const per_choice_t T_version_choice
[] = {
803 { 0, &hf_rua_release99
, ASN1_NO_EXTENSIONS
, dissect_rua_T_release99
},
804 { 1, &hf_rua_later
, ASN1_NO_EXTENSIONS
, dissect_rua_T_later
},
809 dissect_rua_T_version(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
810 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
811 ett_rua_T_version
, T_version_choice
,
818 static const per_sequence_t IntraDomainNasNodeSelector_sequence
[] = {
819 { &hf_rua_version
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_T_version
},
824 dissect_rua_IntraDomainNasNodeSelector(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
825 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
826 ett_rua_IntraDomainNasNodeSelector
, IntraDomainNasNodeSelector_sequence
);
834 dissect_rua_RANAP_Message(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
835 #line 96 "../../asn1/rua/rua.cnf"
836 tvbuff_t
*ranap_message_tvb
=NULL
;
837 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
838 NO_BOUND
, NO_BOUND
, FALSE
, &ranap_message_tvb
);
840 if ((tvb_length(ranap_message_tvb
)>0)&&(ranap_handle
)) { /* RUA has a RANAP-PDU */
841 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
842 "(RUA) "); /* Set info to (RUA) to make room for RANAP */
843 col_set_fence(actx
->pinfo
->cinfo
, COL_INFO
);
844 call_dissector(ranap_handle
,ranap_message_tvb
,actx
->pinfo
, proto_tree_get_root(tree
));
852 static const value_string rua_CauseRadioNetwork_vals
[] = {
854 { 1, "connect-failed" },
855 { 2, "network-release" },
856 { 3, "unspecified" },
862 dissect_rua_CauseRadioNetwork(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
863 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
864 4, NULL
, TRUE
, 0, NULL
);
870 static const value_string rua_CauseTransport_vals
[] = {
871 { 0, "transport-resource-unavailable" },
872 { 1, "unspecified" },
878 dissect_rua_CauseTransport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
879 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
880 2, NULL
, TRUE
, 0, NULL
);
886 static const value_string rua_CauseProtocol_vals
[] = {
887 { 0, "transfer-syntax-error" },
888 { 1, "abstract-syntax-error-reject" },
889 { 2, "abstract-syntax-error-ignore-and-notify" },
890 { 3, "message-not-compatible-with-receiver-state" },
891 { 4, "semantic-error" },
892 { 5, "unspecified" },
893 { 6, "abstract-syntax-error-falsely-constructed-message" },
899 dissect_rua_CauseProtocol(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
900 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
901 7, NULL
, TRUE
, 0, NULL
);
907 static const value_string rua_CauseMisc_vals
[] = {
908 { 0, "processing-overload" },
909 { 1, "hardware-failure" },
910 { 2, "o-and-m-intervention" },
911 { 3, "unspecified" },
917 dissect_rua_CauseMisc(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
918 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
919 4, NULL
, TRUE
, 0, NULL
);
925 static const value_string rua_Cause_vals
[] = {
926 { 0, "radioNetwork" },
933 static const per_choice_t Cause_choice
[] = {
934 { 0, &hf_rua_radioNetwork
, ASN1_EXTENSION_ROOT
, dissect_rua_CauseRadioNetwork
},
935 { 1, &hf_rua_transport
, ASN1_EXTENSION_ROOT
, dissect_rua_CauseTransport
},
936 { 2, &hf_rua_protocol
, ASN1_EXTENSION_ROOT
, dissect_rua_CauseProtocol
},
937 { 3, &hf_rua_misc
, ASN1_EXTENSION_ROOT
, dissect_rua_CauseMisc
},
942 dissect_rua_Cause(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
943 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
944 ett_rua_Cause
, Cause_choice
,
951 static const value_string rua_TypeOfError_vals
[] = {
952 { 0, "not-understood" },
959 dissect_rua_TypeOfError(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
960 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
961 2, NULL
, TRUE
, 0, NULL
);
967 static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence
[] = {
968 { &hf_rua_iECriticality
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_Criticality
},
969 { &hf_rua_iE_ID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_ID
},
970 { &hf_rua_typeOfError
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_TypeOfError
},
971 { &hf_rua_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProtocolExtensionContainer
},
976 dissect_rua_CriticalityDiagnostics_IE_List_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
977 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
978 ett_rua_CriticalityDiagnostics_IE_List_item
, CriticalityDiagnostics_IE_List_item_sequence
);
984 static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of
[1] = {
985 { &hf_rua_CriticalityDiagnostics_IE_List_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_CriticalityDiagnostics_IE_List_item
},
989 dissect_rua_CriticalityDiagnostics_IE_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
990 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
991 ett_rua_CriticalityDiagnostics_IE_List
, CriticalityDiagnostics_IE_List_sequence_of
,
992 1, maxNrOfErrors
, FALSE
);
998 static const per_sequence_t CriticalityDiagnostics_sequence
[] = {
999 { &hf_rua_procedureCode
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProcedureCode
},
1000 { &hf_rua_triggeringMessage
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_TriggeringMessage
},
1001 { &hf_rua_procedureCriticality
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_Criticality
},
1002 { &hf_rua_iEsCriticalityDiagnostics
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_CriticalityDiagnostics_IE_List
},
1003 { &hf_rua_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProtocolExtensionContainer
},
1004 { NULL
, 0, 0, NULL
}
1008 dissect_rua_CriticalityDiagnostics(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1009 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1010 ett_rua_CriticalityDiagnostics
, CriticalityDiagnostics_sequence
);
1016 static const per_sequence_t Connect_sequence
[] = {
1017 { &hf_rua_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_Container
},
1018 { &hf_rua_protocolExtensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProtocolExtensionContainer
},
1019 { NULL
, 0, 0, NULL
}
1023 dissect_rua_Connect(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1024 #line 65 "../../asn1/rua/rua.cnf"
1025 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
1027 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1028 ett_rua_Connect
, Connect_sequence
);
1037 static const per_sequence_t DirectTransfer_sequence
[] = {
1038 { &hf_rua_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_Container
},
1039 { &hf_rua_protocolExtensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProtocolExtensionContainer
},
1040 { NULL
, 0, 0, NULL
}
1044 dissect_rua_DirectTransfer(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1045 #line 70 "../../asn1/rua/rua.cnf"
1046 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
1047 "DIRECT_TRANSFER ");
1048 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1049 ett_rua_DirectTransfer
, DirectTransfer_sequence
);
1058 static const per_sequence_t Disconnect_sequence
[] = {
1059 { &hf_rua_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_Container
},
1060 { &hf_rua_protocolExtensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProtocolExtensionContainer
},
1061 { NULL
, 0, 0, NULL
}
1065 dissect_rua_Disconnect(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1066 #line 75 "../../asn1/rua/rua.cnf"
1067 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
1069 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1070 ett_rua_Disconnect
, Disconnect_sequence
);
1079 static const per_sequence_t ConnectionlessTransfer_sequence
[] = {
1080 { &hf_rua_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_Container
},
1081 { &hf_rua_protocolExtensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProtocolExtensionContainer
},
1082 { NULL
, 0, 0, NULL
}
1086 dissect_rua_ConnectionlessTransfer(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1087 #line 80 "../../asn1/rua/rua.cnf"
1088 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
1089 "CONNECTIONLESS_TRANSFER ");
1090 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1091 ett_rua_ConnectionlessTransfer
, ConnectionlessTransfer_sequence
);
1100 static const per_sequence_t ErrorIndication_sequence
[] = {
1101 { &hf_rua_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_ProtocolIE_Container
},
1102 { &hf_rua_protocolExtensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_rua_ProtocolExtensionContainer
},
1103 { NULL
, 0, 0, NULL
}
1107 dissect_rua_ErrorIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1108 #line 85 "../../asn1/rua/rua.cnf"
1109 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
1110 "ERROR_INDICATION ");
1111 col_set_fence(actx
->pinfo
->cinfo
, COL_INFO
); /* Protect info from CriticalityDiagnostics decodes */
1112 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1113 ett_rua_ErrorIndication
, ErrorIndication_sequence
);
1122 static const per_sequence_t PrivateMessage_sequence
[] = {
1123 { &hf_rua_privateIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_rua_PrivateIE_Container
},
1124 { NULL
, 0, 0, NULL
}
1128 dissect_rua_PrivateMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1129 #line 91 "../../asn1/rua/rua.cnf"
1130 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,
1131 "PRIVATE_MESSAGE ");
1132 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1133 ett_rua_PrivateMessage
, PrivateMessage_sequence
);
1144 dissect_rua_InitiatingMessage_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1145 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_InitiatingMessageValue
);
1151 static const per_sequence_t InitiatingMessage_sequence
[] = {
1152 { &hf_rua_procedureCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProcedureCode
},
1153 { &hf_rua_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_Criticality
},
1154 { &hf_rua_initiatingMessagevalue
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_InitiatingMessage_value
},
1155 { NULL
, 0, 0, NULL
}
1159 dissect_rua_InitiatingMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1160 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1161 ett_rua_InitiatingMessage
, InitiatingMessage_sequence
);
1169 dissect_rua_SuccessfulOutcome_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1170 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_SuccessfulOutcomeValue
);
1176 static const per_sequence_t SuccessfulOutcome_sequence
[] = {
1177 { &hf_rua_procedureCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProcedureCode
},
1178 { &hf_rua_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_Criticality
},
1179 { &hf_rua_successfulOutcome_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_SuccessfulOutcome_value
},
1180 { NULL
, 0, 0, NULL
}
1184 dissect_rua_SuccessfulOutcome(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1185 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1186 ett_rua_SuccessfulOutcome
, SuccessfulOutcome_sequence
);
1194 dissect_rua_UnsuccessfulOutcome_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1195 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_UnsuccessfulOutcomeValue
);
1201 static const per_sequence_t UnsuccessfulOutcome_sequence
[] = {
1202 { &hf_rua_procedureCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_ProcedureCode
},
1203 { &hf_rua_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_Criticality
},
1204 { &hf_rua_unsuccessfulOutcome_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_rua_UnsuccessfulOutcome_value
},
1205 { NULL
, 0, 0, NULL
}
1209 dissect_rua_UnsuccessfulOutcome(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1210 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1211 ett_rua_UnsuccessfulOutcome
, UnsuccessfulOutcome_sequence
);
1217 static const value_string rua_RUA_PDU_vals
[] = {
1218 { 0, "initiatingMessage" },
1219 { 1, "successfulOutcome" },
1220 { 2, "unsuccessfulOutcome" },
1224 static const per_choice_t RUA_PDU_choice
[] = {
1225 { 0, &hf_rua_initiatingMessage
, ASN1_EXTENSION_ROOT
, dissect_rua_InitiatingMessage
},
1226 { 1, &hf_rua_successfulOutcome
, ASN1_EXTENSION_ROOT
, dissect_rua_SuccessfulOutcome
},
1227 { 2, &hf_rua_unsuccessfulOutcome
, ASN1_EXTENSION_ROOT
, dissect_rua_UnsuccessfulOutcome
},
1228 { 0, NULL
, 0, NULL
}
1232 dissect_rua_RUA_PDU(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1233 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1234 ett_rua_RUA_PDU
, RUA_PDU_choice
,
1242 static int dissect_CN_DomainIndicator_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1244 asn1_ctx_t asn1_ctx
;
1245 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1246 offset
= dissect_rua_CN_DomainIndicator(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_CN_DomainIndicator_PDU
);
1247 offset
+= 7; offset
>>= 3;
1250 static int dissect_CSGMembershipStatus_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1252 asn1_ctx_t asn1_ctx
;
1253 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1254 offset
= dissect_rua_CSGMembershipStatus(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_CSGMembershipStatus_PDU
);
1255 offset
+= 7; offset
>>= 3;
1258 static int dissect_Establishment_Cause_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1260 asn1_ctx_t asn1_ctx
;
1261 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1262 offset
= dissect_rua_Establishment_Cause(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_Establishment_Cause_PDU
);
1263 offset
+= 7; offset
>>= 3;
1266 static int dissect_Context_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1268 asn1_ctx_t asn1_ctx
;
1269 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1270 offset
= dissect_rua_Context_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_Context_ID_PDU
);
1271 offset
+= 7; offset
>>= 3;
1274 static int dissect_IntraDomainNasNodeSelector_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1276 asn1_ctx_t asn1_ctx
;
1277 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1278 offset
= dissect_rua_IntraDomainNasNodeSelector(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_IntraDomainNasNodeSelector_PDU
);
1279 offset
+= 7; offset
>>= 3;
1282 static int dissect_RANAP_Message_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1284 asn1_ctx_t asn1_ctx
;
1285 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1286 offset
= dissect_rua_RANAP_Message(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_RANAP_Message_PDU
);
1287 offset
+= 7; offset
>>= 3;
1290 static int dissect_Cause_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1292 asn1_ctx_t asn1_ctx
;
1293 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1294 offset
= dissect_rua_Cause(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_Cause_PDU
);
1295 offset
+= 7; offset
>>= 3;
1298 static int dissect_CriticalityDiagnostics_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1300 asn1_ctx_t asn1_ctx
;
1301 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1302 offset
= dissect_rua_CriticalityDiagnostics(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_CriticalityDiagnostics_PDU
);
1303 offset
+= 7; offset
>>= 3;
1306 static int dissect_Connect_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1308 asn1_ctx_t asn1_ctx
;
1309 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1310 offset
= dissect_rua_Connect(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_Connect_PDU
);
1311 offset
+= 7; offset
>>= 3;
1314 static int dissect_DirectTransfer_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1316 asn1_ctx_t asn1_ctx
;
1317 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1318 offset
= dissect_rua_DirectTransfer(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_DirectTransfer_PDU
);
1319 offset
+= 7; offset
>>= 3;
1322 static int dissect_Disconnect_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1324 asn1_ctx_t asn1_ctx
;
1325 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1326 offset
= dissect_rua_Disconnect(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_Disconnect_PDU
);
1327 offset
+= 7; offset
>>= 3;
1330 static int dissect_ConnectionlessTransfer_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1332 asn1_ctx_t asn1_ctx
;
1333 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1334 offset
= dissect_rua_ConnectionlessTransfer(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_ConnectionlessTransfer_PDU
);
1335 offset
+= 7; offset
>>= 3;
1338 static int dissect_ErrorIndication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1340 asn1_ctx_t asn1_ctx
;
1341 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1342 offset
= dissect_rua_ErrorIndication(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_ErrorIndication_PDU
);
1343 offset
+= 7; offset
>>= 3;
1346 static int dissect_PrivateMessage_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1348 asn1_ctx_t asn1_ctx
;
1349 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1350 offset
= dissect_rua_PrivateMessage(tvb
, offset
, &asn1_ctx
, tree
, hf_rua_PrivateMessage_PDU
);
1351 offset
+= 7; offset
>>= 3;
1354 static void dissect_RUA_PDU_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1355 asn1_ctx_t asn1_ctx
;
1356 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1357 dissect_rua_RUA_PDU(tvb
, 0, &asn1_ctx
, tree
, hf_rua_RUA_PDU_PDU
);
1361 /*--- End of included file: packet-rua-fn.c ---*/
1362 #line 89 "../../asn1/rua/packet-rua-template.c"
1364 static int dissect_ProtocolIEFieldValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
1366 return (dissector_try_uint_new(rua_ies_dissector_table
, ProtocolIE_ID
, tvb
, pinfo
, tree
, FALSE
, NULL
)) ? tvb_length(tvb
) : 0;
1369 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
1371 return (dissector_try_uint_new(rua_extension_dissector_table
, ProtocolIE_ID
, tvb
, pinfo
, tree
, FALSE
, NULL
)) ? tvb_length(tvb
) : 0;
1374 static int dissect_InitiatingMessageValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
1376 return (dissector_try_uint_new(rua_proc_imsg_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
, FALSE
, NULL
)) ? tvb_length(tvb
) : 0;
1379 static int dissect_SuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
1381 return (dissector_try_uint_new(rua_proc_sout_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
, FALSE
, NULL
)) ? tvb_length(tvb
) : 0;
1384 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
1386 return (dissector_try_uint_new(rua_proc_uout_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
, FALSE
, NULL
)) ? tvb_length(tvb
) : 0;
1390 dissect_rua(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
)
1392 proto_item
*rua_item
= NULL
;
1393 proto_tree
*rua_tree
= NULL
;
1395 /* make entry in the Protocol column on summary display */
1396 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "RUA");
1398 /* create the rua protocol tree */
1399 rua_item
= proto_tree_add_item(tree
, proto_rua
, tvb
, 0, -1, ENC_NA
);
1400 rua_tree
= proto_item_add_subtree(rua_item
, ett_rua
);
1402 dissect_RUA_PDU_PDU(tvb
, pinfo
, rua_tree
);
1405 /*--- proto_register_rua -------------------------------------------*/
1406 void proto_register_rua(void) {
1407 module_t
*rua_module
;
1409 /* List of fields */
1411 static hf_register_info hf
[] = {
1414 /*--- Included file: packet-rua-hfarr.c ---*/
1415 #line 1 "../../asn1/rua/packet-rua-hfarr.c"
1416 { &hf_rua_CN_DomainIndicator_PDU
,
1417 { "CN-DomainIndicator", "rua.CN_DomainIndicator",
1418 FT_UINT32
, BASE_DEC
, VALS(rua_CN_DomainIndicator_vals
), 0,
1420 { &hf_rua_CSGMembershipStatus_PDU
,
1421 { "CSGMembershipStatus", "rua.CSGMembershipStatus",
1422 FT_UINT32
, BASE_DEC
, VALS(rua_CSGMembershipStatus_vals
), 0,
1424 { &hf_rua_Establishment_Cause_PDU
,
1425 { "Establishment-Cause", "rua.Establishment_Cause",
1426 FT_UINT32
, BASE_DEC
, VALS(rua_Establishment_Cause_vals
), 0,
1428 { &hf_rua_Context_ID_PDU
,
1429 { "Context-ID", "rua.Context_ID",
1430 FT_BYTES
, BASE_NONE
, NULL
, 0,
1432 { &hf_rua_IntraDomainNasNodeSelector_PDU
,
1433 { "IntraDomainNasNodeSelector", "rua.IntraDomainNasNodeSelector_element",
1434 FT_NONE
, BASE_NONE
, NULL
, 0,
1436 { &hf_rua_RANAP_Message_PDU
,
1437 { "RANAP-Message", "rua.RANAP_Message",
1438 FT_BYTES
, BASE_NONE
, NULL
, 0,
1440 { &hf_rua_Cause_PDU
,
1441 { "Cause", "rua.Cause",
1442 FT_UINT32
, BASE_DEC
, VALS(rua_Cause_vals
), 0,
1444 { &hf_rua_CriticalityDiagnostics_PDU
,
1445 { "CriticalityDiagnostics", "rua.CriticalityDiagnostics_element",
1446 FT_NONE
, BASE_NONE
, NULL
, 0,
1448 { &hf_rua_Connect_PDU
,
1449 { "Connect", "rua.Connect_element",
1450 FT_NONE
, BASE_NONE
, NULL
, 0,
1452 { &hf_rua_DirectTransfer_PDU
,
1453 { "DirectTransfer", "rua.DirectTransfer_element",
1454 FT_NONE
, BASE_NONE
, NULL
, 0,
1456 { &hf_rua_Disconnect_PDU
,
1457 { "Disconnect", "rua.Disconnect_element",
1458 FT_NONE
, BASE_NONE
, NULL
, 0,
1460 { &hf_rua_ConnectionlessTransfer_PDU
,
1461 { "ConnectionlessTransfer", "rua.ConnectionlessTransfer_element",
1462 FT_NONE
, BASE_NONE
, NULL
, 0,
1464 { &hf_rua_ErrorIndication_PDU
,
1465 { "ErrorIndication", "rua.ErrorIndication_element",
1466 FT_NONE
, BASE_NONE
, NULL
, 0,
1468 { &hf_rua_PrivateMessage_PDU
,
1469 { "PrivateMessage", "rua.PrivateMessage_element",
1470 FT_NONE
, BASE_NONE
, NULL
, 0,
1472 { &hf_rua_RUA_PDU_PDU
,
1473 { "RUA-PDU", "rua.RUA_PDU",
1474 FT_UINT32
, BASE_DEC
, VALS(rua_RUA_PDU_vals
), 0,
1477 { "local", "rua.local",
1478 FT_UINT32
, BASE_DEC
, NULL
, 0,
1479 "INTEGER_0_65535", HFILL
}},
1481 { "global", "rua.global",
1482 FT_OID
, BASE_NONE
, NULL
, 0,
1483 "OBJECT_IDENTIFIER", HFILL
}},
1484 { &hf_rua_ProtocolIE_Container_item
,
1485 { "ProtocolIE-Field", "rua.ProtocolIE_Field_element",
1486 FT_NONE
, BASE_NONE
, NULL
, 0,
1488 { &hf_rua_protocol_ie_field_id
,
1490 FT_UINT32
, BASE_DEC
, VALS(rua_ProtocolIE_ID_vals
), 0,
1491 "ProtocolIE_ID", HFILL
}},
1492 { &hf_rua_criticality
,
1493 { "criticality", "rua.criticality",
1494 FT_UINT32
, BASE_DEC
, VALS(rua_Criticality_vals
), 0,
1496 { &hf_rua_ie_field_value
,
1497 { "value", "rua.value_element",
1498 FT_NONE
, BASE_NONE
, NULL
, 0,
1499 "ProtocolIE_Field_value", HFILL
}},
1500 { &hf_rua_ProtocolExtensionContainer_item
,
1501 { "ProtocolExtensionField", "rua.ProtocolExtensionField_element",
1502 FT_NONE
, BASE_NONE
, NULL
, 0,
1506 FT_UINT32
, BASE_DEC
, VALS(rua_ProtocolIE_ID_vals
), 0,
1507 "ProtocolIE_ID", HFILL
}},
1508 { &hf_rua_extensionValue
,
1509 { "extensionValue", "rua.extensionValue_element",
1510 FT_NONE
, BASE_NONE
, NULL
, 0,
1512 { &hf_rua_PrivateIE_Container_item
,
1513 { "PrivateIE-Field", "rua.PrivateIE_Field_element",
1514 FT_NONE
, BASE_NONE
, NULL
, 0,
1516 { &hf_rua_private_ie_field_id
,
1518 FT_UINT32
, BASE_DEC
, VALS(rua_PrivateIE_ID_vals
), 0,
1519 "PrivateIE_ID", HFILL
}},
1520 { &hf_rua_private_value
,
1521 { "value", "rua.value_element",
1522 FT_NONE
, BASE_NONE
, NULL
, 0,
1523 "PrivateIE_Field_value", HFILL
}},
1525 { "version", "rua.version",
1526 FT_UINT32
, BASE_DEC
, VALS(rua_T_version_vals
), 0,
1528 { &hf_rua_release99
,
1529 { "release99", "rua.release99_element",
1530 FT_NONE
, BASE_NONE
, NULL
, 0,
1533 { "cn-Type", "rua.cn_Type",
1534 FT_UINT32
, BASE_DEC
, VALS(rua_T_cn_Type_vals
), 0,
1536 { &hf_rua_gsm_Map_IDNNS
,
1537 { "gsm-Map-IDNNS", "rua.gsm_Map_IDNNS_element",
1538 FT_NONE
, BASE_NONE
, NULL
, 0,
1540 { &hf_rua_ansi_41_IDNNS
,
1541 { "ansi-41-IDNNS", "rua.ansi_41_IDNNS",
1542 FT_BYTES
, BASE_NONE
, NULL
, 0,
1545 { "later", "rua.later_element",
1546 FT_NONE
, BASE_NONE
, NULL
, 0,
1548 { &hf_rua_futurecoding
,
1549 { "futurecoding", "rua.futurecoding",
1550 FT_BYTES
, BASE_NONE
, NULL
, 0,
1551 "BIT_STRING_SIZE_15", HFILL
}},
1552 { &hf_rua_routingbasis
,
1553 { "routingbasis", "rua.routingbasis",
1554 FT_UINT32
, BASE_DEC
, VALS(rua_T_routingbasis_vals
), 0,
1556 { &hf_rua_localPTMSI
,
1557 { "localPTMSI", "rua.localPTMSI_element",
1558 FT_NONE
, BASE_NONE
, NULL
, 0,
1560 { &hf_rua_routingparameter
,
1561 { "routingparameter", "rua.routingparameter",
1562 FT_BYTES
, BASE_NONE
, NULL
, 0,
1564 { &hf_rua_tMSIofsamePLMN
,
1565 { "tMSIofsamePLMN", "rua.tMSIofsamePLMN_element",
1566 FT_NONE
, BASE_NONE
, NULL
, 0,
1568 { &hf_rua_tMSIofdifferentPLMN
,
1569 { "tMSIofdifferentPLMN", "rua.tMSIofdifferentPLMN_element",
1570 FT_NONE
, BASE_NONE
, NULL
, 0,
1572 { &hf_rua_iMSIresponsetopaging
,
1573 { "iMSIresponsetopaging", "rua.iMSIresponsetopaging_element",
1574 FT_NONE
, BASE_NONE
, NULL
, 0,
1576 { &hf_rua_iMSIcauseUEinitiatedEvent
,
1577 { "iMSIcauseUEinitiatedEvent", "rua.iMSIcauseUEinitiatedEvent_element",
1578 FT_NONE
, BASE_NONE
, NULL
, 0,
1581 { "iMEI", "rua.iMEI_element",
1582 FT_NONE
, BASE_NONE
, NULL
, 0,
1585 { "spare2", "rua.spare2_element",
1586 FT_NONE
, BASE_NONE
, NULL
, 0,
1589 { "spare1", "rua.spare1_element",
1590 FT_NONE
, BASE_NONE
, NULL
, 0,
1593 { "dummy", "rua.dummy",
1594 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
1595 "BOOLEAN", HFILL
}},
1596 { &hf_rua_radioNetwork
,
1597 { "radioNetwork", "rua.radioNetwork",
1598 FT_UINT32
, BASE_DEC
, VALS(rua_CauseRadioNetwork_vals
), 0,
1599 "CauseRadioNetwork", HFILL
}},
1600 { &hf_rua_transport
,
1601 { "transport", "rua.transport",
1602 FT_UINT32
, BASE_DEC
, VALS(rua_CauseTransport_vals
), 0,
1603 "CauseTransport", HFILL
}},
1605 { "protocol", "rua.protocol",
1606 FT_UINT32
, BASE_DEC
, VALS(rua_CauseProtocol_vals
), 0,
1607 "CauseProtocol", HFILL
}},
1609 { "misc", "rua.misc",
1610 FT_UINT32
, BASE_DEC
, VALS(rua_CauseMisc_vals
), 0,
1611 "CauseMisc", HFILL
}},
1612 { &hf_rua_procedureCode
,
1613 { "procedureCode", "rua.procedureCode",
1614 FT_UINT32
, BASE_DEC
, VALS(rua_ProcedureCode_vals
), 0,
1616 { &hf_rua_triggeringMessage
,
1617 { "triggeringMessage", "rua.triggeringMessage",
1618 FT_UINT32
, BASE_DEC
, VALS(rua_TriggeringMessage_vals
), 0,
1620 { &hf_rua_procedureCriticality
,
1621 { "procedureCriticality", "rua.procedureCriticality",
1622 FT_UINT32
, BASE_DEC
, VALS(rua_Criticality_vals
), 0,
1623 "Criticality", HFILL
}},
1624 { &hf_rua_iEsCriticalityDiagnostics
,
1625 { "iEsCriticalityDiagnostics", "rua.iEsCriticalityDiagnostics",
1626 FT_UINT32
, BASE_DEC
, NULL
, 0,
1627 "CriticalityDiagnostics_IE_List", HFILL
}},
1628 { &hf_rua_iE_Extensions
,
1629 { "iE-Extensions", "rua.iE_Extensions",
1630 FT_UINT32
, BASE_DEC
, NULL
, 0,
1631 "ProtocolExtensionContainer", HFILL
}},
1632 { &hf_rua_CriticalityDiagnostics_IE_List_item
,
1633 { "CriticalityDiagnostics-IE-List item", "rua.CriticalityDiagnostics_IE_List_item_element",
1634 FT_NONE
, BASE_NONE
, NULL
, 0,
1636 { &hf_rua_iECriticality
,
1637 { "iECriticality", "rua.iECriticality",
1638 FT_UINT32
, BASE_DEC
, VALS(rua_Criticality_vals
), 0,
1639 "Criticality", HFILL
}},
1641 { "iE-ID", "rua.iE_ID",
1642 FT_UINT32
, BASE_DEC
, VALS(rua_ProtocolIE_ID_vals
), 0,
1643 "ProtocolIE_ID", HFILL
}},
1644 { &hf_rua_typeOfError
,
1645 { "typeOfError", "rua.typeOfError",
1646 FT_UINT32
, BASE_DEC
, VALS(rua_TypeOfError_vals
), 0,
1648 { &hf_rua_protocolIEs
,
1649 { "protocolIEs", "rua.protocolIEs",
1650 FT_UINT32
, BASE_DEC
, NULL
, 0,
1651 "ProtocolIE_Container", HFILL
}},
1652 { &hf_rua_protocolExtensions
,
1653 { "protocolExtensions", "rua.protocolExtensions",
1654 FT_UINT32
, BASE_DEC
, NULL
, 0,
1655 "ProtocolExtensionContainer", HFILL
}},
1656 { &hf_rua_privateIEs
,
1657 { "privateIEs", "rua.privateIEs",
1658 FT_UINT32
, BASE_DEC
, NULL
, 0,
1659 "PrivateIE_Container", HFILL
}},
1660 { &hf_rua_initiatingMessage
,
1661 { "initiatingMessage", "rua.initiatingMessage_element",
1662 FT_NONE
, BASE_NONE
, NULL
, 0,
1664 { &hf_rua_successfulOutcome
,
1665 { "successfulOutcome", "rua.successfulOutcome_element",
1666 FT_NONE
, BASE_NONE
, NULL
, 0,
1668 { &hf_rua_unsuccessfulOutcome
,
1669 { "unsuccessfulOutcome", "rua.unsuccessfulOutcome_element",
1670 FT_NONE
, BASE_NONE
, NULL
, 0,
1672 { &hf_rua_initiatingMessagevalue
,
1673 { "value", "rua.value_element",
1674 FT_NONE
, BASE_NONE
, NULL
, 0,
1675 "InitiatingMessage_value", HFILL
}},
1676 { &hf_rua_successfulOutcome_value
,
1677 { "value", "rua.value_element",
1678 FT_NONE
, BASE_NONE
, NULL
, 0,
1679 "SuccessfulOutcome_value", HFILL
}},
1680 { &hf_rua_unsuccessfulOutcome_value
,
1681 { "value", "rua.value_element",
1682 FT_NONE
, BASE_NONE
, NULL
, 0,
1683 "UnsuccessfulOutcome_value", HFILL
}},
1685 /*--- End of included file: packet-rua-hfarr.c ---*/
1686 #line 140 "../../asn1/rua/packet-rua-template.c"
1689 /* List of subtrees */
1690 static gint
*ett
[] = {
1693 /*--- Included file: packet-rua-ettarr.c ---*/
1694 #line 1 "../../asn1/rua/packet-rua-ettarr.c"
1695 &ett_rua_PrivateIE_ID
,
1696 &ett_rua_ProtocolIE_Container
,
1697 &ett_rua_ProtocolIE_Field
,
1698 &ett_rua_ProtocolExtensionContainer
,
1699 &ett_rua_ProtocolExtensionField
,
1700 &ett_rua_PrivateIE_Container
,
1701 &ett_rua_PrivateIE_Field
,
1702 &ett_rua_IntraDomainNasNodeSelector
,
1704 &ett_rua_T_release99
,
1707 &ett_rua_Gsm_map_IDNNS
,
1708 &ett_rua_T_routingbasis
,
1709 &ett_rua_T_localPTMSI
,
1710 &ett_rua_T_tMSIofsamePLMN
,
1711 &ett_rua_T_tMSIofdifferentPLMN
,
1712 &ett_rua_T_iMSIresponsetopaging
,
1713 &ett_rua_T_iMSIcauseUEinitiatedEvent
,
1718 &ett_rua_CriticalityDiagnostics
,
1719 &ett_rua_CriticalityDiagnostics_IE_List
,
1720 &ett_rua_CriticalityDiagnostics_IE_List_item
,
1722 &ett_rua_DirectTransfer
,
1723 &ett_rua_Disconnect
,
1724 &ett_rua_ConnectionlessTransfer
,
1725 &ett_rua_ErrorIndication
,
1726 &ett_rua_PrivateMessage
,
1728 &ett_rua_InitiatingMessage
,
1729 &ett_rua_SuccessfulOutcome
,
1730 &ett_rua_UnsuccessfulOutcome
,
1732 /*--- End of included file: packet-rua-ettarr.c ---*/
1733 #line 146 "../../asn1/rua/packet-rua-template.c"
1737 /* Register protocol */
1738 proto_rua
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
1739 /* Register fields and subtrees */
1740 proto_register_field_array(proto_rua
, hf
, array_length(hf
));
1741 proto_register_subtree_array(ett
, array_length(ett
));
1743 /* Register dissector */
1744 register_dissector("rua", dissect_rua
, proto_rua
);
1746 /* Register dissector tables */
1747 rua_ies_dissector_table
= register_dissector_table("rua.ies", "RUA-PROTOCOL-IES", FT_UINT32
, BASE_DEC
);
1748 rua_extension_dissector_table
= register_dissector_table("rua.extension", "RUA-PROTOCOL-EXTENSION", FT_UINT32
, BASE_DEC
);
1749 rua_proc_imsg_dissector_table
= register_dissector_table("rua.proc.imsg", "RUA-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32
, BASE_DEC
);
1750 rua_proc_sout_dissector_table
= register_dissector_table("rua.proc.sout", "RUA-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32
, BASE_DEC
);
1751 rua_proc_uout_dissector_table
= register_dissector_table("rua.proc.uout", "RUA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32
, BASE_DEC
);
1753 rua_module
= prefs_register_protocol(proto_rua
, proto_reg_handoff_rua
);
1754 prefs_register_uint_preference(rua_module
, "port", "RUA SCTP Port", "Set the port for RUA messages (Default of 29169)", 10, &global_sctp_port
);
1759 /*--- proto_reg_handoff_rua ---------------------------------------*/
1761 proto_reg_handoff_rua(void)
1763 static gboolean initialized
= FALSE
;
1764 static dissector_handle_t rua_handle
;
1765 static guint sctp_port
;
1768 rua_handle
= find_dissector("rua");
1769 ranap_handle
= find_dissector("ranap");
1770 dissector_add_uint("sctp.ppi", RUA_PAYLOAD_PROTOCOL_ID
, rua_handle
);
1773 /*--- Included file: packet-rua-dis-tab.c ---*/
1774 #line 1 "../../asn1/rua/packet-rua-dis-tab.c"
1775 dissector_add_uint("rua.ies", id_Cause
, new_create_dissector_handle(dissect_Cause_PDU
, proto_rua
));
1776 dissector_add_uint("rua.ies", id_CriticalityDiagnostics
, new_create_dissector_handle(dissect_CriticalityDiagnostics_PDU
, proto_rua
));
1777 dissector_add_uint("rua.ies", id_Context_ID
, new_create_dissector_handle(dissect_Context_ID_PDU
, proto_rua
));
1778 dissector_add_uint("rua.ies", id_RANAP_Message
, new_create_dissector_handle(dissect_RANAP_Message_PDU
, proto_rua
));
1779 dissector_add_uint("rua.ies", id_IntraDomainNasNodeSelector
, new_create_dissector_handle(dissect_IntraDomainNasNodeSelector_PDU
, proto_rua
));
1780 dissector_add_uint("rua.ies", id_Establishment_Cause
, new_create_dissector_handle(dissect_Establishment_Cause_PDU
, proto_rua
));
1781 dissector_add_uint("rua.ies", id_CN_DomainIndicator
, new_create_dissector_handle(dissect_CN_DomainIndicator_PDU
, proto_rua
));
1782 dissector_add_uint("rua.extension", id_CSGMembershipStatus
, new_create_dissector_handle(dissect_CSGMembershipStatus_PDU
, proto_rua
));
1783 dissector_add_uint("rua.proc.imsg", id_Connect
, new_create_dissector_handle(dissect_Connect_PDU
, proto_rua
));
1784 dissector_add_uint("rua.proc.imsg", id_DirectTransfer
, new_create_dissector_handle(dissect_DirectTransfer_PDU
, proto_rua
));
1785 dissector_add_uint("rua.proc.imsg", id_Disconnect
, new_create_dissector_handle(dissect_Disconnect_PDU
, proto_rua
));
1786 dissector_add_uint("rua.proc.imsg", id_ConnectionlessTransfer
, new_create_dissector_handle(dissect_ConnectionlessTransfer_PDU
, proto_rua
));
1787 dissector_add_uint("rua.proc.imsg", id_ErrorIndication
, new_create_dissector_handle(dissect_ErrorIndication_PDU
, proto_rua
));
1788 dissector_add_uint("rua.proc.imsg", id_privateMessage
, new_create_dissector_handle(dissect_PrivateMessage_PDU
, proto_rua
));
1791 /*--- End of included file: packet-rua-dis-tab.c ---*/
1792 #line 185 "../../asn1/rua/packet-rua-template.c"
1795 dissector_delete_uint("sctp.port", sctp_port
, rua_handle
);
1797 /* Set our port number for future use */
1798 sctp_port
= global_sctp_port
;
1799 dissector_add_uint("sctp.port", sctp_port
, rua_handle
);