2 * Dissector routines for the ZigBee Device Profile (ZDP)
3 * By Owen Kirby <osk@exegin.com>
4 * Copyright 2009 Exegin Technologies Limited
6 * Wireshark - Network traffic analyzer
7 * By Gerald Combs <gerald@wireshark.org>
8 * Copyright 1998 Gerald Combs
10 * SPDX-License-Identifier: GPL-2.0-or-later
13 #ifndef PACKET_ZBEE_ZDP_H
14 #define PACKET_ZBEE_ZDP_H
16 /* The Profile ID for the ZigBee Device Profile. */
17 #define ZBEE_ZDP_PROFILE 0x0000
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 */
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 */
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)
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
156 #define ZBEE_ZDP_REQ_TYPE_SINGLE 0x00
157 #define ZBEE_ZDP_REQ_TYPE_EXTENDED 0x01
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
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
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 #define ZBEE_ZDP_POWER_LEVEL_FULL 0xc000
196 #define ZBEE_ZDP_POWER_LEVEL_OK 0x8000
197 #define ZBEE_ZDP_POWER_LEVEL_LOW 0x4000
198 #define ZBEE_ZDP_POWER_LEVEL_CRITICAL 0x0000
200 #define ZBEE_ZDP_ADDR_MODE_GROUP 0x01
201 #define ZBEE_ZDP_ADDR_MODE_UNICAST 0x03
203 #define ZBEE_ZDP_MGMT_LEAVE_CHILDREN 0x40
204 #define ZBEE_ZDP_MGMT_LEAVE_REJOIN 0x80
206 #define ZBEE_ZDP_PERM_JOIN_FC_TLV_UPDATE 0x1
208 #define ZBEE_ZDP_NWKUPDATE_SCAN_MAX 0x05
209 #define ZBEE_ZDP_NWKUPDATE_CHANNEL_HOP 0xfe
210 #define ZBEE_ZDP_NWKUPDATE_PARAMETERS 0xff
212 #define ZBEE_ZDP_NWKUPDATE_PAGE 0xF8000000
213 #define ZBEE_ZDP_NWKUPDATE_CHANNEL 0x07FFFFFF
215 #define ZBEE_ZDP_DCF_EAELA 0x01
216 #define ZBEE_ZDP_DCF_ESDLA 0x02
220 /**************************************
222 **************************************
224 /* General indicies. */
225 extern int hf_zbee_zdp_ext_addr
;
226 extern int hf_zbee_zdp_nwk_addr
;
227 extern int hf_zbee_zdp_req_type
;
228 extern int hf_zbee_zdp_index
;
229 extern int hf_zbee_zdp_ep_count
;
230 extern int hf_zbee_zdp_endpoint
;
231 extern int hf_zbee_zdp_profile
;
232 extern int hf_zbee_zdp_cluster
;
233 extern int hf_zbee_zdp_addr_mode
;
234 extern int hf_zbee_zdp_in_count
;
235 extern int hf_zbee_zdp_out_count
;
236 extern int hf_zbee_zdp_in_cluster
;
237 extern int hf_zbee_zdp_out_cluster
;
238 extern int hf_zbee_zdp_table_size
;
239 extern int hf_zbee_zdp_table_count
;
240 extern int hf_zbee_zdp_assoc_device_count
;
241 extern int hf_zbee_zdp_assoc_device
;
242 extern int hf_zbee_zdp_cache_address
;
244 /* Discovery indicies. */
245 extern int hf_zbee_zdp_cache
;
246 extern int hf_zbee_zdp_disc_node_size
;
247 extern int hf_zbee_zdp_disc_power_size
;
248 extern int hf_zbee_zdp_disc_ep_count
;
249 extern int hf_zbee_zdp_disc_simple_count
;
250 extern int hf_zbee_zdp_disc_simple_size
;
252 /* Descriptor indicies. */
253 extern int hf_zbee_zdp_complex_length
;
254 extern int hf_zbee_zdp_user
;
255 extern int hf_zbee_zdp_user_length
;
256 extern int hf_zbee_zdp_simple_length
;
258 /* Binding indicies. */
259 extern int hf_zbee_zdp_target
;
260 extern int hf_zbee_zdp_replacement
;
261 extern int hf_zbee_zdp_replacement_ep
;
262 extern int hf_zbee_zdp_bind_src
;
263 extern int hf_zbee_zdp_bind_src64
;
264 extern int hf_zbee_zdp_bind_src_ep
;
265 extern int hf_zbee_zdp_bind_dst
;
266 extern int hf_zbee_zdp_bind_dst64
;
267 extern int hf_zbee_zdp_bind_dst_ep
;
269 /* Network Management indicies. */
270 extern int hf_zbee_zdp_duration
;
271 extern int hf_zbee_zdp_leave_children
;
272 extern int hf_zbee_zdp_leave_rejoin
;
273 extern int hf_zbee_zdp_significance
;
274 extern int hf_zbee_zdp_scan_count
;
275 extern int hf_zbee_zdp_update_id
;
276 extern int hf_zbee_zdp_manager
;
277 extern int hf_zbee_zdp_tx_total
;
278 extern int hf_zbee_zdp_tx_fail
;
279 extern int hf_zbee_zdp_tx_retries
;
280 extern int hf_zbee_zdp_period_time_results
;
281 extern int hf_zbee_zdp_channel_count
;
282 extern int hf_zbee_zdp_channel_mask
;
283 extern int hf_zbee_zdp_channel_page
;
284 extern int hf_zbee_zdp_channel_page_count
;
285 extern int hf_zbee_zdp_channel_energy
;
286 extern int hf_zbee_zdp_pan_eui64
;
287 extern int hf_zbee_zdp_pan_uint
;
288 extern int hf_zbee_zdp_channel
;
289 extern int hf_zbee_zdp_nwk_desc_profile
;
290 extern int hf_zbee_zdp_profile_version
;
291 extern int hf_zbee_zdp_beacon
;
292 extern int hf_zbee_zdp_superframe
;
293 extern int hf_zbee_zdp_permit_joining
;
294 extern int hf_zbee_zdp_extended_pan
;
295 extern int hf_zbee_zdp_addr
;
296 extern int hf_zbee_zdp_table_entry_type
;
297 extern int hf_zbee_zdp_table_entry_idle_rx_0c
;
298 extern int hf_zbee_zdp_table_entry_relationship_70
;
299 extern int hf_zbee_zdp_table_entry_idle_rx_04
;
300 extern int hf_zbee_zdp_table_entry_relationship_18
;
301 extern int hf_zbee_zdp_depth
;
302 extern int hf_zbee_zdp_permit_joining_03
;
303 extern int hf_zbee_zdp_lqi
;
304 extern int hf_zbee_zdp_ieee_join_start_index
;
305 extern int hf_zbee_zdp_ieee_join_status
;
306 extern int hf_zbee_zdp_ieee_join_update_id
;
307 extern int hf_zbee_zdp_ieee_join_policy
;
308 extern int hf_zbee_zdp_ieee_join_list_total
;
309 extern int hf_zbee_zdp_ieee_join_list_start
;
310 extern int hf_zbee_zdp_ieee_join_list_count
;
311 extern int hf_zbee_zdp_ieee_join_list_ieee
;
312 extern int hf_zbee_zdp_number_of_children
;
313 extern int hf_zbee_zdp_tlv_count
;
314 extern int hf_zbee_zdp_tlv_id
;
317 extern int hf_zbee_zdp_rtg
;
318 extern int hf_zbee_zdp_rtg_entry
;
319 extern int hf_zbee_zdp_rtg_destination
;
320 extern int hf_zbee_zdp_rtg_next_hop
;
321 extern int hf_zbee_zdp_rtg_status
;
323 extern int hf_zbee_zdp_beacon_survey_scan_mask_cnt
;
324 extern int hf_zbee_zdp_beacon_survey_scan_mask
;
325 extern int hf_zbee_zdp_beacon_survey_conf_mask
;
326 extern int hf_zbee_zdp_beacon_survey_total
;
327 extern int hf_zbee_zdp_beacon_survey_cur_zbn
;
328 extern int hf_zbee_zdp_beacon_survey_cur_zbn_potent_parents
;
329 extern int hf_zbee_zdp_beacon_survey_other_zbn
;
330 extern int hf_zbee_zdp_beacon_survey_current_parent
;
331 extern int hf_zbee_zdp_beacon_survey_cnt_parents
;
332 extern int hf_zbee_zdp_beacon_survey_potent_parent
;
333 extern int hf_zbee_zdp_beacon_survey_parent
;
335 /* Subtree indicies. */
336 extern int ett_zbee_zdp_endpoint
;
337 extern int ett_zbee_zdp_match_in
;
338 extern int ett_zbee_zdp_match_out
;
339 extern int ett_zbee_zdp_node
;
340 extern int ett_zbee_zdp_power
;
341 extern int ett_zbee_zdp_simple
;
342 extern int ett_zbee_zdp_cinfo
;
343 extern int ett_zbee_zdp_server
;
344 extern int ett_zbee_zdp_simple_sizes
;
345 extern int ett_zbee_zdp_bind
;
346 extern int ett_zbee_zdp_bind_entry
;
347 extern int ett_zbee_zdp_bind_end_in
;
348 extern int ett_zbee_zdp_bind_end_out
;
349 extern int ett_zbee_zdp_bind_source
;
350 extern int ett_zbee_zdp_assoc_device
;
351 extern int ett_zbee_zdp_nwk
;
352 extern int ett_zbee_zdp_lqi
;
353 extern int ett_zbee_zdp_rtg
;
354 extern int ett_zbee_zdp_cache
;
355 extern int ett_zbee_zdp_nwk_desc
;
356 extern int ett_zbee_zdp_table_entry
;
357 extern int ett_zbee_zdp_perm_join_fc
;
358 /**************************************
360 **************************************
362 extern const char *zdp_status_name (uint8_t status
);
363 extern void zdp_dump_excess (tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
);
364 extern uint64_t zbee_parse_eui64 (proto_tree
*tree
, int hfindex
, tvbuff_t
*tvb
, unsigned *offset
, unsigned length
, proto_item
**ti
);
365 extern void zbee_append_info (proto_item
*item
, packet_info
*pinfo
, const char *format
, ...) G_GNUC_PRINTF(3, 4);
367 extern 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
);
368 extern void zdp_parse_power_desc (proto_tree
*tree
, int ettindex
, tvbuff_t
*tvb
, unsigned *offset
);
369 extern void zdp_parse_simple_desc (proto_tree
*tree
, int ettindex
, tvbuff_t
*tvb
, unsigned *offset
, uint8_t version
);
370 extern void zdp_parse_complex_desc (packet_info
*pinfo
, proto_tree
*tree
, int ettindex
, tvbuff_t
*tvb
, unsigned *offset
, unsigned length
);
371 extern void zdp_parse_bind_table_entry (proto_tree
*tree
, tvbuff_t
*tvb
, unsigned *offset
, uint8_t version
);
373 extern uint8_t zdp_parse_status (proto_tree
*tree
, tvbuff_t
*tvb
, unsigned *offset
);
374 extern unsigned zdp_parse_set_configuration_response(proto_tree
*tree
, tvbuff_t
*tvb
, unsigned offset
);
375 extern uint32_t zdp_parse_chanmask (proto_tree
*tree
, tvbuff_t
*tvb
, unsigned *offset
, int hf_page
, int hf_channel
);
376 extern uint8_t zdp_parse_cinfo (proto_tree
*tree
, int ettindex
, tvbuff_t
*tvb
, unsigned *offset
);
377 extern uint16_t zdp_parse_server_flags (proto_tree
*tree
, int ettindex
, tvbuff_t
*tvb
, unsigned *offset
);
379 /* Message dissector routines. */
380 extern void dissect_zbee_zdp_req_nwk_addr (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
381 extern void dissect_zbee_zdp_req_ext_addr (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
382 extern void dissect_zbee_zdp_req_node_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
383 extern void dissect_zbee_zdp_req_power_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
384 extern void dissect_zbee_zdp_req_simple_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
385 extern void dissect_zbee_zdp_req_active_ep (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
386 extern void dissect_zbee_zdp_req_match_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
387 extern void dissect_zbee_zdp_req_complex_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
388 extern void dissect_zbee_zdp_req_user_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
389 extern void dissect_zbee_zdp_req_discovery_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
390 extern void dissect_zbee_zdp_device_annce (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
391 extern void dissect_zbee_zdp_parent_annce (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
392 extern void dissect_zbee_zdp_rsp_parent_annce (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
393 extern void dissect_zbee_zdp_req_set_user_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
394 extern void dissect_zbee_zdp_req_system_server_disc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
395 extern void dissect_zbee_zdp_req_store_discovery (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
396 extern void dissect_zbee_zdp_req_store_node_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
397 extern void dissect_zbee_zdp_req_store_power_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
398 extern void dissect_zbee_zdp_req_store_active_ep (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
399 extern void dissect_zbee_zdp_req_store_simple_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
400 extern void dissect_zbee_zdp_req_remove_node_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
401 extern void dissect_zbee_zdp_req_find_node_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
402 extern void dissect_zbee_zdp_req_ext_simple_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
403 extern void dissect_zbee_zdp_req_ext_active_ep (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
405 extern void dissect_zbee_zdp_req_end_device_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
406 extern void dissect_zbee_zdp_req_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
407 extern void dissect_zbee_zdp_req_unbind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
408 extern void dissect_zbee_zdp_req_bind_register (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
409 extern void dissect_zbee_zdp_req_replace_device (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
410 extern void dissect_zbee_zdp_req_store_bak_bind_entry (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
411 extern void dissect_zbee_zdp_req_remove_bak_bind_entry (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
412 extern void dissect_zbee_zdp_req_backup_bind_table (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
413 extern void dissect_zbee_zdp_req_recover_bind_table (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
414 extern void dissect_zbee_zdp_req_backup_source_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
415 extern void dissect_zbee_zdp_req_recover_source_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
417 extern void dissect_zbee_zdp_req_mgmt_nwk_disc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, int hf_channel
);
418 extern void dissect_zbee_zdp_req_mgmt_lqi (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
419 extern void dissect_zbee_zdp_req_mgmt_rtg (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
420 extern void dissect_zbee_zdp_req_mgmt_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
421 extern void dissect_zbee_zdp_req_mgmt_leave (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
422 extern void dissect_zbee_zdp_req_mgmt_direct_join (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
423 extern void dissect_zbee_zdp_req_mgmt_permit_join (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
424 extern void dissect_zbee_zdp_req_mgmt_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
425 extern void dissect_zbee_zdp_req_mgmt_nwkupdate (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
426 extern void dissect_zbee_zdp_req_mgmt_nwkupdate_enh (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
427 extern void dissect_zbee_zdp_req_mgmt_ieee_join_list (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
428 extern void dissect_zbee_zdp_req_mgmt_nwk_beacon_survey (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
429 extern void dissect_zbee_zdp_req_security_start_key_negotiation(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
430 extern void dissect_zbee_zdp_req_security_get_auth_token(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
431 extern void dissect_zbee_zdp_req_security_get_auth_level(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
432 extern void dissect_zbee_zdp_req_security_set_configuration(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
433 extern void dissect_zbee_zdp_req_security_get_configuration(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
434 extern void dissect_zbee_zdp_req_security_start_key_update(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
435 extern void dissect_zbee_zdp_req_security_decommission (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
436 extern void dissect_zbee_zdp_req_security_challenge (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
438 extern void dissect_zbee_zdp_rsp_nwk_addr (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
439 extern void dissect_zbee_zdp_rsp_ext_addr (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
440 extern void dissect_zbee_zdp_rsp_node_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
441 extern void dissect_zbee_zdp_rsp_power_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
442 extern void dissect_zbee_zdp_rsp_simple_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
443 extern void dissect_zbee_zdp_rsp_active_ep (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
444 extern void dissect_zbee_zdp_rsp_match_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
445 extern void dissect_zbee_zdp_rsp_complex_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
446 extern void dissect_zbee_zdp_rsp_user_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
447 extern void dissect_zbee_zdp_rsp_user_desc_conf (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
448 extern void dissect_zbee_zdp_rsp_discovery_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
449 extern void dissect_zbee_zdp_rsp_system_server_disc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
450 extern void dissect_zbee_zdp_rsp_discovery_store (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
451 extern void dissect_zbee_zdp_rsp_store_node_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
452 extern void dissect_zbee_zdp_rsp_store_power_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
453 extern void dissect_zbee_zdp_rsp_store_active_ep (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
454 extern void dissect_zbee_zdp_rsp_store_simple_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
455 extern void dissect_zbee_zdp_rsp_remove_node_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
456 extern void dissect_zbee_zdp_rsp_find_node_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
457 extern void dissect_zbee_zdp_rsp_ext_simple_desc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
458 extern void dissect_zbee_zdp_rsp_ext_active_ep (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
460 extern void dissect_zbee_zdp_req_clear_all_bindings (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
461 extern void dissect_zbee_zdp_rsp_end_device_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
462 extern void dissect_zbee_zdp_rsp_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
463 extern void dissect_zbee_zdp_rsp_unbind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
464 extern void dissect_zbee_zdp_rsp_bind_register (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
465 extern void dissect_zbee_zdp_rsp_replace_device (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
466 extern void dissect_zbee_zdp_rsp_store_bak_bind_entry (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
467 extern void dissect_zbee_zdp_rsp_remove_bak_bind_entry (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
468 extern void dissect_zbee_zdp_rsp_backup_bind_table (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
469 extern void dissect_zbee_zdp_rsp_recover_bind_table (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
470 extern void dissect_zbee_zdp_rsp_backup_source_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
471 extern void dissect_zbee_zdp_rsp_recover_source_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
472 extern void dissect_zbee_zdp_rsp_clear_all_bindings (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
474 extern void dissect_zbee_zdp_rsp_mgmt_nwk_disc (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
475 extern void dissect_zbee_zdp_rsp_mgmt_lqi (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
476 extern void dissect_zbee_zdp_rsp_mgmt_rtg (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
477 extern void dissect_zbee_zdp_rsp_mgmt_bind (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint8_t version
);
478 extern void dissect_zbee_zdp_rsp_mgmt_leave (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
479 extern void dissect_zbee_zdp_rsp_mgmt_direct_join (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
480 extern void dissect_zbee_zdp_rsp_mgmt_permit_join (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
481 extern void dissect_zbee_zdp_rsp_mgmt_cache (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
482 extern void dissect_zbee_zdp_not_mgmt_nwkupdate (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
483 extern void dissect_zbee_zdp_rsp_mgmt_ieee_join_list (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
484 extern void dissect_zbee_zdp_not_mgmt_unsolicited_nwkupdate (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
485 extern void dissect_zbee_zdp_rsp_mgmt_nwk_beacon_survey (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
486 extern void dissect_zbee_zdp_rsp_security_start_key_negotiation(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
487 extern void dissect_zbee_zdp_rsp_security_get_auth_token(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
488 extern void dissect_zbee_zdp_rsp_security_get_auth_level(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
489 extern void dissect_zbee_zdp_rsp_security_set_configuration(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
490 extern void dissect_zbee_zdp_rsp_security_get_configuration(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
491 extern void dissect_zbee_zdp_rsp_security_start_key_update(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
492 extern void dissect_zbee_zdp_rsp_security_decommission(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
493 extern void dissect_zbee_zdp_rsp_security_challenge (tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
);
495 extern const value_string zbee_zdp_cluster_names
[];
496 extern const value_string zbee_zdp_rtg_status_vals
[];
498 #endif /* PACKET_ZBEE_ZDP_H */
501 * Editor modelines - https://www.wireshark.org/tools/modelines.html
506 * indent-tabs-mode: nil
509 * vi: set shiftwidth=4 tabstop=8 expandtab:
510 * :indentSize=4:tabSize=8:noTabs=true: