2 * Routines for CAPWAP dissection (RFC 5415 / RFC 5416)
3 * Copyright 2009, Alexis La Goutte <alexis.lagoutte at gmail dot com>
5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * SPDX-License-Identifier: GPL-2.0-or-later
14 #include <epan/packet.h>
15 #include <epan/prefs.h>
16 #include <epan/reassemble.h>
17 #include <epan/expert.h>
18 #include <epan/sminmpec.h>
19 #include <epan/addr_resolv.h>
22 #include "packet-ieee80211.h"
24 void proto_register_capwap_control(void);
25 void proto_reg_handoff_capwap(void);
27 static dissector_handle_t capwap_control_handle
;
28 static dissector_handle_t capwap_data_handle
;
30 #define UDP_PORT_CAPWAP_CONTROL 5246
31 #define UDP_PORT_CAPWAP_DATA 5247
33 static range_t
*global_capwap_data_udp_ports
;
34 static bool global_capwap_draft_8_cisco
;
35 static bool global_capwap_reassemble
= true;
36 static bool global_capwap_swap_frame_control
= true;
38 static reassembly_table capwap_reassembly_table
;
41 * add decryption of DLTS Message
42 * add support of all Messages Element Type
45 static int proto_capwap_control
;
46 static int proto_capwap_data
;
48 static int hf_capwap_preamble
;
49 static int hf_capwap_preamble_version
;
50 static int hf_capwap_preamble_type
;
51 static int hf_capwap_preamble_reserved
;
53 static int hf_capwap_header
;
54 static int hf_capwap_header_hlen
;
55 static int hf_capwap_header_rid
;
56 static int hf_capwap_header_wbid
;
58 static int hf_capwap_header_flags
;
59 static int hf_capwap_header_flags_t
;
60 static int hf_capwap_header_flags_f
;
61 static int hf_capwap_header_flags_l
;
62 static int hf_capwap_header_flags_w
;
63 static int hf_capwap_header_flags_m
;
64 static int hf_capwap_header_flags_k
;
65 static int hf_capwap_header_flags_r
;
67 static int hf_capwap_header_fragment_id
;
68 static int hf_capwap_header_fragment_offset
;
69 static int hf_capwap_header_reserved
;
71 static int hf_capwap_header_mac_length
;
72 static int hf_capwap_header_mac_eui48
;
73 static int hf_capwap_header_mac_eui64
;
74 static int hf_capwap_header_mac_data
;
76 static int hf_capwap_header_wireless_length
;
77 static int hf_capwap_header_wireless_data
;
79 static int hf_capwap_header_wireless_data_ieee80211_fi
;
80 static int hf_capwap_header_wireless_data_ieee80211_fi_rssi
;
81 static int hf_capwap_header_wireless_data_ieee80211_fi_snr
;
82 static int hf_capwap_header_wireless_data_ieee80211_fi_data_rate
;
83 static int hf_capwap_header_wireless_data_ieee80211_dest_wlan
;
84 static int hf_capwap_header_wireless_data_ieee80211_dw_wlan_id_bitmap
;
85 static int hf_capwap_header_wireless_data_ieee80211_dw_reserved
;
86 static int hf_capwap_header_padding
;
88 static int hf_capwap_control_header
;
89 static int hf_capwap_control_header_msg_type
;
90 static int hf_capwap_control_header_msg_type_enterprise_nbr
;
91 static int hf_capwap_control_header_msg_type_enterprise_specific
;
92 static int hf_capwap_control_header_seq_number
;
93 static int hf_capwap_control_header_flags
;
94 static int hf_capwap_control_header_msg_element_length
;
96 static int hf_capwap_message_element
;
97 static int hf_capwap_msg_element
;
98 static int hf_capwap_msg_element_type
;
99 static int hf_capwap_msg_element_length
;
100 static int hf_capwap_msg_element_value
;
102 static int hf_capwap_msg_element_type_ac_descriptor_stations
;
103 static int hf_capwap_msg_element_type_ac_descriptor_limit
;
104 static int hf_capwap_msg_element_type_ac_descriptor_active_wtp
;
105 static int hf_capwap_msg_element_type_ac_descriptor_max_wtp
;
106 /* AC Descriptor Security Flags... */
107 static int hf_capwap_msg_element_type_ac_descriptor_security
;
108 static int hf_capwap_msg_element_type_ac_descriptor_security_s
;
109 static int hf_capwap_msg_element_type_ac_descriptor_security_x
;
110 static int hf_capwap_msg_element_type_ac_descriptor_security_r
;
111 static int hf_capwap_msg_element_type_ac_descriptor_rmac_field
;
112 static int hf_capwap_msg_element_type_ac_descriptor_reserved
;
113 /* AC Descriptor DTLS Policy Flags... */
114 static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy
;
115 static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy_d
;
116 static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy_c
;
117 static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy_r
;
119 static int hf_capwap_msg_element_type_ac_information
;
120 static int hf_capwap_msg_element_type_ac_information_vendor
;
121 static int hf_capwap_msg_element_type_ac_information_type
;
122 static int hf_capwap_msg_element_type_ac_information_length
;
123 static int hf_capwap_msg_element_type_ac_information_value
;
124 static int hf_capwap_msg_element_type_ac_information_hardware_version
;
125 static int hf_capwap_msg_element_type_ac_information_software_version
;
127 static int hf_capwap_msg_element_type_ac_name
;
128 static int hf_capwap_msg_element_type_ac_name_with_priority
;
130 static int hf_capwap_msg_element_type_ac_timestamp
;
132 static int hf_capwap_msg_element_type_add_station_radio_id
;
133 static int hf_capwap_msg_element_type_add_station_length
;
134 static int hf_capwap_msg_element_type_add_station_mac_eui48
;
135 static int hf_capwap_msg_element_type_add_station_mac_eui64
;
136 static int hf_capwap_msg_element_type_add_station_mac_data
;
137 static int hf_capwap_msg_element_type_add_station_vlan_name
;
139 static int hf_capwap_msg_element_type_ac_ipv4_list
;
140 static int hf_capwap_msg_element_type_ac_ipv6_list
;
142 static int hf_capwap_msg_element_type_capwap_control_ipv4
;
143 static int hf_capwap_msg_element_type_capwap_control_ipv6
;
144 static int hf_capwap_msg_element_type_capwap_control_wtp_count
;
146 static int hf_capwap_msg_element_type_capwap_timers_discovery
;
147 static int hf_capwap_msg_element_type_capwap_timers_echo_request
;
149 static int hf_capwap_msg_element_type_decryption_error_report_period_radio_id
;
150 static int hf_capwap_msg_element_type_decryption_error_report_period_interval
;
152 static int hf_capwap_msg_element_type_delete_station_radio_id
;
153 static int hf_capwap_msg_element_type_delete_station_length
;
154 static int hf_capwap_msg_element_type_delete_station_mac_eui48
;
155 static int hf_capwap_msg_element_type_delete_station_mac_eui64
;
156 static int hf_capwap_msg_element_type_delete_station_mac_data
;
158 static int hf_capwap_msg_element_type_discovery_type
;
160 static int hf_capwap_msg_element_type_location_data
;
162 static int hf_capwap_msg_element_type_maximum_message_length
;
164 static int hf_capwap_msg_element_type_capwap_local_ipv4_address
;
166 static int hf_capwap_msg_element_type_idle_timeout
;
167 static int hf_capwap_msg_element_type_radio_admin_id
;
168 static int hf_capwap_msg_element_type_radio_admin_state
;
170 static int hf_capwap_msg_element_type_radio_op_state_radio_id
;
171 static int hf_capwap_msg_element_type_radio_op_state_radio_state
;
172 static int hf_capwap_msg_element_type_radio_op_state_radio_cause
;
173 static int hf_capwap_msg_element_type_result_code
;
175 static int hf_capwap_msg_element_type_session_id
;
177 static int hf_capwap_msg_element_type_statistics_timer
;
179 static int hf_capwap_msg_element_type_vsp_vendor_identifier
;
180 static int hf_capwap_msg_element_type_vsp_vendor_element_id
;
181 static int hf_capwap_msg_element_type_vsp_vendor_data
;
183 static int hf_capwap_msg_element_type_wtp_board_data
;
184 static int hf_capwap_msg_element_type_wtp_board_data_vendor
;
185 static int hf_capwap_msg_element_type_wtp_board_data_type
;
186 static int hf_capwap_msg_element_type_wtp_board_data_length
;
187 static int hf_capwap_msg_element_type_wtp_board_data_value
;
188 static int hf_capwap_msg_element_type_wtp_board_data_wtp_model_number
;
189 static int hf_capwap_msg_element_type_wtp_board_data_wtp_serial_number
;
190 static int hf_capwap_msg_element_type_wtp_board_data_wtp_board_id
;
191 static int hf_capwap_msg_element_type_wtp_board_data_wtp_board_revision
;
192 static int hf_capwap_msg_element_type_wtp_board_data_base_mac_address
;
194 static int hf_capwap_msg_element_type_wtp_descriptor_max_radios
;
195 static int hf_capwap_msg_element_type_wtp_descriptor_radio_in_use
;
196 static int hf_capwap_msg_element_type_wtp_descriptor_number_encrypt
;
197 static int hf_capwap_msg_element_type_wtp_descriptor_encrypt
;
198 static int hf_capwap_msg_element_type_wtp_descriptor_encrypt_reserved
;
199 static int hf_capwap_msg_element_type_wtp_descriptor_encrypt_wbid
;
200 static int hf_capwap_msg_element_type_wtp_descriptor_encrypt_capabilities
;
202 static int hf_capwap_msg_element_type_wtp_descriptor
;
203 static int hf_capwap_msg_element_type_wtp_descriptor_vendor
;
204 static int hf_capwap_msg_element_type_wtp_descriptor_type
;
205 static int hf_capwap_msg_element_type_wtp_descriptor_length
;
206 static int hf_capwap_msg_element_type_wtp_descriptor_value
;
207 static int hf_capwap_msg_element_type_wtp_descriptor_hardware_version
;
208 static int hf_capwap_msg_element_type_wtp_descriptor_active_software_version
;
209 static int hf_capwap_msg_element_type_wtp_descriptor_boot_version
;
210 static int hf_capwap_msg_element_type_wtp_descriptor_other_software_version
;
212 static int hf_capwap_msg_element_type_wtp_fallback
;
213 static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode
;
214 static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_n
;
215 static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_e
;
216 static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_l
;
217 static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_r
;
219 static int hf_capwap_msg_element_type_wtp_mac_type
;
221 static int hf_capwap_msg_element_type_wtp_name
;
223 static int hf_capwap_msg_element_type_wtp_reboot_statistics_reboot_count
;
224 static int hf_capwap_msg_element_type_wtp_reboot_statistics_ac_initiated_count
;
225 static int hf_capwap_msg_element_type_wtp_reboot_statistics_link_failure_count
;
226 static int hf_capwap_msg_element_type_wtp_reboot_statistics_sw_failure_count
;
227 static int hf_capwap_msg_element_type_wtp_reboot_statistics_hw_failure_count
;
228 static int hf_capwap_msg_element_type_wtp_reboot_statistics_other_failure_count
;
229 static int hf_capwap_msg_element_type_wtp_reboot_statistics_unknown_failure_count
;
230 static int hf_capwap_msg_element_type_wtp_reboot_statistics_last_failure_type
;
232 static int hf_capwap_msg_element_type_capwap_local_ipv6_address
;
234 static int hf_capwap_msg_element_type_capwap_transport_protocol
;
236 static int hf_capwap_msg_element_type_mtu_discovery_padding
;
238 static int hf_capwap_msg_element_type_ecn_support
;
240 static int hf_capwap_msg_element_type_ieee80211_add_wlan_radio_id
;
241 static int hf_capwap_msg_element_type_ieee80211_add_wlan_wlan_id
;
242 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability
;
243 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_e
;
244 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_i
;
245 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_c
;
246 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_f
;
247 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_p
;
248 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_s
;
249 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_b
;
250 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_a
;
251 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_m
;
252 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_q
;
253 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_t
;
254 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_d
;
255 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_v
;
256 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_o
;
257 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_k
;
258 static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_l
;
259 static int hf_capwap_msg_element_type_ieee80211_add_wlan_key_index
;
260 static int hf_capwap_msg_element_type_ieee80211_add_wlan_key_status
;
261 static int hf_capwap_msg_element_type_ieee80211_add_wlan_key_length
;
262 static int hf_capwap_msg_element_type_ieee80211_add_wlan_key
;
263 static int hf_capwap_msg_element_type_ieee80211_add_wlan_group_tsc
;
264 static int hf_capwap_msg_element_type_ieee80211_add_wlan_qos
;
265 static int hf_capwap_msg_element_type_ieee80211_add_wlan_auth_type
;
266 static int hf_capwap_msg_element_type_ieee80211_add_wlan_mac_mode
;
267 static int hf_capwap_msg_element_type_ieee80211_add_wlan_tunnel_mode
;
268 static int hf_capwap_msg_element_type_ieee80211_add_wlan_suppress_ssid
;
269 static int hf_capwap_msg_element_type_ieee80211_add_wlan_ssid
;
271 static int hf_capwap_msg_element_type_ieee80211_antenna_radio_id
;
272 static int hf_capwap_msg_element_type_ieee80211_antenna_diversity
;
273 static int hf_capwap_msg_element_type_ieee80211_antenna_combiner
;
274 static int hf_capwap_msg_element_type_ieee80211_antenna_count
;
275 static int hf_capwap_msg_element_type_ieee80211_antenna_selection
;
277 static int hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_radio_id
;
278 static int hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_wlan_id
;
279 static int hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_bssid
;
281 static int hf_capwap_msg_element_type_ieee80211_delete_wlan_radio_id
;
282 static int hf_capwap_msg_element_type_ieee80211_delete_wlan_wlan_id
;
284 static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_radio_id
;
285 static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_reserved
;
286 static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_channel
;
287 static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_cca
;
288 static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_energy_detect_threshold
;
290 static int hf_capwap_msg_element_type_ieee80211_ie_radio_id
;
291 static int hf_capwap_msg_element_type_ieee80211_ie_wlan_id
;
292 static int hf_capwap_msg_element_type_ieee80211_ie_flags
;
293 static int hf_capwap_msg_element_type_ieee80211_ie_flags_b
;
294 static int hf_capwap_msg_element_type_ieee80211_ie_flags_p
;
295 static int hf_capwap_msg_element_type_ieee80211_ie_flags_rsv
;
297 static int hf_capwap_msg_element_type_ieee80211_mac_operation_radio_id
;
298 static int hf_capwap_msg_element_type_ieee80211_mac_operation_reserved
;
299 static int hf_capwap_msg_element_type_ieee80211_mac_operation_rts_threshold
;
300 static int hf_capwap_msg_element_type_ieee80211_mac_operation_short_retry
;
301 static int hf_capwap_msg_element_type_ieee80211_mac_operation_long_retry
;
302 static int hf_capwap_msg_element_type_ieee80211_mac_operation_fragmentation_threshold
;
303 static int hf_capwap_msg_element_type_ieee80211_mac_operation_tx_msdu_lifetime
;
304 static int hf_capwap_msg_element_type_ieee80211_mac_operation_rx_msdu_lifetime
;
306 static int hf_capwap_msg_element_type_ieee80211_mic_countermeasures_radio_id
;
307 static int hf_capwap_msg_element_type_ieee80211_mic_countermeasures_wlan_id
;
308 static int hf_capwap_msg_element_type_ieee80211_mic_countermeasures_mac_address
;
310 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_radio_id
;
311 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_reserved
;
312 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_current_channel
;
313 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support
;
314 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit0
;
315 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit1
;
316 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit2
;
317 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit3
;
318 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit4
;
319 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit5
;
320 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit6
;
321 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit7
;
322 static int hf_capwap_msg_element_type_ieee80211_ofdm_control_ti_threshold
;
324 static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_radio_id
;
325 static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_reserved
;
326 static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_first_channel
;
327 static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_number_of_channels
;
328 static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_max_tx_power_level
;
330 static int hf_capwap_msg_element_type_ieee80211_rate_set_radio_id
;
331 static int hf_capwap_msg_element_type_ieee80211_rate_set_rate_set
;
333 static int hf_capwap_msg_element_type_ieee80211_station_radio_id
;
334 static int hf_capwap_msg_element_type_ieee80211_station_association_id
;
335 static int hf_capwap_msg_element_type_ieee80211_station_flags
;
336 static int hf_capwap_msg_element_type_ieee80211_station_mac_address
;
337 static int hf_capwap_msg_element_type_ieee80211_station_capabilities
;
338 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_e
;
339 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_i
;
340 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_c
;
341 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_f
;
342 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_p
;
343 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_s
;
344 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_b
;
345 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_a
;
346 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_m
;
347 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_q
;
348 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_t
;
349 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_d
;
350 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_v
;
351 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_o
;
352 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_k
;
353 static int hf_capwap_msg_element_type_ieee80211_station_capabilities_l
;
354 static int hf_capwap_msg_element_type_ieee80211_station_wlan_id
;
355 static int hf_capwap_msg_element_type_ieee80211_station_supported_rates
;
357 static int hf_capwap_msg_element_type_ieee80211_station_session_key_mac
;
358 static int hf_capwap_msg_element_type_ieee80211_station_session_key_flags
;
359 static int hf_capwap_msg_element_type_ieee80211_station_session_key_flags_a
;
360 static int hf_capwap_msg_element_type_ieee80211_station_session_key_flags_c
;
361 static int hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_tsc
;
362 static int hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_rsc
;
363 static int hf_capwap_msg_element_type_ieee80211_station_session_key_key
;
365 static int hf_capwap_msg_element_type_ieee80211_supported_rates_radio_id
;
366 static int hf_capwap_msg_element_type_ieee80211_supported_rates_rate
;
368 static int hf_capwap_msg_element_type_ieee80211_tx_power_radio_id
;
369 static int hf_capwap_msg_element_type_ieee80211_tx_power_reserved
;
370 static int hf_capwap_msg_element_type_ieee80211_tx_power_current_tx_power
;
372 static int hf_capwap_msg_element_type_ieee80211_tx_power_level_radio_id
;
373 static int hf_capwap_msg_element_type_ieee80211_tx_power_level_num_levels
;
374 static int hf_capwap_msg_element_type_ieee80211_tx_power_level_power_level
;
376 static int hf_capwap_msg_element_type_ieee80211_update_wlan_radio_id
;
377 static int hf_capwap_msg_element_type_ieee80211_update_wlan_wlan_id
;
378 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability
;
379 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_e
;
380 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_i
;
381 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_c
;
382 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_f
;
383 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_p
;
384 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_s
;
385 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_b
;
386 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_a
;
387 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_m
;
388 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_q
;
389 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_t
;
390 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_d
;
391 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_v
;
392 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_o
;
393 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_k
;
394 static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_l
;
395 static int hf_capwap_msg_element_type_ieee80211_update_wlan_key_index
;
396 static int hf_capwap_msg_element_type_ieee80211_update_wlan_key_status
;
397 static int hf_capwap_msg_element_type_ieee80211_update_wlan_key_length
;
398 static int hf_capwap_msg_element_type_ieee80211_update_wlan_key
;
400 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_radio_id
;
401 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_short_preamble
;
402 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_num_of_bssids
;
403 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_dtim_period
;
404 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_bssid
;
405 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_beacon_period
;
406 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_country_string
;
408 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_id
;
409 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_reserved
;
410 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_n
;
411 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_g
;
412 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_a
;
413 static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_b
;
415 static int hf_capwap_msg_element_type_ieee80211_supported_mac_profiles_numbers
;
416 static int hf_capwap_msg_element_type_ieee80211_supported_mac_profiles_profile
;
417 static int hf_capwap_msg_element_type_ieee80211_mac_profile
;
419 static int hf_capwap_data_keep_alive
;
420 static int hf_capwap_data_keep_alive_length
;
422 static int hf_capwap_fortinet_element_id
;
423 static int hf_capwap_fortinet_value
;
424 static int hf_capwap_fortinet_ap_scan_rid
;
425 static int hf_capwap_fortinet_ap_scan_bgscan_intv
;
426 static int hf_capwap_fortinet_ap_scan_bgscan_idle
;
427 static int hf_capwap_fortinet_ap_scan_bgscan_rpt_intv
;
428 static int hf_capwap_fortinet_ap_scan_fgscan_rpt_intv
;
429 static int hf_capwap_fortinet_passive_rid
;
430 static int hf_capwap_fortinet_passive
;
431 static int hf_capwap_fortinet_daemon_rst
;
432 static int hf_capwap_fortinet_mac_rid
;
433 static int hf_capwap_fortinet_mac_wid
;
434 static int hf_capwap_fortinet_mac_len
;
435 static int hf_capwap_fortinet_mac
;
436 static int hf_capwap_fortinet_wtp_allow_sn
;
437 static int hf_capwap_fortinet_wtp_allow_allow
;
438 static int hf_capwap_fortinet_wbh_sta_rid
;
439 static int hf_capwap_fortinet_wbh_sta_len
;
440 static int hf_capwap_fortinet_wbh_sta_mac
;
441 static int hf_capwap_fortinet_wbh_sta_bssid
;
442 static int hf_capwap_fortinet_wbh_sta_mhc
;
443 static int hf_capwap_fortinet_htcap_rid
;
444 static int hf_capwap_fortinet_htcap_mcs
;
445 static int hf_capwap_fortinet_htcap_gi
;
446 static int hf_capwap_fortinet_htcap_bw
;
447 static int hf_capwap_fortinet_mvap_sn_length
;
448 static int hf_capwap_fortinet_mvap_sn
;
449 static int hf_capwap_fortinet_mvap_unknown
;
450 static int hf_capwap_fortinet_mvap_age
;
451 static int hf_capwap_fortinet_mvap_period
;
452 static int hf_capwap_fortinet_mvap_vfid
;
453 static int hf_capwap_fortinet_mode_rid
;
454 static int hf_capwap_fortinet_mode
;
455 static int hf_capwap_fortinet_coext_rid
;
456 static int hf_capwap_fortinet_coext
;
457 static int hf_capwap_fortinet_amsdu_rid
;
458 static int hf_capwap_fortinet_amsdu
;
459 static int hf_capwap_fortinet_ps_opt_rid
;
460 static int hf_capwap_fortinet_ps_opt
;
461 static int hf_capwap_fortinet_pure_rid
;
462 static int hf_capwap_fortinet_pure
;
463 static int hf_capwap_fortinet_ebptag_ebp
;
464 static int hf_capwap_fortinet_ebptag_tag
;
465 static int hf_capwap_fortinet_telnet_enable
;
466 static int hf_capwap_fortinet_admin_passwd
;
467 static int hf_capwap_fortinet_regcode
;
468 static int hf_capwap_fortinet_countrycode_rid
;
469 static int hf_capwap_fortinet_countrycode_code
;
470 static int hf_capwap_fortinet_countrycode_string
;
471 static int hf_capwap_fortinet_sta_scan_rid
;
472 static int hf_capwap_fortinet_sta_scan
;
473 static int hf_capwap_fortinet_fho_rid
;
474 static int hf_capwap_fortinet_fho
;
475 static int hf_capwap_fortinet_apho_rid
;
476 static int hf_capwap_fortinet_apho
;
477 static int hf_capwap_fortinet_sta_locate_rid
;
478 static int hf_capwap_fortinet_sta_locate_enable
;
479 static int hf_capwap_fortinet_sta_locate_interval
;
480 static int hf_capwap_fortinet_sa_rid
;
481 static int hf_capwap_fortinet_sa_enable
;
482 static int hf_capwap_fortinet_sa_ssid
;
483 static int hf_capwap_fortinet_darrp_cfg_rid
;
484 static int hf_capwap_fortinet_darrp_cfg_enable
;
485 static int hf_capwap_fortinet_darrp_cfg_interval
;
486 static int hf_capwap_fortinet_ap_suppress_list_ver
;
487 static int hf_capwap_fortinet_ap_suppress_list_op
;
488 static int hf_capwap_fortinet_ap_suppress_list_rid
;
489 static int hf_capwap_fortinet_ap_suppress_list_len
;
490 static int hf_capwap_fortinet_wds_rid
;
491 static int hf_capwap_fortinet_wds_wid
;
492 static int hf_capwap_fortinet_wds_enable
;
493 static int hf_capwap_fortinet_vap_vlan_tag_rid
;
494 static int hf_capwap_fortinet_vap_vlan_tag_wid
;
495 static int hf_capwap_fortinet_vap_vlan_tag
;
496 static int hf_capwap_fortinet_vap_bitmap_rid
;
497 static int hf_capwap_fortinet_vap_bitmap
;
498 static int hf_capwap_fortinet_mcast_rate_rid
;
499 static int hf_capwap_fortinet_mcast_rate_wid
;
500 static int hf_capwap_fortinet_mcast_rate
;
501 static int hf_capwap_fortinet_cfg_rid
;
502 static int hf_capwap_fortinet_cfg_wid
;
503 static int hf_capwap_fortinet_cfg_ip
;
504 static int hf_capwap_fortinet_cfg_mask
;
505 static int hf_capwap_fortinet_split_tun_cfg_enable_local_subnet
;
506 static int hf_capwap_fortinet_split_tun_cfg_cnt
;
507 static int hf_capwap_fortinet_mgmt_vlan_id
;
508 static int hf_capwap_fortinet_vap_psk_passwd_rid
;
509 static int hf_capwap_fortinet_vap_psk_passwd_wid
;
510 static int hf_capwap_fortinet_vap_psk_passwd_key
;
511 static int hf_capwap_fortinet_mesh_eth_bridge_enable
;
512 static int hf_capwap_fortinet_mesh_eth_bridge_type
;
513 static int hf_capwap_fortinet_wtp_cap
;
514 static int hf_capwap_fortinet_txpwr_rid
;
515 static int hf_capwap_fortinet_txpwr
;
516 static int hf_capwap_fortinet_wids_enable_rid
;
517 static int hf_capwap_fortinet_wids_enable
;
518 static int hf_capwap_fortinet_unknown_rid
;
519 static int hf_capwap_fortinet_unknown_wid
;
520 static int hf_capwap_fortinet_unknown
;
522 static int hf_capwap_cisco_element_id
;
523 static int hf_capwap_cisco_value
;
524 static int hf_capwap_cisco_mwar_addr
;
525 static int hf_capwap_cisco_rad_name
;
526 static int hf_capwap_cisco_mwar_type
;
527 static int hf_capwap_cisco_mwar_hardware
;
528 static int hf_capwap_cisco_mwar_software
;
529 static int hf_capwap_cisco_mwar_active_ms
;
530 static int hf_capwap_cisco_mwar_supported_ms
;
531 static int hf_capwap_cisco_mwar_active_rad
;
532 static int hf_capwap_cisco_mwar_supported_rad
;
533 static int hf_capwap_cisco_ap_mode_and_type_mode
;
534 static int hf_capwap_cisco_ap_mode_and_type_type
;
535 static int hf_capwap_cisco_ap_static_ip_addr
;
536 static int hf_capwap_cisco_ap_static_ip_netmask
;
537 static int hf_capwap_cisco_ap_static_ip_gateway
;
538 static int hf_capwap_cisco_ap_static_ip_type
;
539 static int hf_capwap_cisco_ap_static_ip_reserved
;
540 static int hf_capwap_cisco_ap_uptime_current
;
541 static int hf_capwap_cisco_ap_uptime_last
;
542 static int hf_capwap_cisco_ap_group_name
;
543 static int hf_capwap_cisco_ap_led_state
;
544 static int hf_capwap_cisco_ap_timesync
;
545 static int hf_capwap_cisco_ap_timesync_type
;
546 static int hf_capwap_cisco_board_data_options_ant_type
;
547 static int hf_capwap_cisco_board_data_options_flex_connect
;
548 static int hf_capwap_cisco_board_data_options_ap_type
;
549 static int hf_capwap_cisco_board_data_options_join_priority
;
550 static int hf_capwap_cisco_unknown
;
552 static int hf_msg_fragments
;
553 static int hf_msg_fragment
;
554 static int hf_msg_fragment_overlap
;
555 static int hf_msg_fragment_overlap_conflicts
;
556 static int hf_msg_fragment_multiple_tails
;
557 static int hf_msg_fragment_too_long_fragment
;
558 static int hf_msg_fragment_error
;
559 static int hf_msg_fragment_count
;
560 static int hf_msg_reassembled_in
;
561 static int hf_msg_reassembled_length
;
563 static dissector_handle_t dtls_handle
;
564 static dissector_handle_t ieee8023_handle
;
565 static dissector_handle_t ieee80211_handle
;
566 static dissector_handle_t ieee80211_bsfc_handle
;
568 static int ett_capwap
;
569 static int ett_capwap_control
;
570 static int ett_capwap_data
;
571 static int ett_capwap_preamble
;
572 static int ett_capwap_header
;
573 static int ett_capwap_header_flags
;
574 static int ett_capwap_control_header
;
575 static int ett_capwap_control_header_msg
;
576 static int ett_capwap_data_keep_alive
;
577 static int ett_capwap_message_element
;
578 static int ett_capwap_data_message_bindings_ieee80211
;
579 static int ett_capwap_encryption_capabilities
;
580 static int ett_capwap_encryption_capability
;
581 static int ett_capwap_ac_information
;
582 static int ett_capwap_wtp_descriptor
;
583 static int ett_capwap_board_data
;
584 static int ett_capwap_message_element_type
;
585 static int ett_capwap_ac_descriptor_security_flags
;
586 static int ett_capwap_ac_descriptor_dtls_flags
;
587 static int ett_capwap_wtp_frame_tunnel_mode
;
588 static int ett_capwap_ieee80211_add_wlan_capability
;
589 static int ett_capwap_ieee80211_ie_flags
;
590 static int ett_capwap_ieee80211_update_wlan_capability
;
591 static int ett_capwap_ieee80211_station_capabilities
;
592 static int ett_capwap_ieee80211_ofdm_control_band_support
;
594 static int ett_msg_fragment
;
595 static int ett_msg_fragments
;
597 static expert_field ei_capwap_header_length_bad
;
598 static expert_field ei_capwap_data_keep_alive_length
;
599 static expert_field ei_capwap_msg_element_length
;
600 static expert_field ei_capwap_message_element_type
;
601 static expert_field ei_capwap_fortinet_mac_len
;
602 static expert_field ei_capwap_message_element_fortinet_type
;
603 static expert_field ei_capwap_message_element_cisco_type
;
605 static int * const ieee80211_ofdm_control_band_support_flags
[] = {
606 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit0
,
607 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit1
,
608 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit2
,
609 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit3
,
610 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit4
,
611 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit5
,
612 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit6
,
613 &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit7
,
617 static int * const ieee80211_ie_flags
[] = {
618 &hf_capwap_msg_element_type_ieee80211_ie_flags_b
,
619 &hf_capwap_msg_element_type_ieee80211_ie_flags_p
,
620 &hf_capwap_msg_element_type_ieee80211_ie_flags_rsv
,
624 static int * const capwap_ac_descriptor_security_flags
[] = {
625 &hf_capwap_msg_element_type_ac_descriptor_security_r
,
626 &hf_capwap_msg_element_type_ac_descriptor_security_s
,
627 &hf_capwap_msg_element_type_ac_descriptor_security_x
,
631 static int * const capwap_ac_descriptor_dtls_flags
[] = {
632 &hf_capwap_msg_element_type_ac_descriptor_dtls_policy_r
,
633 &hf_capwap_msg_element_type_ac_descriptor_dtls_policy_d
,
634 &hf_capwap_msg_element_type_ac_descriptor_dtls_policy_c
,
638 static int * const capwap_wtp_frame_tunnel_mode_flags
[] = {
639 &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_n
,
640 &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_e
,
641 &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_l
,
642 &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_r
,
646 static int * const ieee80211_add_wlan_capability_flags
[] = {
647 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_e
,
648 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_i
,
649 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_c
,
650 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_f
,
651 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_p
,
652 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_s
,
653 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_b
,
654 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_a
,
655 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_m
,
656 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_q
,
657 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_t
,
658 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_d
,
659 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_v
,
660 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_o
,
661 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_k
,
662 &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_l
,
666 static int * const ieee80211_station_capabilities_flags
[] ={
667 &hf_capwap_msg_element_type_ieee80211_station_capabilities_e
,
668 &hf_capwap_msg_element_type_ieee80211_station_capabilities_i
,
669 &hf_capwap_msg_element_type_ieee80211_station_capabilities_c
,
670 &hf_capwap_msg_element_type_ieee80211_station_capabilities_f
,
671 &hf_capwap_msg_element_type_ieee80211_station_capabilities_p
,
672 &hf_capwap_msg_element_type_ieee80211_station_capabilities_s
,
673 &hf_capwap_msg_element_type_ieee80211_station_capabilities_b
,
674 &hf_capwap_msg_element_type_ieee80211_station_capabilities_a
,
675 &hf_capwap_msg_element_type_ieee80211_station_capabilities_m
,
676 &hf_capwap_msg_element_type_ieee80211_station_capabilities_q
,
677 &hf_capwap_msg_element_type_ieee80211_station_capabilities_t
,
678 &hf_capwap_msg_element_type_ieee80211_station_capabilities_d
,
679 &hf_capwap_msg_element_type_ieee80211_station_capabilities_v
,
680 &hf_capwap_msg_element_type_ieee80211_station_capabilities_o
,
681 &hf_capwap_msg_element_type_ieee80211_station_capabilities_k
,
682 &hf_capwap_msg_element_type_ieee80211_station_capabilities_l
,
686 static int * const ieee80211_update_wlan_capability_flags
[] = {
687 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_e
,
688 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_i
,
689 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_c
,
690 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_f
,
691 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_p
,
692 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_s
,
693 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_b
,
694 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_a
,
695 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_m
,
696 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_q
,
697 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_t
,
698 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_d
,
699 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_v
,
700 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_o
,
701 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_k
,
702 &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_l
,
706 /* ************************************************************************* */
708 /* ************************************************************************* */
710 static const fragment_items capwap_frag_items
= {
711 /* Fragment subtrees */
714 /* Fragment fields */
717 &hf_msg_fragment_overlap
,
718 &hf_msg_fragment_overlap_conflicts
,
719 &hf_msg_fragment_multiple_tails
,
720 &hf_msg_fragment_too_long_fragment
,
721 &hf_msg_fragment_error
,
722 &hf_msg_fragment_count
,
723 /* Reassembled in field */
724 &hf_msg_reassembled_in
,
725 /* Reassembled length field */
726 &hf_msg_reassembled_length
,
727 /* Reassembled data field */
733 /* ************************************************************************* */
735 /* ************************************************************************* */
736 static const value_string type_header_vals
[] = {
737 { 0, "CAPWAP Header" },
738 { 1, "CAPWAP DTLS Header" },
741 /* ************************************************************************* */
742 /* Wireless Binding IDentifier (WBID) */
743 /* ************************************************************************* */
744 static const value_string type_wbid
[] = {
746 { 1, "IEEE 802.11" },
747 { 2, "IEEE 802.16" }, /* From old RFC Draft... */
751 /* ************************************************************************* */
752 /* flag Type Transported (payload) */
753 /* ************************************************************************* */
754 static const true_false_string flag_type_t
= {
755 "Native frame format (see Wireless Binding ID field)",
758 /* ************************************************************************* */
759 /* flag Type Fragment */
760 /* ************************************************************************* */
761 static const true_false_string flag_type_f
= {
765 /* ************************************************************************* */
766 /* flag Type Last Fragment */
767 /* ************************************************************************* */
768 static const true_false_string flag_type_l
= {
769 "This is the last fragment",
770 "More fragments follow"
772 /* ************************************************************************* */
773 /* flag Type Wireless */
774 /* ************************************************************************* */
775 static const true_false_string flag_type_w
= {
776 "Wireless Specific Information is present",
777 "No Wireless Specific Information"
779 /* ************************************************************************* */
780 /* flag Type Radio Mac */
781 /* ************************************************************************* */
782 static const true_false_string flag_type_m
= {
783 "Radio MAC Address is present",
784 "No Radio MAC Address"
786 /* ************************************************************************* */
787 /* flag Type Keep Alive */
788 /* ************************************************************************* */
789 static const true_false_string flag_type_k
= {
793 /* ************************************************************************* */
794 /* Message Type Value */
795 /* ************************************************************************* */
796 static const value_string message_type
[] = {
797 { 1, "Discovery Request" },
798 { 2, "Discovery Response" },
799 { 3, "Join Request" },
800 { 4, "Join Response" },
801 { 5, "Configuration Status Request" },
802 { 6, "Configuration Status Response" },
803 { 7, "Configuration Update Request" },
804 { 8, "Configuration Update Response" },
805 { 9, "WTP Event Request" },
806 { 10, "WTP Event Response" },
807 { 11, "Change State Request" },
808 { 12, "Change State Response" },
809 { 13, "Echo Request" },
810 { 14, "Echo Response" },
811 { 15, "Image Data Request" },
812 { 16, "Image Data Response" },
813 { 17, "Reset Request" },
814 { 18, "Reset Response" },
815 { 19, "Primary Discovery Request" },
816 { 20, "Primary Discovery Response" },
817 { 21, "Data Transfer Request" },
818 { 22, "Data Transfer Response" },
819 { 23, "Clear Configuration Request" },
820 { 24, "Clear Configuration Response" },
821 { 25, "Station Configuration Request" },
822 { 26, "Station Configuration Response" },
823 /* RFC5416 : Section 3 : IEEE 802.11 Specific CAPWAP Control Messages */
824 { 3398913, "IEEE 802.11 WLAN Configuration Request" },
825 { 3398914, "IEEE 802.11 WLAN Configuration Response" },
828 /* ************************************************************************* */
829 /* Message Element Type */
830 /* ************************************************************************* */
831 #define TYPE_AC_DESCRIPTOR 1
832 #define TYPE_AC_IPV4_LIST 2
833 #define TYPE_AC_IPV6_LIST 3
834 #define TYPE_AC_NAME 4
835 #define TYPE_AC_NAME_W_PRIORITY 5
836 #define TYPE_AC_TIMESTAMP 6
837 #define TYPE_ADD_MAC_ACL_ENTRY 7
838 #define TYPE_ADD_STATION 8
839 #define TYPE_RESERVED_9 9
840 #define TYPE_CAPWAP_CONTROL_IPV4_ADDRESS 10
841 #define TYPE_CAPWAP_CONTROL_IPV6_ADDRESS 11
842 #define TYPE_CAPWAP_TIMERS 12
843 #define TYPE_DATA_TRANSFER_DATA 13
844 #define TYPE_DATA_TRANSFER_MODE 14
845 #define TYPE_DESCRYPTION_ERROR_REPORT 15
846 #define TYPE_DECRYPTION_ERROR_REPORT_PERIOD 16
847 #define TYPE_DELETE_MAC_ENTRY 17
848 #define TYPE_DELETE_STATION 18
849 #define TYPE_RESERVED_19 19
850 #define TYPE_DISCOVERY_TYPE 20
851 #define TYPE_DUPLICATE_IPV4_ADDRESS 21
852 #define TYPE_DUPLICATE_IPV6_ADDRESS 22
853 #define TYPE_IDLE_TIMEOUT 23
854 #define TYPE_IMAGE_DATA 24
855 #define TYPE_IMAGE_IDENTIFIER 25
856 #define TYPE_IMAGE_INFORMATION 26
857 #define TYPE_INITIATE_DOWNLOAD 27
858 #define TYPE_LOCATION_DATA 28
859 #define TYPE_MAXIMUM_MESSAGE_LENGTH 29
860 #define TYPE_CAPWAP_LOCAL_IPV4_ADDRESS 30
861 #define TYPE_RADIO_ADMINISTRATIVE_STATE 31
862 #define TYPE_RADIO_OPERATIONAL_STATE 32
863 #define TYPE_RESULT_CODE 33
864 #define TYPE_RETURNED_MESSAGE_ELEMENT 34
865 #define TYPE_SESSION_ID 35
866 #define TYPE_STATISTICS_TIMER 36
867 #define TYPE_VENDOR_SPECIFIC_PAYLOAD 37
868 #define TYPE_WTP_BOARD_DATA 38
869 #define TYPE_WTP_DESCRIPTOR 39
870 #define TYPE_WTP_FALLBACK 40
871 #define TYPE_WTP_FRAME_TUNNEL_MODE 41
872 #define TYPE_RESERVED_42 42
873 #define TYPE_RESERVED_43 43
874 #define TYPE_WTP_MAC_TYPE 44
875 #define TYPE_WTP_NAME 45
876 #define TYPE_RESERVED_46 46
877 #define TYPE_WTP_RADIO_STATISTICS 47
878 #define TYPE_WTP_REBOOT_STATISTICS 48
879 #define TYPE_WTP_STATIC_IP_ADDRESS_INFORMATION 49
880 #define TYPE_CAPWAP_LOCAL_IPV6_ADDRESS 50
881 #define TYPE_CAPWAP_TRANSPORT_PROTOCOL 51
882 #define TYPE_MTU_DISCOVERY_PADDING 52
883 #define TYPE_ECN_SUPPORT 53
885 #define IEEE80211_ADD_WLAN 1024
886 #define IEEE80211_ANTENNA 1025
887 #define IEEE80211_ASSIGNED_WTP_BSSID 1026
888 #define IEEE80211_DELETE_WLAN 1027
889 #define IEEE80211_DIRECT_SEQUENCE_CONTROL 1028
890 #define IEEE80211_INFORMATION_ELEMENT 1029
891 #define IEEE80211_MAC_OPERATION 1030
892 #define IEEE80211_MIC_COUNTERMEASURES 1031
893 #define IEEE80211_MULTI_DOMAIN_CAPABILITY 1032
894 #define IEEE80211_OFDM_CONTROL 1033
895 #define IEEE80211_RATE_SET 1034
896 #define IEEE80211_RSNA_ERROR_REPORT_FROM_STATION 1035
897 #define IEEE80211_STATION 1036
898 #define IEEE80211_STATION_QOS_PROFILE 1037
899 #define IEEE80211_STATION_SESSION_KEY 1038
900 #define IEEE80211_STATISTICS 1039
901 #define IEEE80211_SUPPORTED_RATES 1040
902 #define IEEE80211_TX_POWER 1041
903 #define IEEE80211_TX_POWER_LEVEL 1042
904 #define IEEE80211_UPDATE_STATION_QOS 1043
905 #define IEEE80211_UPDATE_WLAN 1044
906 #define IEEE80211_WTP_QUALITY_OF_SERVICE 1045
907 #define IEEE80211_WTP_RADIO_CONFIGURATION 1046
908 #define IEEE80211_WTP_RADIO_FAIL_ALARM_INDICATION 1047
909 #define IEEE80211_WTP_RADIO_INFORMATION 1048
910 #define IEEE80211_SUPPORTED_MAC_PROFILES 1060
911 #define IEEE80211_MAC_PROFILE 1061
912 /* ************************************************************************* */
913 /* Message Element Type Value */
914 /* ************************************************************************* */
915 static const value_string message_element_type_vals
[] = {
916 { TYPE_AC_DESCRIPTOR
, "AC Descriptor" },
917 { TYPE_AC_IPV4_LIST
, "AC IPv4 List" },
918 { TYPE_AC_IPV6_LIST
, "AC IPv6 List" },
919 { TYPE_AC_NAME
, "AC Name" },
920 { TYPE_AC_NAME_W_PRIORITY
, "AC Name With Priority" },
921 { TYPE_AC_TIMESTAMP
, "AC Timestamp" },
922 { TYPE_ADD_MAC_ACL_ENTRY
, "Add MAC ACL Entry" },
923 { TYPE_ADD_STATION
, "Add Station" },
924 { TYPE_RESERVED_9
, "Reserved" },
925 { TYPE_CAPWAP_CONTROL_IPV4_ADDRESS
, "CAPWAP Control IPv4 Address" },
926 { TYPE_CAPWAP_CONTROL_IPV6_ADDRESS
, "CAPWAP Control IPv6 Address" },
927 { TYPE_CAPWAP_TIMERS
, "CAPWAP Timers" },
928 { TYPE_DATA_TRANSFER_DATA
, "Data Transfer Data" },
929 { TYPE_DATA_TRANSFER_MODE
, "Data Transfer Mode" },
930 { TYPE_DESCRYPTION_ERROR_REPORT
, "Decryption Error Report" },
931 { TYPE_DECRYPTION_ERROR_REPORT_PERIOD
, "Decryption Error Report Period" },
932 { TYPE_DELETE_MAC_ENTRY
, "Delete MAC ACL Entry" },
933 { TYPE_DELETE_STATION
, "Delete Station" },
934 { TYPE_RESERVED_19
, "Reserved" },
935 { TYPE_DISCOVERY_TYPE
, "Discovery Type" },
936 { TYPE_DUPLICATE_IPV4_ADDRESS
, "Duplicate IPv4 Address" },
937 { TYPE_DUPLICATE_IPV6_ADDRESS
, "Duplicate IPv6 Address" },
938 { TYPE_IDLE_TIMEOUT
, "Idle Timeout" },
939 { TYPE_IMAGE_DATA
, "Image Data" },
940 { TYPE_IMAGE_IDENTIFIER
, "Image Identifier" },
941 { TYPE_IMAGE_INFORMATION
, "Image Information" },
942 { TYPE_INITIATE_DOWNLOAD
, "Initiate Download" },
943 { TYPE_LOCATION_DATA
, "Location Data" },
944 { TYPE_MAXIMUM_MESSAGE_LENGTH
, "Maximum Message Length" },
945 { TYPE_CAPWAP_LOCAL_IPV4_ADDRESS
, "CAPWAP Local IPv4 Address" },
946 { TYPE_RADIO_ADMINISTRATIVE_STATE
, "Radio Administrative State " },
947 { TYPE_RADIO_OPERATIONAL_STATE
, "Radio Operational State" },
948 { TYPE_RESULT_CODE
, "Result Code" },
949 { TYPE_RETURNED_MESSAGE_ELEMENT
, "Returned Message Element" },
950 { TYPE_SESSION_ID
, "Session ID" },
951 { TYPE_STATISTICS_TIMER
, "Statistics Timer" },
952 { TYPE_VENDOR_SPECIFIC_PAYLOAD
, "Vendor Specific Payload" },
953 { TYPE_WTP_BOARD_DATA
, "WTP Board Data" },
954 { TYPE_WTP_DESCRIPTOR
, "WTP Descriptor" },
955 { TYPE_WTP_FALLBACK
, "WTP Fallback " },
956 { TYPE_WTP_FRAME_TUNNEL_MODE
, "WTP Frame Tunnel Mode " },
957 { TYPE_RESERVED_42
, "Reserved" },
958 { TYPE_RESERVED_43
, "Reserved" },
959 { TYPE_WTP_MAC_TYPE
, "WTP MAC Type" },
960 { TYPE_WTP_NAME
, "WTP Name" },
961 { TYPE_RESERVED_46
, "Unused/Reserved" },
962 { TYPE_WTP_RADIO_STATISTICS
, "WTP Radio Statistics" },
963 { TYPE_WTP_REBOOT_STATISTICS
, "WTP Reboot Statistics" },
964 { TYPE_WTP_STATIC_IP_ADDRESS_INFORMATION
, "WTP Static IP Address Information" },
965 { TYPE_CAPWAP_LOCAL_IPV6_ADDRESS
, "CAPWAP Local IPv6 Address" },
966 { TYPE_CAPWAP_TRANSPORT_PROTOCOL
, "CAPWAP Transport Protocol" },
967 { TYPE_MTU_DISCOVERY_PADDING
, "MTU Discovery Padding" },
968 { TYPE_ECN_SUPPORT
, "ECN Support" },
970 { IEEE80211_ADD_WLAN
, "IEEE 802.11 Add WLAN" },
971 { IEEE80211_ANTENNA
, "IEEE 802.11 Antenna" },
972 { IEEE80211_ASSIGNED_WTP_BSSID
, "IEEE 802.11 Assigned WTP BSSID" },
973 { IEEE80211_DELETE_WLAN
, "IEEE 802.11 Delete WLAN" },
974 { IEEE80211_DIRECT_SEQUENCE_CONTROL
, "IEEE 802.11 Direct Sequence Control" },
975 { IEEE80211_INFORMATION_ELEMENT
, "IEEE 802.11 Information Element" },
976 { IEEE80211_MAC_OPERATION
, "IEEE 802.11 MAC Operation" },
977 { IEEE80211_MIC_COUNTERMEASURES
, "IEEE 802.11 MIC Countermeasures" },
978 { IEEE80211_MULTI_DOMAIN_CAPABILITY
, "IEEE 802.11 Multi-Domain Capability" },
979 { IEEE80211_OFDM_CONTROL
, "IEEE 802.11 OFDM Control" },
980 { IEEE80211_RATE_SET
, "IEEE 802.11 Rate Set" },
981 { IEEE80211_RSNA_ERROR_REPORT_FROM_STATION
, "IEEE 802.11 RSNA Error Report From Station" },
982 { IEEE80211_STATION
, "IEEE 802.11 Station" },
983 { IEEE80211_STATION_QOS_PROFILE
, "IEEE 802.11 Station QoS Profile" },
984 { IEEE80211_STATION_SESSION_KEY
, "IEEE 802.11 Station Session Key" },
985 { IEEE80211_STATISTICS
, "IEEE 802.11 Statistics" },
986 { IEEE80211_SUPPORTED_RATES
, "IEEE 802.11 Supported Rates" },
987 { IEEE80211_TX_POWER
, "IEEE 802.11 Tx Power" },
988 { IEEE80211_TX_POWER_LEVEL
, "IEEE 802.11 Tx Power Level" },
989 { IEEE80211_UPDATE_STATION_QOS
, "IEEE 802.11 Update Station QoS" },
990 { IEEE80211_UPDATE_WLAN
, "IEEE 802.11 Update WLAN" },
991 { IEEE80211_WTP_QUALITY_OF_SERVICE
, "IEEE 802.11 WTP Quality of Service" },
992 { IEEE80211_WTP_RADIO_CONFIGURATION
, "IEEE 802.11 WTP Radio Configuration" },
993 { IEEE80211_WTP_RADIO_FAIL_ALARM_INDICATION
, "IEEE 802.11 WTP Radio Fail Alarm Indication" },
994 { IEEE80211_WTP_RADIO_INFORMATION
, "IEEE 802.11 WTP Radio Information" },
995 { IEEE80211_SUPPORTED_MAC_PROFILES
, "IEEE 802.11 Supported MAC Profiles" },
996 { IEEE80211_MAC_PROFILE
, "IEEE 802.11 MAC Profile" },
999 /* ************************************************************************* */
1000 /* Discovery Type */
1001 /* ************************************************************************* */
1002 static const value_string discovery_type_vals
[] = {
1004 { 1, "Static Configuration" },
1007 { 4, "AC Referral" },
1010 /* ************************************************************************* */
1011 /* Radio Administrative State */
1012 /* ************************************************************************* */
1013 static const value_string radio_admin_state_vals
[] = {
1018 /* ************************************************************************* */
1019 /* Radio Operational State */
1020 /* ************************************************************************* */
1021 static const value_string radio_op_state_vals
[] = {
1027 /* ************************************************************************* */
1028 /* Radio Operational Cause */
1029 /* ************************************************************************* */
1030 static const value_string radio_op_cause_vals
[] = {
1032 { 1, "Radio Failure" },
1033 { 2, "Software Failure" },
1034 { 3, "Administratively Set" },
1037 /* ************************************************************************* */
1039 /* ************************************************************************* */
1040 static const value_string result_code_vals
[] = {
1042 { 1 , "Failure (AC List Message Element MUST Be Present)" },
1043 { 2 , "Success (NAT Detected)" },
1044 { 3 , "Join Failure (Unspecified)" },
1045 { 4 , "Join Failure (Resource Depletion)" },
1046 { 5 , "Join Failure (Unknown Source)" },
1047 { 6 , "Join Failure (Incorrect Data)" },
1048 { 7 , "Join Failure (Session ID Already in Use)" },
1049 { 8 , "Join Failure (WTP Hardware Not Supported)" },
1050 { 9 , "Join Failure (Binding Not Supported)" },
1051 { 10, "Reset Failure (Unable to Reset)" },
1052 { 11, "Reset Failure (Firmware Write Error)" },
1053 { 12, "Configuration Failure (Unable to Apply Requested Configuration - Service Provided Anyhow)" },
1054 { 13, "Configuration Failure (Unable to Apply Requested Configuration - Service Not Provided)" },
1055 { 14, "Image Data Error (Invalid Checksum)" },
1056 { 15, "Image Data Error (Invalid Data Length)" },
1057 { 16, "Image Data Error (Other Error)" },
1058 { 17, "Image Data Error (Image Already Present)" },
1059 { 18, "Message Unexpected (Invalid in Current State)" },
1060 { 19, "Message Unexpected (Unrecognized Request)" },
1061 { 20, "Failure - Missing Mandatory Message Element" },
1062 { 21, "Failure - Unrecognized Message Element" },
1063 { 22, "Data Transfer Error (No Information to Transfer)" },
1066 /* ************************************************************************* */
1067 /* Radio MAC Address Field */
1068 /* ************************************************************************* */
1069 static const value_string rmac_field_vals
[] = {
1072 { 2, "Not Supported" },
1075 /* ************************************************************************* */
1076 /* Board Data Type Value */
1077 /* ************************************************************************* */
1078 #define BOARD_DATA_WTP_MODEL_NUMBER 0
1079 #define BOARD_DATA_WTP_SERIAL_NUMBER 1
1080 #define BOARD_DATA_BOARD_ID 2
1081 #define BOARD_DATA_BOARD_REVISION 3
1082 #define BOARD_DATA_BASE_MAC_ADDRESS 4
1084 static const value_string board_data_type_vals
[] = {
1085 { BOARD_DATA_WTP_MODEL_NUMBER
, "WTP Model Number" },
1086 { BOARD_DATA_WTP_SERIAL_NUMBER
, "WTP Serial Number" },
1087 { BOARD_DATA_BOARD_ID
, "Board ID" },
1088 { BOARD_DATA_BOARD_REVISION
, "Board Revision" },
1089 { BOARD_DATA_BASE_MAC_ADDRESS
, "Base MAC Address" },
1092 /* ************************************************************************* */
1093 /* Descriptor WTP Type Value */
1094 /* ************************************************************************* */
1095 #define WTP_DESCRIPTOR_HARDWARE_VERSION 0
1096 #define WTP_DESCRIPTOR_ACTIVE_SOFTWARE_VERSION 1
1097 #define WTP_DESCRIPTOR_BOOT_VERSION 2
1098 #define WTP_DESCRIPTOR_OTHER_SOFTWARE_VERSION 3
1100 static const value_string wtp_descriptor_type_vals
[] = {
1101 { WTP_DESCRIPTOR_HARDWARE_VERSION
, "WTP Hardware Version" },
1102 { WTP_DESCRIPTOR_ACTIVE_SOFTWARE_VERSION
, "WTP Active Software Version" },
1103 { WTP_DESCRIPTOR_BOOT_VERSION
, "WTP Boot Version" },
1104 { WTP_DESCRIPTOR_OTHER_SOFTWARE_VERSION
, "WTP Other Software Version" },
1107 /* ************************************************************************* */
1108 /* AC Information Type Value */
1109 /* ************************************************************************* */
1110 #define AC_INFORMATION_HARDWARE_VERSION 4
1111 #define AC_INFORMATION_SOFTWARE_VERSION 5
1113 static const value_string ac_information_type_vals
[] = {
1114 { AC_INFORMATION_HARDWARE_VERSION
, "AC Hardware Version" },
1115 { AC_INFORMATION_SOFTWARE_VERSION
, "AC Software Version" },
1118 /* ************************************************************************* */
1120 /* ************************************************************************* */
1121 static const value_string wtp_mac_vals
[] = {
1124 { 2, "Both (Local and Split MAC)" },
1127 /* ************************************************************************* */
1129 /* ************************************************************************* */
1130 static const value_string wtp_fallback_vals
[] = {
1136 /* ************************************************************************* */
1137 /* Last Failure Type */
1138 /* ************************************************************************* */
1139 static const value_string last_failure_type_vals
[] = {
1140 { 0, "Not Supported" },
1141 { 1, "AC Initiated" },
1142 { 2, "Link Failure" },
1143 { 3, "Software Failure" },
1144 { 4, "Hardware Failure" },
1145 { 5, "Other Failure" },
1146 { 255, "Unknown (e.g., WTP doesn't keep track of info)" },
1150 /* ************************************************************************* */
1151 /* CAPWAP Transport Protocol */
1152 /* ************************************************************************* */
1153 static const value_string capwap_transport_protocol_vals
[] = {
1159 /* ************************************************************************* */
1161 /* ************************************************************************* */
1162 static const value_string ecn_support_vals
[] = {
1163 { 0, "Limited ECN Support" },
1164 { 1, "Full and Limited ECN Support" },
1168 /* ************************************************************************* */
1169 /* Add/Update WLAN : Key Status */
1170 /* ************************************************************************* */
1171 static const value_string ieee80211_wlan_key_status_vals
[] = {
1172 { 0, "SN Information Element means that the WLAN uses per-station encryption keys" },
1173 { 1, "static WEP Key" },
1174 { 2, "Rekeying the GTK with the STA's in the BSS" },
1175 { 3, "Rekeying the GTK and broadcast" },
1179 /* ************************************************************************* */
1180 /* Add WLAN : QoS */
1181 /* ************************************************************************* */
1182 static const value_string ieee80211_add_wlan_qos_vals
[] = {
1183 { 0, "Best Effort" },
1186 { 3, "Background" },
1190 /* ************************************************************************* */
1191 /* Add WLAN : Auth Type */
1192 /* ************************************************************************* */
1193 static const value_string ieee80211_add_wlan_auth_type_vals
[] = {
1194 { 0, "Open System" },
1195 { 1, "WEP Shared Key" },
1199 /* ************************************************************************* */
1200 /* Add WLAN : MAC Mode */
1201 /* ************************************************************************* */
1202 static const value_string ieee80211_add_wlan_mac_mode_vals
[] = {
1208 /* ************************************************************************* */
1209 /* Add WLAN : Tunnel Mode */
1210 /* ************************************************************************* */
1211 static const value_string ieee80211_add_wlan_tunnel_mode_vals
[] = {
1212 { 0, "Local Bridging" },
1213 { 1, "802.3 Tunnel" },
1214 { 2, "802.11 Tunnel" },
1218 /* ************************************************************************* */
1219 /* IEE8011 Antenna */
1220 /* ************************************************************************* */
1221 static const value_string ieee80211_antenna_diversity_vals
[] = {
1227 static const value_string ieee80211_antenna_combiner_vals
[] = {
1228 { 1, "Sectorized (Left)" },
1229 { 2, "Sectorized (Right)" },
1231 { 4, "Multiple Input/Multiple Output (MIMO)" },
1235 static const value_string ieee80211_antenna_selection_vals
[] = {
1236 { 1, "Internal Antenna" },
1237 { 2, "External Antenna" },
1240 /* ************************************************************************* */
1241 /* IEE8011 MAC Profile */
1242 /* ************************************************************************* */
1243 static const value_string ieee80211_mac_profile_vals
[] = {
1244 { 0, "Split MAC with WTP encryption" },
1245 { 1, "Split MAC with AC encryption" },
1250 dissect_capwap_data_message_bindings_ieee80211(tvbuff_t
*tvb
, proto_tree
*data_message_binding_tree
, unsigned offset
, packet_info
*pinfo
)
1252 proto_item
*data_message_binding_item
, *ti
;
1253 proto_tree
*sub_data_message_binding_tree
;
1255 if (value_is_in_range(global_capwap_data_udp_ports
, pinfo
->destport
))
1258 /* (WTP -> AC) IEEE 802.11 Frame Info */
1259 data_message_binding_item
= proto_tree_add_item(data_message_binding_tree
, hf_capwap_header_wireless_data_ieee80211_fi
, tvb
, offset
, 4, ENC_NA
);
1260 sub_data_message_binding_tree
= proto_item_add_subtree(data_message_binding_item
, ett_capwap_data_message_bindings_ieee80211
);
1262 proto_tree_add_item(sub_data_message_binding_tree
, hf_capwap_header_wireless_data_ieee80211_fi_rssi
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1264 proto_tree_add_item(sub_data_message_binding_tree
, hf_capwap_header_wireless_data_ieee80211_fi_snr
, tvb
, offset
+1, 1, ENC_BIG_ENDIAN
);
1266 ti
= proto_tree_add_item(sub_data_message_binding_tree
, hf_capwap_header_wireless_data_ieee80211_fi_data_rate
, tvb
, offset
+2, 2, ENC_BIG_ENDIAN
);
1267 data_rate
= tvb_get_ntohs(tvb
, offset
+2);
1268 proto_item_append_text(ti
, " (%.1f Mb/s)", ((float)data_rate
/ 10));
1272 /* (AC -> WTP) IEEE 802.11 Destination Wlans */
1273 data_message_binding_item
= proto_tree_add_item(data_message_binding_tree
, hf_capwap_header_wireless_data_ieee80211_dest_wlan
,tvb
, offset
, 4, ENC_NA
);
1274 sub_data_message_binding_tree
= proto_item_add_subtree(data_message_binding_item
, ett_capwap_data_message_bindings_ieee80211
);
1276 proto_tree_add_item(sub_data_message_binding_tree
, hf_capwap_header_wireless_data_ieee80211_dw_wlan_id_bitmap
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1278 proto_tree_add_item(sub_data_message_binding_tree
, hf_capwap_header_wireless_data_ieee80211_dw_reserved
, tvb
, offset
+2, 2, ENC_BIG_ENDIAN
);
1283 dissect_capwap_encryption_capabilities(tvbuff_t
*tvb
, proto_tree
*encryption_capabilities_tree
, unsigned offset
)
1285 proto_item
*encryption_capabilities_item
;
1286 proto_tree
*sub_encryption_capabilities_tree
;
1288 encryption_capabilities_item
= proto_tree_add_item(encryption_capabilities_tree
, hf_capwap_msg_element_type_wtp_descriptor_encrypt
, tvb
, offset
, 3, ENC_NA
);
1289 sub_encryption_capabilities_tree
= proto_item_add_subtree(encryption_capabilities_item
, ett_capwap_encryption_capability
);
1291 proto_tree_add_item(sub_encryption_capabilities_tree
, hf_capwap_msg_element_type_wtp_descriptor_encrypt_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1293 proto_tree_add_item (sub_encryption_capabilities_tree
, hf_capwap_msg_element_type_wtp_descriptor_encrypt_wbid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1294 proto_item_append_text(encryption_capabilities_item
, ": (WBID %d)",tvb_get_uint8(tvb
, offset
) & 0x1F);
1297 proto_tree_add_item(sub_encryption_capabilities_tree
, hf_capwap_msg_element_type_wtp_descriptor_encrypt_capabilities
, tvb
, offset
+1, 2, ENC_BIG_ENDIAN
);
1298 proto_item_append_text(encryption_capabilities_item
, " %d",tvb_get_ntohs(tvb
, offset
+1));
1302 /* Returns the number of bytes consumed by this option. */
1304 dissect_capwap_ac_information(tvbuff_t
*tvb
, proto_tree
*ac_information_type_tree
, unsigned offset
)
1306 unsigned optlen
,ac_information_type
= 0;
1307 proto_item
*ac_information_type_item
;
1308 proto_tree
*sub_ac_information_type_tree
;
1310 ac_information_type
= tvb_get_ntohs(tvb
, offset
+4);
1311 optlen
= tvb_get_ntohs(tvb
, offset
+6);
1312 ac_information_type_item
= proto_tree_add_item(ac_information_type_tree
, hf_capwap_msg_element_type_ac_information
, tvb
, offset
, 4+2+2+optlen
, ENC_NA
);
1314 proto_item_append_text(ac_information_type_item
,": (t=%d,l=%d) %s", ac_information_type
, optlen
, val_to_str(ac_information_type
,ac_information_type_vals
,"Unknown AC Information Type (%02d)") );
1316 sub_ac_information_type_tree
= proto_item_add_subtree(ac_information_type_item
, ett_capwap_ac_information
);
1318 proto_tree_add_item(sub_ac_information_type_tree
, hf_capwap_msg_element_type_ac_information_vendor
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1320 proto_tree_add_item(sub_ac_information_type_tree
, hf_capwap_msg_element_type_ac_information_type
, tvb
, offset
+4, 2, ENC_BIG_ENDIAN
);
1322 proto_tree_add_item(sub_ac_information_type_tree
, hf_capwap_msg_element_type_ac_information_length
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
1324 proto_tree_add_item(sub_ac_information_type_tree
, hf_capwap_msg_element_type_ac_information_value
, tvb
, offset
+8, optlen
, ENC_NA
);
1326 switch (ac_information_type
) {
1327 case AC_INFORMATION_HARDWARE_VERSION
:
1328 proto_tree_add_item(sub_ac_information_type_tree
, hf_capwap_msg_element_type_ac_information_hardware_version
, tvb
, offset
+8, optlen
, ENC_ASCII
);
1331 case AC_INFORMATION_SOFTWARE_VERSION
:
1332 proto_tree_add_item(sub_ac_information_type_tree
, hf_capwap_msg_element_type_ac_information_software_version
, tvb
, offset
+8, optlen
, ENC_ASCII
);
1336 /* No Default Action */
1339 return 4+2+2+optlen
;
1342 /* Returns the number of bytes consumed by this option. */
1344 dissect_capwap_wtp_descriptor(tvbuff_t
*tvb
, proto_tree
*wtp_descriptor_type_tree
, unsigned offset
)
1346 unsigned optlen
,wtp_descriptor_type
= 0;
1347 proto_item
*wtp_descriptor_type_item
;
1348 proto_tree
*sub_wtp_descriptor_type_tree
;
1350 wtp_descriptor_type
= tvb_get_ntohs(tvb
, offset
+4);
1351 optlen
= tvb_get_ntohs(tvb
, offset
+6);
1352 wtp_descriptor_type_item
= proto_tree_add_item(wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor
, tvb
, offset
, 4+2+2+optlen
, ENC_NA
);
1354 proto_item_append_text(wtp_descriptor_type_item
, ": (t=%d,l=%d) %s", wtp_descriptor_type
, optlen
, val_to_str(wtp_descriptor_type
,wtp_descriptor_type_vals
,"Unknown WTP Descriptor Type (%02d)") );
1356 sub_wtp_descriptor_type_tree
= proto_item_add_subtree(wtp_descriptor_type_item
, ett_capwap_wtp_descriptor
);
1358 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_vendor
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1360 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_type
, tvb
, offset
+4, 2, ENC_BIG_ENDIAN
);
1362 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_length
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
1364 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_value
, tvb
, offset
+8, optlen
, ENC_NA
);
1366 switch (wtp_descriptor_type
) {
1367 case WTP_DESCRIPTOR_HARDWARE_VERSION
:
1368 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_hardware_version
, tvb
, offset
+8, optlen
, ENC_ASCII
);
1371 case WTP_DESCRIPTOR_ACTIVE_SOFTWARE_VERSION
:
1372 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_active_software_version
, tvb
, offset
+8, optlen
, ENC_ASCII
);
1375 case WTP_DESCRIPTOR_BOOT_VERSION
:
1376 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_boot_version
, tvb
, offset
+8, optlen
, ENC_ASCII
);
1379 case WTP_DESCRIPTOR_OTHER_SOFTWARE_VERSION
:
1380 proto_tree_add_item(sub_wtp_descriptor_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_other_software_version
, tvb
, offset
+8, optlen
, ENC_ASCII
);
1384 /* No Default Action */
1388 return 4+2+2+optlen
;
1391 /* Returns the number of bytes consumed by this option. */
1393 dissect_capwap_board_data(tvbuff_t
*tvb
, proto_tree
*board_data_type_tree
, unsigned offset
)
1395 unsigned optlen
,board_data_type
= 0;
1396 proto_item
*board_data_type_item
;
1397 proto_tree
*sub_board_data_type_tree
;
1399 board_data_type
= tvb_get_ntohs(tvb
, offset
);
1400 optlen
= tvb_get_ntohs(tvb
, offset
+2);
1401 board_data_type_item
= proto_tree_add_item(board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data
, tvb
, offset
, 2+2+optlen
, ENC_NA
);
1403 proto_item_append_text(board_data_type_item
, ": (t=%d,l=%d) %s", board_data_type
, optlen
, val_to_str(board_data_type
,board_data_type_vals
,"Unknown Board Data Type (%02d)") );
1405 sub_board_data_type_tree
= proto_item_add_subtree(board_data_type_item
, ett_capwap_board_data
);
1407 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_type
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1409 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_length
, tvb
, offset
+2, 2, ENC_BIG_ENDIAN
);
1411 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_value
, tvb
, offset
+4, optlen
, ENC_NA
);
1412 switch (board_data_type
) {
1413 case BOARD_DATA_WTP_MODEL_NUMBER
:
1414 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_wtp_model_number
, tvb
, offset
+4, optlen
, ENC_ASCII
);
1417 case BOARD_DATA_WTP_SERIAL_NUMBER
:
1418 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_wtp_serial_number
, tvb
, offset
+4, optlen
, ENC_ASCII
);
1421 case BOARD_DATA_BOARD_ID
:
1422 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_wtp_board_id
, tvb
, offset
+4, optlen
, ENC_ASCII
);
1425 case BOARD_DATA_BOARD_REVISION
:
1426 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_wtp_board_revision
, tvb
, offset
+4, optlen
, ENC_ASCII
);
1429 case BOARD_DATA_BASE_MAC_ADDRESS
:
1430 proto_tree_add_item(sub_board_data_type_tree
, hf_capwap_msg_element_type_wtp_board_data_base_mac_address
, tvb
, offset
+4, 6, ENC_NA
);
1434 /* No Default Action */
1441 /* From FortiAP/WiFI 5.2.0
1445 #define VSP_FORTINET_AP_SCAN 16
1446 #define VSP_FORTINET_PASSIVE 24
1447 #define VSP_FORTINET_DAEMON_RST 32
1448 #define VSP_FORTINET_MAC 33
1449 #define VSP_FORTINET_WTP_ALLOW 34
1450 #define VSP_FORTINET_WBH_STA 36
1451 #define VSP_FORTINET_HTCAP 49
1452 #define VSP_FORTINET_MGMT_VAP 50 /* MVAP */
1453 #define VSP_FORTINET_MODE 51
1454 #define VSP_FORTINET_COEXT 52
1455 #define VSP_FORTINET_AMSDU 53
1456 #define VSP_FORTINET_PS_OPT 54
1457 #define VSP_FORTINET_PURE 55
1458 #define VSP_FORTINET_EBP_TAG 56 /* ?? */
1459 #define VSP_FORTINET_TELNET_ENABLE 81
1460 #define VSP_FORTINET_ADMIN_PASSWD 82
1461 #define VSP_FORTINET_REGCODE 83
1462 #define VSP_FORTINET_COUNTRYCODE 84
1463 #define VSP_FORTINET_STA_SCAN 99
1464 #define VSP_FORTINET_FHO 103
1465 #define VSP_FORTINET_APHO 104
1466 #define VSP_FORTINET_STA_LOCATE 106
1467 #define VSP_FORTINET_SPECTRUM_ANALYSIS 108
1468 #define VSP_FORTINET_DARRP_CFG 112
1469 #define VSP_FORTINET_AP_SUPPRESS_LIST 128
1470 #define VSP_FORTINET_WDS 145
1471 #define VSP_FORTINET_VAP_VLAN_TAG 147
1472 #define VSP_FORTINET_VAP_BITMAP 148
1473 #define VSP_FORTINET_MCAST_RATE 149
1474 #define VSP_FORTINET_CFG 150
1475 #define VSP_FORTINET_SPLIT_TUN_CFG 151
1476 #define VSP_FORTINET_MGMT_VLAN_TAG 161
1477 #define VSP_FORTINET_VAP_PSK_PASSWD 167
1478 #define VSP_FORTINET_MESH_ETH_BRIDGE_ENABLE 176
1479 #define VSP_FORTINET_MESH_ETH_BRIDGE_TYPE 177
1480 #define VSP_FORTINET_WTP_CAP 192
1481 #define VSP_FORTINET_TXPWR 193
1482 #define VSP_FORTINET_WIDS_ENABLE 209
1484 static const value_string fortinet_element_id_vals
[] = {
1485 { VSP_FORTINET_AP_SCAN
, "AP Scan" },
1486 { VSP_FORTINET_DAEMON_RST
, "Daemon Reset" },
1487 { VSP_FORTINET_MAC
, "MAC" },
1488 { VSP_FORTINET_PASSIVE
, "Passive" },
1489 { VSP_FORTINET_WTP_ALLOW
, "WTP Allow" },
1490 { VSP_FORTINET_WBH_STA
, "Mesh WBH STA" },
1491 { VSP_FORTINET_HTCAP
, "HT Capabilities" },
1492 { VSP_FORTINET_MGMT_VAP
, "Management VAP" },
1493 { VSP_FORTINET_MODE
, "Mode" },
1494 { VSP_FORTINET_COEXT
, "Coext" },
1495 { VSP_FORTINET_AMSDU
, "AMSDU" },
1496 { VSP_FORTINET_PS_OPT
, "PS OPT" },
1497 { VSP_FORTINET_PURE
, "Pure" },
1498 { VSP_FORTINET_EBP_TAG
, "EBP Tag" },
1499 { VSP_FORTINET_TELNET_ENABLE
, "Telnet Enable" },
1500 { VSP_FORTINET_ADMIN_PASSWD
, "Admin Password" },
1501 { VSP_FORTINET_REGCODE
, "Reg Code" },
1502 { VSP_FORTINET_COUNTRYCODE
, "Country Code" },
1503 { VSP_FORTINET_STA_SCAN
, "STA Scan" },
1504 { VSP_FORTINET_FHO
, "FHO" },
1505 { VSP_FORTINET_APHO
, "APHO" },
1506 { VSP_FORTINET_STA_LOCATE
, "STA Locate" },
1507 { VSP_FORTINET_SPECTRUM_ANALYSIS
, "Spectrum Analysis" },
1508 { VSP_FORTINET_DARRP_CFG
, "DARRP Configuration" },
1509 { VSP_FORTINET_AP_SUPPRESS_LIST
, "AP Suppress List" },
1510 { VSP_FORTINET_WDS
, "WDS" },
1511 { VSP_FORTINET_VAP_VLAN_TAG
, "VAP Vlan" },
1512 { VSP_FORTINET_VAP_BITMAP
, "VAP Bitmap" },
1513 { VSP_FORTINET_MCAST_RATE
, "Multicast Rate" },
1514 { VSP_FORTINET_CFG
, "Configuration" },
1515 { VSP_FORTINET_SPLIT_TUN_CFG
, "Split Tunnel Configuration" },
1516 { VSP_FORTINET_MGMT_VLAN_TAG
, "Management Vlan" },
1517 { VSP_FORTINET_VAP_PSK_PASSWD
, "VAP PSK Password" },
1518 { VSP_FORTINET_MESH_ETH_BRIDGE_ENABLE
, "Mesh Eth Bridge Enable" },
1519 { VSP_FORTINET_MESH_ETH_BRIDGE_TYPE
, "Mesh Eth Bridge Type" },
1520 { VSP_FORTINET_WTP_CAP
, "WTP Capabilities" },
1521 { VSP_FORTINET_TXPWR
, "Tx Power" },
1522 { VSP_FORTINET_WIDS_ENABLE
, "WIDS Enable" },
1528 dissect_capwap_message_element_vendor_fortinet_type(tvbuff_t
*tvb
, proto_tree
*sub_msg_element_type_tree
, unsigned offset
, packet_info
*pinfo
, unsigned optlen
, proto_item
*msg_element_type_item
)
1530 unsigned element_id
, i
;
1532 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_element_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1533 element_id
= tvb_get_ntohs(tvb
, offset
);
1534 proto_item_append_text(msg_element_type_item
, ": Fortinet %s", val_to_str(element_id
, fortinet_element_id_vals
,"Unknown Vendor Specific Element Type (%02d)") );
1537 /* Remove length and element id to optlen */
1539 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_value
, tvb
, offset
, optlen
, ENC_NA
);
1542 case VSP_FORTINET_AP_SCAN
: /* 16 */
1543 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_scan_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1545 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_scan_bgscan_intv
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1547 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_scan_bgscan_idle
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
1549 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_scan_bgscan_rpt_intv
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1551 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_scan_fgscan_rpt_intv
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1554 case VSP_FORTINET_PASSIVE
: /* 24 */
1555 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_passive_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1557 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_passive
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1560 case VSP_FORTINET_DAEMON_RST
: /* 32 */
1561 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_daemon_rst
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1564 case VSP_FORTINET_MAC
:{ /* 33 */
1565 unsigned mac_length
;
1567 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mac_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1569 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mac_wid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1571 ti
=proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mac_len
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1572 mac_length
= tvb_get_uint8(tvb
, offset
);
1574 if(mac_length
%6 != 0)
1576 expert_add_info(pinfo
, ti
, &ei_capwap_fortinet_mac_len
);
1579 for(i
= 0; i
< mac_length
/6; i
++){
1580 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mac
, tvb
, offset
, 6, ENC_NA
);
1585 case VSP_FORTINET_WTP_ALLOW
: /* 34 */
1586 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wtp_allow_sn
, tvb
, offset
, optlen
-1, ENC_ASCII
);
1587 offset
+= optlen
- 1;
1588 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wtp_allow_allow
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1591 case VSP_FORTINET_WBH_STA
:{ /* 36 */
1592 unsigned mac_length
;
1595 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wbh_sta_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1597 ti
= proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wbh_sta_len
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1598 mac_length
= tvb_get_uint8(tvb
, offset
);
1600 if(mac_length
%6 != 0)
1602 expert_add_info(pinfo
, ti
, &ei_capwap_fortinet_mac_len
);
1605 for(i
= 0; i
< mac_length
/6; i
++){
1606 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wbh_sta_mac
, tvb
, offset
, 6, ENC_NA
);
1609 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wbh_sta_bssid
, tvb
, offset
, 6, ENC_NA
);
1611 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wbh_sta_mhc
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1615 case VSP_FORTINET_HTCAP
: /* 49 */
1616 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_htcap_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1618 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_htcap_mcs
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1620 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_htcap_gi
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1622 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_htcap_bw
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1625 case VSP_FORTINET_MGMT_VAP
:{ /* 50 */
1627 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mvap_sn_length
, tvb
, offset
, 2, ENC_NA
);
1628 sn_length
= tvb_get_ntohs(tvb
, offset
);
1630 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mvap_sn
, tvb
, offset
, sn_length
, ENC_ASCII
);
1631 offset
+= sn_length
;
1632 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mvap_unknown
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1634 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mvap_unknown
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1636 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mvap_age
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1638 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mvap_period
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1640 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mvap_vfid
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1644 case VSP_FORTINET_MODE
: /* 51 */
1645 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mode_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1647 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mode
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1650 case VSP_FORTINET_COEXT
: /* 52 */
1651 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_coext_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1653 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_coext
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1656 case VSP_FORTINET_AMSDU
: /* 53 */
1657 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_amsdu_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1659 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_amsdu
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1662 case VSP_FORTINET_PS_OPT
: /* 54 */
1663 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ps_opt_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1665 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ps_opt
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1668 case VSP_FORTINET_PURE
: /* 55 */
1669 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_pure_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1671 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_pure
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1674 case VSP_FORTINET_EBP_TAG
: /* 56 */
1675 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ebptag_ebp
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1677 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ebptag_tag
, tvb
, offset
, 6, ENC_NA
);
1680 case VSP_FORTINET_TELNET_ENABLE
: /* 81 */
1681 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_telnet_enable
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1684 case VSP_FORTINET_ADMIN_PASSWD
: /* 82 */
1685 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_admin_passwd
, tvb
, offset
, optlen
, ENC_ASCII
);
1688 case VSP_FORTINET_REGCODE
: /* 83 */
1689 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_regcode
, tvb
, offset
, 3, ENC_ASCII
);
1692 case VSP_FORTINET_COUNTRYCODE
: /* 84 */
1693 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_countrycode_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1695 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_countrycode_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1697 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_countrycode_string
, tvb
, offset
, 3, ENC_ASCII
);
1700 case VSP_FORTINET_STA_SCAN
: /* 99 */
1701 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sta_scan_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1703 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sta_scan
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1706 case VSP_FORTINET_FHO
: /* 103 */
1707 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_fho_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1709 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_fho
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1712 case VSP_FORTINET_APHO
: /* 104 */
1713 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_apho_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1715 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_apho
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1718 case VSP_FORTINET_STA_LOCATE
: /* 106 */
1719 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sta_locate_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1721 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sta_locate_enable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1723 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sta_locate_interval
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1726 case VSP_FORTINET_SPECTRUM_ANALYSIS
: /* 108 */
1727 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sa_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1730 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sa_enable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1733 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_sa_ssid
, tvb
, offset
, optlen
, ENC_ASCII
);
1736 case VSP_FORTINET_DARRP_CFG
: /* 112 */
1737 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_darrp_cfg_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1739 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_darrp_cfg_enable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1741 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_darrp_cfg_interval
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1744 case VSP_FORTINET_AP_SUPPRESS_LIST
: /* 128 */
1745 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_suppress_list_ver
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1747 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_suppress_list_op
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1749 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_suppress_list_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1751 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_ap_suppress_list_len
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1754 case VSP_FORTINET_WDS
: /* 145 */
1755 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wds_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1757 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wds_wid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1759 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wds_enable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1762 case VSP_FORTINET_VAP_VLAN_TAG
: /* 147 */
1763 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_vlan_tag_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1765 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_vlan_tag_wid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1766 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_vlan_tag
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1769 case VSP_FORTINET_VAP_BITMAP
: /* 148 */
1770 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_bitmap_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1772 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_bitmap
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1775 case VSP_FORTINET_MCAST_RATE
: /* 149 */
1776 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mcast_rate_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1778 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mcast_rate_wid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1780 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mcast_rate
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1783 case VSP_FORTINET_CFG
: /* 150 */
1784 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_cfg_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1786 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_cfg_wid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1788 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_cfg_ip
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1790 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_cfg_mask
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1793 case VSP_FORTINET_SPLIT_TUN_CFG
: /* 151 */
1794 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_split_tun_cfg_enable_local_subnet
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1796 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_split_tun_cfg_cnt
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1799 case VSP_FORTINET_MGMT_VLAN_TAG
: /* 161 */
1800 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mgmt_vlan_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1803 case VSP_FORTINET_VAP_PSK_PASSWD
: /* 167 */
1804 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_psk_passwd_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1807 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_psk_passwd_wid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1810 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_vap_psk_passwd_key
, tvb
, offset
, optlen
, ENC_ASCII
);
1813 case VSP_FORTINET_MESH_ETH_BRIDGE_ENABLE
: /* 176 */
1814 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mesh_eth_bridge_enable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1817 case VSP_FORTINET_MESH_ETH_BRIDGE_TYPE
: /* 177 */
1818 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_mesh_eth_bridge_type
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1821 case VSP_FORTINET_WTP_CAP
: /* 192 */
1822 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wtp_cap
, tvb
, offset
, optlen
, ENC_NA
);
1825 case VSP_FORTINET_TXPWR
: /* 193 */
1826 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_txpwr_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1828 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_txpwr
, tvb
, offset
, 2, ENC_NA
);
1831 case VSP_FORTINET_WIDS_ENABLE
: /* 209 */
1832 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wids_enable_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1834 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_wids_enable
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1837 case 146: /* VAP (ak Virtual AP) stuff, there is Radio ID and Wlan ID to start... */
1841 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_unknown_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1844 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_unknown_wid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1847 expert_add_info_format(pinfo
, msg_element_type_item
, &ei_capwap_message_element_fortinet_type
,
1848 "Dissector for CAPWAP Vendor Specific (Fortinet) Message Element"
1849 " (%d) type not implemented (VAP Stuff..)", element_id
);
1850 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_unknown
, tvb
, offset
, optlen
, ENC_NA
);
1854 case 65: /* Radio stuff, there is Radio ID to start... */
1857 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_unknown_rid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1860 expert_add_info_format(pinfo
, msg_element_type_item
, &ei_capwap_message_element_fortinet_type
,
1861 "Dissector for CAPWAP Vendor Specific (Fortinet) Message Element"
1862 " (%d) type not implemented (VAP Stuff..)", element_id
);
1863 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_unknown
, tvb
, offset
, optlen
, ENC_NA
);
1867 expert_add_info_format(pinfo
, msg_element_type_item
, &ei_capwap_message_element_fortinet_type
,
1868 "Dissector for CAPWAP Vendor Specific (Fortinet) Message Element"
1869 " (%d) type not implemented", element_id
);
1870 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_fortinet_unknown
, tvb
, offset
, optlen
, ENC_NA
);
1878 /* From Cisco WLC with help of actube (http://www.github.com/7u83/actube */
1880 /* Copy and rename (CW_ => VSP_ for actube/capwap/capwap_cisco.h (revision g387cc5da) */
1881 #define VSP_CISCO_AP_NAME 5
1882 #define VSP_CISCO_MWAR 6
1883 #define VSP_CISCO_AP_TIMESYNC 151
1885 #define VSP_CISCO_MWAR_ADDR 2
1886 #define VSP_CISCO_RAD 3
1887 #define VSP_CISCO_RAD_SLOT 4
1888 #define VSP_CISCO_RAD_NAME 5
1889 #define VSP_CISCO_MWAR 6
1890 #define VSP_CISCO_ADD_WLAN 7
1891 #define VSP_CISCO_WTP_RADIO_CFG 8
1893 #define VSP_CISCO_MULTI_DOMAIN_CAPAB 10
1894 #define VSP_CISCO_MAC_OPERATION 11
1896 #define VSP_CISCO_TX_POWER 12
1897 #define VSP_CISCO_TX_POWER_LEVELS 13
1898 #define VSP_CISCO_DIRECT_SEQUENCE_CONTROL 14
1899 #define VSP_CISCO_SUPPORTED_RATES 16
1901 #define VSP_CISCO_80211_DELETE_WLAN 28
1903 #define VSP_CISCO_MWAR_NAME 31
1905 #define VSP_CISCO_LOCATION_DATA 35
1906 #define VSP_CISCO_STATISTICS_TIMER 37
1908 #define VSP_CISCO_ANTENNA_PAYLOAD 41
1910 #define VSP_CISCO_CERTIFICATE 44
1911 #define VSP_CISCO_WTP_BOARD_DATA 50
1912 #define VSP_CISCO_AP_MODE_AND_TYPE 54
1913 #define VSP_CISCO_AP_QOS 57
1914 #define VSP_CISCO_AC_IPV4_LIST 59
1916 #define VSP_CISCO_AP_STATIC_IP_ADDR 83
1917 #define VSP_CISCO_SIG_PAYLOAD 84
1918 #define VSP_CISCO_SIG_TOGGLE 87
1920 #define VSP_CISCO_AC_NAME_WITH_INDEX 91
1921 #define VSP_CISCO_SPAM_DOMAIN_SECRET 96
1923 #define VSP_CISCO_SPAM_VENDOR_SPECIFIC 104
1925 #define VSP_CISCO_AP_UPTIME 108
1927 #define VSP_CISCO_AP_GROUP_NAME 123
1929 #define VSP_CISCO_AP_LED_STATE_CONFIG 125
1930 #define VSP_CISCO_AP_REGULATORY_DOMAIN 126
1931 #define VSP_CISCO_AP_MODEL 127
1932 #define VSP_CISCO_AP_RESET_BUTTON_STATE 128
1934 #define VSP_CISCO_LWAPP_CHANNEL_POWER 134
1935 #define VSP_CISCO_AP_PRE_STD_SWITCH_CONFIG 137
1936 #define VSP_CISCO_AP_POWER_INJECTOR_CONFIG 138
1938 #define VSP_CISCO_AP_MINIOS_VERSION 149
1939 #define VSP_CISCO_AP_TIMESYNC 151
1940 #define VSP_CISCO_AP_DOMAIN 169
1941 #define VSP_CISCO_AP_DNS 170
1943 #define VSP_CISCO_AP_BACKUP_SOFTWARE_VERSION 183
1944 #define VSP_CISCO_BOARD_DATA_OPTIONS 207
1945 #define VSP_CISCO_MWAR_TYPE 208
1946 #define VSP_CISCO_80211_ASSOC_LIMIT 213
1947 #define VSP_CISCO_TLV_PAYLOAD 215
1948 #define VSP_CISCO_AP_LOG_FACILITY 224
1949 #define VSP_CISCO_AP_RETRANSMIT_PARAM 240
1950 #define VSP_CISCO_AP_VENUE_SETTINGS 249
1953 static const value_string cisco_element_id_vals
[] = {
1954 { VSP_CISCO_MWAR_ADDR
, "MWAR Address" },
1955 { VSP_CISCO_RAD
, "RAD" },
1956 { VSP_CISCO_RAD_SLOT
, "RAD Slot" },
1957 { VSP_CISCO_RAD_NAME
, "RAD (AP) Name" },
1958 { VSP_CISCO_MWAR
, "MWAR" },
1959 { VSP_CISCO_ADD_WLAN
, "Add WLAN" },
1960 { VSP_CISCO_WTP_RADIO_CFG
, "WTP Radio Configuration" },
1962 { VSP_CISCO_MULTI_DOMAIN_CAPAB
, "Multi Domain Capability" },
1963 { VSP_CISCO_MAC_OPERATION
, "MAC Operation" },
1965 { VSP_CISCO_TX_POWER
, "TX Power" },
1966 { VSP_CISCO_TX_POWER_LEVELS
, "TX Power Levels" },
1967 { VSP_CISCO_DIRECT_SEQUENCE_CONTROL
, "Direct Sequence Control" },
1968 { VSP_CISCO_SUPPORTED_RATES
, "Supported Rates" },
1970 { VSP_CISCO_80211_DELETE_WLAN
, "802.11 Delete WLAN" },
1972 { VSP_CISCO_MWAR_NAME
, "MWAR NAME" },
1974 { VSP_CISCO_LOCATION_DATA
, "Location Data" },
1975 { VSP_CISCO_STATISTICS_TIMER
, "Statistics Timer" },
1977 { VSP_CISCO_ANTENNA_PAYLOAD
, "Antenna Payload" },
1979 { VSP_CISCO_CERTIFICATE
, "Certificate" },
1980 { VSP_CISCO_WTP_BOARD_DATA
, "WTP Board Data" },
1981 { VSP_CISCO_AP_MODE_AND_TYPE
, "AP Mode and Type" },
1983 { VSP_CISCO_AP_QOS
, "AP QoS"},
1984 { VSP_CISCO_AC_IPV4_LIST
, "AC IPv4 List" },
1986 { VSP_CISCO_AP_STATIC_IP_ADDR
, "AP Static IP Addr" },
1987 { VSP_CISCO_SIG_PAYLOAD
, "SIG Payload" },
1988 { VSP_CISCO_SIG_TOGGLE
, "SIG Toggle" },
1990 { VSP_CISCO_AC_NAME_WITH_INDEX
, "AC Name with Index" },
1991 { VSP_CISCO_SPAM_DOMAIN_SECRET
, "SPAM Domain Secret" },
1993 { VSP_CISCO_SPAM_VENDOR_SPECIFIC
, "SPAM Vendor Specific" },
1995 { VSP_CISCO_AP_UPTIME
, "AP Uptime" },
1997 { VSP_CISCO_AP_GROUP_NAME
, "AP Group Name" },
1998 { VSP_CISCO_AP_MODEL
, "AP Model" },
1999 { VSP_CISCO_AP_RESET_BUTTON_STATE
, "AP reset button state" },
2001 { VSP_CISCO_AP_LED_STATE_CONFIG
, "AP Led State Config" },
2002 { VSP_CISCO_AP_REGULATORY_DOMAIN
, "AP Regulatory domain" },
2004 { VSP_CISCO_LWAPP_CHANNEL_POWER
, "LWAPP Channel Power" },
2005 { VSP_CISCO_AP_PRE_STD_SWITCH_CONFIG
, "AP Pre STD Switch Config" },
2006 { VSP_CISCO_AP_POWER_INJECTOR_CONFIG
, "AP Power Injector config" },
2008 { VSP_CISCO_AP_MINIOS_VERSION
, "AP MinIOS Version" },
2009 { VSP_CISCO_AP_TIMESYNC
, "AP Time Sync" },
2010 { VSP_CISCO_AP_DOMAIN
, "AP Domain" },
2011 { VSP_CISCO_AP_DNS
, "AP DNS" },
2013 { VSP_CISCO_AP_BACKUP_SOFTWARE_VERSION
, "AP Backup software version" },
2014 { VSP_CISCO_BOARD_DATA_OPTIONS
, "Board Data Options" },
2015 { VSP_CISCO_MWAR_TYPE
, "MWAR Type" },
2016 { VSP_CISCO_80211_ASSOC_LIMIT
, "802.11 Assoc Limit" },
2017 { VSP_CISCO_TLV_PAYLOAD
, "TLV Payload" },
2018 { VSP_CISCO_AP_LOG_FACILITY
, "AP Log Facility" },
2020 { VSP_CISCO_AP_RETRANSMIT_PARAM
, "AP Retransmit Param" },
2021 { VSP_CISCO_AP_VENUE_SETTINGS
, "AP Venue Settings" },
2025 static const value_string cisco_ap_mode_and_type_mode_vals
[] = {
2026 { 0, "Split MAC / Local Mode" },
2028 { 2, "Local MAC / FlexConnect" },
2029 { 3, "Rogue Detector" },
2036 dissect_capwap_message_element_vendor_cisco_type(tvbuff_t
*tvb
, proto_tree
*sub_msg_element_type_tree
, unsigned offset
, packet_info
*pinfo
, unsigned optlen
, proto_item
*msg_element_type_item
)
2038 unsigned element_id
;
2040 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_element_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2041 element_id
= tvb_get_ntohs(tvb
, offset
);
2042 proto_item_append_text(msg_element_type_item
, ": Cisco %s", val_to_str(element_id
, cisco_element_id_vals
,"Unknown Vendor Specific Element Type (%02d)") );
2045 /* Remove length and element id to optlen */
2047 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_value
, tvb
, offset
, optlen
, ENC_NA
);
2050 case VSP_CISCO_MWAR_ADDR
: /* MWAR Address (2) */
2051 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2053 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_addr
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2056 case VSP_CISCO_RAD_NAME
: /* RAD (AP) Name (5) */
2057 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_rad_name
, tvb
, offset
, optlen
, ENC_ASCII
);
2060 case VSP_CISCO_MWAR
: /* MWAR (6) */
2061 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_type
, tvb
, offset
, 1, ENC_NA
);
2063 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_hardware
, tvb
, offset
, 4, ENC_ASCII
);
2065 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_software
, tvb
, offset
, 4, ENC_ASCII
);
2067 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_active_ms
, tvb
, offset
, 2, ENC_NA
);
2069 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_supported_ms
, tvb
, offset
, 2, ENC_NA
);
2071 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_active_rad
, tvb
, offset
, 2, ENC_NA
);
2073 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_supported_rad
, tvb
, offset
, 2, ENC_NA
);
2076 case VSP_CISCO_AP_MODE_AND_TYPE
: /* AP_MODE_AND_TYPE (54) */
2077 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_mode_and_type_mode
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2079 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_mode_and_type_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2082 case VSP_CISCO_AP_STATIC_IP_ADDR
: /* AP_MODE_AND_TYPE (83) */
2083 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_static_ip_addr
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2085 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_static_ip_netmask
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2087 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_static_ip_gateway
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2089 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_static_ip_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2091 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_static_ip_reserved
, tvb
, offset
, 4, ENC_NA
);
2094 case VSP_CISCO_AP_UPTIME
: /* AP Uptime (108) */
2095 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_uptime_current
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2097 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_uptime_last
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2100 case VSP_CISCO_AP_GROUP_NAME
: /* AP Group Name (123) */
2101 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_group_name
, tvb
, offset
, optlen
, ENC_ASCII
);
2104 case VSP_CISCO_AP_LED_STATE_CONFIG
: /* AP Led State (125) */
2105 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_led_state
, tvb
, offset
, 2, ENC_NA
);
2108 case VSP_CISCO_AP_TIMESYNC
: /* AP Timesync (151) */
2109 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_timesync
, tvb
, offset
, 4, ENC_NA
);
2112 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_ap_timesync_type
, tvb
, offset
, 1, ENC_NA
);
2115 case VSP_CISCO_BOARD_DATA_OPTIONS
: /* Board Data Options (207) */
2116 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_board_data_options_ant_type
, tvb
, offset
, 1, ENC_NA
);
2118 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_board_data_options_flex_connect
, tvb
, offset
, 1, ENC_NA
);
2120 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_board_data_options_ap_type
, tvb
, offset
, 1, ENC_NA
);
2122 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_board_data_options_join_priority
, tvb
, offset
, 1, ENC_NA
);
2126 case VSP_CISCO_MWAR_TYPE
: /* MWAR_TYPE (208) */
2127 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_mwar_type
, tvb
, offset
, 1, ENC_NA
);
2131 expert_add_info_format(pinfo
, msg_element_type_item
, &ei_capwap_message_element_cisco_type
,
2132 "Dissector for CAPWAP Vendor Specific (Cisco) Message Element"
2133 " (%d) type not implemented", element_id
);
2134 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_cisco_unknown
, tvb
, offset
, optlen
, ENC_NA
);
2141 /* Returns the number of bytes consumed by this option. */
2143 dissect_capwap_message_element_type(tvbuff_t
*tvb
, proto_tree
*msg_element_type_tree
, unsigned offset
, packet_info
*pinfo
)
2145 unsigned optlen
, offset_end
, number_encrypt
, i
, msg_element_type
= 0;
2146 proto_item
*msg_element_type_item
, *msg_element_type_item_flag
, *ti_len
, *ti_type
;
2147 proto_tree
*sub_msg_element_type_tree
, *sub_msg_element_type_flag_tree
;
2149 msg_element_type
= tvb_get_ntohs(tvb
, offset
);
2150 optlen
= tvb_get_ntohs(tvb
, offset
+2);
2151 msg_element_type_item
= proto_tree_add_item(msg_element_type_tree
, hf_capwap_msg_element
, tvb
, offset
, 2+2+optlen
, ENC_NA
);
2153 proto_item_append_text(msg_element_type_item
, ": (t=%d,l=%d) %s", msg_element_type
, optlen
, val_to_str(msg_element_type
,message_element_type_vals
,"Unknown Message Element Type (%02d)") );
2155 sub_msg_element_type_tree
= proto_item_add_subtree(msg_element_type_item
, ett_capwap_message_element_type
);
2157 ti_type
= proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2159 ti_len
= proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_length
, tvb
, offset
+2, 2, ENC_BIG_ENDIAN
);
2161 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_value
, tvb
, offset
+4, optlen
, ENC_NA
);
2163 switch (msg_element_type
) {
2164 case TYPE_AC_DESCRIPTOR
: /* AC Descriptor (1) */
2166 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2167 "AC Descriptor length %u wrong, must be >= 12", optlen
);
2170 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_descriptor_stations
, tvb
, offset
+4, 2, ENC_BIG_ENDIAN
);
2171 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_descriptor_limit
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
2172 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_descriptor_active_wtp
, tvb
, offset
+8, 2, ENC_BIG_ENDIAN
);
2173 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_descriptor_max_wtp
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2175 /* AC Descriptor Security Flags... */
2176 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
+12,
2177 hf_capwap_msg_element_type_ac_descriptor_security
, ett_capwap_ac_descriptor_security_flags
, capwap_ac_descriptor_security_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2179 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_descriptor_rmac_field
, tvb
, offset
+13, 1, ENC_BIG_ENDIAN
);
2180 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_descriptor_reserved
, tvb
, offset
+14, 1, ENC_BIG_ENDIAN
);
2182 /* AC Descriptor DTLS Flags... */
2183 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
+15,
2184 hf_capwap_msg_element_type_ac_descriptor_dtls_policy
, ett_capwap_ac_descriptor_dtls_flags
, capwap_ac_descriptor_dtls_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2186 offset_end
= offset
+ optlen
-4;
2188 while (offset
< offset_end
) {
2189 offset
+= dissect_capwap_ac_information(tvb
, sub_msg_element_type_tree
, offset
);
2193 case TYPE_AC_IPV4_LIST
: /* AC IPv4 List (2) */
2195 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2196 "AC IPv4 List length %u wrong, must be >= 4", optlen
);
2203 for (i
= 0; i
< optlen
/4; i
++)
2205 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_ipv4_list
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2211 case TYPE_AC_IPV6_LIST
: /* AC IPv6 List (3) */
2213 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2214 "AC IPv6 List length %u wrong, must be >= 4", optlen
);
2221 for (i
= 0; i
< optlen
/16; i
++)
2223 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_ipv6_list
, tvb
, offset
, 16, ENC_NA
);
2229 case TYPE_AC_NAME
: /* AC Name (4) */
2231 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2232 "AC Name length %u wrong, must be >= 1", optlen
);
2235 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_name
, tvb
, offset
+4, optlen
, ENC_ASCII
);
2238 case TYPE_AC_NAME_W_PRIORITY
: /* AC Name With Priority (5) */
2240 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2241 "AC Name with Priority length %u wrong, must be >= 2", optlen
);
2244 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_name_with_priority
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2245 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_name
, tvb
, offset
+5, optlen
-1, ENC_ASCII
);
2248 case TYPE_AC_TIMESTAMP
: /* AC Timestamp (6) */
2250 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2251 "AC Timestamp length %u wrong, must be = 4", optlen
);
2254 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ac_timestamp
, tvb
, offset
+ 4, 4, ENC_TIME_SECS_NTP
|ENC_BIG_ENDIAN
);
2257 case TYPE_ADD_STATION
:{ /* Add Station (8) */
2260 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2261 "Add Station length %u wrong, must be >= 8", optlen
);
2264 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_add_station_radio_id
, tvb
, offset
+ 4, 1, ENC_BIG_ENDIAN
);
2265 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_add_station_length
, tvb
, offset
+ 5, 1, ENC_BIG_ENDIAN
);
2266 maclength
= tvb_get_uint8(tvb
, offset
+5);
2269 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_add_station_mac_eui48
, tvb
, offset
+6, maclength
, ENC_NA
);
2272 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_add_station_mac_eui64
, tvb
, offset
+6, maclength
, ENC_BIG_ENDIAN
);
2275 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_add_station_mac_data
, tvb
, offset
+6, maclength
, ENC_NA
);
2279 if(optlen
-(2 + maclength
)) {
2280 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_add_station_vlan_name
, tvb
, offset
+6+maclength
, optlen
-(2 + maclength
), ENC_ASCII
);
2285 case TYPE_CAPWAP_CONTROL_IPV4_ADDRESS
: /* CAPWAP Control IPv4 Address (10) */
2287 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2288 "CAPWAP Control IPv4 Address length %u wrong, must be = 6", optlen
);
2291 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_control_ipv4
, tvb
, offset
+4, 4, ENC_BIG_ENDIAN
);
2292 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_control_wtp_count
, tvb
, offset
+8, 2, ENC_BIG_ENDIAN
);
2295 case TYPE_CAPWAP_CONTROL_IPV6_ADDRESS
: /* CAPWAP Control IPv6 Address (11) */
2297 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2298 "CAPWAP Control IPv6 Address length %u wrong, must be = 18", optlen
);
2301 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_control_ipv6
, tvb
, offset
+4, 16, ENC_NA
);
2302 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_control_wtp_count
, tvb
, offset
+20, 2, ENC_BIG_ENDIAN
);
2305 case TYPE_CAPWAP_TIMERS
: /* CAPWAP Timers (12) */
2307 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2308 "CAPWAP Timers length %u wrong, must be = 2", optlen
);
2311 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_timers_discovery
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2312 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_timers_echo_request
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2315 case TYPE_DECRYPTION_ERROR_REPORT_PERIOD
: /* Decryption Error Report Period (16) */
2317 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2318 "Decryption Error Report Period length %u wrong, must be = 3", optlen
);
2321 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_decryption_error_report_period_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2322 proto_tree_add_item(sub_msg_element_type_tree
,hf_capwap_msg_element_type_decryption_error_report_period_interval
, tvb
, offset
+5, 2, ENC_BIG_ENDIAN
);
2325 case TYPE_DELETE_STATION
:{ /* Delete Station (18) */
2328 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2329 "Delete Station length %u wrong, must be >= 8", optlen
);
2332 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_delete_station_radio_id
, tvb
, offset
+ 4, 1, ENC_BIG_ENDIAN
);
2333 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_delete_station_length
, tvb
, offset
+ 5, 1, ENC_BIG_ENDIAN
);
2334 maclength
= tvb_get_uint8(tvb
, offset
+5);
2337 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_delete_station_mac_eui48
, tvb
, offset
+6, maclength
, ENC_NA
);
2340 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_delete_station_mac_eui64
, tvb
, offset
+6, maclength
, ENC_BIG_ENDIAN
);
2343 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_delete_station_mac_data
, tvb
, offset
+6, maclength
, ENC_NA
);
2350 case TYPE_DISCOVERY_TYPE
: /* Discovery Type (20) */
2352 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2353 "Discovery Type length %u wrong, must be = 1", optlen
);
2356 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_discovery_type
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2358 case TYPE_IDLE_TIMEOUT
: /* Idle Timeout (23) */
2360 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2361 "Idle Timeout length %u wrong, must be = 4", optlen
);
2364 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_idle_timeout
, tvb
, offset
+4, 4, ENC_BIG_ENDIAN
);
2367 case TYPE_LOCATION_DATA
: /* Location Data (28) */
2369 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2370 "Location Data length %u wrong, must be >= 1", optlen
);
2373 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_location_data
, tvb
, offset
+4, optlen
, ENC_ASCII
);
2376 case TYPE_MAXIMUM_MESSAGE_LENGTH
: /* Maximum Message Length (29) */
2378 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2379 "Maximum Message length %u wrong, must be = 2", optlen
);
2382 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_maximum_message_length
, tvb
, offset
+4, 2, ENC_BIG_ENDIAN
);
2385 case TYPE_CAPWAP_LOCAL_IPV4_ADDRESS
: /* CAPWAP Local IPv4 Address (30) */
2387 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2388 "CAPWAP Local IPv4 Address length %u wrong, must be = 4", optlen
);
2391 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_local_ipv4_address
, tvb
, offset
+4, 4, ENC_BIG_ENDIAN
);
2395 case TYPE_RADIO_ADMINISTRATIVE_STATE
: /* Radio Administrative State (31) */
2397 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2398 "Radio Administrative State length %u wrong, must be = 2", optlen
);
2401 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_radio_admin_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2402 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_radio_admin_state
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2406 case TYPE_RADIO_OPERATIONAL_STATE
: /* Radio Operational State (32) */
2408 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2409 "Radio Operational State length %u wrong, must be = 3", optlen
);
2412 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_radio_op_state_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2413 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_radio_op_state_radio_state
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2414 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_radio_op_state_radio_cause
, tvb
, offset
+6, 1, ENC_BIG_ENDIAN
);
2417 case TYPE_RESULT_CODE
: /* Result Code (33) */
2419 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2420 "Result Code length %u wrong, must be = 4", optlen
);
2423 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_result_code
, tvb
, offset
+4, 4, ENC_BIG_ENDIAN
);
2427 case TYPE_SESSION_ID
: /* Session ID (35) */
2429 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2430 "Session ID length %u wrong, must be = 16", optlen
);
2433 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_session_id
, tvb
, offset
+4, 16, ENC_NA
);
2436 case TYPE_STATISTICS_TIMER
: /* Statistics Timer (36) */
2438 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2439 "Statistics Timer length %u wrong, must be = 2", optlen
);
2442 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_statistics_timer
, tvb
, offset
+4, 2, ENC_BIG_ENDIAN
);
2445 case TYPE_VENDOR_SPECIFIC_PAYLOAD
:{ /* Vendor Specific Payload (37) */
2448 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2449 "Vendor Specific Payload length %u wrong, must be >= 7", optlen
);
2452 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_vsp_vendor_identifier
, tvb
, offset
+4, 4, ENC_BIG_ENDIAN
);
2453 vendor_id
= tvb_get_ntohl(tvb
, offset
+4);
2454 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_vsp_vendor_element_id
, tvb
, offset
+8, 2, ENC_BIG_ENDIAN
);
2455 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_vsp_vendor_data
, tvb
, offset
+10, optlen
-6, ENC_NA
);
2457 case VENDOR_FORTINET
:
2458 dissect_capwap_message_element_vendor_fortinet_type(tvb
, sub_msg_element_type_tree
, offset
+8, pinfo
, optlen
, msg_element_type_item
);
2460 case VENDOR_CISCO_WIFI
:
2461 dissect_capwap_message_element_vendor_cisco_type(tvb
, sub_msg_element_type_tree
, offset
+8, pinfo
, optlen
, msg_element_type_item
);
2470 case TYPE_WTP_BOARD_DATA
: /* WTP Board Data (38) */
2472 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2473 "WTP Board Data length %u wrong, must be >= 14", optlen
);
2476 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_board_data_vendor
, tvb
, offset
+4, 4, ENC_BIG_ENDIAN
);
2478 offset_end
= offset
+ optlen
-4;
2479 while (offset
< offset_end
) {
2480 offset
+= dissect_capwap_board_data(tvb
, sub_msg_element_type_tree
, offset
);
2484 case TYPE_WTP_DESCRIPTOR
: /* WTP Descriptor (39) */
2486 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2487 "WTP Descriptor length %u wrong, must be >= 33", optlen
);
2490 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_max_radios
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2491 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_radio_in_use
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2492 if (global_capwap_draft_8_cisco
== 0)
2494 number_encrypt
= tvb_get_uint8(tvb
,offset
+6);
2495 msg_element_type_item_flag
= proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_number_encrypt
, tvb
, offset
+6, 1, ENC_BIG_ENDIAN
);
2496 sub_msg_element_type_flag_tree
= proto_item_add_subtree(msg_element_type_item_flag
, ett_capwap_encryption_capabilities
);
2497 for (i
=0; i
< number_encrypt
; i
++) {
2498 dissect_capwap_encryption_capabilities(tvb
, sub_msg_element_type_flag_tree
, offset
+4+3+i
*3);
2500 offset_end
= offset
+ optlen
-4;
2501 offset
+= 4 + 3 + number_encrypt
* 3;
2505 /*in Draft 8, there is only one "encryption_capabilities*/
2506 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_descriptor_encrypt_capabilities
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
2507 offset_end
= offset
+ optlen
-4;
2510 while (offset
< offset_end
) {
2511 offset
+= dissect_capwap_wtp_descriptor(tvb
, sub_msg_element_type_tree
, offset
);
2515 case TYPE_WTP_FALLBACK
: /* WTP Fallback (40) */
2517 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2518 "WTP Fallback length %u wrong, must be = 1", optlen
);
2521 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_fallback
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2524 case TYPE_WTP_FRAME_TUNNEL_MODE
: /* WTP Frame Tunnel Mode (41) */
2526 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2527 "WTP Frame Tunnel Mode length %u wrong, must be = 1", optlen
);
2531 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
+4,
2532 hf_capwap_msg_element_type_wtp_frame_tunnel_mode
, ett_capwap_wtp_frame_tunnel_mode
, capwap_wtp_frame_tunnel_mode_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2534 case TYPE_WTP_MAC_TYPE
: /* WTP MAC Type (44) */
2536 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2537 "WTP MAC Type length %u wrong, must be = 1", optlen
);
2540 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_mac_type
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2543 case TYPE_WTP_NAME
: /* WTP Name (45) */
2545 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2546 "WTP Name length %u wrong, must be >= 1", optlen
);
2549 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_name
, tvb
, offset
+4, optlen
, ENC_ASCII
);
2552 case TYPE_WTP_REBOOT_STATISTICS
: /* WTP Reboot Statistics (48) */
2554 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2555 "WTP Reboot Statistics length %u wrong, must be = 15", optlen
);
2558 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_reboot_count
, tvb
, offset
+4, 2, ENC_BIG_ENDIAN
);
2559 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_ac_initiated_count
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
2560 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_link_failure_count
, tvb
, offset
+8, 2, ENC_BIG_ENDIAN
);
2561 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_sw_failure_count
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2562 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_hw_failure_count
, tvb
, offset
+12, 2, ENC_BIG_ENDIAN
);
2563 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_other_failure_count
, tvb
, offset
+14, 2, ENC_BIG_ENDIAN
);
2564 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_unknown_failure_count
, tvb
, offset
+16, 2, ENC_BIG_ENDIAN
);
2565 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_wtp_reboot_statistics_last_failure_type
, tvb
, offset
+18, 1, ENC_BIG_ENDIAN
);
2568 case TYPE_CAPWAP_LOCAL_IPV6_ADDRESS
: /* CAPWAP Local IPv6 Address (50) */
2570 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2571 "CAPWAP Local IPv6 Address length %u wrong, must be = 16", optlen
);
2574 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_local_ipv6_address
, tvb
, offset
+4, 16, ENC_NA
);
2577 case TYPE_CAPWAP_TRANSPORT_PROTOCOL
: /* CAPWAP Transport Protocol (51) */
2579 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2580 "CAPWAP Transport Protocol length %u wrong, must be = 1", optlen
);
2583 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_capwap_transport_protocol
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2586 case TYPE_MTU_DISCOVERY_PADDING
: /* MTU Discovery Padding (52) */
2588 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2589 "MTU Discovery Padding length %u wrong, must be >= 1", optlen
);
2592 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_mtu_discovery_padding
, tvb
, offset
+4, optlen
, ENC_NA
);
2596 case TYPE_ECN_SUPPORT
: /* ECN Support (53) */
2598 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2599 "ECN Support length %u wrong, must be = 1", optlen
);
2602 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ecn_support
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2605 case IEEE80211_ADD_WLAN
:{ /* ieee80211 Add WLAN (1024) */
2606 uint16_t key_length
;
2608 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2609 "IEEE80211 Add Wlan length %u wrong, must be >= 20", optlen
);
2612 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2613 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_wlan_id
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2614 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
+6,
2615 hf_capwap_msg_element_type_ieee80211_add_wlan_capability
, ett_capwap_ieee80211_add_wlan_capability
, ieee80211_add_wlan_capability_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2616 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_key_index
, tvb
, offset
+8, 1, ENC_BIG_ENDIAN
);
2617 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_key_status
, tvb
, offset
+9, 1, ENC_BIG_ENDIAN
);
2618 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_key_length
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2619 key_length
= tvb_get_ntohs(tvb
, offset
+10);
2620 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_key
, tvb
, offset
+12, key_length
, ENC_NA
);
2621 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_group_tsc
, tvb
, offset
+key_length
+12, 6, ENC_BIG_ENDIAN
);
2622 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_qos
, tvb
, offset
+key_length
+18, 1, ENC_BIG_ENDIAN
);
2623 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_auth_type
, tvb
, offset
+key_length
+19, 1, ENC_BIG_ENDIAN
);
2624 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_mac_mode
, tvb
, offset
+key_length
+20, 1, ENC_BIG_ENDIAN
);
2625 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_tunnel_mode
, tvb
, offset
+key_length
+21, 1, ENC_BIG_ENDIAN
);
2626 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_suppress_ssid
, tvb
, offset
+key_length
+22, 1, ENC_BIG_ENDIAN
);
2627 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_add_wlan_ssid
, tvb
, offset
+key_length
+23, optlen
-(key_length
+23-4), ENC_ASCII
);
2631 case IEEE80211_ANTENNA
:{ /* ieee80211 Antenna (1025) */
2632 uint8_t antenna_count
, antenna
= 0;
2634 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2635 "IEEE80211 Antenna length %u wrong, must be >= 5", optlen
);
2638 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_antenna_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2639 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_antenna_diversity
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2640 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_antenna_combiner
, tvb
, offset
+6, 1, ENC_BIG_ENDIAN
);
2641 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_antenna_count
, tvb
, offset
+7, 1, ENC_BIG_ENDIAN
);
2642 antenna_count
= tvb_get_uint8(tvb
, offset
+7);
2643 while(antenna
< antenna_count
){
2644 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_antenna_selection
, tvb
, offset
+8+antenna
, 1, ENC_BIG_ENDIAN
);
2650 case IEEE80211_ASSIGNED_WTP_BSSID
: /* ieee80211 Assigned WTP BSSID (1026) */
2652 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2653 "IEEE80211 Assigned WTP BSSID length %u wrong, must be = 8", optlen
);
2656 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2657 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_wlan_id
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2658 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_bssid
, tvb
, offset
+6, 6, ENC_NA
);
2661 case IEEE80211_DELETE_WLAN
: /* ieee80211 Delete WLAN (1027) */
2663 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2664 "IEEE80211 Delete Wlan length %u wrong, must be = 2", optlen
);
2667 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_delete_wlan_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2668 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_delete_wlan_wlan_id
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2671 case IEEE80211_DIRECT_SEQUENCE_CONTROL
: /* ieee80211 Direct Sequence Control (1028) */
2673 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2674 "IEEE80211 Direct Sequence Control length %u wrong, must be = 8", optlen
);
2677 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_direct_sequence_control_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2678 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_direct_sequence_control_reserved
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2679 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_channel
, tvb
, offset
+6, 1, ENC_BIG_ENDIAN
);
2680 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_cca
, tvb
, offset
+7, 1, ENC_BIG_ENDIAN
);
2681 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_direct_sequence_control_energy_detect_threshold
, tvb
, offset
+8, 4, ENC_BIG_ENDIAN
);
2684 case IEEE80211_INFORMATION_ELEMENT
: /* ieee80211 Information Element (1029) */
2686 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2687 "IEEE80211 Information Element length %u wrong, must be >= 4", optlen
);
2691 offset_end
= offset
+ optlen
;
2693 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_ie_radio_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2696 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_ie_wlan_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2699 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
,
2700 hf_capwap_msg_element_type_ieee80211_ie_flags
, ett_capwap_ieee80211_ie_flags
, ieee80211_ie_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2703 while (offset
< offset_end
) {
2704 offset
+= add_tagged_field(pinfo
, sub_msg_element_type_tree
, tvb
, offset
, 0, NULL
, 0, NULL
);
2709 case IEEE80211_MAC_OPERATION
: /* ieee80211 MAC Operation (1030) */
2711 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2712 "IEEE80211 MAC Operation length %u wrong, must be = 16", optlen
);
2715 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2716 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_reserved
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2717 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_rts_threshold
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
2718 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_short_retry
, tvb
, offset
+8, 1, ENC_BIG_ENDIAN
);
2719 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_long_retry
, tvb
, offset
+9, 1, ENC_BIG_ENDIAN
);
2720 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_fragmentation_threshold
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2721 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_tx_msdu_lifetime
, tvb
, offset
+12, 4, ENC_BIG_ENDIAN
);
2722 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_operation_rx_msdu_lifetime
, tvb
, offset
+16, 4, ENC_BIG_ENDIAN
);
2725 case IEEE80211_MIC_COUNTERMEASURES
: /* ieee80211 MIC Countermeasures (1031) */
2727 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2728 "IEEE80211 MIC Countermeasures length %u wrong, must be = 8", optlen
);
2731 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mic_countermeasures_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2732 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mic_countermeasures_wlan_id
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2733 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mic_countermeasures_mac_address
, tvb
, offset
+6, 6, ENC_NA
);
2736 case IEEE80211_MULTI_DOMAIN_CAPABILITY
: /* ieee80211 Multi-Domain Capability (1032) */
2738 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2739 "IEEE80211 Multi-Domain Capability length %u wrong, must be = 8", optlen
);
2742 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_multi_domain_capability_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2743 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_multi_domain_capability_reserved
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2744 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_multi_domain_capability_first_channel
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
2745 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_multi_domain_capability_number_of_channels
, tvb
, offset
+8, 2, ENC_BIG_ENDIAN
);
2746 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_multi_domain_capability_max_tx_power_level
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2749 case IEEE80211_OFDM_CONTROL
: /* ieee80211 OFDM Control (1033) */
2751 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2752 "IEEE80211 OFDM Control length %u wrong, must be = 8", optlen
);
2755 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_ofdm_control_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2756 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_ofdm_control_reserved
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2757 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_ofdm_control_current_channel
, tvb
, offset
+6, 1, ENC_BIG_ENDIAN
);
2758 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
+7, hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support
, ett_capwap_ieee80211_ofdm_control_band_support
, ieee80211_ofdm_control_band_support_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2760 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_ofdm_control_ti_threshold
, tvb
, offset
+8, 4, ENC_BIG_ENDIAN
);
2763 case IEEE80211_RATE_SET
: /* ieee80211 Rate Set (1034) */
2765 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2766 "IEEE80211 Rate Set length %u wrong, must be >= 3", optlen
);
2770 offset_end
= offset
+ optlen
;
2772 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_rate_set_radio_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2775 while (offset
< offset_end
) {
2776 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_rate_set_rate_set
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2782 case IEEE80211_STATION
: /* ieee80211 Station (1036) */
2784 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2785 "IEEE80211 Station length %u wrong, must be >= 14", optlen
);
2788 offset_end
= offset
+ 4 + optlen
;
2789 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2790 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_association_id
, tvb
, offset
+5, 2, ENC_BIG_ENDIAN
);
2791 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_flags
, tvb
, offset
+7, 1, ENC_BIG_ENDIAN
);
2792 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_mac_address
, tvb
, offset
+8, 6, ENC_NA
);
2793 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
+14,
2794 hf_capwap_msg_element_type_ieee80211_station_capabilities
, ett_capwap_ieee80211_station_capabilities
, ieee80211_station_capabilities_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2795 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_wlan_id
, tvb
, offset
+16, 1, ENC_BIG_ENDIAN
);
2798 while (offset
< offset_end
) {
2799 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_supported_rates
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2805 case IEEE80211_STATION_SESSION_KEY
: /* ieee80211 Station Session Key (1038) */
2807 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2808 "IEEE80211 Station Session Key length %u wrong, must be >= 25", optlen
);
2811 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_session_key_mac
, tvb
, offset
+4, 6, ENC_NA
);
2812 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_session_key_flags
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2813 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_session_key_flags_a
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2814 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_session_key_flags_c
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2815 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_tsc
, tvb
, offset
+12, 6, ENC_NA
);
2816 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_rsc
, tvb
, offset
+18, 6, ENC_NA
);
2817 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_station_session_key_key
, tvb
, offset
+24, optlen
-24, ENC_NA
);
2820 case IEEE80211_SUPPORTED_RATES
: /* ieee80211 Supported Rates (1040) */
2822 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2823 "IEEE80211 Supported Rates length %u wrong, must be >= 3", optlen
);
2827 offset_end
= offset
+ optlen
;
2829 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_supported_rates_radio_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2832 while (offset
< offset_end
) {
2833 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_supported_rates_rate
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2838 case IEEE80211_TX_POWER
: /* ieee80211 Tx Power (1041) */
2840 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2841 "IEEE80211 Tx Power length %u wrong, must be = 4", optlen
);
2844 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_tx_power_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2845 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_tx_power_reserved
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2846 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_tx_power_current_tx_power
, tvb
, offset
+6, 2, ENC_BIG_ENDIAN
);
2849 case IEEE80211_TX_POWER_LEVEL
:{ /* ieee80211 Tx Power Level (1042) */
2850 uint8_t num_levels
, level
= 0;
2852 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2853 "IEEE80211 Antenna length %u wrong, must be >= 3", optlen
);
2856 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_tx_power_level_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2857 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_tx_power_level_num_levels
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2858 num_levels
= tvb_get_uint8(tvb
, offset
+5);
2859 while(level
< num_levels
){
2860 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_tx_power_level_power_level
, tvb
, offset
+6+(level
*2), 2, ENC_BIG_ENDIAN
);
2866 case IEEE80211_UPDATE_WLAN
:{ /* ieee80211 Update WLAN (1044) */
2867 uint16_t key_length
;
2869 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2870 "IEEE80211 Update Wlan length %u wrong, must be >= 8", optlen
);
2873 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_update_wlan_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2874 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_update_wlan_wlan_id
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2875 proto_tree_add_bitmask_with_flags(sub_msg_element_type_tree
, tvb
, offset
+6,
2876 hf_capwap_msg_element_type_ieee80211_update_wlan_capability
, ett_capwap_ieee80211_update_wlan_capability
, ieee80211_update_wlan_capability_flags
, ENC_BIG_ENDIAN
, BMT_NO_APPEND
);
2877 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_update_wlan_key_index
, tvb
, offset
+8, 1, ENC_BIG_ENDIAN
);
2878 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_update_wlan_key_status
, tvb
, offset
+9, 1, ENC_BIG_ENDIAN
);
2879 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_update_wlan_key_length
, tvb
, offset
+10, 2, ENC_BIG_ENDIAN
);
2880 key_length
= tvb_get_ntohs(tvb
, offset
+10);
2881 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_update_wlan_key
, tvb
, offset
+12, key_length
, ENC_NA
);
2885 case IEEE80211_WTP_RADIO_CONFIGURATION
: /* ieee80211 WTP Radio Configuration (1046) */
2887 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2888 "IEEE80211 WTP Radio Configuration length %u wrong, must be = 16", optlen
);
2891 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2892 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_short_preamble
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2893 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_num_of_bssids
, tvb
, offset
+6, 1, ENC_BIG_ENDIAN
);
2894 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_dtim_period
, tvb
, offset
+7, 1, ENC_BIG_ENDIAN
);
2895 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_bssid
, tvb
, offset
+8, 6, ENC_NA
);
2896 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_beacon_period
, tvb
, offset
+14, 2, ENC_BIG_ENDIAN
);
2897 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_country_string
, tvb
, offset
+16, 4, ENC_ASCII
);
2900 case IEEE80211_WTP_RADIO_INFORMATION
: /* ieee80211 WTP Radio Information (1048) */
2902 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2903 "IEEE80211 WTP Radio Information length %u wrong, must be = 5", optlen
);
2906 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_id
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2907 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_reserved
, tvb
, offset
+5, 3, ENC_NA
);
2908 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_n
, tvb
, offset
+8, 1, ENC_BIG_ENDIAN
);
2909 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_g
, tvb
, offset
+8, 1, ENC_BIG_ENDIAN
);
2910 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_a
, tvb
, offset
+8, 1, ENC_BIG_ENDIAN
);
2911 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_b
, tvb
, offset
+8, 1, ENC_BIG_ENDIAN
);
2916 case IEEE80211_SUPPORTED_MAC_PROFILES
:{ /* ieee80211 Supported MAC Profiles (1060) */
2917 uint8_t num_profiles
;
2919 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2920 "IEEE80211 Supported MAC Profiles length %u wrong, must be >= 2", optlen
);
2923 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_supported_mac_profiles_numbers
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2924 num_profiles
= tvb_get_uint8(tvb
,offset
);
2925 while(num_profiles
){
2926 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_supported_mac_profiles_profile
, tvb
, offset
+5, 1, ENC_BIG_ENDIAN
);
2933 case IEEE80211_MAC_PROFILE
: /* ieee80211 MAC Profile (1061) */
2935 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_msg_element_length
,
2936 "IEEE80211 MAC Profile length %u wrong, must be = 1", optlen
);
2939 proto_tree_add_item(sub_msg_element_type_tree
, hf_capwap_msg_element_type_ieee80211_mac_profile
, tvb
, offset
+4, 1, ENC_BIG_ENDIAN
);
2944 expert_add_info_format(pinfo
, ti_type
, &ei_capwap_message_element_type
,
2945 "Dissector for CAPWAP Message Element"
2946 " (%s) type not implemented, Contact"
2947 " Wireshark developers if you want this supported",
2948 val_to_str(msg_element_type
, message_element_type_vals
, "(%d)"));
2955 /* Returns the number of bytes consumed by this option. */
2957 dissect_capwap_message_element(tvbuff_t
*tvb
, proto_tree
*capwap_control_tree
, unsigned offset
, packet_info
*pinfo
)
2959 unsigned plen
= 0, offset_end
;
2961 proto_tree
*capwap_message_element_tree
;
2963 ti
= proto_tree_add_item(capwap_control_tree
, hf_capwap_message_element
, tvb
, offset
, tvb_reported_length(tvb
) - offset
, ENC_NA
);
2964 capwap_message_element_tree
= proto_item_add_subtree(ti
, ett_capwap_message_element
);
2966 offset_end
= tvb_reported_length(tvb
);
2968 while (offset
+plen
< offset_end
) {
2969 plen
+= dissect_capwap_message_element_type(tvb
, capwap_message_element_tree
, offset
+plen
, pinfo
);
2975 /* Returns the number of bytes consumed by this option. */
2977 dissect_capwap_data_keep_alive(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*capwap_data_tree
, unsigned offset
)
2980 unsigned plen
= 0, offset_end
;
2982 proto_tree
*capwap_data_keep_alive_tree
;
2984 ti
= proto_tree_add_item(capwap_data_tree
, hf_capwap_data_keep_alive
, tvb
, offset
, tvb_reported_length(tvb
), ENC_NA
);
2985 capwap_data_keep_alive_tree
= proto_item_add_subtree(ti
, ett_capwap_data_keep_alive
);
2987 ti
= proto_tree_add_item(capwap_data_keep_alive_tree
, hf_capwap_data_keep_alive_length
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2988 len
= tvb_get_ntohs(tvb
, offset
);
2989 if (len
!= tvb_reported_length(tvb
))
2990 expert_add_info(pinfo
, ti
, &ei_capwap_data_keep_alive_length
);
2994 offset_end
= tvb_reported_length(tvb
);
2996 while (offset
+plen
< offset_end
) {
2997 plen
+= dissect_capwap_message_element_type(tvb
, capwap_data_keep_alive_tree
, offset
+plen
, pinfo
);
3003 /* Returns the number of bytes consumed by this option. */
3005 dissect_capwap_control_header(tvbuff_t
*tvb
, proto_tree
*capwap_control_tree
, unsigned offset
, packet_info
*pinfo
)
3008 proto_item
*ti
, *ti_flag
;
3009 proto_tree
*capwap_control_header_tree
;
3010 proto_tree
*capwap_control_msg_type_tree
;
3012 ti
= proto_tree_add_item(capwap_control_tree
, hf_capwap_control_header
, tvb
, offset
, 8, ENC_NA
);
3013 capwap_control_header_tree
= proto_item_add_subtree(ti
, ett_capwap_control_header
);
3015 /* Message Type 32 bits */
3016 ti_flag
= proto_tree_add_item(capwap_control_header_tree
, hf_capwap_control_header_msg_type
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3017 capwap_control_msg_type_tree
= proto_item_add_subtree(ti_flag
, ett_capwap_control_header_msg
);
3019 proto_tree_add_item(capwap_control_msg_type_tree
, hf_capwap_control_header_msg_type_enterprise_nbr
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
3020 proto_tree_add_item(capwap_control_msg_type_tree
, hf_capwap_control_header_msg_type_enterprise_specific
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3022 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " - %s",val_to_str(tvb_get_ntohl(tvb
, offset
),message_type
,"Unknown Message Type (0x%x)"));
3025 /* Sequence 8 bits */
3026 proto_tree_add_item(capwap_control_header_tree
, hf_capwap_control_header_seq_number
, tvb
, offset
+plen
, 1, ENC_BIG_ENDIAN
);
3029 /* Message Element Length 16 bits */
3030 proto_tree_add_item(capwap_control_header_tree
, hf_capwap_control_header_msg_element_length
, tvb
, offset
+plen
, 2, ENC_BIG_ENDIAN
);
3033 proto_tree_add_item(capwap_control_header_tree
, hf_capwap_control_header_flags
, tvb
, offset
+plen
, 1, ENC_BIG_ENDIAN
);
3038 /* Returns the number of bytes consumed by this option. */
3040 dissect_capwap_header(tvbuff_t
*tvb
, proto_tree
*capwap_control_tree
, unsigned offset
, packet_info
*pinfo
, uint8_t *payload_type
, uint8_t *payload_wbid
, bool *fragment_is
, bool *fragment_more
, uint32_t *fragment_id
, uint32_t *fragment_offset
)
3042 unsigned plen
= 0, hlen
= 0;
3043 proto_item
*ti
, *ti_flag
, *ti_len
;
3044 proto_tree
*capwap_header_tree
;
3045 proto_tree
*capwap_header_flags_tree
;
3047 uint8_t maclength
, wirelesslength
;
3050 /* RFC 5415 HLEN: A 5-bit field containing the length of the CAPWAP transport header in 4-byte words */
3051 /* As we display the preamble separately reduce the length by 1 */
3052 hlen
= tvb_get_bits8(tvb
, (offset
+plen
)*8, 5)*4-1;
3053 ti
= proto_tree_add_item(capwap_control_tree
, hf_capwap_header
, tvb
, offset
+plen
, hlen
, ENC_NA
);
3054 capwap_header_tree
= proto_item_add_subtree(ti
, ett_capwap_header
);
3056 /* Header Length : 5 Bits */
3057 ti_len
= proto_tree_add_item(capwap_header_tree
, hf_capwap_header_hlen
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3058 proto_item_append_text(ti_len
, " (%d)",hlen
+1);
3059 /* Radio ID : 5 Bits */
3060 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_rid
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3062 /* Wireless Binding ID : 5 Bits */
3063 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_wbid
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3065 /* WBid of Payload (for CAPWAP Data Packet) */
3066 *payload_wbid
= tvb_get_bits8(tvb
, (offset
+plen
)*8+10, 5);
3068 /* Flags : 9 Bits */
3069 flags
= tvb_get_bits16(tvb
, (offset
+plen
)*8+15, 9, ENC_BIG_ENDIAN
);
3070 ti_flag
= proto_tree_add_item(capwap_header_tree
, hf_capwap_header_flags
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3071 capwap_header_flags_tree
= proto_item_add_subtree(ti_flag
, ett_capwap_header_flags
);
3073 proto_tree_add_item(capwap_header_flags_tree
, hf_capwap_header_flags_t
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3074 proto_tree_add_item(capwap_header_flags_tree
, hf_capwap_header_flags_f
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3075 proto_tree_add_item(capwap_header_flags_tree
, hf_capwap_header_flags_l
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3076 proto_tree_add_item(capwap_header_flags_tree
, hf_capwap_header_flags_w
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3077 proto_tree_add_item(capwap_header_flags_tree
, hf_capwap_header_flags_m
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3078 proto_tree_add_item(capwap_header_flags_tree
, hf_capwap_header_flags_k
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3079 proto_tree_add_item(capwap_header_flags_tree
, hf_capwap_header_flags_r
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3082 *fragment_is
= ((flags
& 0x80) == 0x80) ? true : false;
3083 *fragment_more
= ((flags
&0x40) == 0x40) ? false : true;
3085 /* Type of Payload (for CAPWAP Data Packet), use 0xff for Keep-Alive */
3086 if (flags
&0x08 /* data channel Keep-Alive packet */) {
3087 col_append_str(pinfo
->cinfo
, COL_INFO
, " Keep-Alive");
3088 *payload_type
= 0xff;
3090 *payload_type
= tvb_get_bits8(tvb
, (offset
+plen
)*8+15,1);
3094 /* Fragment ID : 16 Bits */
3095 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_fragment_id
, tvb
, offset
+plen
, 2, ENC_BIG_ENDIAN
);
3096 *fragment_id
= (uint32_t)tvb_get_ntohs(tvb
, offset
+plen
);
3099 /* Fragment offset : 13 Bits */
3100 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_fragment_offset
, tvb
, offset
+plen
, 2, ENC_BIG_ENDIAN
);
3101 *fragment_offset
= 8 * (uint32_t)tvb_get_bits16(tvb
, (offset
+plen
)*8, 13, ENC_BIG_ENDIAN
);
3103 /* Reserved 3 Bits */
3104 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_reserved
, tvb
, offset
+plen
+1, 1, ENC_BIG_ENDIAN
);
3106 /* Optional Headers */
3107 if (flags
& 0x10 /* Radio MAC address */) {
3108 maclength
=tvb_get_uint8(tvb
, offset
+plen
);
3109 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_mac_length
, tvb
, offset
+plen
, 1, ENC_BIG_ENDIAN
);
3111 if (maclength
== 6) {
3112 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_mac_eui48
, tvb
, offset
+plen
, maclength
, ENC_NA
);
3114 } else if (maclength
== 8) {
3115 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_mac_eui64
, tvb
, offset
+plen
, maclength
, ENC_BIG_ENDIAN
);
3117 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_mac_data
, tvb
, offset
+plen
, maclength
, ENC_NA
);
3120 /* 4 Bytes Alignment ? */
3121 align
= 4-((offset
+plen
)%4);
3124 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_padding
, tvb
, offset
+plen
, align
, ENC_NA
);
3128 if (flags
& 0x20 /* Wireless specific information */) {
3129 wirelesslength
=tvb_get_uint8(tvb
, offset
+plen
);
3131 /* in Draft 8, the WBid is add in Wireless Specific Information*/
3132 if (global_capwap_draft_8_cisco
== 1)
3137 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_wireless_length
, tvb
, offset
+plen
, 1, ENC_BIG_ENDIAN
);
3139 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_wireless_data
, tvb
, offset
+plen
, wirelesslength
, ENC_NA
);
3141 /* Optional Wireless Specific Information for ieee80211 (wbid = 1) Section 4 of RFC5416 */
3142 if (*payload_wbid
== 1)
3144 dissect_capwap_data_message_bindings_ieee80211(tvb
, capwap_header_tree
, offset
+plen
, pinfo
);
3147 plen
+= wirelesslength
;
3148 /* 4 Bytes Alignment ? */
3149 align
= 4-((offset
+plen
)%4);
3152 proto_tree_add_item(capwap_header_tree
, hf_capwap_header_padding
, tvb
, offset
+plen
, align
, ENC_NA
);
3156 if ((plen
!= hlen
) && global_capwap_draft_8_cisco
== 0)
3158 expert_add_info_format(pinfo
, ti_len
, &ei_capwap_header_length_bad
, "Wrong calculate length (%d) =! header length (%d) ! (May be try to use Cisco Wireless Controller Support Preference ?)", plen
, hlen
);
3163 /* Returns the number of bytes consumed by this option. */
3165 dissect_capwap_preamble(tvbuff_t
*tvb
, proto_tree
*capwap_control_tree
, unsigned offset
, uint8_t *type_header
)
3169 proto_tree
*capwap_preamble_tree
;
3171 ti
= proto_tree_add_item(capwap_control_tree
, hf_capwap_preamble
, tvb
, offset
+plen
, -1, ENC_NA
);
3172 capwap_preamble_tree
= proto_item_add_subtree(ti
, ett_capwap_preamble
);
3174 proto_tree_add_item(capwap_preamble_tree
, hf_capwap_preamble_version
, tvb
, offset
+plen
, 1, ENC_BIG_ENDIAN
);
3175 proto_tree_add_item(capwap_preamble_tree
, hf_capwap_preamble_type
, tvb
, offset
+plen
, 1, ENC_BIG_ENDIAN
);
3176 *type_header
= tvb_get_uint8(tvb
, offset
+plen
) & 0x0F;
3179 if (*type_header
== 1) {
3180 proto_tree_add_item(capwap_preamble_tree
, hf_capwap_preamble_reserved
, tvb
, offset
+plen
, 3, ENC_BIG_ENDIAN
);
3183 proto_item_set_len(ti
, plen
);
3187 /* Code to actually dissect the packets */
3189 dissect_capwap_control(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
3192 proto_tree
*capwap_control_tree
;
3193 unsigned offset
= 0;
3194 tvbuff_t
*next_tvb
= NULL
;
3195 uint8_t type_header
;
3196 uint8_t payload_type
;
3197 uint8_t payload_wbid
;
3200 uint32_t fragment_id
;
3201 uint32_t fragment_offset
;
3202 fragment_head
*frag_msg
= NULL
;
3203 bool save_fragmented
;
3205 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "CAPWAP-Control");
3206 col_set_str(pinfo
->cinfo
, COL_INFO
, "CAPWAP-Control");
3208 ti
= proto_tree_add_item(tree
, proto_capwap_control
, tvb
, 0, -1, ENC_NA
);
3209 capwap_control_tree
= proto_item_add_subtree(ti
, ett_capwap_control
);
3211 /* CAPWAP Preamble */
3212 offset
+= dissect_capwap_preamble(tvb
, capwap_control_tree
, offset
, &type_header
);
3214 if (type_header
== 1) {
3215 next_tvb
= tvb_new_subset_remaining (tvb
, offset
);
3216 call_dissector(dtls_handle
, next_tvb
, pinfo
, tree
);
3221 offset
+= dissect_capwap_header(tvb
, capwap_control_tree
, offset
, pinfo
, &payload_type
, &payload_wbid
, &fragment_is
, &fragment_more
, &fragment_id
, &fragment_offset
);
3223 /* CAPWAP Reassemble */
3224 save_fragmented
= pinfo
->fragmented
;
3226 if (global_capwap_reassemble
&& fragment_is
)
3228 const int len_rem
= tvb_reported_length_remaining(tvb
, offset
);
3232 pinfo
->fragmented
= true;
3234 frag_msg
= fragment_add_check(&capwap_reassembly_table
,
3235 tvb
, offset
, pinfo
, fragment_id
, NULL
,
3240 next_tvb
= process_reassembled_data(tvb
, offset
, pinfo
,
3241 "Reassembled CAPWAP", frag_msg
,
3242 &capwap_frag_items
, NULL
, tree
);
3244 if (next_tvb
== NULL
)
3245 { /* make a new subset */
3246 next_tvb
= tvb_new_subset_remaining(tvb
, offset
);
3247 call_data_dissector(next_tvb
, pinfo
, tree
);
3248 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " (Fragment ID: %u, Fragment Offset: %u)", fragment_id
, fragment_offset
);
3252 /* CAPWAP Control Header */
3253 offset
= dissect_capwap_control_header(next_tvb
, capwap_control_tree
, 0, pinfo
);
3255 /* CAPWAP Message Element */
3256 offset
+= dissect_capwap_message_element(next_tvb
, capwap_control_tree
, offset
, pinfo
);
3257 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " (Reassembled, Fragment ID: %u)", fragment_id
);
3262 /* CAPWAP Control Header */
3263 offset
+= dissect_capwap_control_header(tvb
, capwap_control_tree
, offset
, pinfo
);
3265 /* CAPWAP Message Element */
3266 offset
+= dissect_capwap_message_element(tvb
, capwap_control_tree
, offset
, pinfo
);
3268 pinfo
->fragmented
= save_fragmented
;
3273 dissect_capwap_data(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3276 proto_tree
*capwap_data_tree
;
3277 unsigned offset
= 0;
3279 uint8_t type_header
;
3280 uint8_t payload_type
;
3281 uint8_t payload_wbid
;
3284 uint32_t fragment_id
;
3285 uint32_t fragment_offset
;
3286 fragment_head
*frag_msg
= NULL
;
3287 bool save_fragmented
;
3290 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "CAPWAP-Data");
3291 col_set_str(pinfo
->cinfo
, COL_INFO
, "CAPWAP-Data");
3293 ti
= proto_tree_add_item(tree
, proto_capwap_data
, tvb
, 0, -1, ENC_NA
);
3294 capwap_data_tree
= proto_item_add_subtree(ti
, ett_capwap_data
);
3296 /* CAPWAP Preamble */
3297 offset
+= dissect_capwap_preamble(tvb
, capwap_data_tree
, offset
, &type_header
);
3299 if (type_header
== 1) {
3300 next_tvb
= tvb_new_subset_remaining (tvb
, offset
);
3301 call_dissector(dtls_handle
, next_tvb
, pinfo
, tree
);
3302 return tvb_captured_length(tvb
);
3306 offset
+= dissect_capwap_header(tvb
, capwap_data_tree
, offset
, pinfo
, &payload_type
, &payload_wbid
, &fragment_is
, &fragment_more
, &fragment_id
, &fragment_offset
);
3308 /* CAPWAP Reassemble */
3309 save_fragmented
= pinfo
->fragmented
;
3311 if (global_capwap_reassemble
&& fragment_is
)
3313 int len_rem
= tvb_reported_length_remaining(tvb
, offset
);
3317 pinfo
->fragmented
= true;
3319 frag_msg
= fragment_add_check(&capwap_reassembly_table
,
3320 tvb
, offset
, pinfo
, fragment_id
, NULL
,
3325 next_tvb
= process_reassembled_data(tvb
, offset
, pinfo
,
3326 "Reassembled CAPWAP", frag_msg
,
3327 &capwap_frag_items
, NULL
, tree
);
3329 if (next_tvb
== NULL
)
3330 { /* make a new subset */
3331 next_tvb
= tvb_new_subset_remaining(tvb
, offset
);
3332 call_data_dissector(next_tvb
, pinfo
, tree
);
3333 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " (Fragment ID: %u, Fragment Offset: %u)", fragment_id
, fragment_offset
);
3334 return tvb_captured_length(tvb
);
3338 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " (Reassembled, Fragment ID: %u)", fragment_id
);
3343 next_tvb
= tvb_new_subset_remaining (tvb
, offset
);
3346 /* CAPWAP Data Payload */
3347 if (payload_type
== 0) {
3348 /* IEEE 802.3 Frame */
3349 call_dissector(ieee8023_handle
, next_tvb
, pinfo
, tree
);
3351 else if (payload_type
== 0xff) {
3352 /* CAPWAP Keep-Alive Payload */
3353 dissect_capwap_data_keep_alive(next_tvb
, pinfo
, capwap_data_tree
, 0);
3357 switch (payload_wbid
) {
3358 case 0: /* Reserved - Cisco seems to use this instead of 1 */
3359 /* It seems that just calling ieee80211_handle is not
3360 * quite enough to get this right, so call data dissector
3363 call_data_dissector(next_tvb
, pinfo
, tree
);
3365 case 1: /* IEEE 802.11 */
3366 call_dissector(global_capwap_swap_frame_control
? ieee80211_bsfc_handle
: ieee80211_handle
, next_tvb
, pinfo
, tree
);
3368 default: /* Unknown Data */
3369 call_data_dissector(next_tvb
, pinfo
, tree
);
3373 pinfo
->fragmented
= save_fragmented
;
3374 return tvb_captured_length(tvb
);
3378 apply_capwap_prefs(void)
3380 global_capwap_data_udp_ports
= prefs_get_range_value("capwap.data", "udp.port");
3384 proto_register_capwap_control(void)
3386 module_t
*capwap_module
;
3388 static hf_register_info hf
[] = {
3390 { &hf_capwap_preamble
,
3391 { "Preamble", "capwap.preamble",
3392 FT_NONE
, BASE_NONE
, NULL
, 0x0,
3395 { &hf_capwap_preamble_version
,
3396 { "Version", "capwap.preamble.version",
3397 FT_UINT8
, BASE_DEC
, NULL
, 0xF0,
3398 "Version of CAPWAP", HFILL
}
3400 { &hf_capwap_preamble_type
,
3401 { "Type", "capwap.preamble.type",
3402 FT_UINT8
, BASE_DEC
, VALS(type_header_vals
), 0x0F,
3403 "Type of Payload", HFILL
}
3405 { &hf_capwap_preamble_reserved
,
3406 { "Reserved", "capwap.preamble.reserved",
3407 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3411 { &hf_capwap_header
,
3412 { "Header", "capwap.header",
3413 FT_NONE
, BASE_NONE
, NULL
, 0x0,
3416 { &hf_capwap_header_hlen
,
3417 { "Header Length", "capwap.header.length",
3418 FT_UINT24
, BASE_DEC
, NULL
, 0xF80000,
3419 "Length of the CAPWAP transport header in 4-byte words (similar to IP header length)", HFILL
}
3421 { &hf_capwap_header_rid
,
3422 { "Radio ID", "capwap.header.rid",
3423 FT_UINT24
, BASE_DEC
, NULL
, 0x07C000,
3426 { &hf_capwap_header_wbid
,
3427 { "Wireless Binding ID", "capwap.header.wbid",
3428 FT_UINT24
, BASE_DEC
, VALS(type_wbid
), 0x003E00,
3431 { &hf_capwap_header_flags
,
3432 { "Header Flags", "capwap.header.flags",
3433 FT_UINT24
, BASE_HEX
, NULL
, 0x0001FF,
3436 { &hf_capwap_header_flags_t
,
3437 { "Payload Type", "capwap.header.flags.t",
3438 FT_BOOLEAN
, 24, TFS(&flag_type_t
), 0x000100,
3441 { &hf_capwap_header_flags_f
,
3442 { "Fragment", "capwap.header.flags.f",
3443 FT_BOOLEAN
, 24, TFS(&flag_type_f
), 0x000080,
3446 { &hf_capwap_header_flags_l
,
3447 { "Last Fragment", "capwap.header.flags.l",
3448 FT_BOOLEAN
, 24, TFS(&flag_type_l
), 0x000040,
3451 { &hf_capwap_header_flags_w
,
3452 { "Wireless header", "capwap.header.flags.w",
3453 FT_BOOLEAN
, 24, TFS(&flag_type_w
), 0x000020,
3456 { &hf_capwap_header_flags_m
,
3457 { "Radio MAC header", "capwap.header.flags.m",
3458 FT_BOOLEAN
, 24, TFS(&flag_type_m
), 0x000010,
3461 { &hf_capwap_header_flags_k
,
3462 { "Keep-Alive", "capwap.header.flags.k",
3463 FT_BOOLEAN
, 24, TFS(&flag_type_k
), 0x000008,
3466 { &hf_capwap_header_flags_r
,
3467 { "Reserved", "capwap.header.flags.r",
3468 FT_UINT24
, BASE_HEX
, 0x0, 0x000007,
3471 { &hf_capwap_header_fragment_id
,
3472 { "Fragment ID", "capwap.header.fragment.id",
3473 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3476 { &hf_capwap_header_fragment_offset
,
3477 { "Fragment Offset", "capwap.header.fragment.offset",
3478 FT_UINT16
, BASE_DEC
, NULL
, 0xFFF8,
3481 { &hf_capwap_header_reserved
,
3482 { "Reserved", "capwap.header.fragment.reserved",
3483 FT_UINT16
, BASE_DEC
, NULL
, 0x0007,
3486 { &hf_capwap_header_mac_length
,
3487 { "MAC length", "capwap.header.mac.length",
3488 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3491 { &hf_capwap_header_mac_eui48
,
3492 { "MAC address", "capwap.header.mac.eui48",
3493 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
3496 { &hf_capwap_header_mac_eui64
,
3497 { "MAC address", "capwap.header.mac.eui64",
3498 FT_EUI64
, BASE_NONE
, NULL
, 0x0,
3501 { &hf_capwap_header_mac_data
,
3502 { "MAC address", "capwap.header.mac.data",
3503 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3506 { &hf_capwap_header_wireless_length
,
3507 { "Wireless length", "capwap.header.wireless.length",
3508 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3511 { &hf_capwap_header_wireless_data
,
3512 { "Wireless data", "capwap.header.wireless.data",
3513 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3516 { &hf_capwap_header_wireless_data_ieee80211_fi
,
3517 { "Wireless data ieee80211 Frame Info", "capwap.header.wireless.data.ieee80211.fi",
3518 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3521 { &hf_capwap_header_wireless_data_ieee80211_fi_rssi
,
3522 { "Wireless data ieee80211 RSSI (dBm)", "capwap.header.wireless.data.ieee80211.fi.rssi",
3523 FT_INT8
, BASE_DEC
, NULL
, 0x0,
3526 { &hf_capwap_header_wireless_data_ieee80211_fi_snr
,
3527 { "Wireless data ieee80211 SNR (dB)", "capwap.header.wireless.data.ieee80211.fi.snr",
3528 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3531 { &hf_capwap_header_wireless_data_ieee80211_fi_data_rate
,
3532 { "Wireless data ieee80211 Data Rate (Mbps)", "capwap.header.wireless.data.ieee80211.fi.data_rate",
3533 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3536 { &hf_capwap_header_wireless_data_ieee80211_dest_wlan
,
3537 { "Wireless data ieee80211 Destination WLANs", "capwap.header.wireless.data.ieee80211.dw",
3538 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3541 { &hf_capwap_header_wireless_data_ieee80211_dw_wlan_id_bitmap
,
3542 { "Wireless data ieee80211 Destination Wlan Id bitmap",
3543 "capwap.header.wireless.data.ieee80211.dw.wlan_id_bitmap",
3544 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3547 { &hf_capwap_header_wireless_data_ieee80211_dw_reserved
,
3548 { "Wireless data ieee80211 Destination Wlan reserved", "capwap.header.wireless.data.ieee80211.dw.reserved",
3549 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3552 { &hf_capwap_header_padding
,
3553 { "Padding for 4 Byte Alignment", "capwap.header.padding",
3554 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3558 /* CAPWAP Control Header Message */
3560 { &hf_capwap_control_header
,
3561 { "Control Header", "capwap.control.header",
3562 FT_NONE
, BASE_NONE
, NULL
, 0x0,
3565 { &hf_capwap_control_header_msg_type
,
3566 { "Message Type", "capwap.control.header.message_type",
3567 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3570 { &hf_capwap_control_header_msg_type_enterprise_nbr
,
3571 { "Message Type (Enterprise Number)", "capwap.control.header.message_type.enterprise_number",
3572 FT_UINT24
, BASE_ENTERPRISES
, STRINGS_ENTERPRISES
, 0x0,
3575 { &hf_capwap_control_header_msg_type_enterprise_specific
,
3576 { "Message Type (Enterprise Specific)", "capwap.control.header.message_type.enterprise_specific",
3577 FT_UINT32
, BASE_DEC
, VALS(message_type
), 0x0,
3580 { &hf_capwap_control_header_seq_number
,
3581 { "Sequence Number", "capwap.control.header.sequence_number",
3582 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3585 { &hf_capwap_control_header_msg_element_length
,
3586 { "Message Element Length", "capwap.control.header.message_element_length",
3587 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3590 { &hf_capwap_control_header_flags
,
3591 { "Flags", "capwap.control.header.flags",
3592 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3596 /* CAPWAP Protocol Message Elements */
3598 { &hf_capwap_message_element
,
3599 { "Message Element", "capwap.message_element",
3600 FT_NONE
, BASE_NONE
, NULL
, 0x0,
3603 { &hf_capwap_msg_element
,
3604 { "Type", "capwap.message_element",
3605 FT_NONE
, BASE_NONE
, NULL
, 0x0,
3609 { &hf_capwap_msg_element_type
,
3610 { "Type", "capwap.message_element.type",
3611 FT_UINT16
, BASE_DEC
, VALS(message_element_type_vals
), 0x0,
3612 "CAPWAP Message Element type", HFILL
}
3614 { &hf_capwap_msg_element_length
,
3615 { "Length", "capwap.message_element.length",
3616 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3617 "CAPWAP Message Element length", HFILL
}
3619 { &hf_capwap_msg_element_value
,
3620 { "Value", "capwap.message_element.value",
3621 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3622 "CAPWAP Message Element value", HFILL
}
3625 /* CAPWAP Protocol Message Element Type */
3628 { &hf_capwap_msg_element_type_ac_descriptor_stations
,
3629 { "Stations", "capwap.control.message_element.ac_descriptor.stations",
3630 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3633 { &hf_capwap_msg_element_type_ac_descriptor_limit
,
3634 { "Limit Stations", "capwap.control.message_element.ac_descriptor.limit",
3635 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3638 { &hf_capwap_msg_element_type_ac_descriptor_active_wtp
,
3639 { "Active WTPs", "capwap.control.message_element.ac_descriptor.active_wtp",
3640 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3643 { &hf_capwap_msg_element_type_ac_descriptor_max_wtp
,
3644 { "Max WTPs", "capwap.control.message_element.ac_descriptor.max_wtp",
3645 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3648 /* AC Descriptor Security Flags... */
3649 { &hf_capwap_msg_element_type_ac_descriptor_security
,
3650 { "Security Flags", "capwap.control.message_element.ac_descriptor.security",
3651 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3654 { &hf_capwap_msg_element_type_ac_descriptor_security_s
,
3655 { "AC supports the pre-shared", "capwap.control.message_element.ac_descriptor.security.s",
3656 FT_BOOLEAN
, 8, NULL
, 0x04,
3659 { &hf_capwap_msg_element_type_ac_descriptor_security_x
,
3660 { "AC supports X.509 Certificate", "capwap.control.message_element.ac_descriptor.security.x",
3661 FT_BOOLEAN
, 8, NULL
, 0x02,
3664 { &hf_capwap_msg_element_type_ac_descriptor_security_r
,
3665 { "Reserved", "capwap.control.message_element.ac_descriptor.security.r",
3666 FT_BOOLEAN
, 8, TFS(&tfs_set_notset
), 0xF9,
3670 { &hf_capwap_msg_element_type_ac_descriptor_rmac_field
,
3671 { "R-MAC Field", "capwap.control.message_element.ac_descriptor.rmac_field",
3672 FT_UINT8
, BASE_DEC
, VALS(rmac_field_vals
), 0x0,
3675 { &hf_capwap_msg_element_type_ac_descriptor_reserved
,
3676 { "Reserved", "capwap.control.message_element.ac_descriptor.reserved",
3677 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3680 /* AC Descriptor DTLS Policy Flags... */
3681 { &hf_capwap_msg_element_type_ac_descriptor_dtls_policy
,
3682 { "DTLS Policy Flags", "capwap.control.message_element.ac_descriptor.dtls_policy",
3683 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3686 { &hf_capwap_msg_element_type_ac_descriptor_dtls_policy_d
,
3687 { "DTLS-Enabled Data Channel Supported", "capwap.control.message_element.ac_descriptor.dtls_policy.d",
3688 FT_BOOLEAN
, 8, NULL
, 0x04,
3691 { &hf_capwap_msg_element_type_ac_descriptor_dtls_policy_c
,
3692 { "Clear Text Data Channel Supported", "capwap.control.message_element.ac_descriptor.dtls_policy.c",
3693 FT_BOOLEAN
, 8, NULL
, 0x02,
3696 { &hf_capwap_msg_element_type_ac_descriptor_dtls_policy_r
,
3697 { "Reserved", "capwap.control.message_element.ac_descriptor.dtls_policy.r",
3698 FT_UINT8
, BASE_HEX
, 0x0, 0xF9,
3699 "Must be zero", HFILL
}
3702 { &hf_capwap_msg_element_type_ac_information
,
3703 { "AC Information", "capwap.control.message_element.ac_information",
3704 FT_NONE
, BASE_NONE
, NULL
, 0x0,
3708 { &hf_capwap_msg_element_type_ac_information_vendor
,
3709 { "AC Information Vendor", "capwap.control.message_element.ac_information.vendor",
3710 FT_UINT32
, BASE_ENTERPRISES
, STRINGS_ENTERPRISES
, 0x0,
3713 { &hf_capwap_msg_element_type_ac_information_type
,
3714 { "AC Information Type", "capwap.control.message_element.ac_information.type",
3715 FT_UINT16
, BASE_DEC
, VALS(ac_information_type_vals
), 0x0,
3718 { &hf_capwap_msg_element_type_ac_information_length
,
3719 { "AC Information Length", "capwap.control.message_element.ac_information.length",
3720 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3724 { &hf_capwap_msg_element_type_ac_information_value
,
3725 { "AC Information Value", "capwap.control.message_element.ac_information.value",
3726 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3729 { &hf_capwap_msg_element_type_ac_information_hardware_version
,
3730 { "AC Hardware Version", "capwap.control.message_element.ac_information.hardware_version",
3731 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3734 { &hf_capwap_msg_element_type_ac_information_software_version
,
3735 { "AC Software Version", "capwap.control.message_element.ac_information.software_version",
3736 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3739 { &hf_capwap_msg_element_type_ac_ipv4_list
,
3740 { "AC IPv4 List", "capwap.control.message_element.message_element.ac_ipv4_list",
3741 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
3744 { &hf_capwap_msg_element_type_ac_ipv6_list
,
3745 { "AC IPv6 List", "capwap.control.message_element.message_element.ac_ipv6_list",
3746 FT_IPv6
, BASE_NONE
, NULL
, 0x0,
3749 /* CAPWAP Control IPvX Address*/
3750 { &hf_capwap_msg_element_type_capwap_control_ipv4
,
3751 { "CAPWAP Control IP Address", "capwap.control.message_element.message_element.capwap_control_ipv4",
3752 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
3755 { &hf_capwap_msg_element_type_capwap_control_ipv6
,
3756 { "CAPWAP Control IP Address", "capwap.control.message_element.message_element.capwap_control_ipv6",
3757 FT_IPv6
, BASE_NONE
, NULL
, 0x0,
3760 { &hf_capwap_msg_element_type_capwap_control_wtp_count
,
3761 { "CAPWAP Control WTP Count", "capwap.control.message_element.capwap_control_wtp_count",
3762 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3765 { &hf_capwap_msg_element_type_capwap_timers_discovery
,
3766 { "CAPWAP Timers Discovery (Sec)", "capwap.control.message_element.capwap_timers_discovery",
3767 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3770 { &hf_capwap_msg_element_type_capwap_timers_echo_request
,
3771 { "CAPWAP Timers Echo Request (Sec)", "capwap.control.message_element.capwap_timers_echo_request",
3772 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3775 { &hf_capwap_msg_element_type_decryption_error_report_period_radio_id
,
3776 { "Decryption Error Report Period Radio ID", "capwap.control.message_element.decryption_error_report_period.radio_id",
3777 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3780 { &hf_capwap_msg_element_type_decryption_error_report_period_interval
,
3781 { "Decryption Error Report Period Interval (Sec)", "capwap.control.message_element.decryption_error_report_period.interval",
3782 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3785 { &hf_capwap_msg_element_type_delete_station_radio_id
,
3786 { "Radio ID", "capwap.control.message_element.delete_station.radio_id",
3787 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3788 "Representing the radio, whose value is between one (1) and 31", HFILL
}
3790 { &hf_capwap_msg_element_type_delete_station_length
,
3791 { "Mac Length", "capwap.control.message_element.delete_station.length",
3792 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3793 "The length of the MAC Address field", HFILL
}
3795 { &hf_capwap_msg_element_type_delete_station_mac_eui48
,
3796 { "MAC address", "capwap.control.message_element.delete_station.mac.eui48",
3797 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
3800 { &hf_capwap_msg_element_type_delete_station_mac_eui64
,
3801 { "MAC address", "capwap.control.message_element.delete_station.mac.eui64",
3802 FT_EUI64
, BASE_NONE
, NULL
, 0x0,
3805 { &hf_capwap_msg_element_type_delete_station_mac_data
,
3806 { "MAC address", "capwap.control.message_element.delete_station.mac.data",
3807 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3810 { &hf_capwap_msg_element_type_ac_name
,
3811 { "AC Name", "capwap.control.message_element.ac_name",
3812 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3815 { &hf_capwap_msg_element_type_ac_name_with_priority
,
3816 { "AC Name Priority", "capwap.control.message_element.ac_name_with_priority",
3817 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3821 { &hf_capwap_msg_element_type_ac_timestamp
,
3822 { "AC Timestamp", "capwap.control.message_element.ac_timestamp",
3823 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0,
3827 { &hf_capwap_msg_element_type_add_station_radio_id
,
3828 { "Radio ID", "capwap.control.message_element.add_station.radio_id",
3829 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3830 "Representing the radio, whose value is between one (1) and 31", HFILL
}
3832 { &hf_capwap_msg_element_type_add_station_length
,
3833 { "Mac Length", "capwap.control.message_element.add_station.length",
3834 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3835 "The length of the MAC Address field", HFILL
}
3837 { &hf_capwap_msg_element_type_add_station_mac_eui48
,
3838 { "MAC address", "capwap.control.message_element.add_station.mac.eui48",
3839 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
3842 { &hf_capwap_msg_element_type_add_station_mac_eui64
,
3843 { "MAC address", "capwap.control.message_element.add_station.mac.eui64",
3844 FT_EUI64
, BASE_NONE
, NULL
, 0x0,
3847 { &hf_capwap_msg_element_type_add_station_mac_data
,
3848 { "MAC address", "capwap.control.message_element.add_station.mac.data",
3849 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3852 { &hf_capwap_msg_element_type_add_station_vlan_name
,
3853 { "Vlan Name", "capwap.control.message_element.add_station.vlan_name",
3854 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3855 "Containing the VLAN Name on which the WTP is to locally bridge user data", HFILL
}
3858 { &hf_capwap_msg_element_type_discovery_type
,
3859 { "Discovery Type", "capwap.control.message_element.discovery_type",
3860 FT_UINT8
, BASE_DEC
, VALS(discovery_type_vals
), 0x0,
3864 { &hf_capwap_msg_element_type_idle_timeout
,
3865 { "Idle Timeout (Sec)", "capwap.control.message_element.idle_timeout",
3866 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3869 { &hf_capwap_msg_element_type_location_data
,
3870 { "Location Data", "capwap.control.message_element.location_data",
3871 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3874 { &hf_capwap_msg_element_type_maximum_message_length
,
3875 { "Maximum Message Length", "capwap.control.message_element.maximum_message_length",
3876 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3880 { &hf_capwap_msg_element_type_capwap_local_ipv4_address
,
3881 { "CAPWAP Local IPv4 Address", "capwap.control.message_element.capwap_local_ipv4_address",
3882 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
3883 "The IP address of the sender", HFILL
}
3887 { &hf_capwap_msg_element_type_radio_admin_id
,
3888 { "Radio Administrative ID", "capwap.control.message_element.radio_admin.id",
3889 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3892 { &hf_capwap_msg_element_type_radio_admin_state
,
3893 { "Radio Administrative State", "capwap.control.message_element.radio_admin.state",
3894 FT_UINT8
, BASE_DEC
, VALS(radio_admin_state_vals
), 0x0,
3897 { &hf_capwap_msg_element_type_radio_op_state_radio_id
,
3898 { "Radio Operational ID", "capwap.control.message_element.radio_op_state.radio_id",
3899 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3902 { &hf_capwap_msg_element_type_radio_op_state_radio_state
,
3903 { "Radio Operational State", "capwap.control.message_element.radio_op_state.radio_state",
3904 FT_UINT8
, BASE_DEC
, VALS(radio_op_state_vals
), 0x0,
3907 { &hf_capwap_msg_element_type_radio_op_state_radio_cause
,
3908 { "Radio Operational Cause", "capwap.control.message_element.radio_op_state.radio_cause",
3909 FT_UINT8
, BASE_DEC
, VALS(radio_op_cause_vals
), 0x0,
3912 { &hf_capwap_msg_element_type_result_code
,
3913 { "Result Code", "capwap.control.message_element.result_code",
3914 FT_UINT32
, BASE_DEC
, VALS(result_code_vals
), 0x0,
3917 { &hf_capwap_msg_element_type_session_id
,
3918 { "Session ID", "capwap.control.message_element.session_id",
3919 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3922 { &hf_capwap_msg_element_type_statistics_timer
,
3923 { "Statistics Timer (Sec)", "capwap.control.message_element.statistics_timer",
3924 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3927 { &hf_capwap_msg_element_type_vsp_vendor_identifier
,
3928 { "Vendor Identifier", "capwap.control.message_element.vsp.vendor_identifier",
3929 FT_UINT32
, BASE_ENTERPRISES
, STRINGS_ENTERPRISES
, 0x0,
3932 { &hf_capwap_msg_element_type_vsp_vendor_element_id
,
3933 { "Vendor Element ID", "capwap.control.message_element.vsp.vendor_element_id",
3934 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3937 { &hf_capwap_msg_element_type_vsp_vendor_data
,
3938 { "Vendor Data", "capwap.control.message_element.vsp.vendor_data",
3939 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3943 { &hf_capwap_msg_element_type_wtp_board_data
,
3944 { "WTP Board Data", "capwap.control.message_element.wtp_board_data",
3945 FT_NONE
, BASE_NONE
, NULL
, 0x0,
3948 { &hf_capwap_msg_element_type_wtp_board_data_vendor
,
3949 { "WTP Board Data Vendor", "capwap.control.message_element.wtp_board_data.vendor",
3950 FT_UINT32
, BASE_ENTERPRISES
, STRINGS_ENTERPRISES
, 0x0,
3953 { &hf_capwap_msg_element_type_wtp_board_data_type
,
3954 { "Board Data Type", "capwap.control.message_element.wtp_board_data.type",
3955 FT_UINT16
, BASE_DEC
, VALS(board_data_type_vals
), 0x0,
3958 { &hf_capwap_msg_element_type_wtp_board_data_length
,
3959 { "Board Data Length", "capwap.control.message_element.wtp_board_data.length",
3960 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3963 { &hf_capwap_msg_element_type_wtp_board_data_value
,
3964 { "Board Data Value", "capwap.control.message_element.wtp_board_data.value",
3965 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3969 { &hf_capwap_msg_element_type_wtp_board_data_wtp_model_number
,
3970 { "WTP Model Number", "capwap.control.message_element.wtp_board_data.wtp_model_number",
3971 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3974 { &hf_capwap_msg_element_type_wtp_board_data_wtp_serial_number
,
3975 { "WTP Serial Number", "capwap.control.message_element.wtp_board_data.wtp_serial_number",
3976 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3979 { &hf_capwap_msg_element_type_wtp_board_data_wtp_board_id
,
3980 { "WTP Board ID", "capwap.control.message_element.wtp_board_data.wtp_board_id",
3981 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3984 { &hf_capwap_msg_element_type_wtp_board_data_wtp_board_revision
,
3985 { "WTP Board Revision", "capwap.control.message_element.wtp_board_data.wtp_board_revision",
3986 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3989 { &hf_capwap_msg_element_type_wtp_board_data_base_mac_address
,
3990 { "Base Mac Address", "capwap.control.message_element.wtp_board_data.base_mac_address",
3991 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
3995 { &hf_capwap_msg_element_type_wtp_descriptor_max_radios
,
3996 { "Max Radios", "capwap.control.message_element.wtp_descriptor.max_radios",
3997 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4000 { &hf_capwap_msg_element_type_wtp_descriptor_radio_in_use
,
4001 { "Radio in use", "capwap.control.message_element.wtp_descriptor.radio_in_use",
4002 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4005 { &hf_capwap_msg_element_type_wtp_descriptor_number_encrypt
,
4006 { "Encryption Capabilities (Number)", "capwap.control.message_element.wtp_descriptor.number_encrypt",
4007 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4010 { &hf_capwap_msg_element_type_wtp_descriptor_encrypt
,
4011 { "Encryption Capabilities", "capwap.control.message_element.wtp_descriptor.encrypt",
4012 FT_NONE
, BASE_NONE
, NULL
, 0x0,
4015 { &hf_capwap_msg_element_type_wtp_descriptor_encrypt_reserved
,
4016 { "Reserved (Encrypt)", "capwap.control.message_element.wtp_descriptor.encrypt_reserved",
4017 FT_UINT8
, BASE_DEC
, NULL
, 0xE0,
4020 { &hf_capwap_msg_element_type_wtp_descriptor_encrypt_wbid
,
4021 { "Encrypt WBID", "capwap.control.message_element.wtp_descriptor.encrypt_wbid",
4022 FT_UINT8
, BASE_DEC
, VALS(type_wbid
), 0x1F,
4025 { &hf_capwap_msg_element_type_wtp_descriptor_encrypt_capabilities
,
4026 { "Encryption Capabilities", "capwap.control.message_element.wtp_descriptor.encrypt_capabilities",
4027 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4031 { &hf_capwap_msg_element_type_wtp_descriptor
,
4032 { "WTP Descriptor", "capwap.control.message_element.wtp_descriptor",
4033 FT_NONE
, BASE_NONE
, NULL
, 0x0,
4036 { &hf_capwap_msg_element_type_wtp_descriptor_vendor
,
4037 { "WTP Descriptor Vendor", "capwap.control.message_element.wtp_descriptor.vendor",
4038 FT_UINT32
, BASE_ENTERPRISES
, STRINGS_ENTERPRISES
, 0x0,
4041 { &hf_capwap_msg_element_type_wtp_descriptor_type
,
4042 { "Descriptor Type", "capwap.control.message_element.wtp_descriptor.type",
4043 FT_UINT16
, BASE_DEC
, VALS(wtp_descriptor_type_vals
), 0x0,
4046 { &hf_capwap_msg_element_type_wtp_descriptor_length
,
4047 { "Descriptor Length", "capwap.control.message_element.wtp_descriptor.length",
4048 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4051 { &hf_capwap_msg_element_type_wtp_descriptor_value
,
4052 { "Descriptor Value", "capwap.control.message_element.wtp_descriptor.value",
4053 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4056 { &hf_capwap_msg_element_type_wtp_descriptor_hardware_version
,
4057 { "WTP Hardware Version", "capwap.control.message_element.wtp_descriptor.hardware_version",
4058 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4061 { &hf_capwap_msg_element_type_wtp_descriptor_active_software_version
,
4062 { "WTP Active Software Version", "capwap.control.message_element.wtp_descriptor.active_software_version",
4063 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4066 { &hf_capwap_msg_element_type_wtp_descriptor_boot_version
,
4067 { "WTP Boot Version", "capwap.control.message_element.wtp_descriptor.boot_version",
4068 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4071 { &hf_capwap_msg_element_type_wtp_descriptor_other_software_version
,
4072 { "WTP Other Software Version", "capwap.control.message_element.wtp_descriptor.other_software_version",
4073 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4076 { &hf_capwap_msg_element_type_wtp_fallback
,
4077 { "WTP Fallback", "capwap.control.message_element.wtp_fallback",
4078 FT_UINT8
, BASE_DEC
, VALS(wtp_fallback_vals
), 0x0,
4082 { &hf_capwap_msg_element_type_wtp_frame_tunnel_mode
,
4083 { "WTP Frame Tunnel Mode", "capwap.control.message_element.wtp_frame_tunnel_mode",
4084 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4087 { &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_n
,
4088 { "Native Frame Tunnel Mode", "capwap.control.message_element.wtp_frame_tunnel_mode.n",
4089 FT_BOOLEAN
, 8, NULL
, 0x08,
4092 { &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_e
,
4093 { "802.3 Frame Tunnel Mode", "capwap.control.message_element.wtp_frame_tunnel_mode.e",
4094 FT_BOOLEAN
, 8, NULL
, 0x04,
4097 { &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_l
,
4098 { "Local Bridging", "capwap.control.message_element.wtp_frame_tunnel_mode.l",
4099 FT_BOOLEAN
, 8, NULL
, 0x02,
4102 { &hf_capwap_msg_element_type_wtp_frame_tunnel_mode_r
,
4103 { "Reserved", "capwap.control.message_element.wtp_frame_tunnel_mode.r",
4104 FT_UINT8
, BASE_HEX
, 0x0, 0xF1,
4108 { &hf_capwap_msg_element_type_wtp_mac_type
,
4109 { "WTP MAC Type", "capwap.control.message_element.wtp_mac_type",
4110 FT_UINT8
, BASE_DEC
, VALS(wtp_mac_vals
), 0x0,
4111 "The MAC mode of operation supported by the WTP", HFILL
}
4113 { &hf_capwap_msg_element_type_wtp_name
,
4114 { "WTP Name", "capwap.control.message_element.wtp_name",
4115 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4118 { &hf_capwap_msg_element_type_wtp_reboot_statistics_reboot_count
,
4119 { "Reboot Count", "capwap.control.message_element.wtp_reboot_statistics.reboot_count",
4120 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4121 "The number of reboots that have occurred due to a WTP crash", HFILL
}
4123 { &hf_capwap_msg_element_type_wtp_reboot_statistics_ac_initiated_count
,
4124 { "AC Initiated Count", "capwap.control.message_element.wtp_reboot_statistics.ac_initiated_count",
4125 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4126 "The number of reboots that have occurred at the request of a CAPWAP protocol message", HFILL
}
4128 { &hf_capwap_msg_element_type_wtp_reboot_statistics_link_failure_count
,
4129 { "Link Failure Count", "capwap.control.message_element.wtp_reboot_statistics.link_failure_count",
4130 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4131 "The number of times that a CAPWAP protocol connection with an AC has failed due to link failure", HFILL
}
4133 { &hf_capwap_msg_element_type_wtp_reboot_statistics_sw_failure_count
,
4134 { "SW Failure Count", "capwap.control.message_element.wtp_reboot_statistics.sw_failure_count",
4135 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4136 "The number of times that a CAPWAP protocol connection with an AC has failed due to software-related reasons", HFILL
}
4138 { &hf_capwap_msg_element_type_wtp_reboot_statistics_hw_failure_count
,
4139 { "HW Failure Count", "capwap.control.message_element.wtp_reboot_statistics.hw_failure_count",
4140 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4141 "The number of times that a CAPWAP protocol connection with an AC has failed due to hardware-related reasons", HFILL
}
4143 { &hf_capwap_msg_element_type_wtp_reboot_statistics_other_failure_count
,
4144 { "Other Failure Count", "capwap.control.message_element.wtp_reboot_statistics.other_failure_count",
4145 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4146 "The number of times that a CAPWAP protocol connection with an AC has failed due to known reasons, other than AC initiated, link, SW or HW failure", HFILL
}
4148 { &hf_capwap_msg_element_type_wtp_reboot_statistics_unknown_failure_count
,
4149 { "Unknown Failure Count", "capwap.control.message_element.wtp_reboot_statistics.unknown_failure_count",
4150 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4151 "The number of times that a CAPWAP protocol connection with an AC has failed for unknown reasons", HFILL
}
4153 { &hf_capwap_msg_element_type_wtp_reboot_statistics_last_failure_type
,
4154 { "Last Failure Type", "capwap.control.message_element.wtp_reboot_statistics.last_failure_type",
4155 FT_UINT8
, BASE_DEC
, VALS(last_failure_type_vals
), 0x0,
4156 "The failure type of the most recent WTP failure", HFILL
}
4159 { &hf_capwap_msg_element_type_capwap_local_ipv6_address
,
4160 { "CAPWAP Local IPv6 Address", "capwap.control.message_element.capwap_local_ipv6_address",
4161 FT_IPv6
, BASE_NONE
, NULL
, 0x0,
4162 "The IP address of the sender", HFILL
}
4165 { &hf_capwap_msg_element_type_capwap_transport_protocol
,
4166 { "CAPWAP Transport Protocol", "capwap.control.message_element.capwap_transport_protocol",
4167 FT_UINT8
, BASE_DEC
, VALS(capwap_transport_protocol_vals
), 0x0,
4168 "The transport to use for the CAPWAP Data channel", HFILL
}
4171 { &hf_capwap_msg_element_type_mtu_discovery_padding
,
4172 { "MTU Discovery Padding", "capwap.control.message_element.mtu_discovery_padding",
4173 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4174 "A variable-length pad, filled with the value 0xFF", HFILL
}
4177 { &hf_capwap_msg_element_type_ecn_support
,
4178 { "ECN Support", "capwap.control.message_element.ecn_support",
4179 FT_UINT8
, BASE_DEC
, VALS(ecn_support_vals
), 0x0,
4180 "The sender's support for ECN, as defined in [RFC3168]", HFILL
}
4184 /* Message element type IEEE80211 : RFC 5416 Section 6 */
4185 { &hf_capwap_msg_element_type_ieee80211_add_wlan_radio_id
,
4186 { "Radio ID", "capwap.control.message_element.ieee80211_add_wlan.radio_id",
4187 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4190 { &hf_capwap_msg_element_type_ieee80211_add_wlan_wlan_id
,
4191 { "WLAN ID", "capwap.control.message_element.ieee80211_add_wlan.wlan_id",
4192 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4195 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability
,
4196 { "Capability", "capwap.control.message_element.ieee80211_add_wlan.capability",
4197 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4200 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_e
,
4201 { "ESS", "capwap.control.message_element.ieee80211_add_wlan.capability.e",
4202 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x8000,
4205 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_i
,
4206 { "IBSS", "capwap.control.message_element.ieee80211_add_wlan.capability.i",
4207 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x4000,
4210 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_c
,
4211 { "CF-Pollable", "capwap.control.message_element.ieee80211_add_wlan.capability.c",
4212 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x2000,
4215 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_f
,
4216 { "CF-Poll Request", "capwap.control.message_element.ieee80211_add_wlan.capability.f",
4217 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x1000,
4220 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_p
,
4221 { "Privacy", "capwap.control.message_element.ieee80211_add_wlan.capability.p",
4222 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0800,
4225 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_s
,
4226 { "Short Preamble", "capwap.control.message_element.ieee80211_add_wlan.capability.s",
4227 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0400,
4230 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_b
,
4231 { "PBCC", "capwap.control.message_element.ieee80211_add_wlan.capability.b",
4232 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0200,
4235 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_a
,
4236 { "Channel Agility", "capwap.control.message_element.ieee80211_add_wlan.capability.a",
4237 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0100,
4240 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_m
,
4241 { "Spectrum Management", "capwap.control.message_element.ieee80211_add_wlan.capability.m",
4242 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0080,
4245 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_q
,
4246 { "QoS", "capwap.control.message_element.ieee80211_add_wlan.capability.q",
4247 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0040,
4250 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_t
,
4251 { "Short Slot Time", "capwap.control.message_element.ieee80211_add_wlan.capability.t",
4252 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0020,
4255 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_d
,
4256 { "APSD", "capwap.control.message_element.ieee80211_add_wlan.capability.d",
4257 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0010,
4260 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_v
,
4261 { "Reserved", "capwap.control.message_element.ieee80211_add_wlan.capability.v",
4262 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0008,
4265 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_o
,
4266 { "DSSS-OFDM", "capwap.control.message_element.ieee80211_add_wlan.capability.o",
4267 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0004,
4270 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_k
,
4271 { "Delayed Block ACK", "capwap.control.message_element.ieee80211_add_wlan.capability.k",
4272 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0002,
4275 { &hf_capwap_msg_element_type_ieee80211_add_wlan_capability_l
,
4276 { "Immediate Block ACK", "capwap.control.message_element.ieee80211_add_wlan.capability.l",
4277 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0001,
4280 { &hf_capwap_msg_element_type_ieee80211_add_wlan_key_index
,
4281 { "Key-Index", "capwap.control.message_element.ieee80211_add_wlan.key_index",
4282 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4285 { &hf_capwap_msg_element_type_ieee80211_add_wlan_key_status
,
4286 { "Key Status", "capwap.control.message_element.ieee80211_add_wlan.key_status",
4287 FT_UINT8
, BASE_DEC
, VALS(ieee80211_wlan_key_status_vals
), 0x0,
4290 { &hf_capwap_msg_element_type_ieee80211_add_wlan_key_length
,
4291 { "Key Length", "capwap.control.message_element.ieee80211_add_wlan.key_length",
4292 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4295 { &hf_capwap_msg_element_type_ieee80211_add_wlan_key
,
4296 { "Key", "capwap.control.message_element.ieee80211_add_wlan.key",
4297 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4300 { &hf_capwap_msg_element_type_ieee80211_add_wlan_group_tsc
,
4301 { "Group TSC", "capwap.control.message_element.ieee80211_add_wlan.group_tsc",
4302 FT_UINT64
, BASE_DEC
, NULL
, 0x00FFFFFF,
4305 { &hf_capwap_msg_element_type_ieee80211_add_wlan_qos
,
4306 { "QoS", "capwap.control.message_element.ieee80211_add_wlan.qos",
4307 FT_UINT8
, BASE_DEC
, VALS(ieee80211_add_wlan_qos_vals
), 0x0,
4310 { &hf_capwap_msg_element_type_ieee80211_add_wlan_auth_type
,
4311 { "Auth Type", "capwap.control.message_element.ieee80211_add_wlan.auth_type",
4312 FT_UINT8
, BASE_DEC
, VALS(ieee80211_add_wlan_auth_type_vals
), 0x0,
4315 { &hf_capwap_msg_element_type_ieee80211_add_wlan_mac_mode
,
4316 { "MAC Mode", "capwap.control.message_element.ieee80211_add_wlan.mac_mode",
4317 FT_UINT8
, BASE_DEC
, VALS(ieee80211_add_wlan_mac_mode_vals
), 0x0,
4320 { &hf_capwap_msg_element_type_ieee80211_add_wlan_tunnel_mode
,
4321 { "Tunnel Mode", "capwap.control.message_element.ieee80211_add_wlan.tunnel_mode",
4322 FT_UINT8
, BASE_DEC
, VALS(ieee80211_add_wlan_tunnel_mode_vals
), 0x0,
4325 { &hf_capwap_msg_element_type_ieee80211_add_wlan_suppress_ssid
,
4326 { "Suppress SSID", "capwap.control.message_element.ieee80211_add_wlan.suppress_ssid",
4327 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x01,
4330 { &hf_capwap_msg_element_type_ieee80211_add_wlan_ssid
,
4331 { "SSID", "capwap.control.message_element.ieee80211_add_wlan.ssid",
4332 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4335 { &hf_capwap_msg_element_type_ieee80211_antenna_radio_id
,
4336 { "Radio ID", "capwap.control.message_element.ieee80211_antenna.radio_id",
4337 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4340 { &hf_capwap_msg_element_type_ieee80211_antenna_diversity
,
4341 { "Diversity", "capwap.control.message_element.ieee80211_antenna.diversity",
4342 FT_UINT8
, BASE_DEC
, VALS(ieee80211_antenna_diversity_vals
), 0x0,
4345 { &hf_capwap_msg_element_type_ieee80211_antenna_combiner
,
4346 { "Combiner", "capwap.control.message_element.ieee80211_antenna.combiner",
4347 FT_UINT8
, BASE_DEC
, VALS(ieee80211_antenna_combiner_vals
), 0x0,
4350 { &hf_capwap_msg_element_type_ieee80211_antenna_count
,
4351 { "Antenna Count", "capwap.control.message_element.ieee80211_antenna.count",
4352 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4355 { &hf_capwap_msg_element_type_ieee80211_antenna_selection
,
4356 { "Selection", "capwap.control.message_element.ieee80211_antenna.selection",
4357 FT_UINT8
, BASE_DEC
, VALS(ieee80211_antenna_selection_vals
), 0x0,
4360 { &hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_radio_id
,
4361 { "Radio ID", "capwap.control.message_element.ieee80211_assigned_wtp_bssid.radio_id",
4362 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4365 { &hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_wlan_id
,
4366 { "WLAN ID", "capwap.control.message_element.ieee80211_assigned_wtp_bssid.wlan_id",
4367 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4370 { &hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_bssid
,
4371 { "BSSID", "capwap.control.message_element.ieee80211_assigned_wtp_bssid.bssid",
4372 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
4375 { &hf_capwap_msg_element_type_ieee80211_delete_wlan_radio_id
,
4376 { "Radio ID", "capwap.control.message_element.ieee80211_delete_wlan.radio_id",
4377 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4380 { &hf_capwap_msg_element_type_ieee80211_delete_wlan_wlan_id
,
4381 { "WLAN ID", "capwap.control.message_element.ieee80211_delete_wlan.wlan_id",
4382 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4385 { &hf_capwap_msg_element_type_ieee80211_direct_sequence_control_radio_id
,
4386 { "Radio ID", "capwap.control.message_element.ieee80211_direct_sequence_control.radio_id",
4387 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4390 { &hf_capwap_msg_element_type_ieee80211_direct_sequence_control_reserved
,
4391 { "Reserved", "capwap.control.message_element.ieee80211_direct_sequence_control.reserved",
4392 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4395 { &hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_channel
,
4396 { "Current Channel", "capwap.control.message_element.ieee80211_direct_sequence_control.current_channel",
4397 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4400 { &hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_cca
,
4401 { "Current CCA", "capwap.control.message_element.ieee80211_direct_sequence_control.current_cca",
4402 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4405 { &hf_capwap_msg_element_type_ieee80211_direct_sequence_control_energy_detect_threshold
,
4406 { "Energy Detect Threshold", "capwap.control.message_element.ieee80211_direct_sequence_control.energy_detect_threshold",
4407 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4410 { &hf_capwap_msg_element_type_ieee80211_ie_radio_id
,
4411 { "Radio ID", "capwap.control.message_element.ieee80211_ie.radio_id",
4412 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4415 { &hf_capwap_msg_element_type_ieee80211_ie_wlan_id
,
4416 { "WLAN ID", "capwap.control.message_element.ieee80211_ie.wlan_id",
4417 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4420 { &hf_capwap_msg_element_type_ieee80211_ie_flags
,
4421 { "Flags", "capwap.control.message_element.ieee80211_ie.flags",
4422 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4425 { &hf_capwap_msg_element_type_ieee80211_ie_flags_b
,
4426 { "Include IE in Beacons", "capwap.control.message_element.ieee80211_ie.flags.b",
4427 FT_BOOLEAN
, 8, NULL
, 0x80,
4428 "When set, the WTP is to include the Information Element in IEEE 802.11 Beacons associated with the WLAN", HFILL
}
4430 { &hf_capwap_msg_element_type_ieee80211_ie_flags_p
,
4431 { "Include IE in Probe Responses", "capwap.control.message_element.ieee80211_ie.flags.p",
4432 FT_BOOLEAN
, 8, NULL
, 0x40,
4433 "When set, the WTP is to include the Information Element in Probe Responses associated with the WLAN", HFILL
}
4435 { &hf_capwap_msg_element_type_ieee80211_ie_flags_rsv
,
4436 { "Reserved", "capwap.control.message_element.ieee80211_ie.flags.rsv",
4437 FT_UINT8
, BASE_HEX
, NULL
, 0x3F,
4438 "Must be Zero", HFILL
}
4440 { &hf_capwap_msg_element_type_ieee80211_mac_operation_radio_id
,
4441 { "Radio ID", "capwap.control.message_element.ieee80211_mac_operation.radio_id",
4442 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4445 { &hf_capwap_msg_element_type_ieee80211_mac_operation_reserved
,
4446 { "Reserved", "capwap.control.message_element.ieee80211_mac_operation.reserved",
4447 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4450 { &hf_capwap_msg_element_type_ieee80211_mac_operation_rts_threshold
,
4451 { "RTS Threshold", "capwap.control.message_element.ieee80211_mac_operation.rts_threshold",
4452 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4455 { &hf_capwap_msg_element_type_ieee80211_mac_operation_short_retry
,
4456 { "Short Retry", "capwap.control.message_element.ieee80211_mac_operation.short_retry",
4457 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4460 { &hf_capwap_msg_element_type_ieee80211_mac_operation_long_retry
,
4461 { "Long Retry", "capwap.control.message_element.ieee80211_mac_operation.long_retry",
4462 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4465 { &hf_capwap_msg_element_type_ieee80211_mac_operation_fragmentation_threshold
,
4466 { "Fragmentation Threshold", "capwap.control.message_element.ieee80211_mac_operation.fragmentation_threshold",
4467 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4470 { &hf_capwap_msg_element_type_ieee80211_mac_operation_tx_msdu_lifetime
,
4471 { "Tx MDSU Lifetime", "capwap.control.message_element.ieee80211_mac_operation.tx_msdu_lifetime",
4472 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4475 { &hf_capwap_msg_element_type_ieee80211_mac_operation_rx_msdu_lifetime
,
4476 { "Rx MDSU Lifetime", "capwap.control.message_element.ieee80211_mac_operation.rx_msdu_lifetime",
4477 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4480 { &hf_capwap_msg_element_type_ieee80211_mic_countermeasures_radio_id
,
4481 { "Radio ID", "capwap.control.message_element.ieee80211_mic_countermeasures.radio_id",
4482 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4485 { &hf_capwap_msg_element_type_ieee80211_mic_countermeasures_wlan_id
,
4486 { "WLAN ID", "capwap.control.message_element.ieee80211_mic_countermeasures.wlan_id",
4487 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4490 { &hf_capwap_msg_element_type_ieee80211_mic_countermeasures_mac_address
,
4491 { "MAC Address", "capwap.control.message_element.ieee80211_mic_countermeasures.mac_address",
4492 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
4495 { &hf_capwap_msg_element_type_ieee80211_multi_domain_capability_radio_id
,
4496 { "Radio ID", "capwap.control.message_element.ieee80211_multi_domain_capability.radio_id",
4497 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4500 { &hf_capwap_msg_element_type_ieee80211_multi_domain_capability_reserved
,
4501 { "Reserved", "capwap.control.message_element.ieee80211_multi_domain_capability.reserved",
4502 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4505 { &hf_capwap_msg_element_type_ieee80211_multi_domain_capability_first_channel
,
4506 { "First Channel", "capwap.control.message_element.ieee80211_multi_domain_capability.first_channel",
4507 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4510 { &hf_capwap_msg_element_type_ieee80211_multi_domain_capability_number_of_channels
,
4511 { "Number of Channels", "capwap.control.message_element.ieee80211_multi_domain_capability.number_of_channels",
4512 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4515 { &hf_capwap_msg_element_type_ieee80211_multi_domain_capability_max_tx_power_level
,
4516 { "Max TX Power Level", "capwap.control.message_element.ieee80211_multi_domain_capability.max_tx_power_level",
4517 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4521 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_radio_id
,
4522 { "Radio ID", "capwap.control.message_element.ieee80211_ofdm_control.radio_id",
4523 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4526 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_reserved
,
4527 { "Reserved", "capwap.control.message_element.ieee80211_ofdm_control.reserved",
4528 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4531 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_current_channel
,
4532 { "Current Channel", "capwap.control.message_element.ieee80211_ofdm_control.current_channel",
4533 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4536 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support
,
4537 { "Band Support", "capwap.control.message_element.ieee80211_ofdm_control.band_support",
4538 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4541 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit0
,
4542 { "Operating in the 5.15-5.25 GHz band", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit0",
4543 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x01,
4546 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit1
,
4547 { "Operating in the 5.25-5.35 GHz band", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit1",
4548 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x02,
4551 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit2
,
4552 { "Operating in the 5.725-5.825 GHz band", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit2",
4553 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x04,
4556 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit3
,
4557 { "Operating in the 5.47-5.725 GHz band", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit3",
4558 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x08,
4561 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit4
,
4562 { "Operating in the lower Japanese 5.25 GHz band", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit4",
4563 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x10,
4566 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit5
,
4567 { "Operating in the l5.03-5.091 GHz band", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit5",
4568 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x20,
4571 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit6
,
4572 { "Operating in the l5.03-5.091 GHz band", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit5",
4573 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x40,
4576 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit7
,
4577 { "Reserved", "capwap.control.message_element.ieee80211_ofdm_control.band_support.bit7",
4578 FT_UINT8
, BASE_HEX
, NULL
, 0x80,
4581 { &hf_capwap_msg_element_type_ieee80211_ofdm_control_ti_threshold
,
4582 { "TI Threshold", "capwap.control.message_element.ieee80211_mofdm_control.ti_threshold",
4583 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4587 { &hf_capwap_msg_element_type_ieee80211_rate_set_radio_id
,
4588 { "Radio ID", "capwap.control.message_element.ieee80211_rate_set.radio_id",
4589 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4592 { &hf_capwap_msg_element_type_ieee80211_rate_set_rate_set
,
4593 { "Rate Set", "capwap.control.message_element.ieee80211_rate_set.rate_set",
4594 FT_UINT8
, BASE_HEX
|BASE_EXT_STRING
, &ieee80211_supported_rates_vals_ext
, 0x0,
4595 "In Mbit/sec, (B) for Basic Rates", HFILL
}
4597 { &hf_capwap_msg_element_type_ieee80211_station_radio_id
,
4598 { "Radio ID", "capwap.control.message_element.ieee80211_station.radio_id",
4599 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4602 { &hf_capwap_msg_element_type_ieee80211_station_association_id
,
4603 { "Association ID", "capwap.control.message_element.ieee80211_station.association_id",
4604 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4607 { &hf_capwap_msg_element_type_ieee80211_station_flags
,
4608 { "Flags", "capwap.control.message_element.ieee80211_station.flags",
4609 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4612 { &hf_capwap_msg_element_type_ieee80211_station_mac_address
,
4613 { "MAC Address", "capwap.control.message_element.ieee80211_station.mac_address",
4614 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
4617 { &hf_capwap_msg_element_type_ieee80211_station_capabilities
,
4618 { "Capabilities", "capwap.control.message_element.ieee80211_station.capabilities",
4619 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4622 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_e
,
4623 { "ESS", "capwap.control.message_element.ieee80211_station.capabilities.e",
4624 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x8000,
4627 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_i
,
4628 { "IBSS", "capwap.control.message_element.ieee80211_station.capabilities.i",
4629 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x4000,
4632 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_c
,
4633 { "CF-Pollable", "capwap.control.message_element.ieee80211_station.capabilities.c",
4634 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x2000,
4637 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_f
,
4638 { "CF-Poll Request", "capwap.control.message_element.ieee80211_station.capabilities.f",
4639 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x1000,
4642 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_p
,
4643 { "Privacy", "capwap.control.message_element.ieee80211_station.capabilities.p",
4644 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0800,
4647 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_s
,
4648 { "Short Preamble", "capwap.control.message_element.ieee80211_station.capabilities.s",
4649 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0400,
4652 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_b
,
4653 { "PBCC", "capwap.control.message_element.ieee80211_station.capabilities.b",
4654 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0200,
4657 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_a
,
4658 { "Channel Agility", "capwap.control.message_element.ieee80211_station.capabilities.a",
4659 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0100,
4662 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_m
,
4663 { "Spectrum Management", "capwap.control.message_element.ieee80211_station.capabilities.m",
4664 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0080,
4667 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_q
,
4668 { "QoS", "capwap.control.message_element.ieee80211_station.capabilities.q",
4669 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0040,
4672 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_t
,
4673 { "Short Slot Time", "capwap.control.message_element.ieee80211_station.capabilities.t",
4674 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0020,
4677 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_d
,
4678 { "APSD", "capwap.control.message_element.ieee80211_station.capabilities.d",
4679 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0010,
4682 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_v
,
4683 { "Reserved", "capwap.control.message_element.ieee80211_station.capabilities.v",
4684 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0008,
4687 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_o
,
4688 { "DSSS-OFDM", "capwap.control.message_element.ieee80211_station.capabilities.o",
4689 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0004,
4692 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_k
,
4693 { "Delayed Block ACK", "capwap.control.message_element.ieee80211_station.capabilities.k",
4694 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0002,
4697 { &hf_capwap_msg_element_type_ieee80211_station_capabilities_l
,
4698 { "Immediate Block ACK", "capwap.control.message_element.ieee80211_station.capabilities.l",
4699 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0001,
4702 { &hf_capwap_msg_element_type_ieee80211_station_wlan_id
,
4703 { "WLAN ID", "capwap.control.message_element.ieee80211_station.wlan_id",
4704 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4707 { &hf_capwap_msg_element_type_ieee80211_station_supported_rates
,
4708 { "Supported Rates", "capwap.control.message_element.ieee80211_station.supported_rates",
4709 FT_UINT8
, BASE_HEX
|BASE_EXT_STRING
, &ieee80211_supported_rates_vals_ext
, 0x0,
4710 "In Mbit/sec, (B) for Basic Rates", HFILL
}
4712 { &hf_capwap_msg_element_type_ieee80211_station_session_key_mac
,
4713 { "Mac Address", "capwap.control.message_element.ieee80211_station_session_key.mac",
4714 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
4715 "The station's MAC Address", HFILL
}
4717 { &hf_capwap_msg_element_type_ieee80211_station_session_key_flags
,
4718 { "Flags", "capwap.control.message_element.ieee80211_station_session_key.flags",
4719 FT_UINT16
, BASE_DEC
, NULL
, 0x3FFF,
4722 { &hf_capwap_msg_element_type_ieee80211_station_session_key_flags_a
,
4723 { "Flag A", "capwap.control.message_element.ieee80211_station_session_key.flags_a",
4724 FT_BOOLEAN
, 16, NULL
, 0x2000,
4727 { &hf_capwap_msg_element_type_ieee80211_station_session_key_flags_c
,
4728 { "Flag C", "capwap.control.message_element.ieee80211_station_session_key.flags_c",
4729 FT_BOOLEAN
, 16, NULL
, 0x1000,
4732 { &hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_tsc
,
4733 { "Pairwise TSC", "capwap.control.message_element.ieee80211_station_session_key.pairwire_tsc",
4734 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4735 "Transmit Sequence Counter (TSC)", HFILL
}
4737 { &hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_rsc
,
4738 { "Pairwise RSC", "capwap.control.message_element.ieee80211_station_session_key.pairwire_rsc",
4739 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4740 "Receive Sequence Counter (TSC)", HFILL
}
4742 { &hf_capwap_msg_element_type_ieee80211_station_session_key_key
,
4743 { "Key", "capwap.control.message_element.ieee80211_station_session_key.key",
4744 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4747 { &hf_capwap_msg_element_type_ieee80211_supported_rates_radio_id
,
4748 { "Radio ID", "capwap.control.message_element.ieee80211_supported_rates.radio_id",
4749 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4752 { &hf_capwap_msg_element_type_ieee80211_supported_rates_rate
,
4753 { "Rates", "capwap.control.message_element.ieee80211_supported_rates.rate",
4754 FT_UINT8
, BASE_HEX
|BASE_EXT_STRING
, &ieee80211_supported_rates_vals_ext
, 0x0,
4755 "In Mbit/sec, (B) for Basic Rates", HFILL
}
4757 { &hf_capwap_msg_element_type_ieee80211_tx_power_radio_id
,
4758 { "Radio ID", "capwap.control.message_element.ieee80211_tx_power.radio_id",
4759 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4762 { &hf_capwap_msg_element_type_ieee80211_tx_power_reserved
,
4763 { "Reserved", "capwap.control.message_element.ieee80211_tx_power.reserved",
4764 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4767 { &hf_capwap_msg_element_type_ieee80211_tx_power_current_tx_power
,
4768 { "Current Tx Power", "capwap.control.message_element.ieee80211_tx_power.current_tx_power",
4769 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4772 { &hf_capwap_msg_element_type_ieee80211_tx_power_level_radio_id
,
4773 { "Radio ID", "capwap.control.message_element.ieee80211_tx_power_level.radio_id",
4774 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4777 { &hf_capwap_msg_element_type_ieee80211_tx_power_level_num_levels
,
4778 { "Num Levels", "capwap.control.message_element.ieee80211_tx_power_level.num_levels",
4779 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4782 { &hf_capwap_msg_element_type_ieee80211_tx_power_level_power_level
,
4783 { "Power Level", "capwap.control.message_element.ieee80211_tx_power_level.power_level",
4784 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4787 { &hf_capwap_msg_element_type_ieee80211_update_wlan_radio_id
,
4788 { "Radio ID", "capwap.control.message_element.ieee80211_update_wlan.radio_id",
4789 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4792 { &hf_capwap_msg_element_type_ieee80211_update_wlan_wlan_id
,
4793 { "WLAN ID", "capwap.control.message_element.ieee80211_update_wlan.wlan_id",
4794 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4797 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability
,
4798 { "Capability", "capwap.control.message_element.ieee80211_update_wlan.capability",
4799 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4802 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_e
,
4803 { "ESS", "capwap.control.message_element.ieee80211_update_wlan.capability.e",
4804 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x8000,
4807 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_i
,
4808 { "IBSS", "capwap.control.message_element.ieee80211_update_wlan.capability.i",
4809 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x4000,
4812 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_c
,
4813 { "CF-Pollable", "capwap.control.message_element.ieee80211_update_wlan.capability.c",
4814 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x2000,
4817 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_f
,
4818 { "CF-Poll Request", "capwap.control.message_element.ieee80211_update_wlan.capability.f",
4819 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x1000,
4822 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_p
,
4823 { "Privacy", "capwap.control.message_element.ieee80211_update_wlan.capability.p",
4824 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0800,
4827 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_s
,
4828 { "Short Preamble", "capwap.control.message_element.ieee80211_update_wlan.capability.s",
4829 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0400,
4832 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_b
,
4833 { "PBCC", "capwap.control.message_element.ieee80211_update_wlan.capability.b",
4834 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0200,
4837 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_a
,
4838 { "Channel Agility", "capwap.control.message_element.ieee80211_update_wlan.capability.a",
4839 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0100,
4842 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_m
,
4843 { "Spectrum Management", "capwap.control.message_element.ieee80211_update_wlan.capability.m",
4844 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0080,
4847 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_q
,
4848 { "QoS", "capwap.control.message_element.ieee80211_update_wlan.capability.q",
4849 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0040,
4852 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_t
,
4853 { "Short Slot Time", "capwap.control.message_element.ieee80211_update_wlan.capability.t",
4854 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0020,
4857 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_d
,
4858 { "APSD", "capwap.control.message_element.ieee80211_update_wlan.capability.d",
4859 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0010,
4862 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_v
,
4863 { "Reserved", "capwap.control.message_element.ieee80211_update_wlan.capability.v",
4864 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0008,
4867 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_o
,
4868 { "DSSS-OFDM", "capwap.control.message_element.ieee80211_update_wlan.capability.o",
4869 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0004,
4872 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_k
,
4873 { "Delayed Block ACK", "capwap.control.message_element.ieee80211_update_wlan.capability.k",
4874 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0002,
4877 { &hf_capwap_msg_element_type_ieee80211_update_wlan_capability_l
,
4878 { "Immediate Block ACK", "capwap.control.message_element.ieee80211_update_wlan.capability.l",
4879 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0001,
4882 { &hf_capwap_msg_element_type_ieee80211_update_wlan_key_index
,
4883 { "Key-Index", "capwap.control.message_element.ieee80211_update_wlan.key_index",
4884 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4887 { &hf_capwap_msg_element_type_ieee80211_update_wlan_key_status
,
4888 { "Key Status", "capwap.control.message_element.ieee80211_update_wlan.key_status",
4889 FT_UINT8
, BASE_DEC
, VALS(ieee80211_wlan_key_status_vals
), 0x0,
4892 { &hf_capwap_msg_element_type_ieee80211_update_wlan_key_length
,
4893 { "Key Length", "capwap.control.message_element.ieee80211_update_wlan.key_length",
4894 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4897 { &hf_capwap_msg_element_type_ieee80211_update_wlan_key
,
4898 { "Key", "capwap.control.message_element.ieee80211_update_wlan.key",
4899 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4902 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_radio_id
,
4903 { "Radio ID", "capwap.control.message_element.ieee80211_wtp_radio_info.cfg_id",
4904 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4907 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_short_preamble
,
4908 { "Short Preamble", "capwap.control.message_element.ieee80211_wtp_radio_info.short_preamble",
4909 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4912 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_num_of_bssids
,
4913 { "Num of BSSIDs", "capwap.control.message_element.ieee80211_wtp_radio_info.num_of_bssids",
4914 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4917 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_dtim_period
,
4918 { "DTIM Period", "capwap.control.message_element.ieee80211_wtp_radio_info.dtim_period",
4919 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4922 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_bssid
,
4923 { "BSSID", "capwap.control.message_element.ieee80211_wtp_radio_info.bssid",
4924 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
4927 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_beacon_period
,
4928 { "Beacon Period", "capwap.control.message_element.ieee80211_wtp_radio_info.beacon_period",
4929 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4932 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_country_string
,
4933 { "Country String", "capwap.control.message_element.ieee80211_wtp_radio_info.country_string",
4934 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4937 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_id
,
4938 { "Radio ID", "capwap.control.message_element.ieee80211_wtp_radio_info.radio_id",
4939 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4942 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_reserved
,
4943 { "Radio Type Reserved", "capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_reserved",
4944 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4947 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_n
,
4948 { "Radio Type 802.11n", "capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_n",
4949 FT_BOOLEAN
, 4, NULL
, 0x8,
4952 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_g
,
4953 { "Radio Type 802.11g", "capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_g",
4954 FT_BOOLEAN
, 4, NULL
, 0x4,
4957 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_a
,
4958 { "Radio Type 802.11a", "capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_a",
4959 FT_BOOLEAN
, 4, NULL
, 0x2,
4962 { &hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_b
,
4963 { "Radio Type 802.11b", "capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_b",
4964 FT_BOOLEAN
, 4, NULL
, 0x1,
4968 { &hf_capwap_msg_element_type_ieee80211_supported_mac_profiles_numbers
,
4969 { "Numbers Profiles", "capwap.control.message_element.ieee80211_supported_mac_profiles.numbers",
4970 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4973 { &hf_capwap_msg_element_type_ieee80211_supported_mac_profiles_profile
,
4974 { "Profile", "capwap.control.message_element.ieee80211_supported_mac_profiles.profile",
4975 FT_UINT8
, BASE_DEC
, VALS(ieee80211_mac_profile_vals
), 0x0,
4978 { &hf_capwap_msg_element_type_ieee80211_mac_profile
,
4979 { "Profile", "capwap.control.message_element.ieee80211_mac_profile",
4980 FT_UINT8
, BASE_DEC
, VALS(ieee80211_mac_profile_vals
), 0x0,
4984 /* Data Channel Keep-Alive entries */
4985 { &hf_capwap_data_keep_alive
,
4986 { "Keep-Alive", "capwap.keep_alive",
4987 FT_NONE
, BASE_NONE
, NULL
, 0x0,
4990 { &hf_capwap_data_keep_alive_length
,
4991 { "Message Element Length", "capwap.keep_alive.length",
4992 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4996 /* Fortinet Vendor Specific*/
4998 { &hf_capwap_fortinet_element_id
,
4999 { "Fortinet Element ID", "capwap.control.fortinet.element_id",
5000 FT_UINT16
, BASE_DEC
, VALS(fortinet_element_id_vals
), 0x0,
5003 { &hf_capwap_fortinet_value
,
5004 { "Fortinet Value", "capwap.control.fortinet.value",
5005 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5008 { &hf_capwap_fortinet_ap_scan_rid
,
5009 { "Radio ID", "capwap.control.fortinet.ap_scan.rid",
5010 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5013 { &hf_capwap_fortinet_ap_scan_bgscan_intv
,
5014 { "bg scan interval", "capwap.control.fortinet.ap_scan.bgpscan.interval",
5015 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5018 { &hf_capwap_fortinet_ap_scan_bgscan_idle
,
5019 { "bg scan idle", "capwap.control.fortinet.ap_scan.bgpscan.idle",
5020 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
5023 { &hf_capwap_fortinet_ap_scan_bgscan_rpt_intv
,
5024 { "bg scan rpt interval", "capwap.control.fortinet.ap_scan.bgscan.rpt_interval",
5025 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5028 { &hf_capwap_fortinet_ap_scan_fgscan_rpt_intv
,
5029 { "fg scan rpt interval", "capwap.control.fortinet.ap_scan.fgscan.rpt_interval",
5030 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5033 { &hf_capwap_fortinet_passive_rid
,
5034 { "Radio ID", "capwap.control.fortinet.passive.rid",
5035 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5038 { &hf_capwap_fortinet_passive
,
5039 { "Passive", "capwap.control.fortinet.passive",
5040 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5043 { &hf_capwap_fortinet_daemon_rst
,
5044 { "Daemon RST", "capwap.control.fortinet.daemon_rst",
5045 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5048 { &hf_capwap_fortinet_mac_rid
,
5049 { "Radio ID", "capwap.control.fortinet.mac.rid",
5050 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5053 { &hf_capwap_fortinet_mac_wid
,
5054 { "WLAN ID", "capwap.control.fortinet.mac.wid",
5055 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5058 { &hf_capwap_fortinet_mac_len
,
5059 { "Length", "capwap.control.fortinet.mac.len",
5060 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5063 { &hf_capwap_fortinet_mac
,
5064 { "MAC", "capwap.control.fortinet.mac",
5065 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
5068 { &hf_capwap_fortinet_wtp_allow_sn
,
5069 { "Serial Number", "capwap.control.fortinet.wtp_allow.sn",
5070 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5071 "WTP Serial Number", HFILL
}
5073 { &hf_capwap_fortinet_wtp_allow_allow
,
5074 { "Allowed", "capwap.control.fortinet.wtp_allow.allowed",
5075 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_yes_no
), 0x0,
5078 { &hf_capwap_fortinet_wbh_sta_rid
,
5079 { "Radio ID", "capwap.control.fortinet.wbh_sta.rid",
5080 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5083 { &hf_capwap_fortinet_wbh_sta_len
,
5084 { "Length", "capwap.control.fortinet.wbh_sta.length",
5085 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5088 { &hf_capwap_fortinet_wbh_sta_mac
,
5089 { "STA MAC", "capwap.control.fortinet.wbh_sta.mac",
5090 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
5093 { &hf_capwap_fortinet_wbh_sta_bssid
,
5094 { "BSSID", "capwap.control.fortinet.wbh_sta.bssid",
5095 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
5098 { &hf_capwap_fortinet_wbh_sta_mhc
,
5099 { "MHC", "capwap.control.fortinet.wbh_sta.mhc",
5100 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5103 { &hf_capwap_fortinet_htcap_rid
,
5104 { "Radio ID", "capwap.control.fortinet.htcap.rid",
5105 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5108 { &hf_capwap_fortinet_htcap_mcs
,
5109 { "MCS", "capwap.control.fortinet.htcap.mcs",
5110 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5113 { &hf_capwap_fortinet_htcap_gi
,
5114 { "HT Short GI", "capwap.control.fortinet.htcap.mcs.gi",
5115 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5118 { &hf_capwap_fortinet_htcap_bw
,
5119 { "Bandwidth", "capwap.control.fortinet.htcap.mcs.bw",
5120 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5121 "20 or 40Mhz Mode", HFILL
}
5123 { &hf_capwap_fortinet_mvap_sn_length
,
5124 { "SN Length", "capwap.control.fortinet.mvap.sn.length",
5125 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5128 { &hf_capwap_fortinet_mvap_sn
,
5129 { "SN", "capwap.control.fortinet.mvap.sn",
5130 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5133 { &hf_capwap_fortinet_mvap_unknown
,
5134 { "Unknown", "capwap.control.fortinet.mvap.unknown",
5135 FT_UINT32
, BASE_DEC_HEX
, NULL
, 0x0,
5138 { &hf_capwap_fortinet_mvap_age
,
5139 { "Age", "capwap.control.fortinet.mvap.age",
5140 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5143 { &hf_capwap_fortinet_mvap_period
,
5144 { "Period", "capwap.control.fortinet.mvap.period",
5145 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5148 { &hf_capwap_fortinet_mvap_vfid
,
5149 { "Vfid", "capwap.control.fortinet.mvap.vfid",
5150 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5153 { &hf_capwap_fortinet_mode_rid
,
5154 { "Radio ID", "capwap.control.fortinet.mode.rid",
5155 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5158 { &hf_capwap_fortinet_mode
,
5159 { "Mode", "capwap.control.fortinet.mode",
5160 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5163 { &hf_capwap_fortinet_coext_rid
,
5164 { "Radio ID", "capwap.control.fortinet.coext.rid",
5165 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5168 { &hf_capwap_fortinet_coext
,
5169 { "Coext", "capwap.control.fortinet.coext",
5170 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5173 { &hf_capwap_fortinet_amsdu_rid
,
5174 { "Radio ID", "capwap.control.fortinet.amsdu.rid",
5175 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5178 { &hf_capwap_fortinet_amsdu
,
5179 { "AMSDU", "capwap.control.fortinet.amsdu",
5180 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5183 { &hf_capwap_fortinet_ps_opt_rid
,
5184 { "Radio ID", "capwap.control.fortinet.ps_opt.rid",
5185 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5188 { &hf_capwap_fortinet_ps_opt
,
5189 { "PS OPT", "capwap.control.fortinet.ps_opt",
5190 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5193 { &hf_capwap_fortinet_pure_rid
,
5194 { "Radio ID", "capwap.control.fortinet.pure.rid",
5195 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5198 { &hf_capwap_fortinet_pure
,
5199 { "Pure", "capwap.control.fortinet.pure",
5200 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5203 { &hf_capwap_fortinet_ebptag_ebp
,
5204 { "EBP", "capwap.control.fortinet.ebptag.ebp",
5205 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5208 { &hf_capwap_fortinet_ebptag_tag
,
5209 { "Tag", "capwap.control.fortinet.ebptag.tag",
5210 FT_ETHER
, BASE_NONE
, NULL
, 0x0,
5213 { &hf_capwap_fortinet_telnet_enable
,
5214 { "Telnet Enable", "capwap.control.fortinet.telnet_enable",
5215 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5218 { &hf_capwap_fortinet_admin_passwd
,
5219 { "Admin Password", "capwap.control.fortinet.admin_password",
5220 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5223 { &hf_capwap_fortinet_regcode
,
5224 { "Reg Code", "capwap.control.fortinet.reg_code",
5225 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5228 { &hf_capwap_fortinet_countrycode_rid
,
5229 { "Radio ID", "capwap.control.fortinet.countrycode.rid",
5230 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5233 { &hf_capwap_fortinet_countrycode_code
,
5234 { "Country Code", "capwap.control.fortinet.countrycode.code",
5235 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5238 { &hf_capwap_fortinet_countrycode_string
,
5239 { "Country Code", "capwap.control.fortinet.countrycode.string",
5240 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5243 { &hf_capwap_fortinet_sta_scan_rid
,
5244 { "Radio ID", "capwap.control.fortinet.sta_scan.rid",
5245 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5248 { &hf_capwap_fortinet_sta_scan
,
5249 { "STA Scan", "capwap.control.fortinet.sta_scan",
5250 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5253 { &hf_capwap_fortinet_fho_rid
,
5254 { "Radio ID", "capwap.control.fortinet.fho.rid",
5255 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5258 { &hf_capwap_fortinet_fho
,
5259 { "FHO", "capwap.control.fortinet.fho",
5260 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5263 { &hf_capwap_fortinet_apho_rid
,
5264 { "Radio ID", "capwap.control.fortinet.fho.rid",
5265 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5268 { &hf_capwap_fortinet_apho
,
5269 { "APHO", "capwap.control.fortinet.apho",
5270 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5273 { &hf_capwap_fortinet_sta_locate_rid
,
5274 { "Radio ID", "capwap.control.fortinet.sta_locate.rid",
5275 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5278 { &hf_capwap_fortinet_sta_locate_enable
,
5279 { "Locate Enable", "capwap.control.fortinet.sta_locate.enable",
5280 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5283 { &hf_capwap_fortinet_sta_locate_interval
,
5284 { "Locate Interval", "capwap.control.fortinet.sta_locate.interval",
5285 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5288 { &hf_capwap_fortinet_sa_rid
,
5289 { "Radio ID", "capwap.control.fortinet.spectrum_analysis.rid",
5290 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5293 { &hf_capwap_fortinet_sa_enable
,
5294 { "Spectrum Analysis Enable", "capwap.control.fortinet.spectrum_analysis.enable",
5295 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5298 { &hf_capwap_fortinet_sa_ssid
,
5299 { "SSID", "capwap.control.fortinet.spectrum_analysis.ssid",
5300 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5303 { &hf_capwap_fortinet_darrp_cfg_rid
,
5304 { "Radio ID", "capwap.control.fortinet.darrp_cfg.rid",
5305 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5308 { &hf_capwap_fortinet_darrp_cfg_enable
,
5309 { "DARRP CFG Enable", "capwap.control.fortinet.darrp_cfg.enable",
5310 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5313 { &hf_capwap_fortinet_darrp_cfg_interval
,
5314 { "DARRP CFG Interval", "capwap.control.fortinet.darrp_cfg.interval",
5315 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5318 { &hf_capwap_fortinet_ap_suppress_list_ver
,
5319 { "Ver", "capwap.control.fortinet.ap_suppress_list.ver",
5320 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5323 { &hf_capwap_fortinet_ap_suppress_list_op
,
5324 { "Op", "capwap.control.fortinet.ap_suppress_list.op",
5325 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5326 "Operation ?", HFILL
}
5328 { &hf_capwap_fortinet_ap_suppress_list_rid
,
5329 { "Radio ID", "capwap.control.fortinet.ap_suppress_list.rid",
5330 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5333 { &hf_capwap_fortinet_ap_suppress_list_len
,
5334 { "Length", "capwap.control.fortinet.ap_suppress_list.length",
5335 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5338 { &hf_capwap_fortinet_wds_rid
,
5339 { "Radio ID", "capwap.control.fortinet.wds.rid",
5340 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5343 { &hf_capwap_fortinet_wds_wid
,
5344 { "WLAN ID", "capwap.control.fortinet.wds.wid",
5345 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5348 { &hf_capwap_fortinet_wds_enable
,
5349 { "WDS Enable", "capwap.control.fortinet.wds.enable",
5350 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5353 { &hf_capwap_fortinet_vap_vlan_tag_rid
,
5354 { "Radio ID", "capwap.control.fortinet.vap_vlan_tag.rid",
5355 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5358 { &hf_capwap_fortinet_vap_vlan_tag_wid
,
5359 { "WLAN ID", "capwap.control.fortinet.vap_vlan_tag.wid",
5360 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5363 { &hf_capwap_fortinet_vap_vlan_tag
,
5364 { "Vlan ID", "capwap.control.fortinet.vap_vlan_tag",
5365 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5368 { &hf_capwap_fortinet_vap_bitmap_rid
,
5369 { "Radio ID", "capwap.control.fortinet.bitmap.rid",
5370 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5373 { &hf_capwap_fortinet_vap_bitmap
,
5374 { "Bitmap", "capwap.control.fortinet.vap_bitmap",
5375 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5378 { &hf_capwap_fortinet_mcast_rate_rid
,
5379 { "Radio ID", "capwap.control.fortinet.mcast_rate.rid",
5380 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5383 { &hf_capwap_fortinet_mcast_rate_wid
,
5384 { "WLAN ID", "capwap.control.fortinet.mcast_rate.wid",
5385 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5388 { &hf_capwap_fortinet_mcast_rate
,
5389 { "Multicast Rate", "capwap.control.fortinet.mcast_rate",
5390 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5393 { &hf_capwap_fortinet_cfg_rid
,
5394 { "Radio ID", "capwap.control.fortinet.cfg.rid",
5395 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5398 { &hf_capwap_fortinet_cfg_wid
,
5399 { "WLAN ID", "capwap.control.fortinet.cfg.wid",
5400 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5403 { &hf_capwap_fortinet_cfg_ip
,
5404 { "IP", "capwap.control.fortinet.cfg.ip",
5405 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
5408 { &hf_capwap_fortinet_cfg_mask
,
5409 { "Mask", "capwap.control.fortinet.cfg.mask",
5410 FT_IPv4
, BASE_NETMASK
, NULL
, 0x0,
5413 { &hf_capwap_fortinet_split_tun_cfg_enable_local_subnet
,
5414 { "Enable Local Subnet", "capwap.control.fortinet.split_tun_cfg.enable_local_subnet",
5415 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5418 { &hf_capwap_fortinet_split_tun_cfg_cnt
,
5419 { "CNT", "capwap.control.fortinet.split_tun_cfg.cnt",
5420 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5423 { &hf_capwap_fortinet_mgmt_vlan_id
,
5424 { "Vlan ID", "capwap.control.fortinet.mgmt_vlan.id",
5425 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5428 { &hf_capwap_fortinet_vap_psk_passwd_rid
,
5429 { "Radio ID", "capwap.control.fortinet.vap_psk_passwd.rid",
5430 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5433 { &hf_capwap_fortinet_vap_psk_passwd_wid
,
5434 { "WLAN ID", "capwap.control.fortinet.vap_psk_passwd.wid",
5435 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5438 { &hf_capwap_fortinet_vap_psk_passwd_key
,
5439 { "Key", "capwap.control.fortinet.vap_psk_passwd.key",
5440 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5443 { &hf_capwap_fortinet_mesh_eth_bridge_enable
,
5444 { "Mesh Eth Bridge Enable", "capwap.control.fortinet.mesh_eth_bridge.enable",
5445 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5448 { &hf_capwap_fortinet_mesh_eth_bridge_type
,
5449 { "Mesh Eth Bridge Type", "capwap.control.fortinet.mesh_eth_bridge.type",
5450 FT_UINT16
, BASE_DEC_HEX
, NULL
, 0x0,
5453 { &hf_capwap_fortinet_wtp_cap
,
5454 { "WTP CAP", "capwap.control.fortinet.wtp_cap",
5455 FT_BYTES
, SEP_SPACE
, NULL
, 0x0,
5458 { &hf_capwap_fortinet_txpwr_rid
,
5459 { "Radio ID", "capwap.control.fortinet.tx_power.rid",
5460 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5463 { &hf_capwap_fortinet_txpwr
,
5464 { "TX Power", "capwap.control.fortinet.tx_power",
5465 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5466 "In Percentage", HFILL
}
5468 { &hf_capwap_fortinet_wids_enable_rid
,
5469 { "Radio ID", "capwap.control.fortinet.wids_enable.rid",
5470 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5473 { &hf_capwap_fortinet_wids_enable
,
5474 { "WIDS Enable", "capwap.control.fortinet.wids_enable.enable",
5475 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5478 { &hf_capwap_fortinet_unknown_rid
,
5479 { "Radio ID", "capwap.control.fortinet.unknown.rid",
5480 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5483 { &hf_capwap_fortinet_unknown_wid
,
5484 { "WLAN ID", "capwap.control.fortinet.unknown.wid",
5485 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5488 { &hf_capwap_fortinet_unknown
,
5489 { "Unknown Data", "capwap.control.fortinet.unknown",
5490 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5495 /* Cisco Vendor Specific*/
5497 { &hf_capwap_cisco_element_id
,
5498 { "Cisco Element ID", "capwap.control.cisco.element_id",
5499 FT_UINT16
, BASE_DEC
, VALS(cisco_element_id_vals
), 0x0,
5502 { &hf_capwap_cisco_value
,
5503 { "Cisco Value", "capwap.control.cisco.value",
5504 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5507 { &hf_capwap_cisco_mwar_addr
,
5508 { "Address", "capwap.control.cisco.mwar.address",
5509 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
5512 { &hf_capwap_cisco_rad_name
,
5513 { "RAD (AP) Name", "capwap.control.cisco.rad_name",
5514 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5517 { &hf_capwap_cisco_mwar_type
,
5518 { "Type", "capwap.control.cisco.mwar.type",
5519 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5522 { &hf_capwap_cisco_mwar_hardware
,
5523 { "Hardware version", "capwap.control.cisco.mwar.hardware",
5524 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5527 { &hf_capwap_cisco_mwar_software
,
5528 { "Software version", "capwap.control.cisco.mwar.software",
5529 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5532 { &hf_capwap_cisco_mwar_active_ms
,
5533 { "Active MS", "capwap.control.cisco.mwar.active_ms",
5534 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5537 { &hf_capwap_cisco_mwar_supported_ms
,
5538 { "Supported MS", "capwap.control.cisco.mwar.supported_ms",
5539 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5542 { &hf_capwap_cisco_mwar_active_rad
,
5543 { "Active RAD", "capwap.control.cisco.mwar.active_rad",
5544 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5547 { &hf_capwap_cisco_mwar_supported_rad
,
5548 { "Supported RAD", "capwap.control.cisco.mwar.supported_rad",
5549 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5552 { &hf_capwap_cisco_ap_mode_and_type_mode
,
5553 { "Mode", "capwap.control.cisco.ap_mode_and_type.mode",
5554 FT_UINT8
, BASE_DEC
, VALS(cisco_ap_mode_and_type_mode_vals
), 0x0,
5557 { &hf_capwap_cisco_ap_mode_and_type_type
,
5558 { "Type", "capwap.control.cisco.ap_mode_and_type.type",
5559 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5562 { &hf_capwap_cisco_ap_static_ip_addr
,
5563 { "IP Address", "capwap.control.cisco.ap_static_ip.addr",
5564 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
5567 { &hf_capwap_cisco_ap_static_ip_netmask
,
5568 { "Netmask", "capwap.control.cisco.ap_static_ip.netmask",
5569 FT_IPv4
, BASE_NETMASK
, NULL
, 0x0,
5572 { &hf_capwap_cisco_ap_static_ip_gateway
,
5573 { "Gateway", "capwap.control.cisco.ap_static_ip.gateway",
5574 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
5577 { &hf_capwap_cisco_ap_static_ip_type
,
5578 { "Type", "capwap.control.cisco.ap_static_ip.type",
5579 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5582 { &hf_capwap_cisco_ap_static_ip_reserved
,
5583 { "Reserved", "capwap.control.cisco.ap_static_ip.reserved",
5584 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5587 { &hf_capwap_cisco_ap_uptime_current
,
5588 { "AP Uptime Current", "capwap.control.cisco.ap_uptime.current",
5589 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5592 { &hf_capwap_cisco_ap_uptime_last
,
5593 { "AP Uptime Last", "capwap.control.cisco.ap_uptime.last",
5594 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5597 { &hf_capwap_cisco_ap_group_name
,
5598 { "AP Group Name", "capwap.control.cisco.ap_group_name",
5599 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5602 { &hf_capwap_cisco_ap_led_state
,
5603 { "Led State", "capwap.control.cisco.ap_led_state",
5604 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5607 { &hf_capwap_cisco_ap_timesync
,
5608 { "AP TimeSync", "capwap.control.cisco.ap_timesync",
5609 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0,
5612 { &hf_capwap_cisco_ap_timesync_type
,
5613 { "Type (?)", "capwap.control.cisco.ap_timesync.type",
5614 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5617 { &hf_capwap_cisco_board_data_options_ant_type
,
5618 { "Antenna Type", "capwap.control.cisco.board_data_options.ant_type",
5619 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5622 { &hf_capwap_cisco_board_data_options_flex_connect
,
5623 { "Flex Connect", "capwap.control.cisco.board_data_options.flex_connect",
5624 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x01,
5627 { &hf_capwap_cisco_board_data_options_ap_type
,
5628 { "AP Type", "capwap.control.cisco.board_data_options.ap_type",
5629 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5632 { &hf_capwap_cisco_board_data_options_join_priority
,
5633 { "Join Priority", "capwap.control.cisco.board_data_options.join_priority",
5634 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5637 { &hf_capwap_cisco_unknown
,
5638 { "Unknown Data", "capwap.control.cisco.unknown",
5639 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5643 /* Fragment entries */
5644 { &hf_msg_fragments
,
5645 { "Message fragments", "capwap.fragments",
5646 FT_NONE
, BASE_NONE
, NULL
, 0x0,
5650 { "Message fragment", "capwap.fragment",
5651 FT_FRAMENUM
, BASE_NONE
, NULL
, 0x0,
5654 { &hf_msg_fragment_overlap
,
5655 { "Message fragment overlap", "capwap.fragment.overlap",
5656 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0,
5659 { &hf_msg_fragment_overlap_conflicts
,
5660 { "Message fragment overlapping with conflicting data", "capwap.fragment.overlap.conflicts",
5661 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0,
5664 { &hf_msg_fragment_multiple_tails
,
5665 { "Message has multiple tail fragments", "capwap.fragment.multiple_tails",
5666 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0,
5669 { &hf_msg_fragment_too_long_fragment
,
5670 { "Message fragment too long", "capwap.fragment.too_long_fragment",
5671 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0,
5674 { &hf_msg_fragment_error
,
5675 { "Message defragmentation error", "capwap.fragment.error",
5676 FT_FRAMENUM
, BASE_NONE
, NULL
, 0x0,
5679 { &hf_msg_fragment_count
,
5680 { "Message fragment count", "capwap.fragment.count",
5681 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5684 { &hf_msg_reassembled_in
,
5685 { "Reassembled in", "capwap.reassembled.in",
5686 FT_FRAMENUM
, BASE_NONE
, NULL
, 0x0,
5689 { &hf_msg_reassembled_length
,
5690 { "Reassembled CAPWAP length", "capwap.reassembled.length",
5691 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5696 /* Setup protocol subtree array */
5697 static int *ett
[] = {
5699 &ett_capwap_control
,
5701 &ett_capwap_preamble
,
5703 &ett_capwap_header_flags
,
5704 &ett_capwap_control_header
,
5705 &ett_capwap_control_header_msg
,
5706 &ett_capwap_data_keep_alive
,
5707 &ett_capwap_message_element
,
5708 &ett_capwap_data_message_bindings_ieee80211
,
5709 &ett_capwap_encryption_capabilities
,
5710 &ett_capwap_encryption_capability
,
5711 &ett_capwap_ac_information
,
5712 &ett_capwap_wtp_descriptor
,
5713 &ett_capwap_board_data
,
5714 &ett_capwap_message_element_type
,
5715 &ett_capwap_ac_descriptor_security_flags
,
5716 &ett_capwap_ac_descriptor_dtls_flags
,
5717 &ett_capwap_wtp_frame_tunnel_mode
,
5718 &ett_capwap_ieee80211_add_wlan_capability
,
5719 &ett_capwap_ieee80211_ie_flags
,
5720 &ett_capwap_ieee80211_update_wlan_capability
,
5721 &ett_capwap_ieee80211_station_capabilities
,
5722 &ett_capwap_ieee80211_ofdm_control_band_support
,
5727 static ei_register_info ei
[] = {
5728 { &ei_capwap_header_length_bad
, { "capwap.header.length.bad", PI_MALFORMED
, PI_WARN
, "Wrong calculate length =! header length", EXPFILL
}},
5729 { &ei_capwap_data_keep_alive_length
, { "capwap.keep_alive.length.bad", PI_MALFORMED
, PI_WARN
, "Invalid Keep Alive length", EXPFILL
}},
5730 { &ei_capwap_msg_element_length
, { "capwap.message_element.length.bad", PI_MALFORMED
, PI_ERROR
, "Bad Message Element length", EXPFILL
}},
5731 { &ei_capwap_message_element_type
, { "capwap.message_element.type.undecoded", PI_UNDECODED
, PI_NOTE
, "Dissector for CAPWAP message element Type not implemented, Contact Wireshark developers if you want this supported", EXPFILL
}},
5732 { &ei_capwap_fortinet_mac_len
, { "capwap.control.fortinet.mac.length.bad", PI_MALFORMED
, PI_ERROR
, "Bad length: Should be a multiple of 6", EXPFILL
}},
5733 { &ei_capwap_message_element_fortinet_type
, { "capwap.message_element.type.fortinet.undecoded", PI_UNDECODED
, PI_NOTE
, "Dissector for CAPWAP message element Fortinet Type not implemented", EXPFILL
}},
5734 { &ei_capwap_message_element_cisco_type
, { "capwap.message_element.type.cisco.undecoded", PI_UNDECODED
, PI_NOTE
, "Dissector for CAPWAP message element Cisco Type not implemented", EXPFILL
}}
5737 expert_module_t
* expert_capwap
;
5739 proto_capwap_control
= proto_register_protocol("Control And Provisioning of Wireless Access Points - Control", "CAPWAP-CONTROL", "capwap");
5740 proto_capwap_data
= proto_register_protocol("Control And Provisioning of Wireless Access Points - Data", "CAPWAP-DATA", "capwap.data");
5742 proto_register_field_array(proto_capwap_control
, hf
, array_length(hf
));
5744 proto_register_subtree_array(ett
, array_length(ett
));
5746 expert_capwap
= expert_register_protocol(proto_capwap_control
);
5747 expert_register_field_array(expert_capwap
, ei
, array_length(ei
));
5749 reassembly_table_register(&capwap_reassembly_table
,
5750 &addresses_reassembly_table_functions
);
5752 capwap_module
= prefs_register_protocol(proto_capwap_control
, NULL
);
5753 /* Need to create a placeholder for "port" preferences so there is a callback */
5754 prefs_register_protocol(proto_capwap_data
, apply_capwap_prefs
);
5756 prefs_register_bool_preference(capwap_module
, "draft_8_cisco", "Cisco Wireless Controller Support",
5757 "Enable support of Cisco Wireless Controller (based on old 8 draft revision).",
5758 &global_capwap_draft_8_cisco
);
5760 prefs_register_bool_preference(capwap_module
, "reassemble", "Reassemble fragmented CAPWAP packets",
5761 "Reassemble fragmented CAPWAP packets.",
5762 &global_capwap_reassemble
);
5764 prefs_register_bool_preference(capwap_module
, "swap_fc", "Swap Frame Control",
5765 "Swap frame control bytes (needed for some APs).",
5766 &global_capwap_swap_frame_control
);
5768 capwap_control_handle
= register_dissector("capwap", dissect_capwap_control
, proto_capwap_control
);
5769 capwap_data_handle
= register_dissector("capwap.data", dissect_capwap_data
, proto_capwap_data
);
5773 proto_reg_handoff_capwap(void)
5775 dtls_handle
= find_dissector_add_dependency("dtls", proto_capwap_control
);
5776 find_dissector_add_dependency("dtls", proto_capwap_data
);
5777 ieee8023_handle
= find_dissector_add_dependency("eth_withoutfcs", proto_capwap_data
);
5778 ieee80211_handle
= find_dissector_add_dependency("wlan_withoutfcs", proto_capwap_data
);
5779 ieee80211_bsfc_handle
= find_dissector_add_dependency("wlan_bsfc", proto_capwap_data
);
5781 dissector_add_uint_with_preference("udp.port", UDP_PORT_CAPWAP_CONTROL
, capwap_control_handle
);
5782 dissector_add_uint_with_preference("udp.port", UDP_PORT_CAPWAP_DATA
, capwap_data_handle
);
5783 apply_capwap_prefs();
5791 * indent-tabs-mode: nil
5794 * ex: set shiftwidth=4 tabstop=8 expandtab:
5795 * :indentSize=4:tabSize=8:noTabs=true: