| Wireshark 4.7.0 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
packet-zbee-zdp.h
1/* packet-zbee-zdp.h
2 * Dissector routines for the ZigBee Device Profile (ZDP)
3 * By Owen Kirby <osk@exegin.com>
4 * Copyright 2009 Exegin Technologies Limited
5 *
6 * Wireshark - Network traffic analyzer
7 * By Gerald Combs <gerald@wireshark.org>
8 * Copyright 1998 Gerald Combs
9 *
10 * SPDX-License-Identifier: GPL-2.0-or-later
11 */
12
13#ifndef PACKET_ZBEE_ZDP_H
14#define PACKET_ZBEE_ZDP_H
15
16/* The Profile ID for the ZigBee Device Profile. */
17#define ZBEE_ZDP_PROFILE 0x0000
18
19/* ZDP Cluster Identifiers. */
20#define ZBEE_ZDP_REQ_NWK_ADDR 0x0000
21#define ZBEE_ZDP_REQ_IEEE_ADDR 0x0001
22#define ZBEE_ZDP_REQ_NODE_DESC 0x0002
23#define ZBEE_ZDP_REQ_POWER_DESC 0x0003
24#define ZBEE_ZDP_REQ_SIMPLE_DESC 0x0004
25#define ZBEE_ZDP_REQ_ACTIVE_EP 0x0005
26#define ZBEE_ZDP_REQ_MATCH_DESC 0x0006
27#define ZBEE_ZDP_REQ_COMPLEX_DESC 0x0010
28#define ZBEE_ZDP_REQ_USER_DESC 0x0011
29#define ZBEE_ZDP_REQ_DISCOVERY_CACHE 0x0012
30#define ZBEE_ZDP_REQ_DEVICE_ANNCE 0x0013
31#define ZBEE_ZDP_REQ_SET_USER_DESC 0x0014
32#define ZBEE_ZDP_REQ_SYSTEM_SERVER_DISC 0x0015 /* ZigBee 2006 & later. */
33#define ZBEE_ZDP_REQ_STORE_DISCOVERY 0x0016 /* ZigBee 2006 & later. */
34#define ZBEE_ZDP_REQ_STORE_NODE_DESC 0x0017 /* ZigBee 2006 & later. */
35#define ZBEE_ZDP_REQ_STORE_POWER_DESC 0x0018 /* ZigBee 2006 & later. */
36#define ZBEE_ZDP_REQ_STORE_ACTIVE_EP 0x0019 /* ZigBee 2006 & later. */
37#define ZBEE_ZDP_REQ_STORE_SIMPLE_DESC 0x001a /* ZigBee 2006 & later. */
38#define ZBEE_ZDP_REQ_REMOVE_NODE_CACHE 0x001b /* ZigBee 2006 & later. */
39#define ZBEE_ZDP_REQ_FIND_NODE_CACHE 0x001c /* ZigBee 2006 & later. */
40#define ZBEE_ZDP_REQ_EXT_SIMPLE_DESC 0x001d /* ZigBee 2007 & later. */
41#define ZBEE_ZDP_REQ_EXT_ACTIVE_EP 0x001e /* ZigBee 2007 & later. */
42#define ZBEE_ZDP_REQ_PARENT_ANNCE 0x001f /* r21 */
43#define ZBEE_ZDP_REQ_END_DEVICE_BIND 0x0020
44#define ZBEE_ZDP_REQ_BIND 0x0021
45#define ZBEE_ZDP_REQ_UNBIND 0x0022
46#define ZBEE_ZDP_REQ_BIND_REGISTER 0x0023 /* ZigBee 2006 & later. */
47#define ZBEE_ZDP_REQ_REPLACE_DEVICE 0x0024 /* ZigBee 2006 & later. */
48#define ZBEE_ZDP_REQ_STORE_BAK_BIND_ENTRY 0x0025 /* ZigBee 2006 & later. */
49#define ZBEE_ZDP_REQ_REMOVE_BAK_BIND_ENTRY 0x0026 /* ZigBee 2006 & later. */
50#define ZBEE_ZDP_REQ_BACKUP_BIND_TABLE 0x0027 /* ZigBee 2006 & later. */
51#define ZBEE_ZDP_REQ_RECOVER_BIND_TABLE 0x0028 /* ZigBee 2006 & later. */
52#define ZBEE_ZDP_REQ_BACKUP_SOURCE_BIND 0x0029 /* ZigBee 2006 & later. */
53#define ZBEE_ZDP_REQ_RECOVER_SOURCE_BIND 0x002a /* ZigBee 2006 & later. */
54#define ZBEE_ZDP_REQ_CLEAR_ALL_BINDINGS 0x002b /* R23 */
55#define ZBEE_ZDP_REQ_MGMT_NWK_DISC 0x0030
56#define ZBEE_ZDP_REQ_MGMT_LQI 0x0031
57#define ZBEE_ZDP_REQ_MGMT_RTG 0x0032
58#define ZBEE_ZDP_REQ_MGMT_BIND 0x0033
59#define ZBEE_ZDP_REQ_MGMT_LEAVE 0x0034
60#define ZBEE_ZDP_REQ_MGMT_DIRECT_JOIN 0x0035
61#define ZBEE_ZDP_REQ_MGMT_PERMIT_JOIN 0x0036 /* ZigBee 2006 & later. */
62#define ZBEE_ZDP_REQ_MGMT_CACHE 0x0037 /* ZigBee 2006 & later. */
63#define ZBEE_ZDP_REQ_MGMT_NWKUPDATE 0x0038 /* ZigBee 2007 & later. */
64#define ZBEE_ZDP_REQ_MGMT_NWKUPDATE_ENH 0x0039 /* R22 */
65#define ZBEE_ZDP_REQ_MGMT_IEEE_JOIN_LIST 0x003a /* R22 */
66#define ZBEE_ZDP_REQ_MGMT_NWK_BEACON_SURVEY 0x003c
67#define ZBEE_ZDP_REQ_SECURITY_START_KEY_NEGOTIATION 0x0040 /* R23 */
68#define ZBEE_ZDP_REQ_SECURITY_GET_AUTH_TOKEN 0x0041 /* R23 */
69#define ZBEE_ZDP_REQ_SECURITY_GET_AUTH_LEVEL 0x0042 /* R23 */
70#define ZBEE_ZDP_REQ_SECURITY_SET_CONFIGURATION 0x0043 /* R23 */
71#define ZBEE_ZDP_REQ_SECURITY_GET_CONFIGURATION 0x0044 /* R23 */
72#define ZBEE_ZDP_REQ_SECURITY_START_KEY_UPDATE 0x0045 /* R23 */
73#define ZBEE_ZDP_REQ_SECURITY_DECOMMISSION 0x0046 /* R23 */
74#define ZBEE_ZDP_REQ_SECURITY_CHALLENGE 0x0047 /* R23 */
75
76#define ZBEE_ZDP_RSP_NWK_ADDR 0x8000
77#define ZBEE_ZDP_RSP_IEEE_ADDR 0x8001
78#define ZBEE_ZDP_RSP_NODE_DESC 0x8002
79#define ZBEE_ZDP_RSP_POWER_DESC 0x8003
80#define ZBEE_ZDP_RSP_SIMPLE_DESC 0x8004
81#define ZBEE_ZDP_RSP_ACTIVE_EP 0x8005
82#define ZBEE_ZDP_RSP_MATCH_DESC 0x8006
83#define ZBEE_ZDP_RSP_COMPLEX_DESC 0x8010
84#define ZBEE_ZDP_RSP_USER_DESC 0x8011
85#define ZBEE_ZDP_RSP_DISCOVERY_CACHE 0x8012
86#define ZBEE_ZDP_RSP_CONF_USER_DESC 0x8014 /* ZigBee 2006 & later. */
87#define ZBEE_ZDP_RSP_SYSTEM_SERVER_DISC 0x8015 /* ZigBee 2006 & later. */
88#define ZBEE_ZDP_RSP_STORE_DISCOVERY 0x8016 /* ZigBee 2006 & later. */
89#define ZBEE_ZDP_RSP_STORE_NODE_DESC 0x8017 /* ZigBee 2006 & later. */
90#define ZBEE_ZDP_RSP_STORE_POWER_DESC 0x8018 /* ZigBee 2006 & later. */
91#define ZBEE_ZDP_RSP_STORE_ACTIVE_EP 0x8019 /* ZigBee 2006 & later. */
92#define ZBEE_ZDP_RSP_STORE_SIMPLE_DESC 0x801a /* ZigBee 2006 & later. */
93#define ZBEE_ZDP_RSP_REMOVE_NODE_CACHE 0x801b /* ZigBee 2006 & later. */
94#define ZBEE_ZDP_RSP_FIND_NODE_CACHE 0x801c /* ZigBee 2006 & later. */
95#define ZBEE_ZDP_RSP_EXT_SIMPLE_DESC 0x801d /* ZigBee 2007 & later. */
96#define ZBEE_ZDP_RSP_EXT_ACTIVE_EP 0x801e /* ZigBee 2007 & later. */
97#define ZBEE_ZDP_RSP_PARENT_ANNCE 0x801f /* r21 */
98#define ZBEE_ZDP_RSP_END_DEVICE_BIND 0x8020
99#define ZBEE_ZDP_RSP_BIND 0x8021
100#define ZBEE_ZDP_RSP_UNBIND 0x8022
101#define ZBEE_ZDP_RSP_BIND_REGISTER 0x8023 /* ZigBee 2006 & later. */
102#define ZBEE_ZDP_RSP_REPLACE_DEVICE 0x8024 /* ZigBee 2006 & later. */
103#define ZBEE_ZDP_RSP_STORE_BAK_BIND_ENTRY 0x8025 /* ZigBee 2006 & later. */
104#define ZBEE_ZDP_RSP_REMOVE_BAK_BIND_ENTRY 0x8026 /* ZigBee 2006 & later. */
105#define ZBEE_ZDP_RSP_BACKUP_BIND_TABLE 0x8027 /* ZigBee 2006 & later. */
106#define ZBEE_ZDP_RSP_RECOVER_BIND_TABLE 0x8028 /* ZigBee 2006 & later. */
107#define ZBEE_ZDP_RSP_BACKUP_SOURCE_BIND 0x8029 /* ZigBee 2006 & later. */
108#define ZBEE_ZDP_RSP_RECOVER_SOURCE_BIND 0x802a /* ZigBee 2006 & later. */
109#define ZBEE_ZDP_RSP_CLEAR_ALL_BINDINGS 0x802b /* R23 */
110#define ZBEE_ZDP_RSP_MGMT_NWK_DISC 0x8030
111#define ZBEE_ZDP_RSP_MGMT_LQI 0x8031
112#define ZBEE_ZDP_RSP_MGMT_RTG 0x8032
113#define ZBEE_ZDP_RSP_MGMT_BIND 0x8033
114#define ZBEE_ZDP_RSP_MGMT_LEAVE 0x8034
115#define ZBEE_ZDP_RSP_MGMT_DIRECT_JOIN 0x8035
116#define ZBEE_ZDP_RSP_MGMT_PERMIT_JOIN 0x8036 /* ZigBee 2006 & later. */
117#define ZBEE_ZDP_RSP_MGMT_CACHE 0x8037 /* ZigBee 2006 & later. */
118#define ZBEE_ZDP_NOT_MGMT_NWKUPDATE 0x8038 /* ZigBee 2007 & later. */
119#define ZBEE_ZDP_NOT_MGMT_NWKUPDATE_ENH 0x8039 /* R22 */
120#define ZBEE_ZDP_RSP_MGMT_IEEE_JOIN_LIST 0x803a /* R22 */
121#define ZBEE_ZDP_NOT_MGMT_UNSOLICITED_NWKUPDATE 0x803b /* R22 */
122#define ZBEE_ZDP_RSP_MGMT_NWK_BEACON_SURVEY 0x803c
123#define ZBEE_ZDP_RSP_SECURITY_START_KEY_NEGOTIATION 0x8040 /* R23 */
124#define ZBEE_ZDP_RSP_SECURITY_GET_AUTH_TOKEN 0x8041 /* R23 */
125#define ZBEE_ZDP_RSP_SECURITY_GET_AUTH_LEVEL 0x8042 /* R23 */
126#define ZBEE_ZDP_RSP_SECURITY_SET_CONFIGURATION 0x8043 /* R23 */
127#define ZBEE_ZDP_RSP_SECURITY_GET_CONFIGURATION 0x8044 /* R23 */
128#define ZBEE_ZDP_RSP_SECURITY_START_KEY_UPDATE 0x8045 /* R23 */
129#define ZBEE_ZDP_RSP_SECURITY_DECOMMISSION 0x8046 /* R23 */
130#define ZBEE_ZDP_RSP_SECURITY_CHALLENGE 0x8047 /* R23 */
131
132#define ZBEE_ZDP_MSG_RESPONSE_BIT 0x8000
133#define ZBEE_ZDP_MSG_MASK (ZBEE_ZDP_MSG_RESPONSE_BIT-1)
134#define ZBEE_ZDP_MSG_RESPONSE_BIT_2003 0x0080
135#define ZBEE_ZDP_MSG_MASK_2003 (ZBEE_ZDP_MSG_RESPONSE_BIT_2003-1)
136
137#define ZBEE_ZDP_STATUS_SUCCESS 0x00
138#define ZBEE_ZDP_STATUS_INV_REQUESTTYPE 0x80
139#define ZBEE_ZDP_STATUS_DEVICE_NOT_FOUND 0x81
140#define ZBEE_ZDP_STATUS_INVALID_EP 0x82
141#define ZBEE_ZDP_STATUS_NOT_ACTIVE 0x83
142#define ZBEE_ZDP_STATUS_NOT_SUPPORTED 0x84
143#define ZBEE_ZDP_STATUS_TIMEOUT 0x85
144#define ZBEE_ZDP_STATUS_NO_MATCH 0x86
145#define ZBEE_ZDP_STATUS_NO_ENTRY 0x88
146#define ZBEE_ZDP_STATUS_NO_DESCRIPTOR 0x89
147#define ZBEE_ZDP_STATUS_INSUFFICIENT_SPACE 0x8a
148#define ZBEE_ZDP_STATUS_NOT_PERMITTED 0x8b
149#define ZBEE_ZDP_STATUS_TABLE_FULL 0x8c
150#define ZBEE_ZDP_STATUS_NOT_AUTHORIZED 0x8d
151#define ZBEE_ZDP_STATUS_DEVICE_BINDING_TABLE_FULL 0x8e
152#define ZBEE_ZDP_STATUS_INVALID_INDEX 0x8f
153#define ZBEE_ZDP_STATUS_RESPONSE_TOO_LARGE 0x90
154#define ZBEE_ZDP_STATUS_MISSING_TLV 0x91
155
156#define ZBEE_ZDP_REQ_TYPE_SINGLE 0x00
157#define ZBEE_ZDP_REQ_TYPE_EXTENDED 0x01
158
159#define ZBEE_ZDP_NODE_TYPE 0x0007
160#define ZBEE_ZDP_NODE_TYPE_COORD 0x0000
161#define ZBEE_ZDP_NODE_TYPE_FFD 0x0001
162#define ZBEE_ZDP_NODE_TYPE_RFD 0x0002
163#define ZBEE_ZDP_NODE_COMPLEX 0x0008
164#define ZBEE_ZDP_NODE_USER 0x0010
165#define ZBEE_ZDP_NODE_FRAG_SUPPORT 0x0020
166#define ZBEE_ZDP_NODE_APS 0x0700
167#define ZBEE_ZDP_NODE_FREQ 0xf800
168#define ZBEE_ZDP_NODE_FREQ_868MHZ 0x0800
169#define ZBEE_ZDP_NODE_FREQ_900MHZ 0x2000
170#define ZBEE_ZDP_NODE_FREQ_2400MHZ 0x4000
171#define ZBEE_ZDP_NODE_FREQ_EU_SUB_GHZ 0x8000
172
173#define ZBEE_ZDP_NODE_SERVER_PRIMARY_TRUST 0x0001
174#define ZBEE_ZDP_NODE_SERVER_BACKUP_TRUST 0x0002
175#define ZBEE_ZDP_NODE_SERVER_PRIMARY_BIND 0x0004
176#define ZBEE_ZDP_NODE_SERVER_BACKUP_BIND 0x0008
177#define ZBEE_ZDP_NODE_SERVER_PRIMARY_DISC 0x0010
178#define ZBEE_ZDP_NODE_SERVER_BACKUP_DISC 0x0020
179#define ZBEE_ZDP_NODE_SERVER_NETWORK_MANAGER 0x0040
180#define ZBEE_ZDP_NODE_SERVER_STACK_COMPL_REV 0xfe00
181
182#define ZBEE_ZDP_POWER_MODE 0x000f
183#define ZBEE_ZDP_POWER_MODE_RX_ON 0x0000
184#define ZBEE_ZDP_POWER_MODE_RX_PERIODIC 0x0001
185#define ZBEE_ZDP_POWER_MODE_RX_STIMULATE 0x0002
186#define ZBEE_ZDP_POWER_AVAIL 0x00f0
187#define ZBEE_ZDP_POWER_AVAIL_AC 0x0010
188#define ZBEE_ZDP_POWER_AVAIL_RECHARGEABLE 0x0020
189#define ZBEE_ZDP_POWER_AVAIL_DISPOSABLE 0x0040
190#define ZBEE_ZDP_POWER_SOURCE 0x0f00
191#define ZBEE_ZDP_POWER_SOURCE_AC 0x0100
192#define ZBEE_ZDP_POWER_SOURCE_RECHARGEABLE 0x0200
193#define ZBEE_ZDP_POWER_SOURCE_DISPOSABLE 0x0400
194#define ZBEE_ZDP_POWER_LEVEL 0xf000
195
196#define ZBEE_ZDP_POWER_LEVEL_FULL 0xc
197#define ZBEE_ZDP_POWER_LEVEL_OK 0x8
198#define ZBEE_ZDP_POWER_LEVEL_LOW 0x4
199#define ZBEE_ZDP_POWER_LEVEL_CRITICAL 0x0
200
201#define ZBEE_ZDP_ADDR_MODE_GROUP 0x01
202#define ZBEE_ZDP_ADDR_MODE_UNICAST 0x03
203
204#define ZBEE_ZDP_MGMT_LEAVE_CHILDREN 0x40
205#define ZBEE_ZDP_MGMT_LEAVE_REJOIN 0x80
206
207#define ZBEE_ZDP_PERM_JOIN_FC_TLV_UPDATE 0x1
208
209#define ZBEE_ZDP_NWKUPDATE_SCAN_MAX 0x05
210#define ZBEE_ZDP_NWKUPDATE_CHANNEL_HOP 0xfe
211#define ZBEE_ZDP_NWKUPDATE_PARAMETERS 0xff
212
213#define ZBEE_ZDP_NWKUPDATE_PAGE 0xF8000000
214#define ZBEE_ZDP_NWKUPDATE_CHANNEL 0x07FFFFFF
215
216#define ZBEE_ZDP_DCF_EAELA 0x01
217#define ZBEE_ZDP_DCF_ESDLA 0x02
218
219
220
221/**************************************
222 * Field Indicies
223 **************************************
224 */
225/* General indicies. */
226 extern int hf_zbee_zdp_ext_addr;
227 extern int hf_zbee_zdp_nwk_addr;
228 extern int hf_zbee_zdp_req_type;
229 extern int hf_zbee_zdp_index;
230 extern int hf_zbee_zdp_ep_count;
231 extern int hf_zbee_zdp_endpoint;
232 extern int hf_zbee_zdp_profile;
233 extern int hf_zbee_zdp_cluster;
234 extern int hf_zbee_zdp_addr_mode;
235 extern int hf_zbee_zdp_in_count;
236 extern int hf_zbee_zdp_out_count;
237 extern int hf_zbee_zdp_in_cluster;
238 extern int hf_zbee_zdp_out_cluster;
239 extern int hf_zbee_zdp_table_size;
240 extern int hf_zbee_zdp_table_count;
241 extern int hf_zbee_zdp_assoc_device_count;
242 extern int hf_zbee_zdp_assoc_device;
243 extern int hf_zbee_zdp_cache_address;
244
245/* Discovery indicies. */
246 extern int hf_zbee_zdp_cache;
247 extern int hf_zbee_zdp_disc_node_size;
248 extern int hf_zbee_zdp_disc_power_size;
249 extern int hf_zbee_zdp_disc_ep_count;
250 extern int hf_zbee_zdp_disc_simple_count;
251 extern int hf_zbee_zdp_disc_simple_size;
252
253/* Descriptor indicies. */
254 extern int hf_zbee_zdp_complex_length;
255 extern int hf_zbee_zdp_user;
256 extern int hf_zbee_zdp_user_length;
257 extern int hf_zbee_zdp_simple_length;
258
259/* Binding indicies. */
260 extern int hf_zbee_zdp_target;
261 extern int hf_zbee_zdp_replacement;
262 extern int hf_zbee_zdp_replacement_ep;
263 extern int hf_zbee_zdp_bind_src;
264 extern int hf_zbee_zdp_bind_src64;
265 extern int hf_zbee_zdp_bind_src_ep;
266 extern int hf_zbee_zdp_bind_dst;
267 extern int hf_zbee_zdp_bind_dst64;
268 extern int hf_zbee_zdp_bind_dst_ep;
269
270/* Network Management indicies. */
271 extern int hf_zbee_zdp_duration;
272 extern int hf_zbee_zdp_leave_children;
273 extern int hf_zbee_zdp_leave_rejoin;
274 extern int hf_zbee_zdp_significance;
275 extern int hf_zbee_zdp_scan_count;
276 extern int hf_zbee_zdp_update_id;
277 extern int hf_zbee_zdp_manager;
278 extern int hf_zbee_zdp_tx_total;
279 extern int hf_zbee_zdp_tx_fail;
280 extern int hf_zbee_zdp_tx_retries;
281 extern int hf_zbee_zdp_period_time_results;
282 extern int hf_zbee_zdp_channel_count;
283 extern int hf_zbee_zdp_channel_mask;
284 extern int hf_zbee_zdp_channel_page;
285 extern int hf_zbee_zdp_channel_page_count;
286 extern int hf_zbee_zdp_channel_energy;
287 extern int hf_zbee_zdp_pan_eui64;
288 extern int hf_zbee_zdp_pan_uint;
289 extern int hf_zbee_zdp_channel;
290 extern int hf_zbee_zdp_nwk_desc_profile;
291 extern int hf_zbee_zdp_profile_version;
292 extern int hf_zbee_zdp_beacon;
293 extern int hf_zbee_zdp_superframe;
294 extern int hf_zbee_zdp_permit_joining;
295 extern int hf_zbee_zdp_extended_pan;
296 extern int hf_zbee_zdp_addr;
297 extern int hf_zbee_zdp_table_entry_type;
298 extern int hf_zbee_zdp_table_entry_idle_rx_0c;
299 extern int hf_zbee_zdp_table_entry_relationship_70;
300 extern int hf_zbee_zdp_table_entry_idle_rx_04;
301 extern int hf_zbee_zdp_table_entry_relationship_18;
302 extern int hf_zbee_zdp_depth;
303 extern int hf_zbee_zdp_permit_joining_03;
304 extern int hf_zbee_zdp_lqi;
305 extern int hf_zbee_zdp_ieee_join_start_index;
306 extern int hf_zbee_zdp_ieee_join_status;
307 extern int hf_zbee_zdp_ieee_join_update_id;
308 extern int hf_zbee_zdp_ieee_join_policy;
309 extern int hf_zbee_zdp_ieee_join_list_total;
310 extern int hf_zbee_zdp_ieee_join_list_start;
311 extern int hf_zbee_zdp_ieee_join_list_count;
312 extern int hf_zbee_zdp_ieee_join_list_ieee;
313 extern int hf_zbee_zdp_number_of_children;
314 extern int hf_zbee_zdp_tlv_count;
315 extern int hf_zbee_zdp_tlv_id;
316
317/* Routing Table */
318 extern int hf_zbee_zdp_rtg;
319 extern int hf_zbee_zdp_rtg_entry;
320 extern int hf_zbee_zdp_rtg_destination;
321 extern int hf_zbee_zdp_rtg_mem_constrained_flag;
322 extern int hf_zbee_zdp_rtg_mto_flag;
323 extern int hf_zbee_zdp_rtg_rrec_req_flag;
324 extern int hf_zbee_zdp_rtg_next_hop;
325 extern int hf_zbee_zdp_rtg_status;
326
327 extern int hf_zbee_zdp_beacon_survey_scan_mask_cnt;
328 extern int hf_zbee_zdp_beacon_survey_scan_mask;
329 extern int hf_zbee_zdp_beacon_survey_conf_mask;
330 extern int hf_zbee_zdp_beacon_survey_total;
331 extern int hf_zbee_zdp_beacon_survey_cur_zbn;
332 extern int hf_zbee_zdp_beacon_survey_cur_zbn_potent_parents;
333 extern int hf_zbee_zdp_beacon_survey_other_zbn;
334 extern int hf_zbee_zdp_beacon_survey_current_parent;
335 extern int hf_zbee_zdp_beacon_survey_cnt_parents;
336 extern int hf_zbee_zdp_beacon_survey_potent_parent;
337 extern int hf_zbee_zdp_beacon_survey_parent;
338
339/* Subtree indicies. */
340 extern int ett_zbee_zdp_endpoint;
341 extern int ett_zbee_zdp_match_in;
342 extern int ett_zbee_zdp_match_out;
343 extern int ett_zbee_zdp_node;
344 extern int ett_zbee_zdp_power;
345 extern int ett_zbee_zdp_simple;
346 extern int ett_zbee_zdp_cinfo;
347 extern int ett_zbee_zdp_server;
348 extern int ett_zbee_zdp_simple_sizes;
349 extern int ett_zbee_zdp_bind;
350 extern int ett_zbee_zdp_bind_entry;
351 extern int ett_zbee_zdp_bind_end_in;
352 extern int ett_zbee_zdp_bind_end_out;
353 extern int ett_zbee_zdp_bind_source;
354 extern int ett_zbee_zdp_assoc_device;
355 extern int ett_zbee_zdp_nwk;
356 extern int ett_zbee_zdp_lqi;
357 extern int ett_zbee_zdp_rtg;
358 extern int ett_zbee_zdp_cache;
359 extern int ett_zbee_zdp_nwk_desc;
360 extern int ett_zbee_zdp_table_entry;
361 extern int ett_zbee_zdp_perm_join_fc;
362 extern int ett_zbee_zdp_rtg_status_set;
363/**************************************
364 * Helper Functions
365 **************************************
366 */
367 extern const char *zdp_status_name (uint8_t status);
368 extern void zdp_dump_excess (tvbuff_t *tvb, unsigned offset, packet_info *pinfo, proto_tree *tree);
369 extern uint64_t zbee_parse_eui64 (proto_tree *tree, int hfindex, tvbuff_t *tvb, unsigned *offset, unsigned length, proto_item **ti);
370 extern void zbee_append_info (proto_item *item, packet_info *pinfo, const char *format, ...) G_GNUC_PRINTF(3, 4);
371
372extern void zdp_parse_node_desc (proto_tree *tree, packet_info *pinfo, bool show_ver_flags, int ettindex, tvbuff_t *tvb, unsigned *offset, uint8_t version);
373extern void zdp_parse_power_desc (proto_tree *tree, int ettindex, tvbuff_t *tvb, unsigned *offset);
374extern void zdp_parse_simple_desc (proto_tree *tree, int ettindex, tvbuff_t *tvb, unsigned *offset, uint8_t version);
375extern void zdp_parse_complex_desc (packet_info *pinfo, proto_tree *tree, int ettindex, tvbuff_t *tvb, unsigned *offset, unsigned length);
376extern void zdp_parse_bind_table_entry (proto_tree *tree, tvbuff_t *tvb, unsigned *offset, uint8_t version);
377
378extern uint8_t zdp_parse_status (proto_tree *tree, tvbuff_t *tvb, unsigned *offset);
379extern unsigned zdp_parse_set_configuration_response(proto_tree *tree, tvbuff_t *tvb, unsigned offset);
380extern uint32_t zdp_parse_chanmask (proto_tree *tree, tvbuff_t *tvb, unsigned *offset, int hf_page, int hf_channel);
381extern uint8_t zdp_parse_cinfo (proto_tree *tree, int ettindex, tvbuff_t *tvb, unsigned *offset);
382extern uint16_t zdp_parse_server_flags (proto_tree *tree, int ettindex, tvbuff_t *tvb, unsigned *offset);
383
384/* Message dissector routines. */
385extern void dissect_zbee_zdp_req_nwk_addr (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
386extern void dissect_zbee_zdp_req_ext_addr (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
387extern void dissect_zbee_zdp_req_node_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
388extern void dissect_zbee_zdp_req_power_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
389extern void dissect_zbee_zdp_req_simple_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
390extern void dissect_zbee_zdp_req_active_ep (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
391extern void dissect_zbee_zdp_req_match_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
392extern void dissect_zbee_zdp_req_complex_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
393extern void dissect_zbee_zdp_req_user_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
394extern void dissect_zbee_zdp_req_discovery_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
395extern void dissect_zbee_zdp_device_annce (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
396extern void dissect_zbee_zdp_parent_annce (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
397extern void dissect_zbee_zdp_rsp_parent_annce (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
398extern void dissect_zbee_zdp_req_set_user_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
399extern void dissect_zbee_zdp_req_system_server_disc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
400extern void dissect_zbee_zdp_req_store_discovery (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
401extern void dissect_zbee_zdp_req_store_node_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
402extern void dissect_zbee_zdp_req_store_power_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
403extern void dissect_zbee_zdp_req_store_active_ep (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
404extern void dissect_zbee_zdp_req_store_simple_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
405extern void dissect_zbee_zdp_req_remove_node_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
406extern void dissect_zbee_zdp_req_find_node_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
407extern void dissect_zbee_zdp_req_ext_simple_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
408extern void dissect_zbee_zdp_req_ext_active_ep (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
409
410extern void dissect_zbee_zdp_req_end_device_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
411extern void dissect_zbee_zdp_req_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
412extern void dissect_zbee_zdp_req_unbind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
413extern void dissect_zbee_zdp_req_bind_register (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
414extern void dissect_zbee_zdp_req_replace_device (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
415extern void dissect_zbee_zdp_req_store_bak_bind_entry (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
416extern void dissect_zbee_zdp_req_remove_bak_bind_entry (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
417extern void dissect_zbee_zdp_req_backup_bind_table (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
418extern void dissect_zbee_zdp_req_recover_bind_table (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
419extern void dissect_zbee_zdp_req_backup_source_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
420extern void dissect_zbee_zdp_req_recover_source_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
421
422extern void dissect_zbee_zdp_req_mgmt_nwk_disc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int hf_channel);
423extern void dissect_zbee_zdp_req_mgmt_lqi (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
424extern void dissect_zbee_zdp_req_mgmt_rtg (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
425extern void dissect_zbee_zdp_req_mgmt_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
426extern void dissect_zbee_zdp_req_mgmt_leave (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
427extern void dissect_zbee_zdp_req_mgmt_direct_join (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
428extern void dissect_zbee_zdp_req_mgmt_permit_join (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
429extern void dissect_zbee_zdp_req_mgmt_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
430extern void dissect_zbee_zdp_req_mgmt_nwkupdate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
431extern void dissect_zbee_zdp_req_mgmt_nwkupdate_enh (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
432extern void dissect_zbee_zdp_req_mgmt_ieee_join_list (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
433extern void dissect_zbee_zdp_req_mgmt_nwk_beacon_survey (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
434extern void dissect_zbee_zdp_req_security_start_key_negotiation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
435extern void dissect_zbee_zdp_req_security_get_auth_token(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
436extern void dissect_zbee_zdp_req_security_get_auth_level(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
437extern void dissect_zbee_zdp_req_security_set_configuration(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
438extern void dissect_zbee_zdp_req_security_get_configuration(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
439extern void dissect_zbee_zdp_req_security_start_key_update(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
440extern void dissect_zbee_zdp_req_security_decommission (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
441extern void dissect_zbee_zdp_req_security_challenge (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
442
443extern void dissect_zbee_zdp_rsp_nwk_addr (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
444extern void dissect_zbee_zdp_rsp_ext_addr (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
445extern void dissect_zbee_zdp_rsp_node_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
446extern void dissect_zbee_zdp_rsp_power_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
447extern void dissect_zbee_zdp_rsp_simple_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
448extern void dissect_zbee_zdp_rsp_active_ep (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
449extern void dissect_zbee_zdp_rsp_match_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
450extern void dissect_zbee_zdp_rsp_complex_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
451extern void dissect_zbee_zdp_rsp_user_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
452extern void dissect_zbee_zdp_rsp_user_desc_conf (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
453extern void dissect_zbee_zdp_rsp_discovery_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
454extern void dissect_zbee_zdp_rsp_system_server_disc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
455extern void dissect_zbee_zdp_rsp_discovery_store (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
456extern void dissect_zbee_zdp_rsp_store_node_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
457extern void dissect_zbee_zdp_rsp_store_power_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
458extern void dissect_zbee_zdp_rsp_store_active_ep (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
459extern void dissect_zbee_zdp_rsp_store_simple_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
460extern void dissect_zbee_zdp_rsp_remove_node_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
461extern void dissect_zbee_zdp_rsp_find_node_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
462extern void dissect_zbee_zdp_rsp_ext_simple_desc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
463extern void dissect_zbee_zdp_rsp_ext_active_ep (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
464
465extern void dissect_zbee_zdp_req_clear_all_bindings (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
466extern void dissect_zbee_zdp_rsp_end_device_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
467extern void dissect_zbee_zdp_rsp_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
468extern void dissect_zbee_zdp_rsp_unbind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
469extern void dissect_zbee_zdp_rsp_bind_register (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
470extern void dissect_zbee_zdp_rsp_replace_device (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
471extern void dissect_zbee_zdp_rsp_store_bak_bind_entry (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
472extern void dissect_zbee_zdp_rsp_remove_bak_bind_entry (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
473extern void dissect_zbee_zdp_rsp_backup_bind_table (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
474extern void dissect_zbee_zdp_rsp_recover_bind_table (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
475extern void dissect_zbee_zdp_rsp_backup_source_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
476extern void dissect_zbee_zdp_rsp_recover_source_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
477extern void dissect_zbee_zdp_rsp_clear_all_bindings (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
478
479extern void dissect_zbee_zdp_rsp_mgmt_nwk_disc (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
480extern void dissect_zbee_zdp_rsp_mgmt_lqi (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
481extern void dissect_zbee_zdp_rsp_mgmt_rtg (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
482extern void dissect_zbee_zdp_rsp_mgmt_bind (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint8_t version);
483extern void dissect_zbee_zdp_rsp_mgmt_leave (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
484extern void dissect_zbee_zdp_rsp_mgmt_direct_join (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
485extern void dissect_zbee_zdp_rsp_mgmt_permit_join (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
486extern void dissect_zbee_zdp_rsp_mgmt_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
487extern void dissect_zbee_zdp_not_mgmt_nwkupdate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
488extern void dissect_zbee_zdp_rsp_mgmt_ieee_join_list (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
489extern void dissect_zbee_zdp_not_mgmt_unsolicited_nwkupdate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
490extern void dissect_zbee_zdp_rsp_mgmt_nwk_beacon_survey (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
491extern void dissect_zbee_zdp_rsp_security_start_key_negotiation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
492extern void dissect_zbee_zdp_rsp_security_get_auth_token(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
493extern void dissect_zbee_zdp_rsp_security_get_auth_level(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
494extern void dissect_zbee_zdp_rsp_security_set_configuration(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
495extern void dissect_zbee_zdp_rsp_security_get_configuration(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
496extern void dissect_zbee_zdp_rsp_security_start_key_update(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
497extern void dissect_zbee_zdp_rsp_security_decommission(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
498extern void dissect_zbee_zdp_rsp_security_challenge (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
499
500extern const value_string zbee_zdp_cluster_names[];
501extern const value_string zbee_zdp_rtg_status_vals[];
502
503#endif /* PACKET_ZBEE_ZDP_H */
504
505/*
506 * Editor modelines - https://www.wireshark.org/tools/modelines.html
507 *
508 * Local variables:
509 * c-basic-offset: 4
510 * tab-width: 8
511 * indent-tabs-mode: nil
512 * End:
513 *
514 * vi: set shiftwidth=4 tabstop=8 expandtab:
515 * :indentSize=4:tabSize=8:noTabs=true:
516 */
_packet_info
Definition packet_info.h:43
_proto_node
Definition proto.h:905
_value_string
Mapping between a 32-bit integer value and its string representation.
Definition value_string.h:33
tvbuff
Definition tvbuff-int.h:36