1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -p hnbap -c ./hnbap.cnf -s ./packet-hnbap-template -D . -O ../../epan/dissectors HNBAP-CommonDataTypes.asn HNBAP-Constants.asn HNBAP-Containers.asn HNBAP-IEs.asn HNBAP-PDU-Contents.asn HNBAP-PDU-Descriptions.asn */
6 /* Input file: packet-hnbap-template.c */
8 #line 1 "../../asn1/hnbap/packet-hnbap-template.c"
9 /* packet-hnbap-template.c
10 * Routines for UMTS Node B Application Part(HNBAP) 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
33 * Ref: 3GPP TS 25.469 version 8.4.0 Release 8
43 #include <epan/packet.h>
44 #include <epan/sctpppids.h>
45 #include <epan/asn1.h>
46 #include <epan/prefs.h>
48 #include "packet-per.h"
51 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
52 #pragma warning(disable:4146)
55 #define PNAME "UTRAN Iuh interface HNBAP signalling"
56 #define PSNAME "HNBAP"
57 #define PFNAME "hnbap"
58 /* Dissector will use SCTP PPID 20 or SCTP port. IANA assigned port = 29169*/
59 #define SCTP_PORT_HNBAP 29169
62 /*--- Included file: packet-hnbap-val.h ---*/
63 #line 1 "../../asn1/hnbap/packet-hnbap-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_HNBDe_Register = 2,
74 id_ErrorIndication = 5,
75 id_privateMessage = 6,
76 id_CSGMembershipUpdate = 7
79 typedef enum _ProtocolIE_ID_enum {
81 id_CriticalityDiagnostics = 2,
87 id_HNB_Location_Information = 8,
91 id_Registration_Cause = 12,
92 id_UE_Capabilities = 13,
96 id_HNB_Internet_Information = 17,
97 id_HNB_Cell_Access_Mode = 18,
98 id_MuxPortNumber = 19,
99 id_Service_Area_For_Broadcast = 20,
100 id_CSGMembershipStatus = 21
101 } ProtocolIE_ID_enum;
103 /*--- End of included file: packet-hnbap-val.h ---*/
104 #line 54 "../../asn1/hnbap/packet-hnbap-template.c"
106 /* Initialize the protocol and registered fields */
107 static int proto_hnbap = -1;
110 /*--- Included file: packet-hnbap-hf.c ---*/
111 #line 1 "../../asn1/hnbap/packet-hnbap-hf.c"
112 static int hf_hnbap_BackoffTimer_PDU = -1; /* BackoffTimer */
113 static int hf_hnbap_Cause_PDU = -1; /* Cause */
114 static int hf_hnbap_CellIdentity_PDU = -1; /* CellIdentity */
115 static int hf_hnbap_Context_ID_PDU = -1; /* Context_ID */
116 static int hf_hnbap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
117 static int hf_hnbap_CSG_ID_PDU = -1; /* CSG_ID */
118 static int hf_hnbap_CSGMembershipStatus_PDU = -1; /* CSGMembershipStatus */
119 static int hf_hnbap_HNB_Cell_Access_Mode_PDU = -1; /* HNB_Cell_Access_Mode */
120 static int hf_hnbap_HNB_Location_Information_PDU = -1; /* HNB_Location_Information */
121 static int hf_hnbap_HNB_Identity_PDU = -1; /* HNB_Identity */
122 static int hf_hnbap_IP_Address_PDU = -1; /* IP_Address */
123 static int hf_hnbap_LAC_PDU = -1; /* LAC */
124 static int hf_hnbap_MuxPortNumber_PDU = -1; /* MuxPortNumber */
125 static int hf_hnbap_PLMNidentity_PDU = -1; /* PLMNidentity */
126 static int hf_hnbap_RAC_PDU = -1; /* RAC */
127 static int hf_hnbap_Registration_Cause_PDU = -1; /* Registration_Cause */
128 static int hf_hnbap_RNC_ID_PDU = -1; /* RNC_ID */
129 static int hf_hnbap_SAC_PDU = -1; /* SAC */
130 static int hf_hnbap_UE_Capabilities_PDU = -1; /* UE_Capabilities */
131 static int hf_hnbap_UE_Identity_PDU = -1; /* UE_Identity */
132 static int hf_hnbap_HNBRegisterRequest_PDU = -1; /* HNBRegisterRequest */
133 static int hf_hnbap_HNBRegisterAccept_PDU = -1; /* HNBRegisterAccept */
134 static int hf_hnbap_HNBRegisterReject_PDU = -1; /* HNBRegisterReject */
135 static int hf_hnbap_HNBDe_Register_PDU = -1; /* HNBDe_Register */
136 static int hf_hnbap_UERegisterRequest_PDU = -1; /* UERegisterRequest */
137 static int hf_hnbap_UERegisterAccept_PDU = -1; /* UERegisterAccept */
138 static int hf_hnbap_UERegisterReject_PDU = -1; /* UERegisterReject */
139 static int hf_hnbap_UEDe_Register_PDU = -1; /* UEDe_Register */
140 static int hf_hnbap_CSGMembershipUpdate_PDU = -1; /* CSGMembershipUpdate */
141 static int hf_hnbap_ErrorIndication_PDU = -1; /* ErrorIndication */
142 static int hf_hnbap_PrivateMessage_PDU = -1; /* PrivateMessage */
143 static int hf_hnbap_HNBAP_PDU_PDU = -1; /* HNBAP_PDU */
144 static int hf_hnbap_local = -1; /* INTEGER_0_65535 */
145 static int hf_hnbap_global = -1; /* OBJECT_IDENTIFIER */
146 static int hf_hnbap_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */
147 static int hf_hnbap_protocol_ie_field_id = -1; /* ProtocolIE_ID */
148 static int hf_hnbap_criticality = -1; /* Criticality */
149 static int hf_hnbap_ie_field_value = -1; /* ProtocolIE_Field_value */
150 static int hf_hnbap_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */
151 static int hf_hnbap_id = -1; /* ProtocolIE_ID */
152 static int hf_hnbap_extensionValue = -1; /* T_extensionValue */
153 static int hf_hnbap_PrivateIE_Container_item = -1; /* PrivateIE_Field */
154 static int hf_hnbap_private_ie_field_id = -1; /* PrivateIE_ID */
155 static int hf_hnbap_private_value = -1; /* PrivateIE_Field_value */
156 static int hf_hnbap_directionOfAltitude = -1; /* T_directionOfAltitude */
157 static int hf_hnbap_altitude = -1; /* INTEGER_0_32767 */
158 static int hf_hnbap_radioNetwork = -1; /* CauseRadioNetwork */
159 static int hf_hnbap_transport = -1; /* CauseTransport */
160 static int hf_hnbap_protocol = -1; /* CauseProtocol */
161 static int hf_hnbap_misc = -1; /* CauseMisc */
162 static int hf_hnbap_procedureCode = -1; /* ProcedureCode */
163 static int hf_hnbap_triggeringMessage = -1; /* TriggeringMessage */
164 static int hf_hnbap_procedureCriticality = -1; /* Criticality */
165 static int hf_hnbap_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */
166 static int hf_hnbap_iE_Extensions = -1; /* ProtocolExtensionContainer */
167 static int hf_hnbap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_List_item */
168 static int hf_hnbap_iECriticality = -1; /* Criticality */
169 static int hf_hnbap_iE_ID = -1; /* ProtocolIE_ID */
170 static int hf_hnbap_typeOfError = -1; /* TypeOfError */
171 static int hf_hnbap_pLMNidentity = -1; /* PLMNidentity */
172 static int hf_hnbap_lAC = -1; /* LAC */
173 static int hf_hnbap_cI = -1; /* CI */
174 static int hf_hnbap_geographical_location_geographical_coordinates = -1; /* GeographicalCoordinates */
175 static int hf_hnbap_altitudeAndDirection = -1; /* AltitudeAndDirection */
176 static int hf_hnbap_latitudeSign = -1; /* T_latitudeSign */
177 static int hf_hnbap_latitude = -1; /* INTEGER_0_8388607 */
178 static int hf_hnbap_longitude = -1; /* INTEGER_M8388608_8388607 */
179 static int hf_hnbap_macroCoverageInfo = -1; /* MacroCoverageInformation */
180 static int hf_hnbap_hnb_location_information_geographical_coordinates = -1; /* GeographicalLocation */
181 static int hf_hnbap_hNB_Identity_Info = -1; /* HNB_Identity_Info */
182 static int hf_hnbap_iMSIDS41 = -1; /* IMSIDS41 */
183 static int hf_hnbap_eSN = -1; /* ESN */
184 static int hf_hnbap_ipaddress = -1; /* T_ipaddress */
185 static int hf_hnbap_ipv4info = -1; /* Ipv4Address */
186 static int hf_hnbap_ipv6info = -1; /* Ipv6Address */
187 static int hf_hnbap_pLMNID = -1; /* PLMNidentity */
188 static int hf_hnbap_cellIdentity = -1; /* MacroCellID */
189 static int hf_hnbap_uTRANCellID = -1; /* UTRANCellID */
190 static int hf_hnbap_gERANCellID = -1; /* CGI */
191 static int hf_hnbap_pTMSI = -1; /* PTMSI */
192 static int hf_hnbap_rAI = -1; /* RAI */
193 static int hf_hnbap_lAI = -1; /* LAI */
194 static int hf_hnbap_rAC = -1; /* RAC */
195 static int hf_hnbap_tMSI = -1; /* BIT_STRING_SIZE_32 */
196 static int hf_hnbap_access_stratum_release_indicator = -1; /* Access_stratum_release_indicator */
197 static int hf_hnbap_csg_indicator = -1; /* CSG_Indicator */
198 static int hf_hnbap_uTRANcellID = -1; /* CellIdentity */
199 static int hf_hnbap_iMSI = -1; /* IMSI */
200 static int hf_hnbap_tMSILAI = -1; /* TMSILAI */
201 static int hf_hnbap_pTMSIRAI = -1; /* PTMSIRAI */
202 static int hf_hnbap_iMEI = -1; /* IMEI */
203 static int hf_hnbap_iMSIESN = -1; /* IMSIESN */
204 static int hf_hnbap_tMSIDS41 = -1; /* TMSIDS41 */
205 static int hf_hnbap_protocolIEs = -1; /* ProtocolIE_Container */
206 static int hf_hnbap_protocolExtensions = -1; /* ProtocolExtensionContainer */
207 static int hf_hnbap_privateIEs = -1; /* PrivateIE_Container */
208 static int hf_hnbap_initiatingMessage = -1; /* InitiatingMessage */
209 static int hf_hnbap_successfulOutcome = -1; /* SuccessfulOutcome */
210 static int hf_hnbap_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */
211 static int hf_hnbap_initiatingMessagevalue = -1; /* InitiatingMessage_value */
212 static int hf_hnbap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
213 static int hf_hnbap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
215 /*--- End of included file: packet-hnbap-hf.c ---*/
216 #line 59 "../../asn1/hnbap/packet-hnbap-template.c"
218 /* Initialize the subtree pointers */
219 static int ett_hnbap = -1;
222 /*--- Included file: packet-hnbap-ett.c ---*/
223 #line 1 "../../asn1/hnbap/packet-hnbap-ett.c"
224 static gint ett_hnbap_PrivateIE_ID = -1;
225 static gint ett_hnbap_ProtocolIE_Container = -1;
226 static gint ett_hnbap_ProtocolIE_Field = -1;
227 static gint ett_hnbap_ProtocolExtensionContainer = -1;
228 static gint ett_hnbap_ProtocolExtensionField = -1;
229 static gint ett_hnbap_PrivateIE_Container = -1;
230 static gint ett_hnbap_PrivateIE_Field = -1;
231 static gint ett_hnbap_AltitudeAndDirection = -1;
232 static gint ett_hnbap_Cause = -1;
233 static gint ett_hnbap_CriticalityDiagnostics = -1;
234 static gint ett_hnbap_CriticalityDiagnostics_IE_List = -1;
235 static gint ett_hnbap_CriticalityDiagnostics_IE_List_item = -1;
236 static gint ett_hnbap_CGI = -1;
237 static gint ett_hnbap_GeographicalLocation = -1;
238 static gint ett_hnbap_GeographicalCoordinates = -1;
239 static gint ett_hnbap_HNB_Location_Information = -1;
240 static gint ett_hnbap_HNB_Identity = -1;
241 static gint ett_hnbap_IMSIESN = -1;
242 static gint ett_hnbap_IP_Address = -1;
243 static gint ett_hnbap_T_ipaddress = -1;
244 static gint ett_hnbap_LAI = -1;
245 static gint ett_hnbap_MacroCoverageInformation = -1;
246 static gint ett_hnbap_MacroCellID = -1;
247 static gint ett_hnbap_PTMSIRAI = -1;
248 static gint ett_hnbap_RAI = -1;
249 static gint ett_hnbap_TMSILAI = -1;
250 static gint ett_hnbap_UE_Capabilities = -1;
251 static gint ett_hnbap_UTRANCellID = -1;
252 static gint ett_hnbap_UE_Identity = -1;
253 static gint ett_hnbap_HNBRegisterRequest = -1;
254 static gint ett_hnbap_HNBRegisterAccept = -1;
255 static gint ett_hnbap_HNBRegisterReject = -1;
256 static gint ett_hnbap_HNBDe_Register = -1;
257 static gint ett_hnbap_UERegisterRequest = -1;
258 static gint ett_hnbap_UERegisterAccept = -1;
259 static gint ett_hnbap_UERegisterReject = -1;
260 static gint ett_hnbap_UEDe_Register = -1;
261 static gint ett_hnbap_CSGMembershipUpdate = -1;
262 static gint ett_hnbap_ErrorIndication = -1;
263 static gint ett_hnbap_PrivateMessage = -1;
264 static gint ett_hnbap_HNBAP_PDU = -1;
265 static gint ett_hnbap_InitiatingMessage = -1;
266 static gint ett_hnbap_SuccessfulOutcome = -1;
267 static gint ett_hnbap_UnsuccessfulOutcome = -1;
269 /*--- End of included file: packet-hnbap-ett.c ---*/
270 #line 64 "../../asn1/hnbap/packet-hnbap-template.c"
272 /* Global variables */
273 static guint32 ProcedureCode;
274 static guint32 ProtocolIE_ID;
275 static guint global_sctp_port = SCTP_PORT_HNBAP;
277 /* Dissector tables */
278 static dissector_table_t hnbap_ies_dissector_table;
279 static dissector_table_t hnbap_extension_dissector_table;
280 static dissector_table_t hnbap_proc_imsg_dissector_table;
281 static dissector_table_t hnbap_proc_sout_dissector_table;
282 static dissector_table_t hnbap_proc_uout_dissector_table;
284 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
285 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
286 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
287 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
288 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
289 void proto_reg_handoff_hnbap(void);
292 /*--- Included file: packet-hnbap-fn.c ---*/
293 #line 1 "../../asn1/hnbap/packet-hnbap-fn.c"
295 static const value_string hnbap_Criticality_vals[] = {
304 dissect_hnbap_Criticality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
305 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
306 3, NULL, FALSE, 0, NULL);
314 dissect_hnbap_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
315 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
316 0U, 65535U, NULL, FALSE);
324 dissect_hnbap_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
325 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
331 static const value_string hnbap_PrivateIE_ID_vals[] = {
337 static const per_choice_t PrivateIE_ID_choice[] = {
338 { 0, &hf_hnbap_local , ASN1_NO_EXTENSIONS , dissect_hnbap_INTEGER_0_65535 },
339 { 1, &hf_hnbap_global , ASN1_NO_EXTENSIONS , dissect_hnbap_OBJECT_IDENTIFIER },
344 dissect_hnbap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
345 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
346 ett_hnbap_PrivateIE_ID, PrivateIE_ID_choice,
353 static const value_string hnbap_ProcedureCode_vals[] = {
354 { id_HNBRegister, "id-HNBRegister" },
355 { id_HNBDe_Register, "id-HNBDe-Register" },
356 { id_UERegister, "id-UERegister" },
357 { id_UEDe_Register, "id-UEDe-Register" },
358 { id_ErrorIndication, "id-ErrorIndication" },
359 { id_privateMessage, "id-privateMessage" },
360 { id_CSGMembershipUpdate, "id-CSGMembershipUpdate" },
366 dissect_hnbap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
367 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
368 0U, 255U, &ProcedureCode, FALSE);
370 #line 59 "../../asn1/hnbap/hnbap.cnf"
371 if (strcmp(val_to_str(ProcedureCode, hnbap_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
372 col_set_str(actx->pinfo->cinfo, COL_INFO,
374 } /* Known Procedures should be included below and broken out as ELEMENTARY names to avoid confusion */
381 static const value_string hnbap_ProtocolIE_ID_vals[] = {
382 { id_Cause, "id-Cause" },
383 { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
384 { id_HNB_Identity, "id-HNB-Identity" },
385 { id_Context_ID, "id-Context-ID" },
386 { id_UE_Identity, "id-UE-Identity" },
387 { id_LAC, "id-LAC" },
388 { id_RAC, "id-RAC" },
389 { id_HNB_Location_Information, "id-HNB-Location-Information" },
390 { id_PLMNidentity, "id-PLMNidentity" },
391 { id_SAC, "id-SAC" },
392 { id_CellIdentity, "id-CellIdentity" },
393 { id_Registration_Cause, "id-Registration-Cause" },
394 { id_UE_Capabilities, "id-UE-Capabilities" },
395 { id_RNC_ID, "id-RNC-ID" },
396 { id_CSG_ID, "id-CSG-ID" },
397 { id_BackoffTimer, "id-BackoffTimer" },
398 { id_HNB_Internet_Information, "id-HNB-Internet-Information" },
399 { id_HNB_Cell_Access_Mode, "id-HNB-Cell-Access-Mode" },
400 { id_MuxPortNumber, "id-MuxPortNumber" },
401 { id_Service_Area_For_Broadcast, "id-Service-Area-For-Broadcast" },
402 { id_CSGMembershipStatus, "id-CSGMembershipStatus" },
408 dissect_hnbap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
409 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
410 0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
412 #line 48 "../../asn1/hnbap/hnbap.cnf"
414 proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(hnbap_ProtocolIE_ID_vals), "unknown (%d)"));
421 static const value_string hnbap_TriggeringMessage_vals[] = {
422 { 0, "initiating-message" },
423 { 1, "successful-outcome" },
424 { 2, "unsuccessful-outcome" },
430 dissect_hnbap_TriggeringMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
431 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
432 3, NULL, FALSE, 0, NULL);
440 dissect_hnbap_ProtocolIE_Field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
441 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue);
447 static const per_sequence_t ProtocolIE_Field_sequence[] = {
448 { &hf_hnbap_protocol_ie_field_id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_ID },
449 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
450 { &hf_hnbap_ie_field_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Field_value },
455 dissect_hnbap_ProtocolIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
456 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
457 ett_hnbap_ProtocolIE_Field, ProtocolIE_Field_sequence);
463 static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
464 { &hf_hnbap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Field },
468 dissect_hnbap_ProtocolIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
469 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
470 ett_hnbap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
471 0, maxProtocolIEs, FALSE);
479 dissect_hnbap_T_extensionValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
480 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolExtensionFieldExtensionValue);
486 static const per_sequence_t ProtocolExtensionField_sequence[] = {
487 { &hf_hnbap_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_ID },
488 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
489 { &hf_hnbap_extensionValue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_T_extensionValue },
494 dissect_hnbap_ProtocolExtensionField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
495 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
496 ett_hnbap_ProtocolExtensionField, ProtocolExtensionField_sequence);
502 static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
503 { &hf_hnbap_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolExtensionField },
507 dissect_hnbap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
508 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
509 ett_hnbap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
510 1, maxProtocolExtensions, FALSE);
518 dissect_hnbap_PrivateIE_Field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
519 offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
525 static const per_sequence_t PrivateIE_Field_sequence[] = {
526 { &hf_hnbap_private_ie_field_id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_ID },
527 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
528 { &hf_hnbap_private_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_Field_value },
533 dissect_hnbap_PrivateIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
534 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
535 ett_hnbap_PrivateIE_Field, PrivateIE_Field_sequence);
541 static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
542 { &hf_hnbap_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_Field },
546 dissect_hnbap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
547 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
548 ett_hnbap_PrivateIE_Container, PrivateIE_Container_sequence_of,
549 1, maxPrivateIEs, FALSE);
555 static const value_string hnbap_Access_stratum_release_indicator_vals[] = {
561 { 5, "rel-8-and-beyond" },
567 dissect_hnbap_Access_stratum_release_indicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
568 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
569 6, NULL, TRUE, 0, NULL);
575 static const value_string hnbap_T_directionOfAltitude_vals[] = {
583 dissect_hnbap_T_directionOfAltitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
584 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
585 2, NULL, FALSE, 0, NULL);
593 dissect_hnbap_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
594 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
595 0U, 32767U, NULL, FALSE);
601 static const per_sequence_t AltitudeAndDirection_sequence[] = {
602 { &hf_hnbap_directionOfAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_T_directionOfAltitude },
603 { &hf_hnbap_altitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_INTEGER_0_32767 },
608 dissect_hnbap_AltitudeAndDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
609 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
610 ett_hnbap_AltitudeAndDirection, AltitudeAndDirection_sequence);
618 dissect_hnbap_BackoffTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
619 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
620 0U, 3600U, NULL, FALSE);
626 static const value_string hnbap_CauseRadioNetwork_vals[] = {
628 { 1, "unauthorised-Location" },
629 { 2, "unauthorised-HNB" },
630 { 3, "hNB-parameter-mismatch" },
631 { 4, "invalid-UE-identity" },
632 { 5, "uE-not-allowed-on-this-HNB" },
633 { 6, "uE-unauthorised" },
634 { 7, "connection-with-UE-lost" },
635 { 8, "ue-RRC-telease" },
636 { 9, "hNB-not-registered" },
637 { 10, "unspecified" },
639 { 12, "uE-relocated" },
640 { 13, "ue-registered-in-another-HNB" },
646 dissect_hnbap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
647 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
648 14, NULL, TRUE, 0, NULL);
654 static const value_string hnbap_CauseTransport_vals[] = {
655 { 0, "transport-resource-unavailable" },
656 { 1, "unspecified" },
662 dissect_hnbap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
663 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
664 2, NULL, TRUE, 0, NULL);
670 static const value_string hnbap_CauseProtocol_vals[] = {
671 { 0, "transfer-syntax-error" },
672 { 1, "abstract-syntax-error-reject" },
673 { 2, "abstract-syntax-error-ignore-and-notify" },
674 { 3, "message-not-compatible-with-receiver-state" },
675 { 4, "semantic-error" },
676 { 5, "unspecified" },
677 { 6, "abstract-syntax-error-falsely-constructed-message" },
683 dissect_hnbap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
684 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
685 7, NULL, TRUE, 0, NULL);
691 static const value_string hnbap_CauseMisc_vals[] = {
692 { 0, "processing-overload" },
693 { 1, "hardware-failure" },
694 { 2, "o-and-m-intervention" },
695 { 3, "unspecified" },
701 dissect_hnbap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
702 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
703 4, NULL, TRUE, 0, NULL);
709 static const value_string hnbap_Cause_vals[] = {
710 { 0, "radioNetwork" },
717 static const per_choice_t Cause_choice[] = {
718 { 0, &hf_hnbap_radioNetwork , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseRadioNetwork },
719 { 1, &hf_hnbap_transport , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseTransport },
720 { 2, &hf_hnbap_protocol , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseProtocol },
721 { 3, &hf_hnbap_misc , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseMisc },
726 dissect_hnbap_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
727 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
728 ett_hnbap_Cause, Cause_choice,
737 dissect_hnbap_CellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
738 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
739 28, 28, FALSE, NULL);
747 dissect_hnbap_Context_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
748 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
749 24, 24, FALSE, NULL);
755 static const value_string hnbap_TypeOfError_vals[] = {
756 { 0, "not-understood" },
763 dissect_hnbap_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
764 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
765 2, NULL, TRUE, 0, NULL);
771 static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
772 { &hf_hnbap_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
773 { &hf_hnbap_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_ID },
774 { &hf_hnbap_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_TypeOfError },
775 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
780 dissect_hnbap_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
781 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
782 ett_hnbap_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
788 static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
789 { &hf_hnbap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_CriticalityDiagnostics_IE_List_item },
793 dissect_hnbap_CriticalityDiagnostics_IE_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
794 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
795 ett_hnbap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
796 1, maxNrOfErrors, FALSE);
802 static const per_sequence_t CriticalityDiagnostics_sequence[] = {
803 { &hf_hnbap_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProcedureCode },
804 { &hf_hnbap_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_TriggeringMessage },
805 { &hf_hnbap_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_Criticality },
806 { &hf_hnbap_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_CriticalityDiagnostics_IE_List },
807 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
812 dissect_hnbap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
813 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
814 ett_hnbap_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
822 dissect_hnbap_CSG_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
823 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
824 27, 27, FALSE, NULL);
830 static const value_string hnbap_CSG_Indicator_vals[] = {
831 { 0, "csg-capable" },
832 { 1, "not-csg-capable" },
838 dissect_hnbap_CSG_Indicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
839 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
840 2, NULL, TRUE, 0, NULL);
846 static const value_string hnbap_CSGMembershipStatus_vals[] = {
854 dissect_hnbap_CSGMembershipStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
855 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
856 2, NULL, TRUE, 0, NULL);
864 dissect_hnbap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
865 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
874 dissect_hnbap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
875 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
884 dissect_hnbap_CI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
885 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
892 static const per_sequence_t CGI_sequence[] = {
893 { &hf_hnbap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PLMNidentity },
894 { &hf_hnbap_lAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_LAC },
895 { &hf_hnbap_cI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_CI },
896 { &hf_hnbap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
901 dissect_hnbap_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
902 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
903 ett_hnbap_CGI, CGI_sequence);
911 dissect_hnbap_ESN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
912 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
913 32, 32, FALSE, NULL);
919 static const value_string hnbap_T_latitudeSign_vals[] = {
927 dissect_hnbap_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
928 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
929 2, NULL, FALSE, 0, NULL);
937 dissect_hnbap_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
938 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
939 0U, 8388607U, NULL, FALSE);
947 dissect_hnbap_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
948 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
949 -8388608, 8388607U, NULL, FALSE);
955 static const per_sequence_t GeographicalCoordinates_sequence[] = {
956 { &hf_hnbap_latitudeSign , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_T_latitudeSign },
957 { &hf_hnbap_latitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_INTEGER_0_8388607 },
958 { &hf_hnbap_longitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_INTEGER_M8388608_8388607 },
959 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
964 dissect_hnbap_GeographicalCoordinates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
965 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
966 ett_hnbap_GeographicalCoordinates, GeographicalCoordinates_sequence);
972 static const per_sequence_t GeographicalLocation_sequence[] = {
973 { &hf_hnbap_geographical_location_geographical_coordinates, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_GeographicalCoordinates },
974 { &hf_hnbap_altitudeAndDirection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_AltitudeAndDirection },
975 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
980 dissect_hnbap_GeographicalLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
981 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
982 ett_hnbap_GeographicalLocation, GeographicalLocation_sequence);
988 static const value_string hnbap_HNB_Cell_Access_Mode_vals[] = {
997 dissect_hnbap_HNB_Cell_Access_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
998 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
999 3, NULL, TRUE, 0, NULL);
1007 dissect_hnbap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1008 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1015 static const per_sequence_t UTRANCellID_sequence[] = {
1016 { &hf_hnbap_lAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_LAC },
1017 { &hf_hnbap_rAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_RAC },
1018 { &hf_hnbap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PLMNidentity },
1019 { &hf_hnbap_uTRANcellID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_CellIdentity },
1020 { &hf_hnbap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1021 { NULL, 0, 0, NULL }
1025 dissect_hnbap_UTRANCellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1026 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1027 ett_hnbap_UTRANCellID, UTRANCellID_sequence);
1033 static const value_string hnbap_MacroCellID_vals[] = {
1034 { 0, "uTRANCellID" },
1035 { 1, "gERANCellID" },
1039 static const per_choice_t MacroCellID_choice[] = {
1040 { 0, &hf_hnbap_uTRANCellID , ASN1_EXTENSION_ROOT , dissect_hnbap_UTRANCellID },
1041 { 1, &hf_hnbap_gERANCellID , ASN1_EXTENSION_ROOT , dissect_hnbap_CGI },
1042 { 0, NULL, 0, NULL }
1046 dissect_hnbap_MacroCellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1047 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1048 ett_hnbap_MacroCellID, MacroCellID_choice,
1055 static const per_sequence_t MacroCoverageInformation_sequence[] = {
1056 { &hf_hnbap_cellIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_MacroCellID },
1057 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1058 { NULL, 0, 0, NULL }
1062 dissect_hnbap_MacroCoverageInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1063 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1064 ett_hnbap_MacroCoverageInformation, MacroCoverageInformation_sequence);
1070 static const per_sequence_t HNB_Location_Information_sequence[] = {
1071 { &hf_hnbap_macroCoverageInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_MacroCoverageInformation },
1072 { &hf_hnbap_hnb_location_information_geographical_coordinates, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_GeographicalLocation },
1073 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1074 { NULL, 0, 0, NULL }
1078 dissect_hnbap_HNB_Location_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1079 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1080 ett_hnbap_HNB_Location_Information, HNB_Location_Information_sequence);
1088 dissect_hnbap_HNB_Identity_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1089 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1090 1, 255, FALSE, NULL);
1096 static const per_sequence_t HNB_Identity_sequence[] = {
1097 { &hf_hnbap_hNB_Identity_Info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_HNB_Identity_Info },
1098 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1099 { NULL, 0, 0, NULL }
1103 dissect_hnbap_HNB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1104 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1105 ett_hnbap_HNB_Identity, HNB_Identity_sequence);
1113 dissect_hnbap_IMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1114 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1115 60, 60, FALSE, NULL);
1123 dissect_hnbap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1124 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1133 dissect_hnbap_IMSIDS41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1134 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1141 static const per_sequence_t IMSIESN_sequence[] = {
1142 { &hf_hnbap_iMSIDS41 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_IMSIDS41 },
1143 { &hf_hnbap_eSN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ESN },
1144 { NULL, 0, 0, NULL }
1148 dissect_hnbap_IMSIESN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1149 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1150 ett_hnbap_IMSIESN, IMSIESN_sequence);
1158 dissect_hnbap_Ipv4Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1159 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1168 dissect_hnbap_Ipv6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1169 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1170 16, 16, FALSE, NULL);
1176 static const value_string hnbap_T_ipaddress_vals[] = {
1182 static const per_choice_t T_ipaddress_choice[] = {
1183 { 0, &hf_hnbap_ipv4info , ASN1_EXTENSION_ROOT , dissect_hnbap_Ipv4Address },
1184 { 1, &hf_hnbap_ipv6info , ASN1_EXTENSION_ROOT , dissect_hnbap_Ipv6Address },
1185 { 0, NULL, 0, NULL }
1189 dissect_hnbap_T_ipaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1190 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1191 ett_hnbap_T_ipaddress, T_ipaddress_choice,
1198 static const per_sequence_t IP_Address_sequence[] = {
1199 { &hf_hnbap_ipaddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_T_ipaddress },
1200 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1201 { NULL, 0, 0, NULL }
1205 dissect_hnbap_IP_Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1206 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1207 ett_hnbap_IP_Address, IP_Address_sequence);
1213 static const per_sequence_t LAI_sequence[] = {
1214 { &hf_hnbap_pLMNID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_PLMNidentity },
1215 { &hf_hnbap_lAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_LAC },
1216 { NULL, 0, 0, NULL }
1220 dissect_hnbap_LAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1221 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1222 ett_hnbap_LAI, LAI_sequence);
1230 dissect_hnbap_MuxPortNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1231 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1232 1024U, 65535U, NULL, FALSE);
1240 dissect_hnbap_PTMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1241 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1242 32, 32, FALSE, NULL);
1248 static const per_sequence_t RAI_sequence[] = {
1249 { &hf_hnbap_lAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_LAI },
1250 { &hf_hnbap_rAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_RAC },
1251 { NULL, 0, 0, NULL }
1255 dissect_hnbap_RAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1256 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1257 ett_hnbap_RAI, RAI_sequence);
1263 static const per_sequence_t PTMSIRAI_sequence[] = {
1264 { &hf_hnbap_pTMSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_PTMSI },
1265 { &hf_hnbap_rAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_RAI },
1266 { NULL, 0, 0, NULL }
1270 dissect_hnbap_PTMSIRAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1271 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1272 ett_hnbap_PTMSIRAI, PTMSIRAI_sequence);
1278 static const value_string hnbap_Registration_Cause_vals[] = {
1279 { 0, "emergency-call" },
1286 dissect_hnbap_Registration_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1287 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1288 2, NULL, TRUE, 0, NULL);
1296 dissect_hnbap_RNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1297 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1298 0U, 65535U, NULL, FALSE);
1306 dissect_hnbap_SAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1307 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1316 dissect_hnbap_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1317 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1318 32, 32, FALSE, NULL);
1324 static const per_sequence_t TMSILAI_sequence[] = {
1325 { &hf_hnbap_tMSI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_BIT_STRING_SIZE_32 },
1326 { &hf_hnbap_lAI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_LAI },
1327 { NULL, 0, 0, NULL }
1331 dissect_hnbap_TMSILAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1332 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1333 ett_hnbap_TMSILAI, TMSILAI_sequence);
1341 dissect_hnbap_TMSIDS41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1342 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1343 2, 17, FALSE, NULL);
1349 static const per_sequence_t UE_Capabilities_sequence[] = {
1350 { &hf_hnbap_access_stratum_release_indicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_Access_stratum_release_indicator },
1351 { &hf_hnbap_csg_indicator , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_CSG_Indicator },
1352 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1353 { NULL, 0, 0, NULL }
1357 dissect_hnbap_UE_Capabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1358 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1359 ett_hnbap_UE_Capabilities, UE_Capabilities_sequence);
1365 static const value_string hnbap_UE_Identity_vals[] = {
1377 static const per_choice_t UE_Identity_choice[] = {
1378 { 0, &hf_hnbap_iMSI , ASN1_EXTENSION_ROOT , dissect_hnbap_IMSI },
1379 { 1, &hf_hnbap_tMSILAI , ASN1_EXTENSION_ROOT , dissect_hnbap_TMSILAI },
1380 { 2, &hf_hnbap_pTMSIRAI , ASN1_EXTENSION_ROOT , dissect_hnbap_PTMSIRAI },
1381 { 3, &hf_hnbap_iMEI , ASN1_EXTENSION_ROOT , dissect_hnbap_IMEI },
1382 { 4, &hf_hnbap_eSN , ASN1_EXTENSION_ROOT , dissect_hnbap_ESN },
1383 { 5, &hf_hnbap_iMSIDS41 , ASN1_EXTENSION_ROOT , dissect_hnbap_IMSIDS41 },
1384 { 6, &hf_hnbap_iMSIESN , ASN1_EXTENSION_ROOT , dissect_hnbap_IMSIESN },
1385 { 7, &hf_hnbap_tMSIDS41 , ASN1_EXTENSION_ROOT , dissect_hnbap_TMSIDS41 },
1386 { 0, NULL, 0, NULL }
1390 dissect_hnbap_UE_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1391 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1392 ett_hnbap_UE_Identity, UE_Identity_choice,
1399 static const per_sequence_t HNBRegisterRequest_sequence[] = {
1400 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1401 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1402 { NULL, 0, 0, NULL }
1406 dissect_hnbap_HNBRegisterRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1407 #line 72 "../../asn1/hnbap/hnbap.cnf"
1408 col_set_str(actx->pinfo->cinfo, COL_INFO,
1409 "HNB_REGISTER_REQUEST ");
1410 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1411 ett_hnbap_HNBRegisterRequest, HNBRegisterRequest_sequence);
1420 static const per_sequence_t HNBRegisterAccept_sequence[] = {
1421 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1422 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1423 { NULL, 0, 0, NULL }
1427 dissect_hnbap_HNBRegisterAccept(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1428 #line 77 "../../asn1/hnbap/hnbap.cnf"
1429 col_set_str(actx->pinfo->cinfo, COL_INFO,
1430 "HNB_REGISTER_ACCEPT ");
1431 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1432 ett_hnbap_HNBRegisterAccept, HNBRegisterAccept_sequence);
1441 static const per_sequence_t HNBRegisterReject_sequence[] = {
1442 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1443 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1444 { NULL, 0, 0, NULL }
1448 dissect_hnbap_HNBRegisterReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1449 #line 82 "../../asn1/hnbap/hnbap.cnf"
1450 col_set_str(actx->pinfo->cinfo, COL_INFO,
1451 "HNB_REGISTER_REJECT ");
1452 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1453 ett_hnbap_HNBRegisterReject, HNBRegisterReject_sequence);
1462 static const per_sequence_t HNBDe_Register_sequence[] = {
1463 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1464 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1465 { NULL, 0, 0, NULL }
1469 dissect_hnbap_HNBDe_Register(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1470 #line 107 "../../asn1/hnbap/hnbap.cnf"
1471 col_set_str(actx->pinfo->cinfo, COL_INFO,
1472 "HNB_DE-REGISTER ");
1473 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1474 ett_hnbap_HNBDe_Register, HNBDe_Register_sequence);
1483 static const per_sequence_t UERegisterRequest_sequence[] = {
1484 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1485 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1486 { NULL, 0, 0, NULL }
1490 dissect_hnbap_UERegisterRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1491 #line 87 "../../asn1/hnbap/hnbap.cnf"
1492 col_set_str(actx->pinfo->cinfo, COL_INFO,
1493 "UE_REGISTER_REQUEST ");
1494 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1495 ett_hnbap_UERegisterRequest, UERegisterRequest_sequence);
1504 static const per_sequence_t UERegisterAccept_sequence[] = {
1505 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1506 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1507 { NULL, 0, 0, NULL }
1511 dissect_hnbap_UERegisterAccept(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1512 #line 92 "../../asn1/hnbap/hnbap.cnf"
1513 col_set_str(actx->pinfo->cinfo, COL_INFO,
1514 "UE_REGISTER_ACCEPT ");
1515 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1516 ett_hnbap_UERegisterAccept, UERegisterAccept_sequence);
1525 static const per_sequence_t UERegisterReject_sequence[] = {
1526 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1527 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1528 { NULL, 0, 0, NULL }
1532 dissect_hnbap_UERegisterReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1533 #line 97 "../../asn1/hnbap/hnbap.cnf"
1534 col_set_str(actx->pinfo->cinfo, COL_INFO,
1535 "UE_REGISTER_REJECT ");
1536 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1537 ett_hnbap_UERegisterReject, UERegisterReject_sequence);
1546 static const per_sequence_t UEDe_Register_sequence[] = {
1547 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1548 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1549 { NULL, 0, 0, NULL }
1553 dissect_hnbap_UEDe_Register(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1554 #line 102 "../../asn1/hnbap/hnbap.cnf"
1555 col_set_str(actx->pinfo->cinfo, COL_INFO,
1557 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1558 ett_hnbap_UEDe_Register, UEDe_Register_sequence);
1567 static const per_sequence_t CSGMembershipUpdate_sequence[] = {
1568 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1569 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1570 { NULL, 0, 0, NULL }
1574 dissect_hnbap_CSGMembershipUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1575 #line 118 "../../asn1/hnbap/hnbap.cnf"
1576 col_set_str(actx->pinfo->cinfo, COL_INFO,
1577 "CSG_MEMBERSHIP_UPDATE_MESSAGE ");
1578 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1579 ett_hnbap_CSGMembershipUpdate, CSGMembershipUpdate_sequence);
1588 static const per_sequence_t ErrorIndication_sequence[] = {
1589 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1590 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1591 { NULL, 0, 0, NULL }
1595 dissect_hnbap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1596 #line 112 "../../asn1/hnbap/hnbap.cnf"
1597 col_set_str(actx->pinfo->cinfo, COL_INFO,
1598 "ERROR_INDICATION ");
1599 col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
1600 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1601 ett_hnbap_ErrorIndication, ErrorIndication_sequence);
1610 static const per_sequence_t PrivateMessage_sequence[] = {
1611 { &hf_hnbap_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_Container },
1612 { NULL, 0, 0, NULL }
1616 dissect_hnbap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1617 #line 123 "../../asn1/hnbap/hnbap.cnf"
1618 col_set_str(actx->pinfo->cinfo, COL_INFO,
1619 "PRIVATE_MESSAGE ");
1620 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1621 ett_hnbap_PrivateMessage, PrivateMessage_sequence);
1631 dissect_hnbap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1632 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
1638 static const per_sequence_t InitiatingMessage_sequence[] = {
1639 { &hf_hnbap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProcedureCode },
1640 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
1641 { &hf_hnbap_initiatingMessagevalue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_InitiatingMessage_value },
1642 { NULL, 0, 0, NULL }
1646 dissect_hnbap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1647 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1648 ett_hnbap_InitiatingMessage, InitiatingMessage_sequence);
1656 dissect_hnbap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1657 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
1663 static const per_sequence_t SuccessfulOutcome_sequence[] = {
1664 { &hf_hnbap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProcedureCode },
1665 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
1666 { &hf_hnbap_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_SuccessfulOutcome_value },
1667 { NULL, 0, 0, NULL }
1671 dissect_hnbap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1672 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1673 ett_hnbap_SuccessfulOutcome, SuccessfulOutcome_sequence);
1681 dissect_hnbap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1682 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue);
1688 static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
1689 { &hf_hnbap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProcedureCode },
1690 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
1691 { &hf_hnbap_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_UnsuccessfulOutcome_value },
1692 { NULL, 0, 0, NULL }
1696 dissect_hnbap_UnsuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1697 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1698 ett_hnbap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
1704 static const value_string hnbap_HNBAP_PDU_vals[] = {
1705 { 0, "initiatingMessage" },
1706 { 1, "successfulOutcome" },
1707 { 2, "unsuccessfulOutcome" },
1711 static const per_choice_t HNBAP_PDU_choice[] = {
1712 { 0, &hf_hnbap_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_hnbap_InitiatingMessage },
1713 { 1, &hf_hnbap_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_hnbap_SuccessfulOutcome },
1714 { 2, &hf_hnbap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_hnbap_UnsuccessfulOutcome },
1715 { 0, NULL, 0, NULL }
1719 dissect_hnbap_HNBAP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1720 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1721 ett_hnbap_HNBAP_PDU, HNBAP_PDU_choice,
1729 static int dissect_BackoffTimer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1731 asn1_ctx_t asn1_ctx;
1732 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1733 offset = dissect_hnbap_BackoffTimer(tvb, offset, &asn1_ctx, tree, hf_hnbap_BackoffTimer_PDU);
1734 offset += 7; offset >>= 3;
1737 static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1739 asn1_ctx_t asn1_ctx;
1740 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1741 offset = dissect_hnbap_Cause(tvb, offset, &asn1_ctx, tree, hf_hnbap_Cause_PDU);
1742 offset += 7; offset >>= 3;
1745 static int dissect_CellIdentity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1747 asn1_ctx_t asn1_ctx;
1748 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1749 offset = dissect_hnbap_CellIdentity(tvb, offset, &asn1_ctx, tree, hf_hnbap_CellIdentity_PDU);
1750 offset += 7; offset >>= 3;
1753 static int dissect_Context_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1755 asn1_ctx_t asn1_ctx;
1756 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1757 offset = dissect_hnbap_Context_ID(tvb, offset, &asn1_ctx, tree, hf_hnbap_Context_ID_PDU);
1758 offset += 7; offset >>= 3;
1761 static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1763 asn1_ctx_t asn1_ctx;
1764 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1765 offset = dissect_hnbap_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_hnbap_CriticalityDiagnostics_PDU);
1766 offset += 7; offset >>= 3;
1769 static int dissect_CSG_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1771 asn1_ctx_t asn1_ctx;
1772 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1773 offset = dissect_hnbap_CSG_ID(tvb, offset, &asn1_ctx, tree, hf_hnbap_CSG_ID_PDU);
1774 offset += 7; offset >>= 3;
1777 static int dissect_CSGMembershipStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1779 asn1_ctx_t asn1_ctx;
1780 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1781 offset = dissect_hnbap_CSGMembershipStatus(tvb, offset, &asn1_ctx, tree, hf_hnbap_CSGMembershipStatus_PDU);
1782 offset += 7; offset >>= 3;
1785 static int dissect_HNB_Cell_Access_Mode_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1787 asn1_ctx_t asn1_ctx;
1788 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1789 offset = dissect_hnbap_HNB_Cell_Access_Mode(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNB_Cell_Access_Mode_PDU);
1790 offset += 7; offset >>= 3;
1793 static int dissect_HNB_Location_Information_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1795 asn1_ctx_t asn1_ctx;
1796 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1797 offset = dissect_hnbap_HNB_Location_Information(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNB_Location_Information_PDU);
1798 offset += 7; offset >>= 3;
1801 static int dissect_HNB_Identity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1803 asn1_ctx_t asn1_ctx;
1804 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1805 offset = dissect_hnbap_HNB_Identity(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNB_Identity_PDU);
1806 offset += 7; offset >>= 3;
1809 static int dissect_IP_Address_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1811 asn1_ctx_t asn1_ctx;
1812 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1813 offset = dissect_hnbap_IP_Address(tvb, offset, &asn1_ctx, tree, hf_hnbap_IP_Address_PDU);
1814 offset += 7; offset >>= 3;
1817 static int dissect_LAC_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1819 asn1_ctx_t asn1_ctx;
1820 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1821 offset = dissect_hnbap_LAC(tvb, offset, &asn1_ctx, tree, hf_hnbap_LAC_PDU);
1822 offset += 7; offset >>= 3;
1825 static int dissect_MuxPortNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1827 asn1_ctx_t asn1_ctx;
1828 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1829 offset = dissect_hnbap_MuxPortNumber(tvb, offset, &asn1_ctx, tree, hf_hnbap_MuxPortNumber_PDU);
1830 offset += 7; offset >>= 3;
1833 static int dissect_PLMNidentity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1835 asn1_ctx_t asn1_ctx;
1836 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1837 offset = dissect_hnbap_PLMNidentity(tvb, offset, &asn1_ctx, tree, hf_hnbap_PLMNidentity_PDU);
1838 offset += 7; offset >>= 3;
1841 static int dissect_RAC_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1843 asn1_ctx_t asn1_ctx;
1844 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1845 offset = dissect_hnbap_RAC(tvb, offset, &asn1_ctx, tree, hf_hnbap_RAC_PDU);
1846 offset += 7; offset >>= 3;
1849 static int dissect_Registration_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1851 asn1_ctx_t asn1_ctx;
1852 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1853 offset = dissect_hnbap_Registration_Cause(tvb, offset, &asn1_ctx, tree, hf_hnbap_Registration_Cause_PDU);
1854 offset += 7; offset >>= 3;
1857 static int dissect_RNC_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1859 asn1_ctx_t asn1_ctx;
1860 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1861 offset = dissect_hnbap_RNC_ID(tvb, offset, &asn1_ctx, tree, hf_hnbap_RNC_ID_PDU);
1862 offset += 7; offset >>= 3;
1865 static int dissect_SAC_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1867 asn1_ctx_t asn1_ctx;
1868 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1869 offset = dissect_hnbap_SAC(tvb, offset, &asn1_ctx, tree, hf_hnbap_SAC_PDU);
1870 offset += 7; offset >>= 3;
1873 static int dissect_UE_Capabilities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1875 asn1_ctx_t asn1_ctx;
1876 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1877 offset = dissect_hnbap_UE_Capabilities(tvb, offset, &asn1_ctx, tree, hf_hnbap_UE_Capabilities_PDU);
1878 offset += 7; offset >>= 3;
1881 static int dissect_UE_Identity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1883 asn1_ctx_t asn1_ctx;
1884 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1885 offset = dissect_hnbap_UE_Identity(tvb, offset, &asn1_ctx, tree, hf_hnbap_UE_Identity_PDU);
1886 offset += 7; offset >>= 3;
1889 static int dissect_HNBRegisterRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1891 asn1_ctx_t asn1_ctx;
1892 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1893 offset = dissect_hnbap_HNBRegisterRequest(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBRegisterRequest_PDU);
1894 offset += 7; offset >>= 3;
1897 static int dissect_HNBRegisterAccept_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1899 asn1_ctx_t asn1_ctx;
1900 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1901 offset = dissect_hnbap_HNBRegisterAccept(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBRegisterAccept_PDU);
1902 offset += 7; offset >>= 3;
1905 static int dissect_HNBRegisterReject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1907 asn1_ctx_t asn1_ctx;
1908 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1909 offset = dissect_hnbap_HNBRegisterReject(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBRegisterReject_PDU);
1910 offset += 7; offset >>= 3;
1913 static int dissect_HNBDe_Register_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1915 asn1_ctx_t asn1_ctx;
1916 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1917 offset = dissect_hnbap_HNBDe_Register(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBDe_Register_PDU);
1918 offset += 7; offset >>= 3;
1921 static int dissect_UERegisterRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1923 asn1_ctx_t asn1_ctx;
1924 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1925 offset = dissect_hnbap_UERegisterRequest(tvb, offset, &asn1_ctx, tree, hf_hnbap_UERegisterRequest_PDU);
1926 offset += 7; offset >>= 3;
1929 static int dissect_UERegisterAccept_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1931 asn1_ctx_t asn1_ctx;
1932 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1933 offset = dissect_hnbap_UERegisterAccept(tvb, offset, &asn1_ctx, tree, hf_hnbap_UERegisterAccept_PDU);
1934 offset += 7; offset >>= 3;
1937 static int dissect_UERegisterReject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1939 asn1_ctx_t asn1_ctx;
1940 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1941 offset = dissect_hnbap_UERegisterReject(tvb, offset, &asn1_ctx, tree, hf_hnbap_UERegisterReject_PDU);
1942 offset += 7; offset >>= 3;
1945 static int dissect_UEDe_Register_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1947 asn1_ctx_t asn1_ctx;
1948 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1949 offset = dissect_hnbap_UEDe_Register(tvb, offset, &asn1_ctx, tree, hf_hnbap_UEDe_Register_PDU);
1950 offset += 7; offset >>= 3;
1953 static int dissect_CSGMembershipUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1955 asn1_ctx_t asn1_ctx;
1956 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1957 offset = dissect_hnbap_CSGMembershipUpdate(tvb, offset, &asn1_ctx, tree, hf_hnbap_CSGMembershipUpdate_PDU);
1958 offset += 7; offset >>= 3;
1961 static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1963 asn1_ctx_t asn1_ctx;
1964 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1965 offset = dissect_hnbap_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_hnbap_ErrorIndication_PDU);
1966 offset += 7; offset >>= 3;
1969 static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1971 asn1_ctx_t asn1_ctx;
1972 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1973 offset = dissect_hnbap_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_hnbap_PrivateMessage_PDU);
1974 offset += 7; offset >>= 3;
1977 static void dissect_HNBAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1978 asn1_ctx_t asn1_ctx;
1979 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1980 dissect_hnbap_HNBAP_PDU(tvb, 0, &asn1_ctx, tree, hf_hnbap_HNBAP_PDU_PDU);
1984 /*--- End of included file: packet-hnbap-fn.c ---*/
1985 #line 85 "../../asn1/hnbap/packet-hnbap-template.c"
1987 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
1989 return (dissector_try_uint_new(hnbap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
1992 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
1994 return (dissector_try_uint_new(hnbap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
1997 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
1999 if (!ProcedureCode) return 0;
2000 return (dissector_try_string(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
2003 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2005 if (!ProcedureCode) return 0;
2006 return (dissector_try_string(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
2009 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2011 if (!ProcedureCode) return 0;
2012 return (dissector_try_string(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
2016 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2018 return (dissector_try_uint_new(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
2021 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2023 return (dissector_try_uint_new(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
2026 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2028 return (dissector_try_uint_new(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
2032 dissect_hnbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2034 proto_item *hnbap_item = NULL;
2035 proto_tree *hnbap_tree = NULL;
2037 /* make entry in the Protocol column on summary display */
2038 col_set_str(pinfo->cinfo, COL_PROTOCOL, "HNBAP");
2040 /* create the hnbap protocol tree */
2041 hnbap_item = proto_tree_add_item(tree, proto_hnbap, tvb, 0, -1, ENC_NA);
2042 hnbap_tree = proto_item_add_subtree(hnbap_item, ett_hnbap);
2044 dissect_HNBAP_PDU_PDU(tvb, pinfo, hnbap_tree);
2047 /*--- proto_register_hnbap -------------------------------------------*/
2048 void proto_register_hnbap(void) {
2049 module_t *hnbap_module;
2051 /* List of fields */
2053 static hf_register_info hf[] = {
2056 /*--- Included file: packet-hnbap-hfarr.c ---*/
2057 #line 1 "../../asn1/hnbap/packet-hnbap-hfarr.c"
2058 { &hf_hnbap_BackoffTimer_PDU,
2059 { "BackoffTimer", "hnbap.BackoffTimer",
2060 FT_UINT32, BASE_DEC, NULL, 0,
2062 { &hf_hnbap_Cause_PDU,
2063 { "Cause", "hnbap.Cause",
2064 FT_UINT32, BASE_DEC, VALS(hnbap_Cause_vals), 0,
2066 { &hf_hnbap_CellIdentity_PDU,
2067 { "CellIdentity", "hnbap.CellIdentity",
2068 FT_BYTES, BASE_NONE, NULL, 0,
2070 { &hf_hnbap_Context_ID_PDU,
2071 { "Context-ID", "hnbap.Context_ID",
2072 FT_BYTES, BASE_NONE, NULL, 0,
2074 { &hf_hnbap_CriticalityDiagnostics_PDU,
2075 { "CriticalityDiagnostics", "hnbap.CriticalityDiagnostics",
2076 FT_NONE, BASE_NONE, NULL, 0,
2078 { &hf_hnbap_CSG_ID_PDU,
2079 { "CSG-ID", "hnbap.CSG_ID",
2080 FT_BYTES, BASE_NONE, NULL, 0,
2082 { &hf_hnbap_CSGMembershipStatus_PDU,
2083 { "CSGMembershipStatus", "hnbap.CSGMembershipStatus",
2084 FT_UINT32, BASE_DEC, VALS(hnbap_CSGMembershipStatus_vals), 0,
2086 { &hf_hnbap_HNB_Cell_Access_Mode_PDU,
2087 { "HNB-Cell-Access-Mode", "hnbap.HNB_Cell_Access_Mode",
2088 FT_UINT32, BASE_DEC, VALS(hnbap_HNB_Cell_Access_Mode_vals), 0,
2090 { &hf_hnbap_HNB_Location_Information_PDU,
2091 { "HNB-Location-Information", "hnbap.HNB_Location_Information",
2092 FT_NONE, BASE_NONE, NULL, 0,
2094 { &hf_hnbap_HNB_Identity_PDU,
2095 { "HNB-Identity", "hnbap.HNB_Identity",
2096 FT_NONE, BASE_NONE, NULL, 0,
2098 { &hf_hnbap_IP_Address_PDU,
2099 { "IP-Address", "hnbap.IP_Address",
2100 FT_NONE, BASE_NONE, NULL, 0,
2102 { &hf_hnbap_LAC_PDU,
2103 { "LAC", "hnbap.LAC",
2104 FT_BYTES, BASE_NONE, NULL, 0,
2106 { &hf_hnbap_MuxPortNumber_PDU,
2107 { "MuxPortNumber", "hnbap.MuxPortNumber",
2108 FT_UINT32, BASE_DEC, NULL, 0,
2110 { &hf_hnbap_PLMNidentity_PDU,
2111 { "PLMNidentity", "hnbap.PLMNidentity",
2112 FT_BYTES, BASE_NONE, NULL, 0,
2114 { &hf_hnbap_RAC_PDU,
2115 { "RAC", "hnbap.RAC",
2116 FT_BYTES, BASE_NONE, NULL, 0,
2118 { &hf_hnbap_Registration_Cause_PDU,
2119 { "Registration-Cause", "hnbap.Registration_Cause",
2120 FT_UINT32, BASE_DEC, VALS(hnbap_Registration_Cause_vals), 0,
2122 { &hf_hnbap_RNC_ID_PDU,
2123 { "RNC-ID", "hnbap.RNC_ID",
2124 FT_UINT32, BASE_DEC, NULL, 0,
2126 { &hf_hnbap_SAC_PDU,
2127 { "SAC", "hnbap.SAC",
2128 FT_BYTES, BASE_NONE, NULL, 0,
2130 { &hf_hnbap_UE_Capabilities_PDU,
2131 { "UE-Capabilities", "hnbap.UE_Capabilities",
2132 FT_NONE, BASE_NONE, NULL, 0,
2134 { &hf_hnbap_UE_Identity_PDU,
2135 { "UE-Identity", "hnbap.UE_Identity",
2136 FT_UINT32, BASE_DEC, VALS(hnbap_UE_Identity_vals), 0,
2138 { &hf_hnbap_HNBRegisterRequest_PDU,
2139 { "HNBRegisterRequest", "hnbap.HNBRegisterRequest",
2140 FT_NONE, BASE_NONE, NULL, 0,
2142 { &hf_hnbap_HNBRegisterAccept_PDU,
2143 { "HNBRegisterAccept", "hnbap.HNBRegisterAccept",
2144 FT_NONE, BASE_NONE, NULL, 0,
2146 { &hf_hnbap_HNBRegisterReject_PDU,
2147 { "HNBRegisterReject", "hnbap.HNBRegisterReject",
2148 FT_NONE, BASE_NONE, NULL, 0,
2150 { &hf_hnbap_HNBDe_Register_PDU,
2151 { "HNBDe-Register", "hnbap.HNBDe_Register",
2152 FT_NONE, BASE_NONE, NULL, 0,
2154 { &hf_hnbap_UERegisterRequest_PDU,
2155 { "UERegisterRequest", "hnbap.UERegisterRequest",
2156 FT_NONE, BASE_NONE, NULL, 0,
2158 { &hf_hnbap_UERegisterAccept_PDU,
2159 { "UERegisterAccept", "hnbap.UERegisterAccept",
2160 FT_NONE, BASE_NONE, NULL, 0,
2162 { &hf_hnbap_UERegisterReject_PDU,
2163 { "UERegisterReject", "hnbap.UERegisterReject",
2164 FT_NONE, BASE_NONE, NULL, 0,
2166 { &hf_hnbap_UEDe_Register_PDU,
2167 { "UEDe-Register", "hnbap.UEDe_Register",
2168 FT_NONE, BASE_NONE, NULL, 0,
2170 { &hf_hnbap_CSGMembershipUpdate_PDU,
2171 { "CSGMembershipUpdate", "hnbap.CSGMembershipUpdate",
2172 FT_NONE, BASE_NONE, NULL, 0,
2174 { &hf_hnbap_ErrorIndication_PDU,
2175 { "ErrorIndication", "hnbap.ErrorIndication",
2176 FT_NONE, BASE_NONE, NULL, 0,
2178 { &hf_hnbap_PrivateMessage_PDU,
2179 { "PrivateMessage", "hnbap.PrivateMessage",
2180 FT_NONE, BASE_NONE, NULL, 0,
2182 { &hf_hnbap_HNBAP_PDU_PDU,
2183 { "HNBAP-PDU", "hnbap.HNBAP_PDU",
2184 FT_UINT32, BASE_DEC, VALS(hnbap_HNBAP_PDU_vals), 0,
2187 { "local", "hnbap.local",
2188 FT_UINT32, BASE_DEC, NULL, 0,
2189 "INTEGER_0_65535", HFILL }},
2191 { "global", "hnbap.global",
2192 FT_OID, BASE_NONE, NULL, 0,
2193 "OBJECT_IDENTIFIER", HFILL }},
2194 { &hf_hnbap_ProtocolIE_Container_item,
2195 { "ProtocolIE-Field", "hnbap.ProtocolIE_Field",
2196 FT_NONE, BASE_NONE, NULL, 0,
2198 { &hf_hnbap_protocol_ie_field_id,
2200 FT_UINT32, BASE_DEC, VALS(hnbap_ProtocolIE_ID_vals), 0,
2201 "ProtocolIE_ID", HFILL }},
2202 { &hf_hnbap_criticality,
2203 { "criticality", "hnbap.criticality",
2204 FT_UINT32, BASE_DEC, VALS(hnbap_Criticality_vals), 0,
2206 { &hf_hnbap_ie_field_value,
2207 { "value", "hnbap.value",
2208 FT_NONE, BASE_NONE, NULL, 0,
2209 "ProtocolIE_Field_value", HFILL }},
2210 { &hf_hnbap_ProtocolExtensionContainer_item,
2211 { "ProtocolExtensionField", "hnbap.ProtocolExtensionField",
2212 FT_NONE, BASE_NONE, NULL, 0,
2216 FT_UINT32, BASE_DEC, VALS(hnbap_ProtocolIE_ID_vals), 0,
2217 "ProtocolIE_ID", HFILL }},
2218 { &hf_hnbap_extensionValue,
2219 { "extensionValue", "hnbap.extensionValue",
2220 FT_NONE, BASE_NONE, NULL, 0,
2222 { &hf_hnbap_PrivateIE_Container_item,
2223 { "PrivateIE-Field", "hnbap.PrivateIE_Field",
2224 FT_NONE, BASE_NONE, NULL, 0,
2226 { &hf_hnbap_private_ie_field_id,
2228 FT_UINT32, BASE_DEC, VALS(hnbap_PrivateIE_ID_vals), 0,
2229 "PrivateIE_ID", HFILL }},
2230 { &hf_hnbap_private_value,
2231 { "value", "hnbap.value",
2232 FT_NONE, BASE_NONE, NULL, 0,
2233 "PrivateIE_Field_value", HFILL }},
2234 { &hf_hnbap_directionOfAltitude,
2235 { "directionOfAltitude", "hnbap.directionOfAltitude",
2236 FT_UINT32, BASE_DEC, VALS(hnbap_T_directionOfAltitude_vals), 0,
2238 { &hf_hnbap_altitude,
2239 { "altitude", "hnbap.altitude",
2240 FT_UINT32, BASE_DEC, NULL, 0,
2241 "INTEGER_0_32767", HFILL }},
2242 { &hf_hnbap_radioNetwork,
2243 { "radioNetwork", "hnbap.radioNetwork",
2244 FT_UINT32, BASE_DEC, VALS(hnbap_CauseRadioNetwork_vals), 0,
2245 "CauseRadioNetwork", HFILL }},
2246 { &hf_hnbap_transport,
2247 { "transport", "hnbap.transport",
2248 FT_UINT32, BASE_DEC, VALS(hnbap_CauseTransport_vals), 0,
2249 "CauseTransport", HFILL }},
2250 { &hf_hnbap_protocol,
2251 { "protocol", "hnbap.protocol",
2252 FT_UINT32, BASE_DEC, VALS(hnbap_CauseProtocol_vals), 0,
2253 "CauseProtocol", HFILL }},
2255 { "misc", "hnbap.misc",
2256 FT_UINT32, BASE_DEC, VALS(hnbap_CauseMisc_vals), 0,
2257 "CauseMisc", HFILL }},
2258 { &hf_hnbap_procedureCode,
2259 { "procedureCode", "hnbap.procedureCode",
2260 FT_UINT32, BASE_DEC, VALS(hnbap_ProcedureCode_vals), 0,
2262 { &hf_hnbap_triggeringMessage,
2263 { "triggeringMessage", "hnbap.triggeringMessage",
2264 FT_UINT32, BASE_DEC, VALS(hnbap_TriggeringMessage_vals), 0,
2266 { &hf_hnbap_procedureCriticality,
2267 { "procedureCriticality", "hnbap.procedureCriticality",
2268 FT_UINT32, BASE_DEC, VALS(hnbap_Criticality_vals), 0,
2269 "Criticality", HFILL }},
2270 { &hf_hnbap_iEsCriticalityDiagnostics,
2271 { "iEsCriticalityDiagnostics", "hnbap.iEsCriticalityDiagnostics",
2272 FT_UINT32, BASE_DEC, NULL, 0,
2273 "CriticalityDiagnostics_IE_List", HFILL }},
2274 { &hf_hnbap_iE_Extensions,
2275 { "iE-Extensions", "hnbap.iE_Extensions",
2276 FT_UINT32, BASE_DEC, NULL, 0,
2277 "ProtocolExtensionContainer", HFILL }},
2278 { &hf_hnbap_CriticalityDiagnostics_IE_List_item,
2279 { "CriticalityDiagnostics-IE-List item", "hnbap.CriticalityDiagnostics_IE_List_item",
2280 FT_NONE, BASE_NONE, NULL, 0,
2282 { &hf_hnbap_iECriticality,
2283 { "iECriticality", "hnbap.iECriticality",
2284 FT_UINT32, BASE_DEC, VALS(hnbap_Criticality_vals), 0,
2285 "Criticality", HFILL }},
2287 { "iE-ID", "hnbap.iE_ID",
2288 FT_UINT32, BASE_DEC, VALS(hnbap_ProtocolIE_ID_vals), 0,
2289 "ProtocolIE_ID", HFILL }},
2290 { &hf_hnbap_typeOfError,
2291 { "typeOfError", "hnbap.typeOfError",
2292 FT_UINT32, BASE_DEC, VALS(hnbap_TypeOfError_vals), 0,
2294 { &hf_hnbap_pLMNidentity,
2295 { "pLMNidentity", "hnbap.pLMNidentity",
2296 FT_BYTES, BASE_NONE, NULL, 0,
2299 { "lAC", "hnbap.lAC",
2300 FT_BYTES, BASE_NONE, NULL, 0,
2304 FT_BYTES, BASE_NONE, NULL, 0,
2306 { &hf_hnbap_geographical_location_geographical_coordinates,
2307 { "geographicalCoordinates", "hnbap.geographicalCoordinates",
2308 FT_NONE, BASE_NONE, NULL, 0,
2310 { &hf_hnbap_altitudeAndDirection,
2311 { "altitudeAndDirection", "hnbap.altitudeAndDirection",
2312 FT_NONE, BASE_NONE, NULL, 0,
2314 { &hf_hnbap_latitudeSign,
2315 { "latitudeSign", "hnbap.latitudeSign",
2316 FT_UINT32, BASE_DEC, VALS(hnbap_T_latitudeSign_vals), 0,
2318 { &hf_hnbap_latitude,
2319 { "latitude", "hnbap.latitude",
2320 FT_UINT32, BASE_DEC, NULL, 0,
2321 "INTEGER_0_8388607", HFILL }},
2322 { &hf_hnbap_longitude,
2323 { "longitude", "hnbap.longitude",
2324 FT_INT32, BASE_DEC, NULL, 0,
2325 "INTEGER_M8388608_8388607", HFILL }},
2326 { &hf_hnbap_macroCoverageInfo,
2327 { "macroCoverageInfo", "hnbap.macroCoverageInfo",
2328 FT_NONE, BASE_NONE, NULL, 0,
2329 "MacroCoverageInformation", HFILL }},
2330 { &hf_hnbap_hnb_location_information_geographical_coordinates,
2331 { "geographicalCoordinates", "hnbap.geographicalCoordinates",
2332 FT_NONE, BASE_NONE, NULL, 0,
2333 "GeographicalLocation", HFILL }},
2334 { &hf_hnbap_hNB_Identity_Info,
2335 { "hNB-Identity-Info", "hnbap.hNB_Identity_Info",
2336 FT_BYTES, BASE_NONE, NULL, 0,
2338 { &hf_hnbap_iMSIDS41,
2339 { "iMSIDS41", "hnbap.iMSIDS41",
2340 FT_BYTES, BASE_NONE, NULL, 0,
2343 { "eSN", "hnbap.eSN",
2344 FT_BYTES, BASE_NONE, NULL, 0,
2346 { &hf_hnbap_ipaddress,
2347 { "ipaddress", "hnbap.ipaddress",
2348 FT_UINT32, BASE_DEC, VALS(hnbap_T_ipaddress_vals), 0,
2350 { &hf_hnbap_ipv4info,
2351 { "ipv4info", "hnbap.ipv4info",
2352 FT_BYTES, BASE_NONE, NULL, 0,
2353 "Ipv4Address", HFILL }},
2354 { &hf_hnbap_ipv6info,
2355 { "ipv6info", "hnbap.ipv6info",
2356 FT_BYTES, BASE_NONE, NULL, 0,
2357 "Ipv6Address", HFILL }},
2359 { "pLMNID", "hnbap.pLMNID",
2360 FT_BYTES, BASE_NONE, NULL, 0,
2361 "PLMNidentity", HFILL }},
2362 { &hf_hnbap_cellIdentity,
2363 { "cellIdentity", "hnbap.cellIdentity",
2364 FT_UINT32, BASE_DEC, VALS(hnbap_MacroCellID_vals), 0,
2365 "MacroCellID", HFILL }},
2366 { &hf_hnbap_uTRANCellID,
2367 { "uTRANCellID", "hnbap.uTRANCellID",
2368 FT_NONE, BASE_NONE, NULL, 0,
2370 { &hf_hnbap_gERANCellID,
2371 { "gERANCellID", "hnbap.gERANCellID",
2372 FT_NONE, BASE_NONE, NULL, 0,
2375 { "pTMSI", "hnbap.pTMSI",
2376 FT_BYTES, BASE_NONE, NULL, 0,
2379 { "rAI", "hnbap.rAI",
2380 FT_NONE, BASE_NONE, NULL, 0,
2383 { "lAI", "hnbap.lAI",
2384 FT_NONE, BASE_NONE, NULL, 0,
2387 { "rAC", "hnbap.rAC",
2388 FT_BYTES, BASE_NONE, NULL, 0,
2391 { "tMSI", "hnbap.tMSI",
2392 FT_BYTES, BASE_NONE, NULL, 0,
2393 "BIT_STRING_SIZE_32", HFILL }},
2394 { &hf_hnbap_access_stratum_release_indicator,
2395 { "access-stratum-release-indicator", "hnbap.access_stratum_release_indicator",
2396 FT_UINT32, BASE_DEC, VALS(hnbap_Access_stratum_release_indicator_vals), 0,
2398 { &hf_hnbap_csg_indicator,
2399 { "csg-indicator", "hnbap.csg_indicator",
2400 FT_UINT32, BASE_DEC, VALS(hnbap_CSG_Indicator_vals), 0,
2402 { &hf_hnbap_uTRANcellID,
2403 { "uTRANcellID", "hnbap.uTRANcellID",
2404 FT_BYTES, BASE_NONE, NULL, 0,
2405 "CellIdentity", HFILL }},
2407 { "iMSI", "hnbap.iMSI",
2408 FT_BYTES, BASE_NONE, NULL, 0,
2410 { &hf_hnbap_tMSILAI,
2411 { "tMSILAI", "hnbap.tMSILAI",
2412 FT_NONE, BASE_NONE, NULL, 0,
2414 { &hf_hnbap_pTMSIRAI,
2415 { "pTMSIRAI", "hnbap.pTMSIRAI",
2416 FT_NONE, BASE_NONE, NULL, 0,
2419 { "iMEI", "hnbap.iMEI",
2420 FT_BYTES, BASE_NONE, NULL, 0,
2422 { &hf_hnbap_iMSIESN,
2423 { "iMSIESN", "hnbap.iMSIESN",
2424 FT_NONE, BASE_NONE, NULL, 0,
2426 { &hf_hnbap_tMSIDS41,
2427 { "tMSIDS41", "hnbap.tMSIDS41",
2428 FT_BYTES, BASE_NONE, NULL, 0,
2430 { &hf_hnbap_protocolIEs,
2431 { "protocolIEs", "hnbap.protocolIEs",
2432 FT_UINT32, BASE_DEC, NULL, 0,
2433 "ProtocolIE_Container", HFILL }},
2434 { &hf_hnbap_protocolExtensions,
2435 { "protocolExtensions", "hnbap.protocolExtensions",
2436 FT_UINT32, BASE_DEC, NULL, 0,
2437 "ProtocolExtensionContainer", HFILL }},
2438 { &hf_hnbap_privateIEs,
2439 { "privateIEs", "hnbap.privateIEs",
2440 FT_UINT32, BASE_DEC, NULL, 0,
2441 "PrivateIE_Container", HFILL }},
2442 { &hf_hnbap_initiatingMessage,
2443 { "initiatingMessage", "hnbap.initiatingMessage",
2444 FT_NONE, BASE_NONE, NULL, 0,
2446 { &hf_hnbap_successfulOutcome,
2447 { "successfulOutcome", "hnbap.successfulOutcome",
2448 FT_NONE, BASE_NONE, NULL, 0,
2450 { &hf_hnbap_unsuccessfulOutcome,
2451 { "unsuccessfulOutcome", "hnbap.unsuccessfulOutcome",
2452 FT_NONE, BASE_NONE, NULL, 0,
2454 { &hf_hnbap_initiatingMessagevalue,
2455 { "value", "hnbap.value",
2456 FT_NONE, BASE_NONE, NULL, 0,
2457 "InitiatingMessage_value", HFILL }},
2458 { &hf_hnbap_successfulOutcome_value,
2459 { "value", "hnbap.value",
2460 FT_NONE, BASE_NONE, NULL, 0,
2461 "SuccessfulOutcome_value", HFILL }},
2462 { &hf_hnbap_unsuccessfulOutcome_value,
2463 { "value", "hnbap.value",
2464 FT_NONE, BASE_NONE, NULL, 0,
2465 "UnsuccessfulOutcome_value", HFILL }},
2467 /*--- End of included file: packet-hnbap-hfarr.c ---*/
2468 #line 155 "../../asn1/hnbap/packet-hnbap-template.c"
2471 /* List of subtrees */
2472 static gint *ett[] = {
2475 /*--- Included file: packet-hnbap-ettarr.c ---*/
2476 #line 1 "../../asn1/hnbap/packet-hnbap-ettarr.c"
2477 &ett_hnbap_PrivateIE_ID,
2478 &ett_hnbap_ProtocolIE_Container,
2479 &ett_hnbap_ProtocolIE_Field,
2480 &ett_hnbap_ProtocolExtensionContainer,
2481 &ett_hnbap_ProtocolExtensionField,
2482 &ett_hnbap_PrivateIE_Container,
2483 &ett_hnbap_PrivateIE_Field,
2484 &ett_hnbap_AltitudeAndDirection,
2486 &ett_hnbap_CriticalityDiagnostics,
2487 &ett_hnbap_CriticalityDiagnostics_IE_List,
2488 &ett_hnbap_CriticalityDiagnostics_IE_List_item,
2490 &ett_hnbap_GeographicalLocation,
2491 &ett_hnbap_GeographicalCoordinates,
2492 &ett_hnbap_HNB_Location_Information,
2493 &ett_hnbap_HNB_Identity,
2495 &ett_hnbap_IP_Address,
2496 &ett_hnbap_T_ipaddress,
2498 &ett_hnbap_MacroCoverageInformation,
2499 &ett_hnbap_MacroCellID,
2500 &ett_hnbap_PTMSIRAI,
2503 &ett_hnbap_UE_Capabilities,
2504 &ett_hnbap_UTRANCellID,
2505 &ett_hnbap_UE_Identity,
2506 &ett_hnbap_HNBRegisterRequest,
2507 &ett_hnbap_HNBRegisterAccept,
2508 &ett_hnbap_HNBRegisterReject,
2509 &ett_hnbap_HNBDe_Register,
2510 &ett_hnbap_UERegisterRequest,
2511 &ett_hnbap_UERegisterAccept,
2512 &ett_hnbap_UERegisterReject,
2513 &ett_hnbap_UEDe_Register,
2514 &ett_hnbap_CSGMembershipUpdate,
2515 &ett_hnbap_ErrorIndication,
2516 &ett_hnbap_PrivateMessage,
2517 &ett_hnbap_HNBAP_PDU,
2518 &ett_hnbap_InitiatingMessage,
2519 &ett_hnbap_SuccessfulOutcome,
2520 &ett_hnbap_UnsuccessfulOutcome,
2522 /*--- End of included file: packet-hnbap-ettarr.c ---*/
2523 #line 161 "../../asn1/hnbap/packet-hnbap-template.c"
2527 /* Register protocol */
2528 proto_hnbap = proto_register_protocol(PNAME, PSNAME, PFNAME);
2529 /* Register fields and subtrees */
2530 proto_register_field_array(proto_hnbap, hf, array_length(hf));
2531 proto_register_subtree_array(ett, array_length(ett));
2533 /* Register dissector */
2534 register_dissector("hnbap", dissect_hnbap, proto_hnbap);
2536 /* Register dissector tables */
2537 hnbap_ies_dissector_table = register_dissector_table("hnbap.ies", "HNBAP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
2538 hnbap_extension_dissector_table = register_dissector_table("hnbap.extension", "HNBAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
2539 hnbap_proc_imsg_dissector_table = register_dissector_table("hnbap.proc.imsg", "HNBAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
2540 hnbap_proc_sout_dissector_table = register_dissector_table("hnbap.proc.sout", "HNBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
2541 hnbap_proc_uout_dissector_table = register_dissector_table("hnbap.proc.uout", "HNBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
2543 hnbap_module = prefs_register_protocol(proto_hnbap, proto_reg_handoff_hnbap);
2544 prefs_register_uint_preference(hnbap_module, "port", "HNBAP SCTP Port", "Set the port for HNBAP messages (Default of 29169)", 10, &global_sctp_port);
2548 /*--- proto_reg_handoff_hnbap ---------------------------------------*/
2550 proto_reg_handoff_hnbap(void)
2552 static gboolean initialized = FALSE;
2553 static dissector_handle_t hnbap_handle;
2554 static guint sctp_port;
2557 hnbap_handle = find_dissector("hnbap");
2558 dissector_add_uint("sctp.ppi", HNBAP_PAYLOAD_PROTOCOL_ID, hnbap_handle);
2561 /*--- Included file: packet-hnbap-dis-tab.c ---*/
2562 #line 1 "../../asn1/hnbap/packet-hnbap-dis-tab.c"
2563 dissector_add_uint("hnbap.ies", id_Cause, new_create_dissector_handle(dissect_Cause_PDU, proto_hnbap));
2564 dissector_add_uint("hnbap.ies", id_CriticalityDiagnostics, new_create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_hnbap));
2565 dissector_add_uint("hnbap.ies", id_HNB_Identity, new_create_dissector_handle(dissect_HNB_Identity_PDU, proto_hnbap));
2566 dissector_add_uint("hnbap.ies", id_Context_ID, new_create_dissector_handle(dissect_Context_ID_PDU, proto_hnbap));
2567 dissector_add_uint("hnbap.ies", id_UE_Identity, new_create_dissector_handle(dissect_UE_Identity_PDU, proto_hnbap));
2568 dissector_add_uint("hnbap.ies", id_LAC, new_create_dissector_handle(dissect_LAC_PDU, proto_hnbap));
2569 dissector_add_uint("hnbap.ies", id_RAC, new_create_dissector_handle(dissect_RAC_PDU, proto_hnbap));
2570 dissector_add_uint("hnbap.ies", id_HNB_Location_Information, new_create_dissector_handle(dissect_HNB_Location_Information_PDU, proto_hnbap));
2571 dissector_add_uint("hnbap.ies", id_PLMNidentity, new_create_dissector_handle(dissect_PLMNidentity_PDU, proto_hnbap));
2572 dissector_add_uint("hnbap.ies", id_SAC, new_create_dissector_handle(dissect_SAC_PDU, proto_hnbap));
2573 dissector_add_uint("hnbap.ies", id_CellIdentity, new_create_dissector_handle(dissect_CellIdentity_PDU, proto_hnbap));
2574 dissector_add_uint("hnbap.ies", id_Registration_Cause, new_create_dissector_handle(dissect_Registration_Cause_PDU, proto_hnbap));
2575 dissector_add_uint("hnbap.ies", id_UE_Capabilities, new_create_dissector_handle(dissect_UE_Capabilities_PDU, proto_hnbap));
2576 dissector_add_uint("hnbap.ies", id_RNC_ID, new_create_dissector_handle(dissect_RNC_ID_PDU, proto_hnbap));
2577 dissector_add_uint("hnbap.ies", id_CSG_ID, new_create_dissector_handle(dissect_CSG_ID_PDU, proto_hnbap));
2578 dissector_add_uint("hnbap.ies", id_BackoffTimer, new_create_dissector_handle(dissect_BackoffTimer_PDU, proto_hnbap));
2579 dissector_add_uint("hnbap.ies", id_CSGMembershipStatus, new_create_dissector_handle(dissect_CSGMembershipStatus_PDU, proto_hnbap));
2580 dissector_add_uint("hnbap.extension", id_HNB_Internet_Information, new_create_dissector_handle(dissect_IP_Address_PDU, proto_hnbap));
2581 dissector_add_uint("hnbap.extension", id_HNB_Cell_Access_Mode, new_create_dissector_handle(dissect_HNB_Cell_Access_Mode_PDU, proto_hnbap));
2582 dissector_add_uint("hnbap.extension", id_MuxPortNumber, new_create_dissector_handle(dissect_MuxPortNumber_PDU, proto_hnbap));
2583 dissector_add_uint("hnbap.extension", id_CSGMembershipStatus, new_create_dissector_handle(dissect_CSGMembershipStatus_PDU, proto_hnbap));
2584 dissector_add_uint("hnbap.proc.imsg", id_HNBRegister, new_create_dissector_handle(dissect_HNBRegisterRequest_PDU, proto_hnbap));
2585 dissector_add_uint("hnbap.proc.sout", id_HNBRegister, new_create_dissector_handle(dissect_HNBRegisterAccept_PDU, proto_hnbap));
2586 dissector_add_uint("hnbap.proc.uout", id_HNBRegister, new_create_dissector_handle(dissect_HNBRegisterReject_PDU, proto_hnbap));
2587 dissector_add_uint("hnbap.proc.imsg", id_UERegister, new_create_dissector_handle(dissect_UERegisterRequest_PDU, proto_hnbap));
2588 dissector_add_uint("hnbap.proc.sout", id_UERegister, new_create_dissector_handle(dissect_UERegisterAccept_PDU, proto_hnbap));
2589 dissector_add_uint("hnbap.proc.uout", id_UERegister, new_create_dissector_handle(dissect_UERegisterReject_PDU, proto_hnbap));
2590 dissector_add_uint("hnbap.proc.imsg", id_UEDe_Register, new_create_dissector_handle(dissect_UEDe_Register_PDU, proto_hnbap));
2591 dissector_add_uint("hnbap.proc.imsg", id_HNBDe_Register, new_create_dissector_handle(dissect_HNBDe_Register_PDU, proto_hnbap));
2592 dissector_add_uint("hnbap.proc.imsg", id_ErrorIndication, new_create_dissector_handle(dissect_ErrorIndication_PDU, proto_hnbap));
2593 dissector_add_uint("hnbap.proc.imsg", id_CSGMembershipUpdate, new_create_dissector_handle(dissect_CSGMembershipUpdate_PDU, proto_hnbap));
2594 dissector_add_uint("hnbap.proc.imsg", id_privateMessage, new_create_dissector_handle(dissect_PrivateMessage_PDU, proto_hnbap));
2597 /*--- End of included file: packet-hnbap-dis-tab.c ---*/
2598 #line 198 "../../asn1/hnbap/packet-hnbap-template.c"
2601 dissector_delete_uint("sctp.port", sctp_port, hnbap_handle);
2603 /* Set our port number for future use */
2604 sctp_port = global_sctp_port;
2605 dissector_add_uint("sctp.port", sctp_port, hnbap_handle);