MSWSP: add two more Property Sets
[wireshark-wip.git] / epan / dissectors / packet-hnbap.c
bloba1a9d91529904d4c226e299d763c1cba8cf8d424
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-hnbap.c */
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>
13 * $Id$
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.469 version 8.4.0 Release 8
36 #include "config.h"
38 #include <glib.h>
39 #include <string.h>
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"
48 #ifdef _MSC_VER
49 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
50 #pragma warning(disable:4146)
51 #endif
53 #define PNAME "UTRAN Iuh interface HNBAP signalling"
54 #define PSNAME "HNBAP"
55 #define PFNAME "hnbap"
56 /* Dissector will use SCTP PPID 20 or SCTP port. IANA assigned port = 29169*/
57 #define SCTP_PORT_HNBAP 29169
60 /*--- Included file: packet-hnbap-val.h ---*/
61 #line 1 "../../asn1/hnbap/packet-hnbap-val.h"
62 #define maxPrivateIEs 65535
63 #define maxProtocolExtensions 65535
64 #define maxProtocolIEs 65535
65 #define maxNrOfErrors 256
66 #define maxnoofRABs 256
67 #define maxnoofNeighbours 32
68 #define maxnoofIurhAddresses 3
70 typedef enum _ProcedureCode_enum {
71 id_HNBRegister = 1,
72 id_HNBDe_Register = 2,
73 id_UERegister = 3,
74 id_UEDe_Register = 4,
75 id_ErrorIndication = 5,
76 id_privateMessage = 6,
77 id_CSGMembershipUpdate = 7,
78 id_TNLUpdate = 9,
79 id_HNBConfigTransfer = 10,
80 id_RelocationComplete = 11
81 } ProcedureCode_enum;
83 typedef enum _ProtocolIE_ID_enum {
84 id_Cause = 1,
85 id_CriticalityDiagnostics = 2,
86 id_HNB_Identity = 3,
87 id_Context_ID = 4,
88 id_UE_Identity = 5,
89 id_LAC = 6,
90 id_RAC = 7,
91 id_HNB_Location_Information = 8,
92 id_PLMNidentity = 9,
93 id_SAC = 10,
94 id_CellIdentity = 11,
95 id_Registration_Cause = 12,
96 id_UE_Capabilities = 13,
97 id_RNC_ID = 14,
98 id_CSG_ID = 15,
99 id_BackoffTimer = 16,
100 id_HNB_Internet_Information = 17,
101 id_HNB_Cell_Access_Mode = 18,
102 id_MuxPortNumber = 19,
103 id_Service_Area_For_Broadcast = 20,
104 id_CSGMembershipStatus = 21,
105 id_RABList = 22,
106 id_HNBConfigInfo = 23,
107 id_AccessResult = 25,
108 id_Update_cause = 26,
109 id_NeighbourInfoList = 27,
110 id_NeighbourInfoRequestList = 28,
111 id_Iurh_Signalling_TNL_Address = 29,
112 id_PSC = 30,
113 id_HNB_Cell_Identifier = 31
114 } ProtocolIE_ID_enum;
116 /*--- End of included file: packet-hnbap-val.h ---*/
117 #line 52 "../../asn1/hnbap/packet-hnbap-template.c"
119 /* Initialize the protocol and registered fields */
120 static int proto_hnbap = -1;
123 /*--- Included file: packet-hnbap-hf.c ---*/
124 #line 1 "../../asn1/hnbap/packet-hnbap-hf.c"
125 static int hf_hnbap_BackoffTimer_PDU = -1; /* BackoffTimer */
126 static int hf_hnbap_Cause_PDU = -1; /* Cause */
127 static int hf_hnbap_CellIdentity_PDU = -1; /* CellIdentity */
128 static int hf_hnbap_Context_ID_PDU = -1; /* Context_ID */
129 static int hf_hnbap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
130 static int hf_hnbap_CSG_ID_PDU = -1; /* CSG_ID */
131 static int hf_hnbap_CSGMembershipStatus_PDU = -1; /* CSGMembershipStatus */
132 static int hf_hnbap_HNB_Cell_Access_Mode_PDU = -1; /* HNB_Cell_Access_Mode */
133 static int hf_hnbap_HNB_Location_Information_PDU = -1; /* HNB_Location_Information */
134 static int hf_hnbap_HNB_Identity_PDU = -1; /* HNB_Identity */
135 static int hf_hnbap_IP_Address_PDU = -1; /* IP_Address */
136 static int hf_hnbap_LAC_PDU = -1; /* LAC */
137 static int hf_hnbap_MuxPortNumber_PDU = -1; /* MuxPortNumber */
138 static int hf_hnbap_NeighbourInfoList_PDU = -1; /* NeighbourInfoList */
139 static int hf_hnbap_NeighbourInfoRequestList_PDU = -1; /* NeighbourInfoRequestList */
140 static int hf_hnbap_PLMNidentity_PDU = -1; /* PLMNidentity */
141 static int hf_hnbap_PSC_PDU = -1; /* PSC */
142 static int hf_hnbap_RABList_PDU = -1; /* RABList */
143 static int hf_hnbap_RAC_PDU = -1; /* RAC */
144 static int hf_hnbap_Registration_Cause_PDU = -1; /* Registration_Cause */
145 static int hf_hnbap_RNC_ID_PDU = -1; /* RNC_ID */
146 static int hf_hnbap_SAC_PDU = -1; /* SAC */
147 static int hf_hnbap_UE_Capabilities_PDU = -1; /* UE_Capabilities */
148 static int hf_hnbap_UE_Identity_PDU = -1; /* UE_Identity */
149 static int hf_hnbap_Update_cause_PDU = -1; /* Update_cause */
150 static int hf_hnbap_HNBRegisterRequest_PDU = -1; /* HNBRegisterRequest */
151 static int hf_hnbap_HNBRegisterAccept_PDU = -1; /* HNBRegisterAccept */
152 static int hf_hnbap_HNBRegisterReject_PDU = -1; /* HNBRegisterReject */
153 static int hf_hnbap_HNBDe_Register_PDU = -1; /* HNBDe_Register */
154 static int hf_hnbap_UERegisterRequest_PDU = -1; /* UERegisterRequest */
155 static int hf_hnbap_UERegisterAccept_PDU = -1; /* UERegisterAccept */
156 static int hf_hnbap_UERegisterReject_PDU = -1; /* UERegisterReject */
157 static int hf_hnbap_UEDe_Register_PDU = -1; /* UEDe_Register */
158 static int hf_hnbap_CSGMembershipUpdate_PDU = -1; /* CSGMembershipUpdate */
159 static int hf_hnbap_TNLUpdateRequest_PDU = -1; /* TNLUpdateRequest */
160 static int hf_hnbap_TNLUpdateResponse_PDU = -1; /* TNLUpdateResponse */
161 static int hf_hnbap_TNLUpdateFailure_PDU = -1; /* TNLUpdateFailure */
162 static int hf_hnbap_HNBConfigTransferRequest_PDU = -1; /* HNBConfigTransferRequest */
163 static int hf_hnbap_HNBConfigTransferResponse_PDU = -1; /* HNBConfigTransferResponse */
164 static int hf_hnbap_RelocationComplete_PDU = -1; /* RelocationComplete */
165 static int hf_hnbap_ErrorIndication_PDU = -1; /* ErrorIndication */
166 static int hf_hnbap_PrivateMessage_PDU = -1; /* PrivateMessage */
167 static int hf_hnbap_HNBAP_PDU_PDU = -1; /* HNBAP_PDU */
168 static int hf_hnbap_local = -1; /* INTEGER_0_65535 */
169 static int hf_hnbap_global = -1; /* OBJECT_IDENTIFIER */
170 static int hf_hnbap_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */
171 static int hf_hnbap_protocol_ie_field_id = -1; /* ProtocolIE_ID */
172 static int hf_hnbap_criticality = -1; /* Criticality */
173 static int hf_hnbap_ie_field_value = -1; /* ProtocolIE_Field_value */
174 static int hf_hnbap_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */
175 static int hf_hnbap_id = -1; /* ProtocolIE_ID */
176 static int hf_hnbap_extensionValue = -1; /* T_extensionValue */
177 static int hf_hnbap_PrivateIE_Container_item = -1; /* PrivateIE_Field */
178 static int hf_hnbap_private_ie_field_id = -1; /* PrivateIE_ID */
179 static int hf_hnbap_private_value = -1; /* PrivateIE_Field_value */
180 static int hf_hnbap_directionOfAltitude = -1; /* T_directionOfAltitude */
181 static int hf_hnbap_altitude = -1; /* INTEGER_0_32767 */
182 static int hf_hnbap_radioNetwork = -1; /* CauseRadioNetwork */
183 static int hf_hnbap_transport = -1; /* CauseTransport */
184 static int hf_hnbap_protocol = -1; /* CauseProtocol */
185 static int hf_hnbap_misc = -1; /* CauseMisc */
186 static int hf_hnbap_procedureCode = -1; /* ProcedureCode */
187 static int hf_hnbap_triggeringMessage = -1; /* TriggeringMessage */
188 static int hf_hnbap_procedureCriticality = -1; /* Criticality */
189 static int hf_hnbap_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */
190 static int hf_hnbap_iE_Extensions = -1; /* ProtocolExtensionContainer */
191 static int hf_hnbap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_List_item */
192 static int hf_hnbap_iECriticality = -1; /* Criticality */
193 static int hf_hnbap_iE_ID = -1; /* ProtocolIE_ID */
194 static int hf_hnbap_typeOfError = -1; /* TypeOfError */
195 static int hf_hnbap_pLMNidentity = -1; /* PLMNidentity */
196 static int hf_hnbap_lAC = -1; /* LAC */
197 static int hf_hnbap_cI = -1; /* CI */
198 static int hf_hnbap_geographical_location_geographical_coordinates = -1; /* GeographicalCoordinates */
199 static int hf_hnbap_altitudeAndDirection = -1; /* AltitudeAndDirection */
200 static int hf_hnbap_latitudeSign = -1; /* T_latitudeSign */
201 static int hf_hnbap_latitude = -1; /* INTEGER_0_8388607 */
202 static int hf_hnbap_longitude = -1; /* INTEGER_M8388608_8388607 */
203 static int hf_hnbap_cellIdentity = -1; /* CellIdentity */
204 static int hf_hnbap_hNB_Identity_as_Cell_Identifier = -1; /* HNB_Cell_Identifier */
205 static int hf_hnbap_hnb_RNL_Identity = -1; /* HNB_RNL_Identity */
206 static int hf_hnbap_configurationInformation = -1; /* ConfigurationInformation */
207 static int hf_hnbap_provided = -1; /* HNBConfigurationInformationProvided */
208 static int hf_hnbap_missing = -1; /* HNBConfigurationInformationMissing */
209 static int hf_hnbap_psc = -1; /* PSC */
210 static int hf_hnbap_cSG_ID = -1; /* CSG_ID */
211 static int hf_hnbap_hNB_Cell_Access_Mode = -1; /* HNB_Cell_Access_Mode */
212 static int hf_hnbap_iurh_Signalling_TNL_AddressList = -1; /* Iurh_Signalling_TNL_AddressList */
213 static int hf_hnbap_cause = -1; /* Cause */
214 static int hf_hnbap_macroCoverageInfo = -1; /* MacroCoverageInformation */
215 static int hf_hnbap_hnb_location_information_geographical_coordinates = -1; /* GeographicalLocation */
216 static int hf_hnbap_hNB_Identity_Info = -1; /* HNB_Identity_Info */
217 static int hf_hnbap_iMSIDS41 = -1; /* IMSIDS41 */
218 static int hf_hnbap_eSN = -1; /* ESN */
219 static int hf_hnbap_ipaddress = -1; /* T_ipaddress */
220 static int hf_hnbap_ipv4info = -1; /* Ipv4Address */
221 static int hf_hnbap_ipv6info = -1; /* Ipv6Address */
222 static int hf_hnbap_Iurh_Signalling_TNL_AddressList_item = -1; /* IP_Address */
223 static int hf_hnbap_pLMNID = -1; /* PLMNidentity */
224 static int hf_hnbap_cellIdentity_01 = -1; /* MacroCellID */
225 static int hf_hnbap_uTRANCellID = -1; /* UTRANCellID */
226 static int hf_hnbap_gERANCellID = -1; /* CGI */
227 static int hf_hnbap_NeighbourInfoList_item = -1; /* HNBConfigInfo */
228 static int hf_hnbap_NeighbourInfoRequestList_item = -1; /* NeighbourInfoRequestItem */
229 static int hf_hnbap_pTMSI = -1; /* PTMSI */
230 static int hf_hnbap_rAI = -1; /* RAI */
231 static int hf_hnbap_RABList_item = -1; /* RABListItem */
232 static int hf_hnbap_rAB_ID = -1; /* RAB_ID */
233 static int hf_hnbap_old_transport_Info = -1; /* TransportInfo */
234 static int hf_hnbap_new_transport_Info = -1; /* TransportInfo */
235 static int hf_hnbap_cn_domain_indicator = -1; /* CN_DomainIndicator */
236 static int hf_hnbap_lAI = -1; /* LAI */
237 static int hf_hnbap_rAC = -1; /* RAC */
238 static int hf_hnbap_tMSI = -1; /* BIT_STRING_SIZE_32 */
239 static int hf_hnbap_transportLayerAddress = -1; /* TransportLayerAddress */
240 static int hf_hnbap_transportAssociation = -1; /* T_transportAssociation */
241 static int hf_hnbap_gtp_TEI = -1; /* GTP_TEI */
242 static int hf_hnbap_bindingID = -1; /* BindingID */
243 static int hf_hnbap_access_stratum_release_indicator = -1; /* Access_stratum_release_indicator */
244 static int hf_hnbap_csg_capability = -1; /* CSG_Capability */
245 static int hf_hnbap_uTRANcellID = -1; /* CellIdentity */
246 static int hf_hnbap_iMSI = -1; /* IMSI */
247 static int hf_hnbap_tMSILAI = -1; /* TMSILAI */
248 static int hf_hnbap_pTMSIRAI = -1; /* PTMSIRAI */
249 static int hf_hnbap_iMEI = -1; /* IMEI */
250 static int hf_hnbap_iMSIESN = -1; /* IMSIESN */
251 static int hf_hnbap_tMSIDS41 = -1; /* TMSIDS41 */
252 static int hf_hnbap_protocolIEs = -1; /* ProtocolIE_Container */
253 static int hf_hnbap_protocolExtensions = -1; /* ProtocolExtensionContainer */
254 static int hf_hnbap_privateIEs = -1; /* PrivateIE_Container */
255 static int hf_hnbap_initiatingMessage = -1; /* InitiatingMessage */
256 static int hf_hnbap_successfulOutcome = -1; /* SuccessfulOutcome */
257 static int hf_hnbap_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */
258 static int hf_hnbap_initiatingMessagevalue = -1; /* InitiatingMessage_value */
259 static int hf_hnbap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
260 static int hf_hnbap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
262 /*--- End of included file: packet-hnbap-hf.c ---*/
263 #line 57 "../../asn1/hnbap/packet-hnbap-template.c"
265 /* Initialize the subtree pointers */
266 static int ett_hnbap = -1;
269 /*--- Included file: packet-hnbap-ett.c ---*/
270 #line 1 "../../asn1/hnbap/packet-hnbap-ett.c"
271 static gint ett_hnbap_PrivateIE_ID = -1;
272 static gint ett_hnbap_ProtocolIE_Container = -1;
273 static gint ett_hnbap_ProtocolIE_Field = -1;
274 static gint ett_hnbap_ProtocolExtensionContainer = -1;
275 static gint ett_hnbap_ProtocolExtensionField = -1;
276 static gint ett_hnbap_PrivateIE_Container = -1;
277 static gint ett_hnbap_PrivateIE_Field = -1;
278 static gint ett_hnbap_AltitudeAndDirection = -1;
279 static gint ett_hnbap_Cause = -1;
280 static gint ett_hnbap_CriticalityDiagnostics = -1;
281 static gint ett_hnbap_CriticalityDiagnostics_IE_List = -1;
282 static gint ett_hnbap_CriticalityDiagnostics_IE_List_item = -1;
283 static gint ett_hnbap_CGI = -1;
284 static gint ett_hnbap_GeographicalLocation = -1;
285 static gint ett_hnbap_GeographicalCoordinates = -1;
286 static gint ett_hnbap_HNB_Cell_Identifier = -1;
287 static gint ett_hnbap_HNB_RNL_Identity = -1;
288 static gint ett_hnbap_HNBConfigInfo = -1;
289 static gint ett_hnbap_ConfigurationInformation = -1;
290 static gint ett_hnbap_HNBConfigurationInformationProvided = -1;
291 static gint ett_hnbap_HNBConfigurationInformationMissing = -1;
292 static gint ett_hnbap_HNB_Location_Information = -1;
293 static gint ett_hnbap_HNB_Identity = -1;
294 static gint ett_hnbap_IMSIESN = -1;
295 static gint ett_hnbap_IP_Address = -1;
296 static gint ett_hnbap_T_ipaddress = -1;
297 static gint ett_hnbap_Iurh_Signalling_TNL_AddressList = -1;
298 static gint ett_hnbap_LAI = -1;
299 static gint ett_hnbap_MacroCoverageInformation = -1;
300 static gint ett_hnbap_MacroCellID = -1;
301 static gint ett_hnbap_NeighbourInfoList = -1;
302 static gint ett_hnbap_NeighbourInfoRequestList = -1;
303 static gint ett_hnbap_NeighbourInfoRequestItem = -1;
304 static gint ett_hnbap_PTMSIRAI = -1;
305 static gint ett_hnbap_RABList = -1;
306 static gint ett_hnbap_RABListItem = -1;
307 static gint ett_hnbap_RAI = -1;
308 static gint ett_hnbap_TMSILAI = -1;
309 static gint ett_hnbap_TransportInfo = -1;
310 static gint ett_hnbap_T_transportAssociation = -1;
311 static gint ett_hnbap_UE_Capabilities = -1;
312 static gint ett_hnbap_UTRANCellID = -1;
313 static gint ett_hnbap_UE_Identity = -1;
314 static gint ett_hnbap_HNBRegisterRequest = -1;
315 static gint ett_hnbap_HNBRegisterAccept = -1;
316 static gint ett_hnbap_HNBRegisterReject = -1;
317 static gint ett_hnbap_HNBDe_Register = -1;
318 static gint ett_hnbap_UERegisterRequest = -1;
319 static gint ett_hnbap_UERegisterAccept = -1;
320 static gint ett_hnbap_UERegisterReject = -1;
321 static gint ett_hnbap_UEDe_Register = -1;
322 static gint ett_hnbap_CSGMembershipUpdate = -1;
323 static gint ett_hnbap_TNLUpdateRequest = -1;
324 static gint ett_hnbap_TNLUpdateResponse = -1;
325 static gint ett_hnbap_TNLUpdateFailure = -1;
326 static gint ett_hnbap_HNBConfigTransferRequest = -1;
327 static gint ett_hnbap_HNBConfigTransferResponse = -1;
328 static gint ett_hnbap_RelocationComplete = -1;
329 static gint ett_hnbap_ErrorIndication = -1;
330 static gint ett_hnbap_PrivateMessage = -1;
331 static gint ett_hnbap_HNBAP_PDU = -1;
332 static gint ett_hnbap_InitiatingMessage = -1;
333 static gint ett_hnbap_SuccessfulOutcome = -1;
334 static gint ett_hnbap_UnsuccessfulOutcome = -1;
336 /*--- End of included file: packet-hnbap-ett.c ---*/
337 #line 62 "../../asn1/hnbap/packet-hnbap-template.c"
339 /* Global variables */
340 static guint32 ProcedureCode;
341 static guint32 ProtocolIE_ID;
342 static guint global_sctp_port = SCTP_PORT_HNBAP;
344 /* Dissector tables */
345 static dissector_table_t hnbap_ies_dissector_table;
346 static dissector_table_t hnbap_extension_dissector_table;
347 static dissector_table_t hnbap_proc_imsg_dissector_table;
348 static dissector_table_t hnbap_proc_sout_dissector_table;
349 static dissector_table_t hnbap_proc_uout_dissector_table;
351 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
352 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
353 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
354 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
355 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
356 void proto_reg_handoff_hnbap(void);
359 /*--- Included file: packet-hnbap-fn.c ---*/
360 #line 1 "../../asn1/hnbap/packet-hnbap-fn.c"
362 static const value_string hnbap_Criticality_vals[] = {
363 { 0, "reject" },
364 { 1, "ignore" },
365 { 2, "notify" },
366 { 0, NULL }
370 static int
371 dissect_hnbap_Criticality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
372 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
373 3, NULL, FALSE, 0, NULL);
375 return offset;
380 static int
381 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_) {
382 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
383 0U, 65535U, NULL, FALSE);
385 return offset;
390 static int
391 dissect_hnbap_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
392 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
394 return offset;
398 static const value_string hnbap_PrivateIE_ID_vals[] = {
399 { 0, "local" },
400 { 1, "global" },
401 { 0, NULL }
404 static const per_choice_t PrivateIE_ID_choice[] = {
405 { 0, &hf_hnbap_local , ASN1_NO_EXTENSIONS , dissect_hnbap_INTEGER_0_65535 },
406 { 1, &hf_hnbap_global , ASN1_NO_EXTENSIONS , dissect_hnbap_OBJECT_IDENTIFIER },
407 { 0, NULL, 0, NULL }
410 static int
411 dissect_hnbap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
412 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
413 ett_hnbap_PrivateIE_ID, PrivateIE_ID_choice,
414 NULL);
416 return offset;
420 static const value_string hnbap_ProcedureCode_vals[] = {
421 { id_HNBRegister, "id-HNBRegister" },
422 { id_HNBDe_Register, "id-HNBDe-Register" },
423 { id_UERegister, "id-UERegister" },
424 { id_UEDe_Register, "id-UEDe-Register" },
425 { id_ErrorIndication, "id-ErrorIndication" },
426 { id_privateMessage, "id-privateMessage" },
427 { id_CSGMembershipUpdate, "id-CSGMembershipUpdate" },
428 { id_TNLUpdate, "id-TNLUpdate" },
429 { id_HNBConfigTransfer, "id-HNBConfigTransfer" },
430 { id_RelocationComplete, "id-RelocationComplete" },
431 { 0, NULL }
435 static int
436 dissect_hnbap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
437 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
438 0U, 255U, &ProcedureCode, FALSE);
440 #line 62 "../../asn1/hnbap/hnbap.cnf"
441 if (strcmp(val_to_str(ProcedureCode, hnbap_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
442 col_set_str(actx->pinfo->cinfo, COL_INFO,
443 "Unknown Message");
444 } /* Known Procedures should be included below and broken out as ELEMENTARY names to avoid confusion */
447 return offset;
451 static const value_string hnbap_ProtocolIE_ID_vals[] = {
452 { id_Cause, "id-Cause" },
453 { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
454 { id_HNB_Identity, "id-HNB-Identity" },
455 { id_Context_ID, "id-Context-ID" },
456 { id_UE_Identity, "id-UE-Identity" },
457 { id_LAC, "id-LAC" },
458 { id_RAC, "id-RAC" },
459 { id_HNB_Location_Information, "id-HNB-Location-Information" },
460 { id_PLMNidentity, "id-PLMNidentity" },
461 { id_SAC, "id-SAC" },
462 { id_CellIdentity, "id-CellIdentity" },
463 { id_Registration_Cause, "id-Registration-Cause" },
464 { id_UE_Capabilities, "id-UE-Capabilities" },
465 { id_RNC_ID, "id-RNC-ID" },
466 { id_CSG_ID, "id-CSG-ID" },
467 { id_BackoffTimer, "id-BackoffTimer" },
468 { id_HNB_Internet_Information, "id-HNB-Internet-Information" },
469 { id_HNB_Cell_Access_Mode, "id-HNB-Cell-Access-Mode" },
470 { id_MuxPortNumber, "id-MuxPortNumber" },
471 { id_Service_Area_For_Broadcast, "id-Service-Area-For-Broadcast" },
472 { id_CSGMembershipStatus, "id-CSGMembershipStatus" },
473 { id_RABList, "id-RABList" },
474 { id_HNBConfigInfo, "id-HNBConfigInfo" },
475 { id_AccessResult, "id-AccessResult" },
476 { id_Update_cause, "id-Update-cause" },
477 { id_NeighbourInfoList, "id-NeighbourInfoList" },
478 { id_NeighbourInfoRequestList, "id-NeighbourInfoRequestList" },
479 { id_Iurh_Signalling_TNL_Address, "id-Iurh-Signalling-TNL-Address" },
480 { id_PSC, "id-PSC" },
481 { id_HNB_Cell_Identifier, "id-HNB-Cell-Identifier" },
482 { 0, NULL }
486 static int
487 dissect_hnbap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
488 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
489 0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
491 #line 51 "../../asn1/hnbap/hnbap.cnf"
492 if (tree) {
493 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)"));
496 return offset;
500 static const value_string hnbap_TriggeringMessage_vals[] = {
501 { 0, "initiating-message" },
502 { 1, "successful-outcome" },
503 { 2, "unsuccessful-outcome" },
504 { 0, NULL }
508 static int
509 dissect_hnbap_TriggeringMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
510 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
511 3, NULL, FALSE, 0, NULL);
513 return offset;
518 static int
519 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_) {
520 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue);
522 return offset;
526 static const per_sequence_t ProtocolIE_Field_sequence[] = {
527 { &hf_hnbap_protocol_ie_field_id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_ID },
528 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
529 { &hf_hnbap_ie_field_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Field_value },
530 { NULL, 0, 0, NULL }
533 static int
534 dissect_hnbap_ProtocolIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
535 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
536 ett_hnbap_ProtocolIE_Field, ProtocolIE_Field_sequence);
538 return offset;
542 static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
543 { &hf_hnbap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Field },
546 static int
547 dissect_hnbap_ProtocolIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
548 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
549 ett_hnbap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
550 0, maxProtocolIEs, FALSE);
552 return offset;
557 static int
558 dissect_hnbap_T_extensionValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
559 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolExtensionFieldExtensionValue);
561 return offset;
565 static const per_sequence_t ProtocolExtensionField_sequence[] = {
566 { &hf_hnbap_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_ID },
567 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
568 { &hf_hnbap_extensionValue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_T_extensionValue },
569 { NULL, 0, 0, NULL }
572 static int
573 dissect_hnbap_ProtocolExtensionField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
574 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
575 ett_hnbap_ProtocolExtensionField, ProtocolExtensionField_sequence);
577 return offset;
581 static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
582 { &hf_hnbap_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolExtensionField },
585 static int
586 dissect_hnbap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
587 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
588 ett_hnbap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
589 1, maxProtocolExtensions, FALSE);
591 return offset;
596 static int
597 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_) {
598 offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
600 return offset;
604 static const per_sequence_t PrivateIE_Field_sequence[] = {
605 { &hf_hnbap_private_ie_field_id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_ID },
606 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
607 { &hf_hnbap_private_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_Field_value },
608 { NULL, 0, 0, NULL }
611 static int
612 dissect_hnbap_PrivateIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
613 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
614 ett_hnbap_PrivateIE_Field, PrivateIE_Field_sequence);
616 return offset;
620 static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
621 { &hf_hnbap_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_Field },
624 static int
625 dissect_hnbap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
626 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
627 ett_hnbap_PrivateIE_Container, PrivateIE_Container_sequence_of,
628 1, maxPrivateIEs, FALSE);
630 return offset;
634 static const value_string hnbap_Access_stratum_release_indicator_vals[] = {
635 { 0, "r99" },
636 { 1, "rel-4" },
637 { 2, "rel-5" },
638 { 3, "rel-6" },
639 { 4, "rel-7" },
640 { 5, "rel-8-and-beyond" },
641 { 0, NULL }
645 static int
646 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_) {
647 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
648 6, NULL, TRUE, 0, NULL);
650 return offset;
655 static const value_string hnbap_T_directionOfAltitude_vals[] = {
656 { 0, "height" },
657 { 1, "depth" },
658 { 0, NULL }
662 static int
663 dissect_hnbap_T_directionOfAltitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
664 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
665 2, NULL, FALSE, 0, NULL);
667 return offset;
672 static int
673 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_) {
674 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
675 0U, 32767U, NULL, FALSE);
677 return offset;
681 static const per_sequence_t AltitudeAndDirection_sequence[] = {
682 { &hf_hnbap_directionOfAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_T_directionOfAltitude },
683 { &hf_hnbap_altitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_INTEGER_0_32767 },
684 { NULL, 0, 0, NULL }
687 static int
688 dissect_hnbap_AltitudeAndDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
689 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
690 ett_hnbap_AltitudeAndDirection, AltitudeAndDirection_sequence);
692 return offset;
697 static int
698 dissect_hnbap_BackoffTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
699 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
700 0U, 3600U, NULL, FALSE);
702 return offset;
707 static int
708 dissect_hnbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
709 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
710 1, 4, TRUE, NULL);
712 return offset;
716 static const value_string hnbap_CauseRadioNetwork_vals[] = {
717 { 0, "overload" },
718 { 1, "unauthorised-Location" },
719 { 2, "unauthorised-HNB" },
720 { 3, "hNB-parameter-mismatch" },
721 { 4, "invalid-UE-identity" },
722 { 5, "uE-not-allowed-on-this-HNB" },
723 { 6, "uE-unauthorised" },
724 { 7, "connection-with-UE-lost" },
725 { 8, "ue-RRC-telease" },
726 { 9, "hNB-not-registered" },
727 { 10, "unspecified" },
728 { 11, "normal" },
729 { 12, "uE-relocated" },
730 { 13, "ue-registered-in-another-HNB" },
731 { 0, NULL }
735 static int
736 dissect_hnbap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
737 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
738 14, NULL, TRUE, 0, NULL);
740 return offset;
744 static const value_string hnbap_CauseTransport_vals[] = {
745 { 0, "transport-resource-unavailable" },
746 { 1, "unspecified" },
747 { 0, NULL }
751 static int
752 dissect_hnbap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
753 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
754 2, NULL, TRUE, 0, NULL);
756 return offset;
760 static const value_string hnbap_CauseProtocol_vals[] = {
761 { 0, "transfer-syntax-error" },
762 { 1, "abstract-syntax-error-reject" },
763 { 2, "abstract-syntax-error-ignore-and-notify" },
764 { 3, "message-not-compatible-with-receiver-state" },
765 { 4, "semantic-error" },
766 { 5, "unspecified" },
767 { 6, "abstract-syntax-error-falsely-constructed-message" },
768 { 0, NULL }
772 static int
773 dissect_hnbap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
774 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
775 7, NULL, TRUE, 0, NULL);
777 return offset;
781 static const value_string hnbap_CauseMisc_vals[] = {
782 { 0, "processing-overload" },
783 { 1, "hardware-failure" },
784 { 2, "o-and-m-intervention" },
785 { 3, "unspecified" },
786 { 0, NULL }
790 static int
791 dissect_hnbap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
792 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
793 4, NULL, TRUE, 0, NULL);
795 return offset;
799 static const value_string hnbap_Cause_vals[] = {
800 { 0, "radioNetwork" },
801 { 1, "transport" },
802 { 2, "protocol" },
803 { 3, "misc" },
804 { 0, NULL }
807 static const per_choice_t Cause_choice[] = {
808 { 0, &hf_hnbap_radioNetwork , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseRadioNetwork },
809 { 1, &hf_hnbap_transport , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseTransport },
810 { 2, &hf_hnbap_protocol , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseProtocol },
811 { 3, &hf_hnbap_misc , ASN1_EXTENSION_ROOT , dissect_hnbap_CauseMisc },
812 { 0, NULL, 0, NULL }
815 static int
816 dissect_hnbap_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
817 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
818 ett_hnbap_Cause, Cause_choice,
819 NULL);
821 return offset;
826 static int
827 dissect_hnbap_CellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
828 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
829 28, 28, FALSE, NULL);
831 return offset;
836 static int
837 dissect_hnbap_Context_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
838 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
839 24, 24, FALSE, NULL);
841 return offset;
845 static const value_string hnbap_TypeOfError_vals[] = {
846 { 0, "not-understood" },
847 { 1, "missing" },
848 { 0, NULL }
852 static int
853 dissect_hnbap_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
854 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
855 2, NULL, TRUE, 0, NULL);
857 return offset;
861 static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
862 { &hf_hnbap_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
863 { &hf_hnbap_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_ID },
864 { &hf_hnbap_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_TypeOfError },
865 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
866 { NULL, 0, 0, NULL }
869 static int
870 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_) {
871 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
872 ett_hnbap_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
874 return offset;
878 static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
879 { &hf_hnbap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_CriticalityDiagnostics_IE_List_item },
882 static int
883 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_) {
884 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
885 ett_hnbap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
886 1, maxNrOfErrors, FALSE);
888 return offset;
892 static const per_sequence_t CriticalityDiagnostics_sequence[] = {
893 { &hf_hnbap_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProcedureCode },
894 { &hf_hnbap_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_TriggeringMessage },
895 { &hf_hnbap_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_Criticality },
896 { &hf_hnbap_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_CriticalityDiagnostics_IE_List },
897 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
898 { NULL, 0, 0, NULL }
901 static int
902 dissect_hnbap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
903 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
904 ett_hnbap_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
906 return offset;
911 static int
912 dissect_hnbap_CSG_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
913 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
914 27, 27, FALSE, NULL);
916 return offset;
920 static const value_string hnbap_CSG_Capability_vals[] = {
921 { 0, "csg-capable" },
922 { 1, "not-csg-capable" },
923 { 0, NULL }
927 static int
928 dissect_hnbap_CSG_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
929 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
930 2, NULL, TRUE, 0, NULL);
932 return offset;
936 static const value_string hnbap_CSGMembershipStatus_vals[] = {
937 { 0, "member" },
938 { 1, "non-member" },
939 { 0, NULL }
943 static int
944 dissect_hnbap_CSGMembershipStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
945 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
946 2, NULL, TRUE, 0, NULL);
948 return offset;
953 static int
954 dissect_hnbap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
955 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
956 3, 3, FALSE, NULL);
958 return offset;
963 static int
964 dissect_hnbap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
965 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
966 2, 2, FALSE, NULL);
968 return offset;
973 static int
974 dissect_hnbap_CI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
975 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
976 2, 2, FALSE, NULL);
978 return offset;
982 static const per_sequence_t CGI_sequence[] = {
983 { &hf_hnbap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PLMNidentity },
984 { &hf_hnbap_lAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_LAC },
985 { &hf_hnbap_cI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_CI },
986 { &hf_hnbap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
987 { NULL, 0, 0, NULL }
990 static int
991 dissect_hnbap_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
992 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
993 ett_hnbap_CGI, CGI_sequence);
995 return offset;
999 static const value_string hnbap_CN_DomainIndicator_vals[] = {
1000 { 0, "cs-domain" },
1001 { 1, "ps-domain" },
1002 { 0, NULL }
1006 static int
1007 dissect_hnbap_CN_DomainIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1008 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1009 2, NULL, FALSE, 0, NULL);
1011 return offset;
1016 static int
1017 dissect_hnbap_ESN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1018 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1019 32, 32, FALSE, NULL);
1021 return offset;
1025 static const value_string hnbap_T_latitudeSign_vals[] = {
1026 { 0, "north" },
1027 { 1, "south" },
1028 { 0, NULL }
1032 static int
1033 dissect_hnbap_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1034 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1035 2, NULL, FALSE, 0, NULL);
1037 return offset;
1042 static int
1043 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_) {
1044 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1045 0U, 8388607U, NULL, FALSE);
1047 return offset;
1052 static int
1053 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_) {
1054 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1055 -8388608, 8388607U, NULL, FALSE);
1057 return offset;
1061 static const per_sequence_t GeographicalCoordinates_sequence[] = {
1062 { &hf_hnbap_latitudeSign , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_T_latitudeSign },
1063 { &hf_hnbap_latitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_INTEGER_0_8388607 },
1064 { &hf_hnbap_longitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_INTEGER_M8388608_8388607 },
1065 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1066 { NULL, 0, 0, NULL }
1069 static int
1070 dissect_hnbap_GeographicalCoordinates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1071 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1072 ett_hnbap_GeographicalCoordinates, GeographicalCoordinates_sequence);
1074 return offset;
1078 static const per_sequence_t GeographicalLocation_sequence[] = {
1079 { &hf_hnbap_geographical_location_geographical_coordinates, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_GeographicalCoordinates },
1080 { &hf_hnbap_altitudeAndDirection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_AltitudeAndDirection },
1081 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1082 { NULL, 0, 0, NULL }
1085 static int
1086 dissect_hnbap_GeographicalLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1087 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1088 ett_hnbap_GeographicalLocation, GeographicalLocation_sequence);
1090 return offset;
1095 static int
1096 dissect_hnbap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1097 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1098 4, 4, FALSE, NULL);
1100 return offset;
1104 static const value_string hnbap_HNB_Cell_Access_Mode_vals[] = {
1105 { 0, "closed" },
1106 { 1, "hybrid" },
1107 { 2, "open" },
1108 { 0, NULL }
1112 static int
1113 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_) {
1114 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1115 3, NULL, TRUE, 0, NULL);
1117 return offset;
1121 static const per_sequence_t HNB_Cell_Identifier_sequence[] = {
1122 { &hf_hnbap_pLMNidentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_PLMNidentity },
1123 { &hf_hnbap_cellIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_CellIdentity },
1124 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1125 { NULL, 0, 0, NULL }
1128 static int
1129 dissect_hnbap_HNB_Cell_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1130 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1131 ett_hnbap_HNB_Cell_Identifier, HNB_Cell_Identifier_sequence);
1133 return offset;
1137 static const value_string hnbap_HNB_RNL_Identity_vals[] = {
1138 { 0, "hNB-Identity-as-Cell-Identifier" },
1139 { 0, NULL }
1142 static const per_choice_t HNB_RNL_Identity_choice[] = {
1143 { 0, &hf_hnbap_hNB_Identity_as_Cell_Identifier, ASN1_EXTENSION_ROOT , dissect_hnbap_HNB_Cell_Identifier },
1144 { 0, NULL, 0, NULL }
1147 static int
1148 dissect_hnbap_HNB_RNL_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1149 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1150 ett_hnbap_HNB_RNL_Identity, HNB_RNL_Identity_choice,
1151 NULL);
1153 return offset;
1158 static int
1159 dissect_hnbap_PSC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1160 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1161 9, 9, FALSE, NULL);
1163 return offset;
1168 static int
1169 dissect_hnbap_Ipv4Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1170 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1171 4, 4, FALSE, NULL);
1173 return offset;
1178 static int
1179 dissect_hnbap_Ipv6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1180 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1181 16, 16, FALSE, NULL);
1183 return offset;
1187 static const value_string hnbap_T_ipaddress_vals[] = {
1188 { 0, "ipv4info" },
1189 { 1, "ipv6info" },
1190 { 0, NULL }
1193 static const per_choice_t T_ipaddress_choice[] = {
1194 { 0, &hf_hnbap_ipv4info , ASN1_EXTENSION_ROOT , dissect_hnbap_Ipv4Address },
1195 { 1, &hf_hnbap_ipv6info , ASN1_EXTENSION_ROOT , dissect_hnbap_Ipv6Address },
1196 { 0, NULL, 0, NULL }
1199 static int
1200 dissect_hnbap_T_ipaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1201 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1202 ett_hnbap_T_ipaddress, T_ipaddress_choice,
1203 NULL);
1205 return offset;
1209 static const per_sequence_t IP_Address_sequence[] = {
1210 { &hf_hnbap_ipaddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_T_ipaddress },
1211 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1212 { NULL, 0, 0, NULL }
1215 static int
1216 dissect_hnbap_IP_Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1217 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1218 ett_hnbap_IP_Address, IP_Address_sequence);
1220 return offset;
1224 static const per_sequence_t Iurh_Signalling_TNL_AddressList_sequence_of[1] = {
1225 { &hf_hnbap_Iurh_Signalling_TNL_AddressList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_IP_Address },
1228 static int
1229 dissect_hnbap_Iurh_Signalling_TNL_AddressList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1230 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1231 ett_hnbap_Iurh_Signalling_TNL_AddressList, Iurh_Signalling_TNL_AddressList_sequence_of,
1232 1, maxnoofIurhAddresses, FALSE);
1234 return offset;
1238 static const per_sequence_t HNBConfigurationInformationProvided_sequence[] = {
1239 { &hf_hnbap_psc , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_PSC },
1240 { &hf_hnbap_cSG_ID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_CSG_ID },
1241 { &hf_hnbap_hNB_Cell_Access_Mode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_HNB_Cell_Access_Mode },
1242 { &hf_hnbap_iurh_Signalling_TNL_AddressList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_Iurh_Signalling_TNL_AddressList },
1243 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1244 { NULL, 0, 0, NULL }
1247 static int
1248 dissect_hnbap_HNBConfigurationInformationProvided(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1249 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1250 ett_hnbap_HNBConfigurationInformationProvided, HNBConfigurationInformationProvided_sequence);
1252 return offset;
1256 static const per_sequence_t HNBConfigurationInformationMissing_sequence[] = {
1257 { &hf_hnbap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_Cause },
1258 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1259 { NULL, 0, 0, NULL }
1262 static int
1263 dissect_hnbap_HNBConfigurationInformationMissing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1264 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1265 ett_hnbap_HNBConfigurationInformationMissing, HNBConfigurationInformationMissing_sequence);
1267 return offset;
1271 static const value_string hnbap_ConfigurationInformation_vals[] = {
1272 { 0, "provided" },
1273 { 1, "missing" },
1274 { 0, NULL }
1277 static const per_choice_t ConfigurationInformation_choice[] = {
1278 { 0, &hf_hnbap_provided , ASN1_EXTENSION_ROOT , dissect_hnbap_HNBConfigurationInformationProvided },
1279 { 1, &hf_hnbap_missing , ASN1_EXTENSION_ROOT , dissect_hnbap_HNBConfigurationInformationMissing },
1280 { 0, NULL, 0, NULL }
1283 static int
1284 dissect_hnbap_ConfigurationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1285 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1286 ett_hnbap_ConfigurationInformation, ConfigurationInformation_choice,
1287 NULL);
1289 return offset;
1293 static const per_sequence_t HNBConfigInfo_sequence[] = {
1294 { &hf_hnbap_hnb_RNL_Identity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_HNB_RNL_Identity },
1295 { &hf_hnbap_configurationInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ConfigurationInformation },
1296 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1297 { NULL, 0, 0, NULL }
1300 static int
1301 dissect_hnbap_HNBConfigInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1302 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1303 ett_hnbap_HNBConfigInfo, HNBConfigInfo_sequence);
1305 return offset;
1310 static int
1311 dissect_hnbap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1312 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1313 1, 1, FALSE, NULL);
1315 return offset;
1319 static const per_sequence_t UTRANCellID_sequence[] = {
1320 { &hf_hnbap_lAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_LAC },
1321 { &hf_hnbap_rAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_RAC },
1322 { &hf_hnbap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_PLMNidentity },
1323 { &hf_hnbap_uTRANcellID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_CellIdentity },
1324 { &hf_hnbap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1325 { NULL, 0, 0, NULL }
1328 static int
1329 dissect_hnbap_UTRANCellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1330 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1331 ett_hnbap_UTRANCellID, UTRANCellID_sequence);
1333 return offset;
1337 static const value_string hnbap_MacroCellID_vals[] = {
1338 { 0, "uTRANCellID" },
1339 { 1, "gERANCellID" },
1340 { 0, NULL }
1343 static const per_choice_t MacroCellID_choice[] = {
1344 { 0, &hf_hnbap_uTRANCellID , ASN1_EXTENSION_ROOT , dissect_hnbap_UTRANCellID },
1345 { 1, &hf_hnbap_gERANCellID , ASN1_EXTENSION_ROOT , dissect_hnbap_CGI },
1346 { 0, NULL, 0, NULL }
1349 static int
1350 dissect_hnbap_MacroCellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1351 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1352 ett_hnbap_MacroCellID, MacroCellID_choice,
1353 NULL);
1355 return offset;
1359 static const per_sequence_t MacroCoverageInformation_sequence[] = {
1360 { &hf_hnbap_cellIdentity_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_MacroCellID },
1361 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1362 { NULL, 0, 0, NULL }
1365 static int
1366 dissect_hnbap_MacroCoverageInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1367 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1368 ett_hnbap_MacroCoverageInformation, MacroCoverageInformation_sequence);
1370 return offset;
1374 static const per_sequence_t HNB_Location_Information_sequence[] = {
1375 { &hf_hnbap_macroCoverageInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_MacroCoverageInformation },
1376 { &hf_hnbap_hnb_location_information_geographical_coordinates, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_GeographicalLocation },
1377 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1378 { NULL, 0, 0, NULL }
1381 static int
1382 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_) {
1383 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1384 ett_hnbap_HNB_Location_Information, HNB_Location_Information_sequence);
1386 return offset;
1391 static int
1392 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_) {
1393 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1394 1, 255, FALSE, NULL);
1396 return offset;
1400 static const per_sequence_t HNB_Identity_sequence[] = {
1401 { &hf_hnbap_hNB_Identity_Info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_HNB_Identity_Info },
1402 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1403 { NULL, 0, 0, NULL }
1406 static int
1407 dissect_hnbap_HNB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1408 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1409 ett_hnbap_HNB_Identity, HNB_Identity_sequence);
1411 return offset;
1416 static int
1417 dissect_hnbap_IMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1418 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1419 60, 60, FALSE, NULL);
1421 return offset;
1426 static int
1427 dissect_hnbap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1428 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1429 3, 8, FALSE, NULL);
1431 return offset;
1436 static int
1437 dissect_hnbap_IMSIDS41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1438 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1439 5, 7, FALSE, NULL);
1441 return offset;
1445 static const per_sequence_t IMSIESN_sequence[] = {
1446 { &hf_hnbap_iMSIDS41 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_IMSIDS41 },
1447 { &hf_hnbap_eSN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ESN },
1448 { NULL, 0, 0, NULL }
1451 static int
1452 dissect_hnbap_IMSIESN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1453 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1454 ett_hnbap_IMSIESN, IMSIESN_sequence);
1456 return offset;
1460 static const per_sequence_t LAI_sequence[] = {
1461 { &hf_hnbap_pLMNID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_PLMNidentity },
1462 { &hf_hnbap_lAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_LAC },
1463 { NULL, 0, 0, NULL }
1466 static int
1467 dissect_hnbap_LAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1468 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1469 ett_hnbap_LAI, LAI_sequence);
1471 return offset;
1476 static int
1477 dissect_hnbap_MuxPortNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1478 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1479 1024U, 65535U, NULL, FALSE);
1481 return offset;
1485 static const per_sequence_t NeighbourInfoList_sequence_of[1] = {
1486 { &hf_hnbap_NeighbourInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_HNBConfigInfo },
1489 static int
1490 dissect_hnbap_NeighbourInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1491 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1492 ett_hnbap_NeighbourInfoList, NeighbourInfoList_sequence_of,
1493 1, maxnoofNeighbours, FALSE);
1495 return offset;
1499 static const per_sequence_t NeighbourInfoRequestItem_sequence[] = {
1500 { &hf_hnbap_hnb_RNL_Identity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_HNB_RNL_Identity },
1501 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1502 { NULL, 0, 0, NULL }
1505 static int
1506 dissect_hnbap_NeighbourInfoRequestItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1507 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1508 ett_hnbap_NeighbourInfoRequestItem, NeighbourInfoRequestItem_sequence);
1510 return offset;
1514 static const per_sequence_t NeighbourInfoRequestList_sequence_of[1] = {
1515 { &hf_hnbap_NeighbourInfoRequestList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_NeighbourInfoRequestItem },
1518 static int
1519 dissect_hnbap_NeighbourInfoRequestList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1520 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1521 ett_hnbap_NeighbourInfoRequestList, NeighbourInfoRequestList_sequence_of,
1522 1, maxnoofNeighbours, FALSE);
1524 return offset;
1529 static int
1530 dissect_hnbap_PTMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1531 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1532 32, 32, FALSE, NULL);
1534 return offset;
1538 static const per_sequence_t RAI_sequence[] = {
1539 { &hf_hnbap_lAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_LAI },
1540 { &hf_hnbap_rAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_RAC },
1541 { NULL, 0, 0, NULL }
1544 static int
1545 dissect_hnbap_RAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1546 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1547 ett_hnbap_RAI, RAI_sequence);
1549 return offset;
1553 static const per_sequence_t PTMSIRAI_sequence[] = {
1554 { &hf_hnbap_pTMSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_PTMSI },
1555 { &hf_hnbap_rAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_RAI },
1556 { NULL, 0, 0, NULL }
1559 static int
1560 dissect_hnbap_PTMSIRAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1561 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1562 ett_hnbap_PTMSIRAI, PTMSIRAI_sequence);
1564 return offset;
1569 static int
1570 dissect_hnbap_RAB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1571 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1572 8, 8, FALSE, NULL);
1574 return offset;
1579 static int
1580 dissect_hnbap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1581 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1582 1, 160, TRUE, NULL);
1584 return offset;
1588 static const value_string hnbap_T_transportAssociation_vals[] = {
1589 { 0, "gtp-TEI" },
1590 { 1, "bindingID" },
1591 { 0, NULL }
1594 static const per_choice_t T_transportAssociation_choice[] = {
1595 { 0, &hf_hnbap_gtp_TEI , ASN1_EXTENSION_ROOT , dissect_hnbap_GTP_TEI },
1596 { 1, &hf_hnbap_bindingID , ASN1_EXTENSION_ROOT , dissect_hnbap_BindingID },
1597 { 0, NULL, 0, NULL }
1600 static int
1601 dissect_hnbap_T_transportAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1602 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1603 ett_hnbap_T_transportAssociation, T_transportAssociation_choice,
1604 NULL);
1606 return offset;
1610 static const per_sequence_t TransportInfo_sequence[] = {
1611 { &hf_hnbap_transportLayerAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_TransportLayerAddress },
1612 { &hf_hnbap_transportAssociation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_T_transportAssociation },
1613 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1614 { NULL, 0, 0, NULL }
1617 static int
1618 dissect_hnbap_TransportInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1619 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1620 ett_hnbap_TransportInfo, TransportInfo_sequence);
1622 return offset;
1626 static const per_sequence_t RABListItem_sequence[] = {
1627 { &hf_hnbap_rAB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_RAB_ID },
1628 { &hf_hnbap_old_transport_Info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_TransportInfo },
1629 { &hf_hnbap_new_transport_Info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_TransportInfo },
1630 { &hf_hnbap_cn_domain_indicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_CN_DomainIndicator },
1631 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1632 { NULL, 0, 0, NULL }
1635 static int
1636 dissect_hnbap_RABListItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1637 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1638 ett_hnbap_RABListItem, RABListItem_sequence);
1640 return offset;
1644 static const per_sequence_t RABList_sequence_of[1] = {
1645 { &hf_hnbap_RABList_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_RABListItem },
1648 static int
1649 dissect_hnbap_RABList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1650 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1651 ett_hnbap_RABList, RABList_sequence_of,
1652 1, maxnoofRABs, FALSE);
1654 return offset;
1658 static const value_string hnbap_Registration_Cause_vals[] = {
1659 { 0, "emergency-call" },
1660 { 1, "normal" },
1661 { 2, "ue-relocation" },
1662 { 0, NULL }
1666 static int
1667 dissect_hnbap_Registration_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1668 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1669 2, NULL, TRUE, 1, NULL);
1671 return offset;
1676 static int
1677 dissect_hnbap_RNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1678 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1679 0U, 65535U, NULL, FALSE);
1681 return offset;
1686 static int
1687 dissect_hnbap_SAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1688 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1689 2, 2, FALSE, NULL);
1691 return offset;
1696 static int
1697 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_) {
1698 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1699 32, 32, FALSE, NULL);
1701 return offset;
1705 static const per_sequence_t TMSILAI_sequence[] = {
1706 { &hf_hnbap_tMSI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_BIT_STRING_SIZE_32 },
1707 { &hf_hnbap_lAI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_LAI },
1708 { NULL, 0, 0, NULL }
1711 static int
1712 dissect_hnbap_TMSILAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1713 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1714 ett_hnbap_TMSILAI, TMSILAI_sequence);
1716 return offset;
1721 static int
1722 dissect_hnbap_TMSIDS41(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1723 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1724 2, 17, FALSE, NULL);
1726 return offset;
1730 static const per_sequence_t UE_Capabilities_sequence[] = {
1731 { &hf_hnbap_access_stratum_release_indicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_Access_stratum_release_indicator },
1732 { &hf_hnbap_csg_capability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_CSG_Capability },
1733 { &hf_hnbap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1734 { NULL, 0, 0, NULL }
1737 static int
1738 dissect_hnbap_UE_Capabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1739 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1740 ett_hnbap_UE_Capabilities, UE_Capabilities_sequence);
1742 return offset;
1746 static const value_string hnbap_UE_Identity_vals[] = {
1747 { 0, "iMSI" },
1748 { 1, "tMSILAI" },
1749 { 2, "pTMSIRAI" },
1750 { 3, "iMEI" },
1751 { 4, "eSN" },
1752 { 5, "iMSIDS41" },
1753 { 6, "iMSIESN" },
1754 { 7, "tMSIDS41" },
1755 { 0, NULL }
1758 static const per_choice_t UE_Identity_choice[] = {
1759 { 0, &hf_hnbap_iMSI , ASN1_EXTENSION_ROOT , dissect_hnbap_IMSI },
1760 { 1, &hf_hnbap_tMSILAI , ASN1_EXTENSION_ROOT , dissect_hnbap_TMSILAI },
1761 { 2, &hf_hnbap_pTMSIRAI , ASN1_EXTENSION_ROOT , dissect_hnbap_PTMSIRAI },
1762 { 3, &hf_hnbap_iMEI , ASN1_EXTENSION_ROOT , dissect_hnbap_IMEI },
1763 { 4, &hf_hnbap_eSN , ASN1_EXTENSION_ROOT , dissect_hnbap_ESN },
1764 { 5, &hf_hnbap_iMSIDS41 , ASN1_EXTENSION_ROOT , dissect_hnbap_IMSIDS41 },
1765 { 6, &hf_hnbap_iMSIESN , ASN1_EXTENSION_ROOT , dissect_hnbap_IMSIESN },
1766 { 7, &hf_hnbap_tMSIDS41 , ASN1_EXTENSION_ROOT , dissect_hnbap_TMSIDS41 },
1767 { 0, NULL, 0, NULL }
1770 static int
1771 dissect_hnbap_UE_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1772 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1773 ett_hnbap_UE_Identity, UE_Identity_choice,
1774 NULL);
1776 return offset;
1780 static const value_string hnbap_Update_cause_vals[] = {
1781 { 0, "relocation-preparation" },
1782 { 0, NULL }
1786 static int
1787 dissect_hnbap_Update_cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1788 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1789 1, NULL, TRUE, 0, NULL);
1791 return offset;
1795 static const per_sequence_t HNBRegisterRequest_sequence[] = {
1796 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1797 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1798 { NULL, 0, 0, NULL }
1801 static int
1802 dissect_hnbap_HNBRegisterRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1803 #line 75 "../../asn1/hnbap/hnbap.cnf"
1804 col_set_str(actx->pinfo->cinfo, COL_INFO,
1805 "HNB_REGISTER_REQUEST ");
1806 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1807 ett_hnbap_HNBRegisterRequest, HNBRegisterRequest_sequence);
1812 return offset;
1816 static const per_sequence_t HNBRegisterAccept_sequence[] = {
1817 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1818 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1819 { NULL, 0, 0, NULL }
1822 static int
1823 dissect_hnbap_HNBRegisterAccept(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1824 #line 80 "../../asn1/hnbap/hnbap.cnf"
1825 col_set_str(actx->pinfo->cinfo, COL_INFO,
1826 "HNB_REGISTER_ACCEPT ");
1827 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1828 ett_hnbap_HNBRegisterAccept, HNBRegisterAccept_sequence);
1833 return offset;
1837 static const per_sequence_t HNBRegisterReject_sequence[] = {
1838 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1839 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1840 { NULL, 0, 0, NULL }
1843 static int
1844 dissect_hnbap_HNBRegisterReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1845 #line 85 "../../asn1/hnbap/hnbap.cnf"
1846 col_set_str(actx->pinfo->cinfo, COL_INFO,
1847 "HNB_REGISTER_REJECT ");
1848 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1849 ett_hnbap_HNBRegisterReject, HNBRegisterReject_sequence);
1854 return offset;
1858 static const per_sequence_t HNBDe_Register_sequence[] = {
1859 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1860 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1861 { NULL, 0, 0, NULL }
1864 static int
1865 dissect_hnbap_HNBDe_Register(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1866 #line 110 "../../asn1/hnbap/hnbap.cnf"
1867 col_set_str(actx->pinfo->cinfo, COL_INFO,
1868 "HNB_DE-REGISTER ");
1869 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1870 ett_hnbap_HNBDe_Register, HNBDe_Register_sequence);
1875 return offset;
1879 static const per_sequence_t UERegisterRequest_sequence[] = {
1880 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1881 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1882 { NULL, 0, 0, NULL }
1885 static int
1886 dissect_hnbap_UERegisterRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1887 #line 90 "../../asn1/hnbap/hnbap.cnf"
1888 col_set_str(actx->pinfo->cinfo, COL_INFO,
1889 "UE_REGISTER_REQUEST ");
1890 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1891 ett_hnbap_UERegisterRequest, UERegisterRequest_sequence);
1896 return offset;
1900 static const per_sequence_t UERegisterAccept_sequence[] = {
1901 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1902 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1903 { NULL, 0, 0, NULL }
1906 static int
1907 dissect_hnbap_UERegisterAccept(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1908 #line 95 "../../asn1/hnbap/hnbap.cnf"
1909 col_set_str(actx->pinfo->cinfo, COL_INFO,
1910 "UE_REGISTER_ACCEPT ");
1911 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1912 ett_hnbap_UERegisterAccept, UERegisterAccept_sequence);
1917 return offset;
1921 static const per_sequence_t UERegisterReject_sequence[] = {
1922 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1923 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1924 { NULL, 0, 0, NULL }
1927 static int
1928 dissect_hnbap_UERegisterReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1929 #line 100 "../../asn1/hnbap/hnbap.cnf"
1930 col_set_str(actx->pinfo->cinfo, COL_INFO,
1931 "UE_REGISTER_REJECT ");
1932 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1933 ett_hnbap_UERegisterReject, UERegisterReject_sequence);
1938 return offset;
1942 static const per_sequence_t UEDe_Register_sequence[] = {
1943 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1944 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1945 { NULL, 0, 0, NULL }
1948 static int
1949 dissect_hnbap_UEDe_Register(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1950 #line 105 "../../asn1/hnbap/hnbap.cnf"
1951 col_set_str(actx->pinfo->cinfo, COL_INFO,
1952 "UE_DE-REGISTER ");
1953 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1954 ett_hnbap_UEDe_Register, UEDe_Register_sequence);
1959 return offset;
1963 static const per_sequence_t CSGMembershipUpdate_sequence[] = {
1964 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1965 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1966 { NULL, 0, 0, NULL }
1969 static int
1970 dissect_hnbap_CSGMembershipUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1971 #line 121 "../../asn1/hnbap/hnbap.cnf"
1972 col_set_str(actx->pinfo->cinfo, COL_INFO,
1973 "CSG_MEMBERSHIP_UPDATE_MESSAGE ");
1974 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1975 ett_hnbap_CSGMembershipUpdate, CSGMembershipUpdate_sequence);
1980 return offset;
1984 static const per_sequence_t TNLUpdateRequest_sequence[] = {
1985 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
1986 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
1987 { NULL, 0, 0, NULL }
1990 static int
1991 dissect_hnbap_TNLUpdateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1992 #line 131 "../../asn1/hnbap/hnbap.cnf"
1993 col_set_str(actx->pinfo->cinfo, COL_INFO,
1994 "TNL_UPDATE_REQUEST_MESSAGE ");
1995 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1996 ett_hnbap_TNLUpdateRequest, TNLUpdateRequest_sequence);
2000 return offset;
2004 static const per_sequence_t TNLUpdateResponse_sequence[] = {
2005 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
2006 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
2007 { NULL, 0, 0, NULL }
2010 static int
2011 dissect_hnbap_TNLUpdateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2012 #line 135 "../../asn1/hnbap/hnbap.cnf"
2013 col_set_str(actx->pinfo->cinfo, COL_INFO,
2014 "TNL_UPDATE_RESPONSE_MESSAGE ");
2015 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2016 ett_hnbap_TNLUpdateResponse, TNLUpdateResponse_sequence);
2020 return offset;
2024 static const per_sequence_t TNLUpdateFailure_sequence[] = {
2025 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
2026 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
2027 { NULL, 0, 0, NULL }
2030 static int
2031 dissect_hnbap_TNLUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2032 #line 139 "../../asn1/hnbap/hnbap.cnf"
2033 col_set_str(actx->pinfo->cinfo, COL_INFO,
2034 "TNL_UPDATE_FAILURE_MESSAGE ");
2035 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2036 ett_hnbap_TNLUpdateFailure, TNLUpdateFailure_sequence);
2040 return offset;
2044 static const per_sequence_t HNBConfigTransferRequest_sequence[] = {
2045 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
2046 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
2047 { NULL, 0, 0, NULL }
2050 static int
2051 dissect_hnbap_HNBConfigTransferRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2052 #line 143 "../../asn1/hnbap/hnbap.cnf"
2053 col_set_str(actx->pinfo->cinfo, COL_INFO,
2054 "HNB_CONFIG_TRANSFER_REQUEST_MESSAGE ");
2055 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2056 ett_hnbap_HNBConfigTransferRequest, HNBConfigTransferRequest_sequence);
2060 return offset;
2064 static const per_sequence_t HNBConfigTransferResponse_sequence[] = {
2065 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
2066 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
2067 { NULL, 0, 0, NULL }
2070 static int
2071 dissect_hnbap_HNBConfigTransferResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2072 #line 147 "../../asn1/hnbap/hnbap.cnf"
2073 col_set_str(actx->pinfo->cinfo, COL_INFO,
2074 "HNB_CONFIG_TRANSFER_RESPONSE_MESSAGE ");
2075 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2076 ett_hnbap_HNBConfigTransferResponse, HNBConfigTransferResponse_sequence);
2080 return offset;
2084 static const per_sequence_t RelocationComplete_sequence[] = {
2085 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
2086 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
2087 { NULL, 0, 0, NULL }
2090 static int
2091 dissect_hnbap_RelocationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2092 #line 151 "../../asn1/hnbap/hnbap.cnf"
2093 col_set_str(actx->pinfo->cinfo, COL_INFO,
2094 "RELOCATION_COMPLETE_MESSAGE ");
2095 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2096 ett_hnbap_RelocationComplete, RelocationComplete_sequence);
2101 return offset;
2105 static const per_sequence_t ErrorIndication_sequence[] = {
2106 { &hf_hnbap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_ProtocolIE_Container },
2107 { &hf_hnbap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_hnbap_ProtocolExtensionContainer },
2108 { NULL, 0, 0, NULL }
2111 static int
2112 dissect_hnbap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2113 #line 115 "../../asn1/hnbap/hnbap.cnf"
2114 col_set_str(actx->pinfo->cinfo, COL_INFO,
2115 "ERROR_INDICATION ");
2116 col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
2117 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2118 ett_hnbap_ErrorIndication, ErrorIndication_sequence);
2123 return offset;
2127 static const per_sequence_t PrivateMessage_sequence[] = {
2128 { &hf_hnbap_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_hnbap_PrivateIE_Container },
2129 { NULL, 0, 0, NULL }
2132 static int
2133 dissect_hnbap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2134 #line 126 "../../asn1/hnbap/hnbap.cnf"
2135 col_set_str(actx->pinfo->cinfo, COL_INFO,
2136 "PRIVATE_MESSAGE ");
2137 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2138 ett_hnbap_PrivateMessage, PrivateMessage_sequence);
2143 return offset;
2148 static int
2149 dissect_hnbap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2150 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
2152 return offset;
2156 static const per_sequence_t InitiatingMessage_sequence[] = {
2157 { &hf_hnbap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProcedureCode },
2158 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
2159 { &hf_hnbap_initiatingMessagevalue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_InitiatingMessage_value },
2160 { NULL, 0, 0, NULL }
2163 static int
2164 dissect_hnbap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2165 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2166 ett_hnbap_InitiatingMessage, InitiatingMessage_sequence);
2168 return offset;
2173 static int
2174 dissect_hnbap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2175 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
2177 return offset;
2181 static const per_sequence_t SuccessfulOutcome_sequence[] = {
2182 { &hf_hnbap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProcedureCode },
2183 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
2184 { &hf_hnbap_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_SuccessfulOutcome_value },
2185 { NULL, 0, 0, NULL }
2188 static int
2189 dissect_hnbap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2190 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2191 ett_hnbap_SuccessfulOutcome, SuccessfulOutcome_sequence);
2193 return offset;
2198 static int
2199 dissect_hnbap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2200 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue);
2202 return offset;
2206 static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
2207 { &hf_hnbap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_ProcedureCode },
2208 { &hf_hnbap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_Criticality },
2209 { &hf_hnbap_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_hnbap_UnsuccessfulOutcome_value },
2210 { NULL, 0, 0, NULL }
2213 static int
2214 dissect_hnbap_UnsuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2215 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2216 ett_hnbap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
2218 return offset;
2222 static const value_string hnbap_HNBAP_PDU_vals[] = {
2223 { 0, "initiatingMessage" },
2224 { 1, "successfulOutcome" },
2225 { 2, "unsuccessfulOutcome" },
2226 { 0, NULL }
2229 static const per_choice_t HNBAP_PDU_choice[] = {
2230 { 0, &hf_hnbap_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_hnbap_InitiatingMessage },
2231 { 1, &hf_hnbap_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_hnbap_SuccessfulOutcome },
2232 { 2, &hf_hnbap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_hnbap_UnsuccessfulOutcome },
2233 { 0, NULL, 0, NULL }
2236 static int
2237 dissect_hnbap_HNBAP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2238 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2239 ett_hnbap_HNBAP_PDU, HNBAP_PDU_choice,
2240 NULL);
2242 return offset;
2245 /*--- PDUs ---*/
2247 static int dissect_BackoffTimer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2248 int offset = 0;
2249 asn1_ctx_t asn1_ctx;
2250 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2251 offset = dissect_hnbap_BackoffTimer(tvb, offset, &asn1_ctx, tree, hf_hnbap_BackoffTimer_PDU);
2252 offset += 7; offset >>= 3;
2253 return offset;
2255 static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2256 int offset = 0;
2257 asn1_ctx_t asn1_ctx;
2258 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2259 offset = dissect_hnbap_Cause(tvb, offset, &asn1_ctx, tree, hf_hnbap_Cause_PDU);
2260 offset += 7; offset >>= 3;
2261 return offset;
2263 static int dissect_CellIdentity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2264 int offset = 0;
2265 asn1_ctx_t asn1_ctx;
2266 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2267 offset = dissect_hnbap_CellIdentity(tvb, offset, &asn1_ctx, tree, hf_hnbap_CellIdentity_PDU);
2268 offset += 7; offset >>= 3;
2269 return offset;
2271 static int dissect_Context_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2272 int offset = 0;
2273 asn1_ctx_t asn1_ctx;
2274 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2275 offset = dissect_hnbap_Context_ID(tvb, offset, &asn1_ctx, tree, hf_hnbap_Context_ID_PDU);
2276 offset += 7; offset >>= 3;
2277 return offset;
2279 static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2280 int offset = 0;
2281 asn1_ctx_t asn1_ctx;
2282 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2283 offset = dissect_hnbap_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_hnbap_CriticalityDiagnostics_PDU);
2284 offset += 7; offset >>= 3;
2285 return offset;
2287 static int dissect_CSG_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2288 int offset = 0;
2289 asn1_ctx_t asn1_ctx;
2290 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2291 offset = dissect_hnbap_CSG_ID(tvb, offset, &asn1_ctx, tree, hf_hnbap_CSG_ID_PDU);
2292 offset += 7; offset >>= 3;
2293 return offset;
2295 static int dissect_CSGMembershipStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2296 int offset = 0;
2297 asn1_ctx_t asn1_ctx;
2298 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2299 offset = dissect_hnbap_CSGMembershipStatus(tvb, offset, &asn1_ctx, tree, hf_hnbap_CSGMembershipStatus_PDU);
2300 offset += 7; offset >>= 3;
2301 return offset;
2303 static int dissect_HNB_Cell_Access_Mode_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2304 int offset = 0;
2305 asn1_ctx_t asn1_ctx;
2306 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2307 offset = dissect_hnbap_HNB_Cell_Access_Mode(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNB_Cell_Access_Mode_PDU);
2308 offset += 7; offset >>= 3;
2309 return offset;
2311 static int dissect_HNB_Location_Information_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2312 int offset = 0;
2313 asn1_ctx_t asn1_ctx;
2314 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2315 offset = dissect_hnbap_HNB_Location_Information(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNB_Location_Information_PDU);
2316 offset += 7; offset >>= 3;
2317 return offset;
2319 static int dissect_HNB_Identity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2320 int offset = 0;
2321 asn1_ctx_t asn1_ctx;
2322 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2323 offset = dissect_hnbap_HNB_Identity(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNB_Identity_PDU);
2324 offset += 7; offset >>= 3;
2325 return offset;
2327 static int dissect_IP_Address_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2328 int offset = 0;
2329 asn1_ctx_t asn1_ctx;
2330 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2331 offset = dissect_hnbap_IP_Address(tvb, offset, &asn1_ctx, tree, hf_hnbap_IP_Address_PDU);
2332 offset += 7; offset >>= 3;
2333 return offset;
2335 static int dissect_LAC_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2336 int offset = 0;
2337 asn1_ctx_t asn1_ctx;
2338 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2339 offset = dissect_hnbap_LAC(tvb, offset, &asn1_ctx, tree, hf_hnbap_LAC_PDU);
2340 offset += 7; offset >>= 3;
2341 return offset;
2343 static int dissect_MuxPortNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2344 int offset = 0;
2345 asn1_ctx_t asn1_ctx;
2346 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2347 offset = dissect_hnbap_MuxPortNumber(tvb, offset, &asn1_ctx, tree, hf_hnbap_MuxPortNumber_PDU);
2348 offset += 7; offset >>= 3;
2349 return offset;
2351 static int dissect_NeighbourInfoList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2352 int offset = 0;
2353 asn1_ctx_t asn1_ctx;
2354 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2355 offset = dissect_hnbap_NeighbourInfoList(tvb, offset, &asn1_ctx, tree, hf_hnbap_NeighbourInfoList_PDU);
2356 offset += 7; offset >>= 3;
2357 return offset;
2359 static int dissect_NeighbourInfoRequestList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2360 int offset = 0;
2361 asn1_ctx_t asn1_ctx;
2362 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2363 offset = dissect_hnbap_NeighbourInfoRequestList(tvb, offset, &asn1_ctx, tree, hf_hnbap_NeighbourInfoRequestList_PDU);
2364 offset += 7; offset >>= 3;
2365 return offset;
2367 static int dissect_PLMNidentity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2368 int offset = 0;
2369 asn1_ctx_t asn1_ctx;
2370 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2371 offset = dissect_hnbap_PLMNidentity(tvb, offset, &asn1_ctx, tree, hf_hnbap_PLMNidentity_PDU);
2372 offset += 7; offset >>= 3;
2373 return offset;
2375 static int dissect_PSC_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2376 int offset = 0;
2377 asn1_ctx_t asn1_ctx;
2378 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2379 offset = dissect_hnbap_PSC(tvb, offset, &asn1_ctx, tree, hf_hnbap_PSC_PDU);
2380 offset += 7; offset >>= 3;
2381 return offset;
2383 static int dissect_RABList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2384 int offset = 0;
2385 asn1_ctx_t asn1_ctx;
2386 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2387 offset = dissect_hnbap_RABList(tvb, offset, &asn1_ctx, tree, hf_hnbap_RABList_PDU);
2388 offset += 7; offset >>= 3;
2389 return offset;
2391 static int dissect_RAC_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2392 int offset = 0;
2393 asn1_ctx_t asn1_ctx;
2394 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2395 offset = dissect_hnbap_RAC(tvb, offset, &asn1_ctx, tree, hf_hnbap_RAC_PDU);
2396 offset += 7; offset >>= 3;
2397 return offset;
2399 static int dissect_Registration_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2400 int offset = 0;
2401 asn1_ctx_t asn1_ctx;
2402 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2403 offset = dissect_hnbap_Registration_Cause(tvb, offset, &asn1_ctx, tree, hf_hnbap_Registration_Cause_PDU);
2404 offset += 7; offset >>= 3;
2405 return offset;
2407 static int dissect_RNC_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2408 int offset = 0;
2409 asn1_ctx_t asn1_ctx;
2410 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2411 offset = dissect_hnbap_RNC_ID(tvb, offset, &asn1_ctx, tree, hf_hnbap_RNC_ID_PDU);
2412 offset += 7; offset >>= 3;
2413 return offset;
2415 static int dissect_SAC_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2416 int offset = 0;
2417 asn1_ctx_t asn1_ctx;
2418 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2419 offset = dissect_hnbap_SAC(tvb, offset, &asn1_ctx, tree, hf_hnbap_SAC_PDU);
2420 offset += 7; offset >>= 3;
2421 return offset;
2423 static int dissect_UE_Capabilities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2424 int offset = 0;
2425 asn1_ctx_t asn1_ctx;
2426 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2427 offset = dissect_hnbap_UE_Capabilities(tvb, offset, &asn1_ctx, tree, hf_hnbap_UE_Capabilities_PDU);
2428 offset += 7; offset >>= 3;
2429 return offset;
2431 static int dissect_UE_Identity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2432 int offset = 0;
2433 asn1_ctx_t asn1_ctx;
2434 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2435 offset = dissect_hnbap_UE_Identity(tvb, offset, &asn1_ctx, tree, hf_hnbap_UE_Identity_PDU);
2436 offset += 7; offset >>= 3;
2437 return offset;
2439 static int dissect_Update_cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2440 int offset = 0;
2441 asn1_ctx_t asn1_ctx;
2442 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2443 offset = dissect_hnbap_Update_cause(tvb, offset, &asn1_ctx, tree, hf_hnbap_Update_cause_PDU);
2444 offset += 7; offset >>= 3;
2445 return offset;
2447 static int dissect_HNBRegisterRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2448 int offset = 0;
2449 asn1_ctx_t asn1_ctx;
2450 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2451 offset = dissect_hnbap_HNBRegisterRequest(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBRegisterRequest_PDU);
2452 offset += 7; offset >>= 3;
2453 return offset;
2455 static int dissect_HNBRegisterAccept_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2456 int offset = 0;
2457 asn1_ctx_t asn1_ctx;
2458 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2459 offset = dissect_hnbap_HNBRegisterAccept(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBRegisterAccept_PDU);
2460 offset += 7; offset >>= 3;
2461 return offset;
2463 static int dissect_HNBRegisterReject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2464 int offset = 0;
2465 asn1_ctx_t asn1_ctx;
2466 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2467 offset = dissect_hnbap_HNBRegisterReject(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBRegisterReject_PDU);
2468 offset += 7; offset >>= 3;
2469 return offset;
2471 static int dissect_HNBDe_Register_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2472 int offset = 0;
2473 asn1_ctx_t asn1_ctx;
2474 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2475 offset = dissect_hnbap_HNBDe_Register(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBDe_Register_PDU);
2476 offset += 7; offset >>= 3;
2477 return offset;
2479 static int dissect_UERegisterRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2480 int offset = 0;
2481 asn1_ctx_t asn1_ctx;
2482 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2483 offset = dissect_hnbap_UERegisterRequest(tvb, offset, &asn1_ctx, tree, hf_hnbap_UERegisterRequest_PDU);
2484 offset += 7; offset >>= 3;
2485 return offset;
2487 static int dissect_UERegisterAccept_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2488 int offset = 0;
2489 asn1_ctx_t asn1_ctx;
2490 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2491 offset = dissect_hnbap_UERegisterAccept(tvb, offset, &asn1_ctx, tree, hf_hnbap_UERegisterAccept_PDU);
2492 offset += 7; offset >>= 3;
2493 return offset;
2495 static int dissect_UERegisterReject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2496 int offset = 0;
2497 asn1_ctx_t asn1_ctx;
2498 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2499 offset = dissect_hnbap_UERegisterReject(tvb, offset, &asn1_ctx, tree, hf_hnbap_UERegisterReject_PDU);
2500 offset += 7; offset >>= 3;
2501 return offset;
2503 static int dissect_UEDe_Register_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2504 int offset = 0;
2505 asn1_ctx_t asn1_ctx;
2506 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2507 offset = dissect_hnbap_UEDe_Register(tvb, offset, &asn1_ctx, tree, hf_hnbap_UEDe_Register_PDU);
2508 offset += 7; offset >>= 3;
2509 return offset;
2511 static int dissect_CSGMembershipUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2512 int offset = 0;
2513 asn1_ctx_t asn1_ctx;
2514 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2515 offset = dissect_hnbap_CSGMembershipUpdate(tvb, offset, &asn1_ctx, tree, hf_hnbap_CSGMembershipUpdate_PDU);
2516 offset += 7; offset >>= 3;
2517 return offset;
2519 static int dissect_TNLUpdateRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2520 int offset = 0;
2521 asn1_ctx_t asn1_ctx;
2522 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2523 offset = dissect_hnbap_TNLUpdateRequest(tvb, offset, &asn1_ctx, tree, hf_hnbap_TNLUpdateRequest_PDU);
2524 offset += 7; offset >>= 3;
2525 return offset;
2527 static int dissect_TNLUpdateResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2528 int offset = 0;
2529 asn1_ctx_t asn1_ctx;
2530 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2531 offset = dissect_hnbap_TNLUpdateResponse(tvb, offset, &asn1_ctx, tree, hf_hnbap_TNLUpdateResponse_PDU);
2532 offset += 7; offset >>= 3;
2533 return offset;
2535 static int dissect_TNLUpdateFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2536 int offset = 0;
2537 asn1_ctx_t asn1_ctx;
2538 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2539 offset = dissect_hnbap_TNLUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_hnbap_TNLUpdateFailure_PDU);
2540 offset += 7; offset >>= 3;
2541 return offset;
2543 static int dissect_HNBConfigTransferRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2544 int offset = 0;
2545 asn1_ctx_t asn1_ctx;
2546 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2547 offset = dissect_hnbap_HNBConfigTransferRequest(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBConfigTransferRequest_PDU);
2548 offset += 7; offset >>= 3;
2549 return offset;
2551 static int dissect_HNBConfigTransferResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2552 int offset = 0;
2553 asn1_ctx_t asn1_ctx;
2554 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2555 offset = dissect_hnbap_HNBConfigTransferResponse(tvb, offset, &asn1_ctx, tree, hf_hnbap_HNBConfigTransferResponse_PDU);
2556 offset += 7; offset >>= 3;
2557 return offset;
2559 static int dissect_RelocationComplete_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2560 int offset = 0;
2561 asn1_ctx_t asn1_ctx;
2562 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2563 offset = dissect_hnbap_RelocationComplete(tvb, offset, &asn1_ctx, tree, hf_hnbap_RelocationComplete_PDU);
2564 offset += 7; offset >>= 3;
2565 return offset;
2567 static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2568 int offset = 0;
2569 asn1_ctx_t asn1_ctx;
2570 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2571 offset = dissect_hnbap_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_hnbap_ErrorIndication_PDU);
2572 offset += 7; offset >>= 3;
2573 return offset;
2575 static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2576 int offset = 0;
2577 asn1_ctx_t asn1_ctx;
2578 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2579 offset = dissect_hnbap_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_hnbap_PrivateMessage_PDU);
2580 offset += 7; offset >>= 3;
2581 return offset;
2583 static void dissect_HNBAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2584 asn1_ctx_t asn1_ctx;
2585 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2586 dissect_hnbap_HNBAP_PDU(tvb, 0, &asn1_ctx, tree, hf_hnbap_HNBAP_PDU_PDU);
2590 /*--- End of included file: packet-hnbap-fn.c ---*/
2591 #line 83 "../../asn1/hnbap/packet-hnbap-template.c"
2593 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2595 return (dissector_try_uint_new(hnbap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_length(tvb) : 0;
2598 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2600 return (dissector_try_uint_new(hnbap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_length(tvb) : 0;
2602 #if 0
2603 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2605 if (!ProcedureCode) return 0;
2606 return (dissector_try_string(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, NULL)) ? tvb_length(tvb) : 0;
2609 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2611 if (!ProcedureCode) return 0;
2612 return (dissector_try_string(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, NULL)) ? tvb_length(tvb) : 0;
2615 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2617 if (!ProcedureCode) return 0;
2618 return (dissector_try_string(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, NULL)) ? tvb_length(tvb) : 0;
2620 #endif
2622 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2624 return (dissector_try_uint_new(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_length(tvb) : 0;
2627 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2629 return (dissector_try_uint_new(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_length(tvb) : 0;
2632 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2634 return (dissector_try_uint_new(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_length(tvb) : 0;
2637 static void
2638 dissect_hnbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2640 proto_item *hnbap_item = NULL;
2641 proto_tree *hnbap_tree = NULL;
2643 /* make entry in the Protocol column on summary display */
2644 col_set_str(pinfo->cinfo, COL_PROTOCOL, "HNBAP");
2646 /* create the hnbap protocol tree */
2647 hnbap_item = proto_tree_add_item(tree, proto_hnbap, tvb, 0, -1, ENC_NA);
2648 hnbap_tree = proto_item_add_subtree(hnbap_item, ett_hnbap);
2650 dissect_HNBAP_PDU_PDU(tvb, pinfo, hnbap_tree);
2653 /*--- proto_register_hnbap -------------------------------------------*/
2654 void proto_register_hnbap(void) {
2655 module_t *hnbap_module;
2657 /* List of fields */
2659 static hf_register_info hf[] = {
2662 /*--- Included file: packet-hnbap-hfarr.c ---*/
2663 #line 1 "../../asn1/hnbap/packet-hnbap-hfarr.c"
2664 { &hf_hnbap_BackoffTimer_PDU,
2665 { "BackoffTimer", "hnbap.BackoffTimer",
2666 FT_UINT32, BASE_DEC, NULL, 0,
2667 NULL, HFILL }},
2668 { &hf_hnbap_Cause_PDU,
2669 { "Cause", "hnbap.Cause",
2670 FT_UINT32, BASE_DEC, VALS(hnbap_Cause_vals), 0,
2671 NULL, HFILL }},
2672 { &hf_hnbap_CellIdentity_PDU,
2673 { "CellIdentity", "hnbap.CellIdentity",
2674 FT_BYTES, BASE_NONE, NULL, 0,
2675 NULL, HFILL }},
2676 { &hf_hnbap_Context_ID_PDU,
2677 { "Context-ID", "hnbap.Context_ID",
2678 FT_BYTES, BASE_NONE, NULL, 0,
2679 NULL, HFILL }},
2680 { &hf_hnbap_CriticalityDiagnostics_PDU,
2681 { "CriticalityDiagnostics", "hnbap.CriticalityDiagnostics_element",
2682 FT_NONE, BASE_NONE, NULL, 0,
2683 NULL, HFILL }},
2684 { &hf_hnbap_CSG_ID_PDU,
2685 { "CSG-ID", "hnbap.CSG_ID",
2686 FT_BYTES, BASE_NONE, NULL, 0,
2687 NULL, HFILL }},
2688 { &hf_hnbap_CSGMembershipStatus_PDU,
2689 { "CSGMembershipStatus", "hnbap.CSGMembershipStatus",
2690 FT_UINT32, BASE_DEC, VALS(hnbap_CSGMembershipStatus_vals), 0,
2691 NULL, HFILL }},
2692 { &hf_hnbap_HNB_Cell_Access_Mode_PDU,
2693 { "HNB-Cell-Access-Mode", "hnbap.HNB_Cell_Access_Mode",
2694 FT_UINT32, BASE_DEC, VALS(hnbap_HNB_Cell_Access_Mode_vals), 0,
2695 NULL, HFILL }},
2696 { &hf_hnbap_HNB_Location_Information_PDU,
2697 { "HNB-Location-Information", "hnbap.HNB_Location_Information_element",
2698 FT_NONE, BASE_NONE, NULL, 0,
2699 NULL, HFILL }},
2700 { &hf_hnbap_HNB_Identity_PDU,
2701 { "HNB-Identity", "hnbap.HNB_Identity_element",
2702 FT_NONE, BASE_NONE, NULL, 0,
2703 NULL, HFILL }},
2704 { &hf_hnbap_IP_Address_PDU,
2705 { "IP-Address", "hnbap.IP_Address_element",
2706 FT_NONE, BASE_NONE, NULL, 0,
2707 NULL, HFILL }},
2708 { &hf_hnbap_LAC_PDU,
2709 { "LAC", "hnbap.LAC",
2710 FT_BYTES, BASE_NONE, NULL, 0,
2711 NULL, HFILL }},
2712 { &hf_hnbap_MuxPortNumber_PDU,
2713 { "MuxPortNumber", "hnbap.MuxPortNumber",
2714 FT_UINT32, BASE_DEC, NULL, 0,
2715 NULL, HFILL }},
2716 { &hf_hnbap_NeighbourInfoList_PDU,
2717 { "NeighbourInfoList", "hnbap.NeighbourInfoList",
2718 FT_UINT32, BASE_DEC, NULL, 0,
2719 NULL, HFILL }},
2720 { &hf_hnbap_NeighbourInfoRequestList_PDU,
2721 { "NeighbourInfoRequestList", "hnbap.NeighbourInfoRequestList",
2722 FT_UINT32, BASE_DEC, NULL, 0,
2723 NULL, HFILL }},
2724 { &hf_hnbap_PLMNidentity_PDU,
2725 { "PLMNidentity", "hnbap.PLMNidentity",
2726 FT_BYTES, BASE_NONE, NULL, 0,
2727 NULL, HFILL }},
2728 { &hf_hnbap_PSC_PDU,
2729 { "PSC", "hnbap.PSC",
2730 FT_BYTES, BASE_NONE, NULL, 0,
2731 NULL, HFILL }},
2732 { &hf_hnbap_RABList_PDU,
2733 { "RABList", "hnbap.RABList",
2734 FT_UINT32, BASE_DEC, NULL, 0,
2735 NULL, HFILL }},
2736 { &hf_hnbap_RAC_PDU,
2737 { "RAC", "hnbap.RAC",
2738 FT_BYTES, BASE_NONE, NULL, 0,
2739 NULL, HFILL }},
2740 { &hf_hnbap_Registration_Cause_PDU,
2741 { "Registration-Cause", "hnbap.Registration_Cause",
2742 FT_UINT32, BASE_DEC, VALS(hnbap_Registration_Cause_vals), 0,
2743 NULL, HFILL }},
2744 { &hf_hnbap_RNC_ID_PDU,
2745 { "RNC-ID", "hnbap.RNC_ID",
2746 FT_UINT32, BASE_DEC, NULL, 0,
2747 NULL, HFILL }},
2748 { &hf_hnbap_SAC_PDU,
2749 { "SAC", "hnbap.SAC",
2750 FT_BYTES, BASE_NONE, NULL, 0,
2751 NULL, HFILL }},
2752 { &hf_hnbap_UE_Capabilities_PDU,
2753 { "UE-Capabilities", "hnbap.UE_Capabilities_element",
2754 FT_NONE, BASE_NONE, NULL, 0,
2755 NULL, HFILL }},
2756 { &hf_hnbap_UE_Identity_PDU,
2757 { "UE-Identity", "hnbap.UE_Identity",
2758 FT_UINT32, BASE_DEC, VALS(hnbap_UE_Identity_vals), 0,
2759 NULL, HFILL }},
2760 { &hf_hnbap_Update_cause_PDU,
2761 { "Update-cause", "hnbap.Update_cause",
2762 FT_UINT32, BASE_DEC, VALS(hnbap_Update_cause_vals), 0,
2763 NULL, HFILL }},
2764 { &hf_hnbap_HNBRegisterRequest_PDU,
2765 { "HNBRegisterRequest", "hnbap.HNBRegisterRequest_element",
2766 FT_NONE, BASE_NONE, NULL, 0,
2767 NULL, HFILL }},
2768 { &hf_hnbap_HNBRegisterAccept_PDU,
2769 { "HNBRegisterAccept", "hnbap.HNBRegisterAccept_element",
2770 FT_NONE, BASE_NONE, NULL, 0,
2771 NULL, HFILL }},
2772 { &hf_hnbap_HNBRegisterReject_PDU,
2773 { "HNBRegisterReject", "hnbap.HNBRegisterReject_element",
2774 FT_NONE, BASE_NONE, NULL, 0,
2775 NULL, HFILL }},
2776 { &hf_hnbap_HNBDe_Register_PDU,
2777 { "HNBDe-Register", "hnbap.HNBDe_Register_element",
2778 FT_NONE, BASE_NONE, NULL, 0,
2779 NULL, HFILL }},
2780 { &hf_hnbap_UERegisterRequest_PDU,
2781 { "UERegisterRequest", "hnbap.UERegisterRequest_element",
2782 FT_NONE, BASE_NONE, NULL, 0,
2783 NULL, HFILL }},
2784 { &hf_hnbap_UERegisterAccept_PDU,
2785 { "UERegisterAccept", "hnbap.UERegisterAccept_element",
2786 FT_NONE, BASE_NONE, NULL, 0,
2787 NULL, HFILL }},
2788 { &hf_hnbap_UERegisterReject_PDU,
2789 { "UERegisterReject", "hnbap.UERegisterReject_element",
2790 FT_NONE, BASE_NONE, NULL, 0,
2791 NULL, HFILL }},
2792 { &hf_hnbap_UEDe_Register_PDU,
2793 { "UEDe-Register", "hnbap.UEDe_Register_element",
2794 FT_NONE, BASE_NONE, NULL, 0,
2795 NULL, HFILL }},
2796 { &hf_hnbap_CSGMembershipUpdate_PDU,
2797 { "CSGMembershipUpdate", "hnbap.CSGMembershipUpdate_element",
2798 FT_NONE, BASE_NONE, NULL, 0,
2799 NULL, HFILL }},
2800 { &hf_hnbap_TNLUpdateRequest_PDU,
2801 { "TNLUpdateRequest", "hnbap.TNLUpdateRequest_element",
2802 FT_NONE, BASE_NONE, NULL, 0,
2803 NULL, HFILL }},
2804 { &hf_hnbap_TNLUpdateResponse_PDU,
2805 { "TNLUpdateResponse", "hnbap.TNLUpdateResponse_element",
2806 FT_NONE, BASE_NONE, NULL, 0,
2807 NULL, HFILL }},
2808 { &hf_hnbap_TNLUpdateFailure_PDU,
2809 { "TNLUpdateFailure", "hnbap.TNLUpdateFailure_element",
2810 FT_NONE, BASE_NONE, NULL, 0,
2811 NULL, HFILL }},
2812 { &hf_hnbap_HNBConfigTransferRequest_PDU,
2813 { "HNBConfigTransferRequest", "hnbap.HNBConfigTransferRequest_element",
2814 FT_NONE, BASE_NONE, NULL, 0,
2815 NULL, HFILL }},
2816 { &hf_hnbap_HNBConfigTransferResponse_PDU,
2817 { "HNBConfigTransferResponse", "hnbap.HNBConfigTransferResponse_element",
2818 FT_NONE, BASE_NONE, NULL, 0,
2819 NULL, HFILL }},
2820 { &hf_hnbap_RelocationComplete_PDU,
2821 { "RelocationComplete", "hnbap.RelocationComplete_element",
2822 FT_NONE, BASE_NONE, NULL, 0,
2823 NULL, HFILL }},
2824 { &hf_hnbap_ErrorIndication_PDU,
2825 { "ErrorIndication", "hnbap.ErrorIndication_element",
2826 FT_NONE, BASE_NONE, NULL, 0,
2827 NULL, HFILL }},
2828 { &hf_hnbap_PrivateMessage_PDU,
2829 { "PrivateMessage", "hnbap.PrivateMessage_element",
2830 FT_NONE, BASE_NONE, NULL, 0,
2831 NULL, HFILL }},
2832 { &hf_hnbap_HNBAP_PDU_PDU,
2833 { "HNBAP-PDU", "hnbap.HNBAP_PDU",
2834 FT_UINT32, BASE_DEC, VALS(hnbap_HNBAP_PDU_vals), 0,
2835 NULL, HFILL }},
2836 { &hf_hnbap_local,
2837 { "local", "hnbap.local",
2838 FT_UINT32, BASE_DEC, NULL, 0,
2839 "INTEGER_0_65535", HFILL }},
2840 { &hf_hnbap_global,
2841 { "global", "hnbap.global",
2842 FT_OID, BASE_NONE, NULL, 0,
2843 "OBJECT_IDENTIFIER", HFILL }},
2844 { &hf_hnbap_ProtocolIE_Container_item,
2845 { "ProtocolIE-Field", "hnbap.ProtocolIE_Field_element",
2846 FT_NONE, BASE_NONE, NULL, 0,
2847 NULL, HFILL }},
2848 { &hf_hnbap_protocol_ie_field_id,
2849 { "id", "hnbap.id",
2850 FT_UINT32, BASE_DEC, VALS(hnbap_ProtocolIE_ID_vals), 0,
2851 "ProtocolIE_ID", HFILL }},
2852 { &hf_hnbap_criticality,
2853 { "criticality", "hnbap.criticality",
2854 FT_UINT32, BASE_DEC, VALS(hnbap_Criticality_vals), 0,
2855 NULL, HFILL }},
2856 { &hf_hnbap_ie_field_value,
2857 { "value", "hnbap.value_element",
2858 FT_NONE, BASE_NONE, NULL, 0,
2859 "ProtocolIE_Field_value", HFILL }},
2860 { &hf_hnbap_ProtocolExtensionContainer_item,
2861 { "ProtocolExtensionField", "hnbap.ProtocolExtensionField_element",
2862 FT_NONE, BASE_NONE, NULL, 0,
2863 NULL, HFILL }},
2864 { &hf_hnbap_id,
2865 { "id", "hnbap.id",
2866 FT_UINT32, BASE_DEC, VALS(hnbap_ProtocolIE_ID_vals), 0,
2867 "ProtocolIE_ID", HFILL }},
2868 { &hf_hnbap_extensionValue,
2869 { "extensionValue", "hnbap.extensionValue_element",
2870 FT_NONE, BASE_NONE, NULL, 0,
2871 NULL, HFILL }},
2872 { &hf_hnbap_PrivateIE_Container_item,
2873 { "PrivateIE-Field", "hnbap.PrivateIE_Field_element",
2874 FT_NONE, BASE_NONE, NULL, 0,
2875 NULL, HFILL }},
2876 { &hf_hnbap_private_ie_field_id,
2877 { "id", "hnbap.id",
2878 FT_UINT32, BASE_DEC, VALS(hnbap_PrivateIE_ID_vals), 0,
2879 "PrivateIE_ID", HFILL }},
2880 { &hf_hnbap_private_value,
2881 { "value", "hnbap.value_element",
2882 FT_NONE, BASE_NONE, NULL, 0,
2883 "PrivateIE_Field_value", HFILL }},
2884 { &hf_hnbap_directionOfAltitude,
2885 { "directionOfAltitude", "hnbap.directionOfAltitude",
2886 FT_UINT32, BASE_DEC, VALS(hnbap_T_directionOfAltitude_vals), 0,
2887 NULL, HFILL }},
2888 { &hf_hnbap_altitude,
2889 { "altitude", "hnbap.altitude",
2890 FT_UINT32, BASE_DEC, NULL, 0,
2891 "INTEGER_0_32767", HFILL }},
2892 { &hf_hnbap_radioNetwork,
2893 { "radioNetwork", "hnbap.radioNetwork",
2894 FT_UINT32, BASE_DEC, VALS(hnbap_CauseRadioNetwork_vals), 0,
2895 "CauseRadioNetwork", HFILL }},
2896 { &hf_hnbap_transport,
2897 { "transport", "hnbap.transport",
2898 FT_UINT32, BASE_DEC, VALS(hnbap_CauseTransport_vals), 0,
2899 "CauseTransport", HFILL }},
2900 { &hf_hnbap_protocol,
2901 { "protocol", "hnbap.protocol",
2902 FT_UINT32, BASE_DEC, VALS(hnbap_CauseProtocol_vals), 0,
2903 "CauseProtocol", HFILL }},
2904 { &hf_hnbap_misc,
2905 { "misc", "hnbap.misc",
2906 FT_UINT32, BASE_DEC, VALS(hnbap_CauseMisc_vals), 0,
2907 "CauseMisc", HFILL }},
2908 { &hf_hnbap_procedureCode,
2909 { "procedureCode", "hnbap.procedureCode",
2910 FT_UINT32, BASE_DEC, VALS(hnbap_ProcedureCode_vals), 0,
2911 NULL, HFILL }},
2912 { &hf_hnbap_triggeringMessage,
2913 { "triggeringMessage", "hnbap.triggeringMessage",
2914 FT_UINT32, BASE_DEC, VALS(hnbap_TriggeringMessage_vals), 0,
2915 NULL, HFILL }},
2916 { &hf_hnbap_procedureCriticality,
2917 { "procedureCriticality", "hnbap.procedureCriticality",
2918 FT_UINT32, BASE_DEC, VALS(hnbap_Criticality_vals), 0,
2919 "Criticality", HFILL }},
2920 { &hf_hnbap_iEsCriticalityDiagnostics,
2921 { "iEsCriticalityDiagnostics", "hnbap.iEsCriticalityDiagnostics",
2922 FT_UINT32, BASE_DEC, NULL, 0,
2923 "CriticalityDiagnostics_IE_List", HFILL }},
2924 { &hf_hnbap_iE_Extensions,
2925 { "iE-Extensions", "hnbap.iE_Extensions",
2926 FT_UINT32, BASE_DEC, NULL, 0,
2927 "ProtocolExtensionContainer", HFILL }},
2928 { &hf_hnbap_CriticalityDiagnostics_IE_List_item,
2929 { "CriticalityDiagnostics-IE-List item", "hnbap.CriticalityDiagnostics_IE_List_item_element",
2930 FT_NONE, BASE_NONE, NULL, 0,
2931 NULL, HFILL }},
2932 { &hf_hnbap_iECriticality,
2933 { "iECriticality", "hnbap.iECriticality",
2934 FT_UINT32, BASE_DEC, VALS(hnbap_Criticality_vals), 0,
2935 "Criticality", HFILL }},
2936 { &hf_hnbap_iE_ID,
2937 { "iE-ID", "hnbap.iE_ID",
2938 FT_UINT32, BASE_DEC, VALS(hnbap_ProtocolIE_ID_vals), 0,
2939 "ProtocolIE_ID", HFILL }},
2940 { &hf_hnbap_typeOfError,
2941 { "typeOfError", "hnbap.typeOfError",
2942 FT_UINT32, BASE_DEC, VALS(hnbap_TypeOfError_vals), 0,
2943 NULL, HFILL }},
2944 { &hf_hnbap_pLMNidentity,
2945 { "pLMNidentity", "hnbap.pLMNidentity",
2946 FT_BYTES, BASE_NONE, NULL, 0,
2947 NULL, HFILL }},
2948 { &hf_hnbap_lAC,
2949 { "lAC", "hnbap.lAC",
2950 FT_BYTES, BASE_NONE, NULL, 0,
2951 NULL, HFILL }},
2952 { &hf_hnbap_cI,
2953 { "cI", "hnbap.cI",
2954 FT_BYTES, BASE_NONE, NULL, 0,
2955 NULL, HFILL }},
2956 { &hf_hnbap_geographical_location_geographical_coordinates,
2957 { "geographicalCoordinates", "hnbap.geographicalCoordinates_element",
2958 FT_NONE, BASE_NONE, NULL, 0,
2959 NULL, HFILL }},
2960 { &hf_hnbap_altitudeAndDirection,
2961 { "altitudeAndDirection", "hnbap.altitudeAndDirection_element",
2962 FT_NONE, BASE_NONE, NULL, 0,
2963 NULL, HFILL }},
2964 { &hf_hnbap_latitudeSign,
2965 { "latitudeSign", "hnbap.latitudeSign",
2966 FT_UINT32, BASE_DEC, VALS(hnbap_T_latitudeSign_vals), 0,
2967 NULL, HFILL }},
2968 { &hf_hnbap_latitude,
2969 { "latitude", "hnbap.latitude",
2970 FT_UINT32, BASE_DEC, NULL, 0,
2971 "INTEGER_0_8388607", HFILL }},
2972 { &hf_hnbap_longitude,
2973 { "longitude", "hnbap.longitude",
2974 FT_INT32, BASE_DEC, NULL, 0,
2975 "INTEGER_M8388608_8388607", HFILL }},
2976 { &hf_hnbap_cellIdentity,
2977 { "cellIdentity", "hnbap.cellIdentity",
2978 FT_BYTES, BASE_NONE, NULL, 0,
2979 NULL, HFILL }},
2980 { &hf_hnbap_hNB_Identity_as_Cell_Identifier,
2981 { "hNB-Identity-as-Cell-Identifier", "hnbap.hNB_Identity_as_Cell_Identifier_element",
2982 FT_NONE, BASE_NONE, NULL, 0,
2983 "HNB_Cell_Identifier", HFILL }},
2984 { &hf_hnbap_hnb_RNL_Identity,
2985 { "hnb-RNL-Identity", "hnbap.hnb_RNL_Identity",
2986 FT_UINT32, BASE_DEC, VALS(hnbap_HNB_RNL_Identity_vals), 0,
2987 NULL, HFILL }},
2988 { &hf_hnbap_configurationInformation,
2989 { "configurationInformation", "hnbap.configurationInformation",
2990 FT_UINT32, BASE_DEC, VALS(hnbap_ConfigurationInformation_vals), 0,
2991 NULL, HFILL }},
2992 { &hf_hnbap_provided,
2993 { "provided", "hnbap.provided_element",
2994 FT_NONE, BASE_NONE, NULL, 0,
2995 "HNBConfigurationInformationProvided", HFILL }},
2996 { &hf_hnbap_missing,
2997 { "missing", "hnbap.missing_element",
2998 FT_NONE, BASE_NONE, NULL, 0,
2999 "HNBConfigurationInformationMissing", HFILL }},
3000 { &hf_hnbap_psc,
3001 { "psc", "hnbap.psc",
3002 FT_BYTES, BASE_NONE, NULL, 0,
3003 NULL, HFILL }},
3004 { &hf_hnbap_cSG_ID,
3005 { "cSG-ID", "hnbap.cSG_ID",
3006 FT_BYTES, BASE_NONE, NULL, 0,
3007 NULL, HFILL }},
3008 { &hf_hnbap_hNB_Cell_Access_Mode,
3009 { "hNB-Cell-Access-Mode", "hnbap.hNB_Cell_Access_Mode",
3010 FT_UINT32, BASE_DEC, VALS(hnbap_HNB_Cell_Access_Mode_vals), 0,
3011 NULL, HFILL }},
3012 { &hf_hnbap_iurh_Signalling_TNL_AddressList,
3013 { "iurh-Signalling-TNL-AddressList", "hnbap.iurh_Signalling_TNL_AddressList",
3014 FT_UINT32, BASE_DEC, NULL, 0,
3015 NULL, HFILL }},
3016 { &hf_hnbap_cause,
3017 { "cause", "hnbap.cause",
3018 FT_UINT32, BASE_DEC, VALS(hnbap_Cause_vals), 0,
3019 NULL, HFILL }},
3020 { &hf_hnbap_macroCoverageInfo,
3021 { "macroCoverageInfo", "hnbap.macroCoverageInfo_element",
3022 FT_NONE, BASE_NONE, NULL, 0,
3023 "MacroCoverageInformation", HFILL }},
3024 { &hf_hnbap_hnb_location_information_geographical_coordinates,
3025 { "geographicalCoordinates", "hnbap.geographicalCoordinates_element",
3026 FT_NONE, BASE_NONE, NULL, 0,
3027 "GeographicalLocation", HFILL }},
3028 { &hf_hnbap_hNB_Identity_Info,
3029 { "hNB-Identity-Info", "hnbap.hNB_Identity_Info",
3030 FT_BYTES, BASE_NONE, NULL, 0,
3031 NULL, HFILL }},
3032 { &hf_hnbap_iMSIDS41,
3033 { "iMSIDS41", "hnbap.iMSIDS41",
3034 FT_BYTES, BASE_NONE, NULL, 0,
3035 NULL, HFILL }},
3036 { &hf_hnbap_eSN,
3037 { "eSN", "hnbap.eSN",
3038 FT_BYTES, BASE_NONE, NULL, 0,
3039 NULL, HFILL }},
3040 { &hf_hnbap_ipaddress,
3041 { "ipaddress", "hnbap.ipaddress",
3042 FT_UINT32, BASE_DEC, VALS(hnbap_T_ipaddress_vals), 0,
3043 NULL, HFILL }},
3044 { &hf_hnbap_ipv4info,
3045 { "ipv4info", "hnbap.ipv4info",
3046 FT_BYTES, BASE_NONE, NULL, 0,
3047 "Ipv4Address", HFILL }},
3048 { &hf_hnbap_ipv6info,
3049 { "ipv6info", "hnbap.ipv6info",
3050 FT_BYTES, BASE_NONE, NULL, 0,
3051 "Ipv6Address", HFILL }},
3052 { &hf_hnbap_Iurh_Signalling_TNL_AddressList_item,
3053 { "IP-Address", "hnbap.IP_Address_element",
3054 FT_NONE, BASE_NONE, NULL, 0,
3055 NULL, HFILL }},
3056 { &hf_hnbap_pLMNID,
3057 { "pLMNID", "hnbap.pLMNID",
3058 FT_BYTES, BASE_NONE, NULL, 0,
3059 "PLMNidentity", HFILL }},
3060 { &hf_hnbap_cellIdentity_01,
3061 { "cellIdentity", "hnbap.cellIdentity",
3062 FT_UINT32, BASE_DEC, VALS(hnbap_MacroCellID_vals), 0,
3063 "MacroCellID", HFILL }},
3064 { &hf_hnbap_uTRANCellID,
3065 { "uTRANCellID", "hnbap.uTRANCellID_element",
3066 FT_NONE, BASE_NONE, NULL, 0,
3067 NULL, HFILL }},
3068 { &hf_hnbap_gERANCellID,
3069 { "gERANCellID", "hnbap.gERANCellID_element",
3070 FT_NONE, BASE_NONE, NULL, 0,
3071 "CGI", HFILL }},
3072 { &hf_hnbap_NeighbourInfoList_item,
3073 { "HNBConfigInfo", "hnbap.HNBConfigInfo_element",
3074 FT_NONE, BASE_NONE, NULL, 0,
3075 NULL, HFILL }},
3076 { &hf_hnbap_NeighbourInfoRequestList_item,
3077 { "NeighbourInfoRequestItem", "hnbap.NeighbourInfoRequestItem_element",
3078 FT_NONE, BASE_NONE, NULL, 0,
3079 NULL, HFILL }},
3080 { &hf_hnbap_pTMSI,
3081 { "pTMSI", "hnbap.pTMSI",
3082 FT_BYTES, BASE_NONE, NULL, 0,
3083 NULL, HFILL }},
3084 { &hf_hnbap_rAI,
3085 { "rAI", "hnbap.rAI_element",
3086 FT_NONE, BASE_NONE, NULL, 0,
3087 NULL, HFILL }},
3088 { &hf_hnbap_RABList_item,
3089 { "RABListItem", "hnbap.RABListItem_element",
3090 FT_NONE, BASE_NONE, NULL, 0,
3091 NULL, HFILL }},
3092 { &hf_hnbap_rAB_ID,
3093 { "rAB-ID", "hnbap.rAB_ID",
3094 FT_BYTES, BASE_NONE, NULL, 0,
3095 NULL, HFILL }},
3096 { &hf_hnbap_old_transport_Info,
3097 { "old-transport-Info", "hnbap.old_transport_Info_element",
3098 FT_NONE, BASE_NONE, NULL, 0,
3099 "TransportInfo", HFILL }},
3100 { &hf_hnbap_new_transport_Info,
3101 { "new-transport-Info", "hnbap.new_transport_Info_element",
3102 FT_NONE, BASE_NONE, NULL, 0,
3103 "TransportInfo", HFILL }},
3104 { &hf_hnbap_cn_domain_indicator,
3105 { "cn-domain-indicator", "hnbap.cn_domain_indicator",
3106 FT_UINT32, BASE_DEC, VALS(hnbap_CN_DomainIndicator_vals), 0,
3107 "CN_DomainIndicator", HFILL }},
3108 { &hf_hnbap_lAI,
3109 { "lAI", "hnbap.lAI_element",
3110 FT_NONE, BASE_NONE, NULL, 0,
3111 NULL, HFILL }},
3112 { &hf_hnbap_rAC,
3113 { "rAC", "hnbap.rAC",
3114 FT_BYTES, BASE_NONE, NULL, 0,
3115 NULL, HFILL }},
3116 { &hf_hnbap_tMSI,
3117 { "tMSI", "hnbap.tMSI",
3118 FT_BYTES, BASE_NONE, NULL, 0,
3119 "BIT_STRING_SIZE_32", HFILL }},
3120 { &hf_hnbap_transportLayerAddress,
3121 { "transportLayerAddress", "hnbap.transportLayerAddress",
3122 FT_BYTES, BASE_NONE, NULL, 0,
3123 NULL, HFILL }},
3124 { &hf_hnbap_transportAssociation,
3125 { "transportAssociation", "hnbap.transportAssociation",
3126 FT_UINT32, BASE_DEC, VALS(hnbap_T_transportAssociation_vals), 0,
3127 NULL, HFILL }},
3128 { &hf_hnbap_gtp_TEI,
3129 { "gtp-TEI", "hnbap.gtp_TEI",
3130 FT_BYTES, BASE_NONE, NULL, 0,
3131 NULL, HFILL }},
3132 { &hf_hnbap_bindingID,
3133 { "bindingID", "hnbap.bindingID",
3134 FT_BYTES, BASE_NONE, NULL, 0,
3135 NULL, HFILL }},
3136 { &hf_hnbap_access_stratum_release_indicator,
3137 { "access-stratum-release-indicator", "hnbap.access_stratum_release_indicator",
3138 FT_UINT32, BASE_DEC, VALS(hnbap_Access_stratum_release_indicator_vals), 0,
3139 NULL, HFILL }},
3140 { &hf_hnbap_csg_capability,
3141 { "csg-capability", "hnbap.csg_capability",
3142 FT_UINT32, BASE_DEC, VALS(hnbap_CSG_Capability_vals), 0,
3143 NULL, HFILL }},
3144 { &hf_hnbap_uTRANcellID,
3145 { "uTRANcellID", "hnbap.uTRANcellID",
3146 FT_BYTES, BASE_NONE, NULL, 0,
3147 "CellIdentity", HFILL }},
3148 { &hf_hnbap_iMSI,
3149 { "iMSI", "hnbap.iMSI",
3150 FT_BYTES, BASE_NONE, NULL, 0,
3151 NULL, HFILL }},
3152 { &hf_hnbap_tMSILAI,
3153 { "tMSILAI", "hnbap.tMSILAI_element",
3154 FT_NONE, BASE_NONE, NULL, 0,
3155 NULL, HFILL }},
3156 { &hf_hnbap_pTMSIRAI,
3157 { "pTMSIRAI", "hnbap.pTMSIRAI_element",
3158 FT_NONE, BASE_NONE, NULL, 0,
3159 NULL, HFILL }},
3160 { &hf_hnbap_iMEI,
3161 { "iMEI", "hnbap.iMEI",
3162 FT_BYTES, BASE_NONE, NULL, 0,
3163 NULL, HFILL }},
3164 { &hf_hnbap_iMSIESN,
3165 { "iMSIESN", "hnbap.iMSIESN_element",
3166 FT_NONE, BASE_NONE, NULL, 0,
3167 NULL, HFILL }},
3168 { &hf_hnbap_tMSIDS41,
3169 { "tMSIDS41", "hnbap.tMSIDS41",
3170 FT_BYTES, BASE_NONE, NULL, 0,
3171 NULL, HFILL }},
3172 { &hf_hnbap_protocolIEs,
3173 { "protocolIEs", "hnbap.protocolIEs",
3174 FT_UINT32, BASE_DEC, NULL, 0,
3175 "ProtocolIE_Container", HFILL }},
3176 { &hf_hnbap_protocolExtensions,
3177 { "protocolExtensions", "hnbap.protocolExtensions",
3178 FT_UINT32, BASE_DEC, NULL, 0,
3179 "ProtocolExtensionContainer", HFILL }},
3180 { &hf_hnbap_privateIEs,
3181 { "privateIEs", "hnbap.privateIEs",
3182 FT_UINT32, BASE_DEC, NULL, 0,
3183 "PrivateIE_Container", HFILL }},
3184 { &hf_hnbap_initiatingMessage,
3185 { "initiatingMessage", "hnbap.initiatingMessage_element",
3186 FT_NONE, BASE_NONE, NULL, 0,
3187 NULL, HFILL }},
3188 { &hf_hnbap_successfulOutcome,
3189 { "successfulOutcome", "hnbap.successfulOutcome_element",
3190 FT_NONE, BASE_NONE, NULL, 0,
3191 NULL, HFILL }},
3192 { &hf_hnbap_unsuccessfulOutcome,
3193 { "unsuccessfulOutcome", "hnbap.unsuccessfulOutcome_element",
3194 FT_NONE, BASE_NONE, NULL, 0,
3195 NULL, HFILL }},
3196 { &hf_hnbap_initiatingMessagevalue,
3197 { "value", "hnbap.value_element",
3198 FT_NONE, BASE_NONE, NULL, 0,
3199 "InitiatingMessage_value", HFILL }},
3200 { &hf_hnbap_successfulOutcome_value,
3201 { "value", "hnbap.value_element",
3202 FT_NONE, BASE_NONE, NULL, 0,
3203 "SuccessfulOutcome_value", HFILL }},
3204 { &hf_hnbap_unsuccessfulOutcome_value,
3205 { "value", "hnbap.value_element",
3206 FT_NONE, BASE_NONE, NULL, 0,
3207 "UnsuccessfulOutcome_value", HFILL }},
3209 /*--- End of included file: packet-hnbap-hfarr.c ---*/
3210 #line 153 "../../asn1/hnbap/packet-hnbap-template.c"
3213 /* List of subtrees */
3214 static gint *ett[] = {
3215 &ett_hnbap,
3217 /*--- Included file: packet-hnbap-ettarr.c ---*/
3218 #line 1 "../../asn1/hnbap/packet-hnbap-ettarr.c"
3219 &ett_hnbap_PrivateIE_ID,
3220 &ett_hnbap_ProtocolIE_Container,
3221 &ett_hnbap_ProtocolIE_Field,
3222 &ett_hnbap_ProtocolExtensionContainer,
3223 &ett_hnbap_ProtocolExtensionField,
3224 &ett_hnbap_PrivateIE_Container,
3225 &ett_hnbap_PrivateIE_Field,
3226 &ett_hnbap_AltitudeAndDirection,
3227 &ett_hnbap_Cause,
3228 &ett_hnbap_CriticalityDiagnostics,
3229 &ett_hnbap_CriticalityDiagnostics_IE_List,
3230 &ett_hnbap_CriticalityDiagnostics_IE_List_item,
3231 &ett_hnbap_CGI,
3232 &ett_hnbap_GeographicalLocation,
3233 &ett_hnbap_GeographicalCoordinates,
3234 &ett_hnbap_HNB_Cell_Identifier,
3235 &ett_hnbap_HNB_RNL_Identity,
3236 &ett_hnbap_HNBConfigInfo,
3237 &ett_hnbap_ConfigurationInformation,
3238 &ett_hnbap_HNBConfigurationInformationProvided,
3239 &ett_hnbap_HNBConfigurationInformationMissing,
3240 &ett_hnbap_HNB_Location_Information,
3241 &ett_hnbap_HNB_Identity,
3242 &ett_hnbap_IMSIESN,
3243 &ett_hnbap_IP_Address,
3244 &ett_hnbap_T_ipaddress,
3245 &ett_hnbap_Iurh_Signalling_TNL_AddressList,
3246 &ett_hnbap_LAI,
3247 &ett_hnbap_MacroCoverageInformation,
3248 &ett_hnbap_MacroCellID,
3249 &ett_hnbap_NeighbourInfoList,
3250 &ett_hnbap_NeighbourInfoRequestList,
3251 &ett_hnbap_NeighbourInfoRequestItem,
3252 &ett_hnbap_PTMSIRAI,
3253 &ett_hnbap_RABList,
3254 &ett_hnbap_RABListItem,
3255 &ett_hnbap_RAI,
3256 &ett_hnbap_TMSILAI,
3257 &ett_hnbap_TransportInfo,
3258 &ett_hnbap_T_transportAssociation,
3259 &ett_hnbap_UE_Capabilities,
3260 &ett_hnbap_UTRANCellID,
3261 &ett_hnbap_UE_Identity,
3262 &ett_hnbap_HNBRegisterRequest,
3263 &ett_hnbap_HNBRegisterAccept,
3264 &ett_hnbap_HNBRegisterReject,
3265 &ett_hnbap_HNBDe_Register,
3266 &ett_hnbap_UERegisterRequest,
3267 &ett_hnbap_UERegisterAccept,
3268 &ett_hnbap_UERegisterReject,
3269 &ett_hnbap_UEDe_Register,
3270 &ett_hnbap_CSGMembershipUpdate,
3271 &ett_hnbap_TNLUpdateRequest,
3272 &ett_hnbap_TNLUpdateResponse,
3273 &ett_hnbap_TNLUpdateFailure,
3274 &ett_hnbap_HNBConfigTransferRequest,
3275 &ett_hnbap_HNBConfigTransferResponse,
3276 &ett_hnbap_RelocationComplete,
3277 &ett_hnbap_ErrorIndication,
3278 &ett_hnbap_PrivateMessage,
3279 &ett_hnbap_HNBAP_PDU,
3280 &ett_hnbap_InitiatingMessage,
3281 &ett_hnbap_SuccessfulOutcome,
3282 &ett_hnbap_UnsuccessfulOutcome,
3284 /*--- End of included file: packet-hnbap-ettarr.c ---*/
3285 #line 159 "../../asn1/hnbap/packet-hnbap-template.c"
3289 /* Register protocol */
3290 proto_hnbap = proto_register_protocol(PNAME, PSNAME, PFNAME);
3291 /* Register fields and subtrees */
3292 proto_register_field_array(proto_hnbap, hf, array_length(hf));
3293 proto_register_subtree_array(ett, array_length(ett));
3295 /* Register dissector */
3296 register_dissector("hnbap", dissect_hnbap, proto_hnbap);
3298 /* Register dissector tables */
3299 hnbap_ies_dissector_table = register_dissector_table("hnbap.ies", "HNBAP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
3300 hnbap_extension_dissector_table = register_dissector_table("hnbap.extension", "HNBAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
3301 hnbap_proc_imsg_dissector_table = register_dissector_table("hnbap.proc.imsg", "HNBAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
3302 hnbap_proc_sout_dissector_table = register_dissector_table("hnbap.proc.sout", "HNBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
3303 hnbap_proc_uout_dissector_table = register_dissector_table("hnbap.proc.uout", "HNBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
3305 hnbap_module = prefs_register_protocol(proto_hnbap, proto_reg_handoff_hnbap);
3306 prefs_register_uint_preference(hnbap_module, "port", "HNBAP SCTP Port", "Set the port for HNBAP messages (Default of 29169)", 10, &global_sctp_port);
3310 /*--- proto_reg_handoff_hnbap ---------------------------------------*/
3311 void
3312 proto_reg_handoff_hnbap(void)
3314 static gboolean initialized = FALSE;
3315 static dissector_handle_t hnbap_handle;
3316 static guint sctp_port;
3318 if (!initialized) {
3319 hnbap_handle = find_dissector("hnbap");
3320 dissector_add_uint("sctp.ppi", HNBAP_PAYLOAD_PROTOCOL_ID, hnbap_handle);
3321 initialized = TRUE;
3323 /*--- Included file: packet-hnbap-dis-tab.c ---*/
3324 #line 1 "../../asn1/hnbap/packet-hnbap-dis-tab.c"
3325 dissector_add_uint("hnbap.ies", id_Cause, new_create_dissector_handle(dissect_Cause_PDU, proto_hnbap));
3326 dissector_add_uint("hnbap.ies", id_CriticalityDiagnostics, new_create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_hnbap));
3327 dissector_add_uint("hnbap.ies", id_HNB_Identity, new_create_dissector_handle(dissect_HNB_Identity_PDU, proto_hnbap));
3328 dissector_add_uint("hnbap.ies", id_Context_ID, new_create_dissector_handle(dissect_Context_ID_PDU, proto_hnbap));
3329 dissector_add_uint("hnbap.ies", id_UE_Identity, new_create_dissector_handle(dissect_UE_Identity_PDU, proto_hnbap));
3330 dissector_add_uint("hnbap.ies", id_LAC, new_create_dissector_handle(dissect_LAC_PDU, proto_hnbap));
3331 dissector_add_uint("hnbap.ies", id_RAC, new_create_dissector_handle(dissect_RAC_PDU, proto_hnbap));
3332 dissector_add_uint("hnbap.ies", id_HNB_Location_Information, new_create_dissector_handle(dissect_HNB_Location_Information_PDU, proto_hnbap));
3333 dissector_add_uint("hnbap.ies", id_PLMNidentity, new_create_dissector_handle(dissect_PLMNidentity_PDU, proto_hnbap));
3334 dissector_add_uint("hnbap.ies", id_SAC, new_create_dissector_handle(dissect_SAC_PDU, proto_hnbap));
3335 dissector_add_uint("hnbap.ies", id_CellIdentity, new_create_dissector_handle(dissect_CellIdentity_PDU, proto_hnbap));
3336 dissector_add_uint("hnbap.ies", id_Registration_Cause, new_create_dissector_handle(dissect_Registration_Cause_PDU, proto_hnbap));
3337 dissector_add_uint("hnbap.ies", id_UE_Capabilities, new_create_dissector_handle(dissect_UE_Capabilities_PDU, proto_hnbap));
3338 dissector_add_uint("hnbap.ies", id_RNC_ID, new_create_dissector_handle(dissect_RNC_ID_PDU, proto_hnbap));
3339 dissector_add_uint("hnbap.ies", id_CSG_ID, new_create_dissector_handle(dissect_CSG_ID_PDU, proto_hnbap));
3340 dissector_add_uint("hnbap.ies", id_BackoffTimer, new_create_dissector_handle(dissect_BackoffTimer_PDU, proto_hnbap));
3341 dissector_add_uint("hnbap.ies", id_CSGMembershipStatus, new_create_dissector_handle(dissect_CSGMembershipStatus_PDU, proto_hnbap));
3342 dissector_add_uint("hnbap.ies", id_RABList, new_create_dissector_handle(dissect_RABList_PDU, proto_hnbap));
3343 dissector_add_uint("hnbap.ies", id_Update_cause, new_create_dissector_handle(dissect_Update_cause_PDU, proto_hnbap));
3344 dissector_add_uint("hnbap.ies", id_NeighbourInfoList, new_create_dissector_handle(dissect_NeighbourInfoList_PDU, proto_hnbap));
3345 dissector_add_uint("hnbap.ies", id_NeighbourInfoRequestList, new_create_dissector_handle(dissect_NeighbourInfoRequestList_PDU, proto_hnbap));
3346 dissector_add_uint("hnbap.extension", id_HNB_Internet_Information, new_create_dissector_handle(dissect_IP_Address_PDU, proto_hnbap));
3347 dissector_add_uint("hnbap.extension", id_HNB_Cell_Access_Mode, new_create_dissector_handle(dissect_HNB_Cell_Access_Mode_PDU, proto_hnbap));
3348 dissector_add_uint("hnbap.extension", id_MuxPortNumber, new_create_dissector_handle(dissect_MuxPortNumber_PDU, proto_hnbap));
3349 dissector_add_uint("hnbap.extension", id_CSGMembershipStatus, new_create_dissector_handle(dissect_CSGMembershipStatus_PDU, proto_hnbap));
3350 dissector_add_uint("hnbap.extension", id_Iurh_Signalling_TNL_Address, new_create_dissector_handle(dissect_IP_Address_PDU, proto_hnbap));
3351 dissector_add_uint("hnbap.extension", id_PSC, new_create_dissector_handle(dissect_PSC_PDU, proto_hnbap));
3352 dissector_add_uint("hnbap.proc.imsg", id_HNBRegister, new_create_dissector_handle(dissect_HNBRegisterRequest_PDU, proto_hnbap));
3353 dissector_add_uint("hnbap.proc.sout", id_HNBRegister, new_create_dissector_handle(dissect_HNBRegisterAccept_PDU, proto_hnbap));
3354 dissector_add_uint("hnbap.proc.uout", id_HNBRegister, new_create_dissector_handle(dissect_HNBRegisterReject_PDU, proto_hnbap));
3355 dissector_add_uint("hnbap.proc.imsg", id_UERegister, new_create_dissector_handle(dissect_UERegisterRequest_PDU, proto_hnbap));
3356 dissector_add_uint("hnbap.proc.sout", id_UERegister, new_create_dissector_handle(dissect_UERegisterAccept_PDU, proto_hnbap));
3357 dissector_add_uint("hnbap.proc.uout", id_UERegister, new_create_dissector_handle(dissect_UERegisterReject_PDU, proto_hnbap));
3358 dissector_add_uint("hnbap.proc.imsg", id_TNLUpdate, new_create_dissector_handle(dissect_TNLUpdateRequest_PDU, proto_hnbap));
3359 dissector_add_uint("hnbap.proc.sout", id_TNLUpdate, new_create_dissector_handle(dissect_TNLUpdateResponse_PDU, proto_hnbap));
3360 dissector_add_uint("hnbap.proc.uout", id_TNLUpdate, new_create_dissector_handle(dissect_TNLUpdateFailure_PDU, proto_hnbap));
3361 dissector_add_uint("hnbap.proc.imsg", id_HNBConfigTransfer, new_create_dissector_handle(dissect_HNBConfigTransferRequest_PDU, proto_hnbap));
3362 dissector_add_uint("hnbap.proc.sout", id_HNBConfigTransfer, new_create_dissector_handle(dissect_HNBConfigTransferResponse_PDU, proto_hnbap));
3363 dissector_add_uint("hnbap.proc.imsg", id_RelocationComplete, new_create_dissector_handle(dissect_RelocationComplete_PDU, proto_hnbap));
3364 dissector_add_uint("hnbap.proc.imsg", id_UEDe_Register, new_create_dissector_handle(dissect_UEDe_Register_PDU, proto_hnbap));
3365 dissector_add_uint("hnbap.proc.imsg", id_HNBDe_Register, new_create_dissector_handle(dissect_HNBDe_Register_PDU, proto_hnbap));
3366 dissector_add_uint("hnbap.proc.imsg", id_ErrorIndication, new_create_dissector_handle(dissect_ErrorIndication_PDU, proto_hnbap));
3367 dissector_add_uint("hnbap.proc.imsg", id_CSGMembershipUpdate, new_create_dissector_handle(dissect_CSGMembershipUpdate_PDU, proto_hnbap));
3368 dissector_add_uint("hnbap.proc.imsg", id_privateMessage, new_create_dissector_handle(dissect_PrivateMessage_PDU, proto_hnbap));
3371 /*--- End of included file: packet-hnbap-dis-tab.c ---*/
3372 #line 196 "../../asn1/hnbap/packet-hnbap-template.c"
3374 } else {
3375 dissector_delete_uint("sctp.port", sctp_port, hnbap_handle);
3377 /* Set our port number for future use */
3378 sctp_port = global_sctp_port;
3379 dissector_add_uint("sctp.port", sctp_port, hnbap_handle);