2009-06-02 18:39:38 +00:00
/* packet-capwap.c
2009-11-29 13:33:05 +00:00
* Routines for CAPWAP dissection ( RFC 5415 / RFC5416 )
2009-06-02 18:39:38 +00:00
* Copyright 2009 , Alexis La Goutte < alexis . lagoutte at gmail dot com >
*
* Wireshark - Network traffic analyzer
* By Gerald Combs < gerald @ wireshark . org >
* Copyright 1998 Gerald Combs
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version 2
* of the License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 , USA .
*/
2012-09-20 02:03:38 +00:00
# include "config.h"
2009-06-02 18:39:38 +00:00
# include <epan/packet.h>
# include <epan/prefs.h>
2009-11-29 13:33:05 +00:00
# include <epan/reassemble.h>
2013-02-21 10:50:28 +00:00
# include <epan/expert.h>
2009-06-02 18:39:38 +00:00
# include <epan/sminmpec.h>
2014-12-20 21:23:59 +00:00
# include "packet-ieee80211.h"
2009-06-02 18:39:38 +00:00
2013-12-15 23:44:12 +00:00
void proto_register_capwap_control ( void ) ;
void proto_reg_handoff_capwap ( void ) ;
2009-06-02 18:39:38 +00:00
# define UDP_PORT_CAPWAP_CONTROL 5246
# define UDP_PORT_CAPWAP_DATA 5247
static guint global_capwap_control_udp_port = UDP_PORT_CAPWAP_CONTROL ;
static guint global_capwap_data_udp_port = UDP_PORT_CAPWAP_DATA ;
2009-11-29 13:33:05 +00:00
static gboolean global_capwap_draft_8_cisco = FALSE ;
static gboolean global_capwap_reassemble = TRUE ;
static gboolean global_capwap_swap_frame_control = TRUE ;
2009-06-02 18:39:38 +00:00
2013-03-22 23:59:54 +00:00
static reassembly_table capwap_reassembly_table ;
2009-06-02 18:39:38 +00:00
/* TODO LIST !
2009-06-02 21:44:00 +00:00
* add decryption of DLTS Message
* add support of all Messages Element Type
2009-06-02 18:39:38 +00:00
*/
2014-08-20 07:46:47 +00:00
static int proto_capwap_control = - 1 ;
static int proto_capwap_data = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_preamble = - 1 ;
static int hf_capwap_preamble_version = - 1 ;
static int hf_capwap_preamble_type = - 1 ;
static int hf_capwap_preamble_reserved = - 1 ;
static int hf_capwap_header = - 1 ;
static int hf_capwap_header_hlen = - 1 ;
static int hf_capwap_header_rid = - 1 ;
static int hf_capwap_header_wbid = - 1 ;
static int hf_capwap_header_flags = - 1 ;
static int hf_capwap_header_flags_t = - 1 ;
static int hf_capwap_header_flags_f = - 1 ;
static int hf_capwap_header_flags_l = - 1 ;
static int hf_capwap_header_flags_w = - 1 ;
static int hf_capwap_header_flags_m = - 1 ;
static int hf_capwap_header_flags_k = - 1 ;
static int hf_capwap_header_flags_r = - 1 ;
static int hf_capwap_header_fragment_id = - 1 ;
static int hf_capwap_header_fragment_offset = - 1 ;
static int hf_capwap_header_reserved = - 1 ;
2009-08-19 12:25:40 +00:00
static int hf_capwap_header_mac_length = - 1 ;
2009-08-19 15:42:24 +00:00
static int hf_capwap_header_mac_eui48 = - 1 ;
static int hf_capwap_header_mac_eui64 = - 1 ;
2009-08-19 12:25:40 +00:00
static int hf_capwap_header_mac_data = - 1 ;
static int hf_capwap_header_wireless_length = - 1 ;
static int hf_capwap_header_wireless_data = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_header_wireless_data_ieee80211_fi = - 1 ;
static int hf_capwap_header_wireless_data_ieee80211_fi_rssi = - 1 ;
static int hf_capwap_header_wireless_data_ieee80211_fi_snr = - 1 ;
static int hf_capwap_header_wireless_data_ieee80211_fi_data_rate = - 1 ;
static int hf_capwap_header_wireless_data_ieee80211_dest_wlan = - 1 ;
static int hf_capwap_header_wireless_data_ieee80211_dw_wlan_id_bitmap = - 1 ;
static int hf_capwap_header_wireless_data_ieee80211_dw_reserved = - 1 ;
static int hf_capwap_header_padding = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_control_header = - 1 ;
static int hf_capwap_control_header_msg_type = - 1 ;
static int hf_capwap_control_header_msg_type_enterprise_nbr = - 1 ;
static int hf_capwap_control_header_msg_type_enterprise_specific = - 1 ;
static int hf_capwap_control_header_seq_number = - 1 ;
static int hf_capwap_control_header_flags = - 1 ;
static int hf_capwap_control_header_msg_element_length = - 1 ;
static int hf_capwap_message_element = - 1 ;
2013-02-21 15:32:07 +00:00
static int hf_capwap_msg_element = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_msg_element_type = - 1 ;
static int hf_capwap_msg_element_length = - 1 ;
static int hf_capwap_msg_element_value = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_stations = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_limit = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_active_wtp = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_max_wtp = - 1 ;
/* AC Descriptor Security Flags... */
static int hf_capwap_msg_element_type_ac_descriptor_security = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_security_s = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_security_x = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_security_r = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_rmac_field = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_reserved = - 1 ;
/* AC Descriptor DTLS Policy Flags... */
static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy_d = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy_c = - 1 ;
static int hf_capwap_msg_element_type_ac_descriptor_dtls_policy_r = - 1 ;
2013-02-21 15:32:07 +00:00
static int hf_capwap_msg_element_type_ac_information = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_msg_element_type_ac_information_vendor = - 1 ;
static int hf_capwap_msg_element_type_ac_information_type = - 1 ;
static int hf_capwap_msg_element_type_ac_information_length = - 1 ;
static int hf_capwap_msg_element_type_ac_information_value = - 1 ;
static int hf_capwap_msg_element_type_ac_information_hardware_version = - 1 ;
static int hf_capwap_msg_element_type_ac_information_software_version = - 1 ;
2010-09-21 03:14:49 +00:00
static int hf_capwap_msg_element_type_ac_name = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_ac_name_with_priority = - 1 ;
2014-09-04 13:14:59 +00:00
static int hf_capwap_msg_element_type_ac_timestamp = - 1 ;
static int hf_capwap_msg_element_type_add_station_radio_id = - 1 ;
static int hf_capwap_msg_element_type_add_station_length = - 1 ;
static int hf_capwap_msg_element_type_add_station_mac_eui48 = - 1 ;
static int hf_capwap_msg_element_type_add_station_mac_eui64 = - 1 ;
static int hf_capwap_msg_element_type_add_station_mac_data = - 1 ;
static int hf_capwap_msg_element_type_add_station_vlan_name = - 1 ;
2010-09-21 03:14:49 +00:00
static int hf_capwap_msg_element_type_ac_ipv4_list = - 1 ;
static int hf_capwap_msg_element_type_ac_ipv6_list = - 1 ;
2009-11-29 13:33:05 +00:00
2010-09-21 03:14:49 +00:00
static int hf_capwap_msg_element_type_capwap_control_ipv4 = - 1 ;
static int hf_capwap_msg_element_type_capwap_control_ipv6 = - 1 ;
static int hf_capwap_msg_element_type_capwap_control_wtp_count = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_capwap_timers_discovery = - 1 ;
static int hf_capwap_msg_element_type_capwap_timers_echo_request = - 1 ;
static int hf_capwap_msg_element_type_decryption_error_report_period_radio_id = - 1 ;
static int hf_capwap_msg_element_type_decryption_error_report_period_interval = - 1 ;
2015-01-12 16:13:28 +00:00
static int hf_capwap_msg_element_type_delete_station_radio_id = - 1 ;
static int hf_capwap_msg_element_type_delete_station_length = - 1 ;
static int hf_capwap_msg_element_type_delete_station_mac_eui48 = - 1 ;
static int hf_capwap_msg_element_type_delete_station_mac_eui64 = - 1 ;
static int hf_capwap_msg_element_type_delete_station_mac_data = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_msg_element_type_discovery_type = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_location_data = - 1 ;
static int hf_capwap_msg_element_type_maximum_message_length = - 1 ;
2014-09-04 13:14:59 +00:00
static int hf_capwap_msg_element_type_capwap_local_ipv4_address = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_idle_timeout = - 1 ;
static int hf_capwap_msg_element_type_radio_admin_id = - 1 ;
static int hf_capwap_msg_element_type_radio_admin_state = - 1 ;
static int hf_capwap_msg_element_type_radio_op_state_radio_id = - 1 ;
static int hf_capwap_msg_element_type_radio_op_state_radio_state = - 1 ;
static int hf_capwap_msg_element_type_radio_op_state_radio_cause = - 1 ;
static int hf_capwap_msg_element_type_result_code = - 1 ;
static int hf_capwap_msg_element_type_session_id = - 1 ;
static int hf_capwap_msg_element_type_statistics_timer = - 1 ;
static int hf_capwap_msg_element_type_vsp_vendor_identifier = - 1 ;
static int hf_capwap_msg_element_type_vsp_vendor_element_id = - 1 ;
static int hf_capwap_msg_element_type_vsp_vendor_data = - 1 ;
2013-02-21 15:32:07 +00:00
static int hf_capwap_msg_element_type_wtp_board_data = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_msg_element_type_wtp_board_data_vendor = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_type = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_length = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_value = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_wtp_model_number = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_wtp_serial_number = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_wtp_board_id = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_wtp_board_revision = - 1 ;
static int hf_capwap_msg_element_type_wtp_board_data_base_mac_address = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_max_radios = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_radio_in_use = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_number_encrypt = - 1 ;
2013-02-21 15:32:07 +00:00
static int hf_capwap_msg_element_type_wtp_descriptor_encrypt = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_msg_element_type_wtp_descriptor_encrypt_reserved = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_encrypt_wbid = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_encrypt_capabilities = - 1 ;
2013-02-21 15:32:07 +00:00
static int hf_capwap_msg_element_type_wtp_descriptor = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_msg_element_type_wtp_descriptor_vendor = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_type = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_length = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_value = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_hardware_version = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_active_software_version = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_boot_version = - 1 ;
static int hf_capwap_msg_element_type_wtp_descriptor_other_software_version = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_wtp_fallback = - 1 ;
2009-06-02 18:39:38 +00:00
static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode = - 1 ;
static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_n = - 1 ;
static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_e = - 1 ;
static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_l = - 1 ;
static int hf_capwap_msg_element_type_wtp_frame_tunnel_mode_r = - 1 ;
static int hf_capwap_msg_element_type_wtp_mac_type = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_wtp_name = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_reboot_count = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_ac_initiated_count = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_link_failure_count = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_sw_failure_count = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_hw_failure_count = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_other_failure_count = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_unknown_failure_count = - 1 ;
static int hf_capwap_msg_element_type_wtp_reboot_statistics_last_failure_type = - 1 ;
2014-09-04 13:14:59 +00:00
static int hf_capwap_msg_element_type_capwap_local_ipv6_address = - 1 ;
static int hf_capwap_msg_element_type_capwap_transport_protocol = - 1 ;
static int hf_capwap_msg_element_type_mtu_discovery_padding = - 1 ;
static int hf_capwap_msg_element_type_ecn_support = - 1 ;
2014-02-12 21:33:09 +00:00
static int hf_capwap_msg_element_type_ieee80211_add_wlan_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_wlan_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_e = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_i = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_c = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_f = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_p = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_s = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_b = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_a = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_m = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_q = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_t = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_d = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_v = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_o = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_k = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_capability_l = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_key_index = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_key_status = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_key_length = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_key = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_group_tsc = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_qos = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_auth_type = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_mac_mode = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_tunnel_mode = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_suppress_ssid = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_add_wlan_ssid = - 1 ;
2014-11-25 11:23:52 +00:00
static int hf_capwap_msg_element_type_ieee80211_antenna_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_antenna_diversity = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_antenna_combiner = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_antenna_count = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_antenna_selection = - 1 ;
2014-02-12 21:33:09 +00:00
static int hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_wlan_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_bssid = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_delete_wlan_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_delete_wlan_wlan_id = - 1 ;
2014-11-25 11:23:52 +00:00
static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_reserved = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_channel = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_cca = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_direct_sequence_control_energy_detect_threshold = - 1 ;
2015-01-13 10:45:15 +00:00
static int hf_capwap_msg_element_type_ieee80211_ie_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ie_wlan_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ie_flags = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ie_flags_b = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ie_flags_p = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ie_flags_rsv = - 1 ;
2014-11-25 11:23:52 +00:00
static int hf_capwap_msg_element_type_ieee80211_mac_operation_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mac_operation_reserved = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mac_operation_rts_threshold = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mac_operation_short_retry = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mac_operation_long_retry = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mac_operation_fragmentation_threshold = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mac_operation_tx_msdu_lifetime = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mac_operation_rx_msdu_lifetime = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mic_countermeasures_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mic_countermeasures_wlan_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_mic_countermeasures_mac_address = - 1 ;
2015-01-12 17:14:00 +00:00
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_reserved = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_current_channel = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit0 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit1 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit2 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit3 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit4 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit5 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit6 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit7 = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_ofdm_control_ti_threshold = - 1 ;
2014-11-25 11:23:52 +00:00
static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_reserved = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_first_channel = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_number_of_channels = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_multi_domain_capability_max_tx_power_level = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_ieee80211_rate_set_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_rate_set_rate_set = - 1 ;
2014-11-25 11:23:52 +00:00
static int hf_capwap_msg_element_type_ieee80211_station_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_association_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_flags = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_mac_address = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_e = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_i = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_c = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_f = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_p = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_s = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_b = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_a = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_m = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_q = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_t = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_d = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_v = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_o = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_k = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_capabilities_l = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_wlan_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_supported_rates = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_ieee80211_station_session_key_mac = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_session_key_flags = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_session_key_flags_a = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_session_key_flags_c = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_tsc = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_rsc = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_station_session_key_key = - 1 ;
2014-11-25 11:23:52 +00:00
static int hf_capwap_msg_element_type_ieee80211_supported_rates_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_supported_rates_rate = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_tx_power_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_tx_power_reserved = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_tx_power_current_tx_power = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_tx_power_level_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_tx_power_level_num_levels = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_tx_power_level_power_level = - 1 ;
2015-01-12 17:14:00 +00:00
static int hf_capwap_msg_element_type_ieee80211_update_wlan_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_wlan_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_e = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_i = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_c = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_f = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_p = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_s = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_b = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_a = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_m = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_q = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_t = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_d = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_v = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_o = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_k = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_capability_l = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_key_index = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_key_status = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_key_length = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_update_wlan_key = - 1 ;
2014-11-25 11:23:52 +00:00
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_short_preamble = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_num_of_bssids = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_dtim_period = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_bssid = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_beacon_period = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_country_string = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_id = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_reserved = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_n = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_g = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_a = - 1 ;
static int hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_b = - 1 ;
2013-10-17 02:13:23 +00:00
static int hf_capwap_data_keep_alive = - 1 ;
static int hf_capwap_data_keep_alive_length = - 1 ;
2014-12-07 13:30:50 +00:00
static int hf_capwap_fortinet_element_id = - 1 ;
static int hf_capwap_fortinet_value = - 1 ;
static int hf_capwap_fortinet_ap_scan_rid = - 1 ;
static int hf_capwap_fortinet_ap_scan_bgscan_intv = - 1 ;
static int hf_capwap_fortinet_ap_scan_bgscan_idle = - 1 ;
static int hf_capwap_fortinet_ap_scan_bgscan_rpt_intv = - 1 ;
static int hf_capwap_fortinet_ap_scan_fgscan_rpt_intv = - 1 ;
static int hf_capwap_fortinet_passive_rid = - 1 ;
static int hf_capwap_fortinet_passive = - 1 ;
static int hf_capwap_fortinet_daemon_rst = - 1 ;
static int hf_capwap_fortinet_mac_rid = - 1 ;
static int hf_capwap_fortinet_mac_wid = - 1 ;
static int hf_capwap_fortinet_mac_len = - 1 ;
static int hf_capwap_fortinet_mac = - 1 ;
static int hf_capwap_fortinet_wtp_allow_sn = - 1 ;
static int hf_capwap_fortinet_wtp_allow_allow = - 1 ;
static int hf_capwap_fortinet_wbh_sta_rid = - 1 ;
static int hf_capwap_fortinet_wbh_sta_len = - 1 ;
static int hf_capwap_fortinet_wbh_sta_mac = - 1 ;
static int hf_capwap_fortinet_wbh_sta_bssid = - 1 ;
static int hf_capwap_fortinet_wbh_sta_mhc = - 1 ;
static int hf_capwap_fortinet_htcap_rid = - 1 ;
static int hf_capwap_fortinet_htcap_mcs = - 1 ;
static int hf_capwap_fortinet_htcap_gi = - 1 ;
static int hf_capwap_fortinet_htcap_bw = - 1 ;
static int hf_capwap_fortinet_mvap_sn_length = - 1 ;
static int hf_capwap_fortinet_mvap_sn = - 1 ;
static int hf_capwap_fortinet_mvap_unknown = - 1 ;
static int hf_capwap_fortinet_mvap_age = - 1 ;
static int hf_capwap_fortinet_mvap_period = - 1 ;
static int hf_capwap_fortinet_mvap_vfid = - 1 ;
static int hf_capwap_fortinet_mode_rid = - 1 ;
static int hf_capwap_fortinet_mode = - 1 ;
static int hf_capwap_fortinet_coext_rid = - 1 ;
static int hf_capwap_fortinet_coext = - 1 ;
static int hf_capwap_fortinet_amsdu_rid = - 1 ;
static int hf_capwap_fortinet_amsdu = - 1 ;
static int hf_capwap_fortinet_ps_opt_rid = - 1 ;
static int hf_capwap_fortinet_ps_opt = - 1 ;
static int hf_capwap_fortinet_pure_rid = - 1 ;
static int hf_capwap_fortinet_pure = - 1 ;
static int hf_capwap_fortinet_ebptag_ebp = - 1 ;
static int hf_capwap_fortinet_ebptag_tag = - 1 ;
static int hf_capwap_fortinet_telnet_enable = - 1 ;
static int hf_capwap_fortinet_admin_passwd = - 1 ;
static int hf_capwap_fortinet_regcode = - 1 ;
static int hf_capwap_fortinet_countrycode_rid = - 1 ;
static int hf_capwap_fortinet_countrycode_code = - 1 ;
static int hf_capwap_fortinet_countrycode_string = - 1 ;
static int hf_capwap_fortinet_sta_scan_rid = - 1 ;
static int hf_capwap_fortinet_sta_scan = - 1 ;
static int hf_capwap_fortinet_fho_rid = - 1 ;
static int hf_capwap_fortinet_fho = - 1 ;
static int hf_capwap_fortinet_apho_rid = - 1 ;
static int hf_capwap_fortinet_apho = - 1 ;
static int hf_capwap_fortinet_sta_locate_rid = - 1 ;
static int hf_capwap_fortinet_sta_locate_enable = - 1 ;
static int hf_capwap_fortinet_sta_locate_interval = - 1 ;
static int hf_capwap_fortinet_sa_rid = - 1 ;
static int hf_capwap_fortinet_sa_enable = - 1 ;
static int hf_capwap_fortinet_sa_ssid = - 1 ;
static int hf_capwap_fortinet_darrp_cfg_rid = - 1 ;
static int hf_capwap_fortinet_darrp_cfg_enable = - 1 ;
static int hf_capwap_fortinet_darrp_cfg_interval = - 1 ;
static int hf_capwap_fortinet_ap_suppress_list_ver = - 1 ;
static int hf_capwap_fortinet_ap_suppress_list_op = - 1 ;
static int hf_capwap_fortinet_ap_suppress_list_rid = - 1 ;
static int hf_capwap_fortinet_ap_suppress_list_len = - 1 ;
static int hf_capwap_fortinet_wds_rid = - 1 ;
static int hf_capwap_fortinet_wds_wid = - 1 ;
static int hf_capwap_fortinet_wds_enable = - 1 ;
static int hf_capwap_fortinet_vap_vlan_tag_rid = - 1 ;
static int hf_capwap_fortinet_vap_vlan_tag_wid = - 1 ;
static int hf_capwap_fortinet_vap_vlan_tag = - 1 ;
static int hf_capwap_fortinet_vap_bitmap_rid = - 1 ;
static int hf_capwap_fortinet_vap_bitmap = - 1 ;
static int hf_capwap_fortinet_mcast_rate_rid = - 1 ;
static int hf_capwap_fortinet_mcast_rate_wid = - 1 ;
static int hf_capwap_fortinet_mcast_rate = - 1 ;
static int hf_capwap_fortinet_cfg_rid = - 1 ;
static int hf_capwap_fortinet_cfg_wid = - 1 ;
static int hf_capwap_fortinet_cfg_ip = - 1 ;
static int hf_capwap_fortinet_cfg_mask = - 1 ;
static int hf_capwap_fortinet_split_tun_cfg_enable_local_subnet = - 1 ;
static int hf_capwap_fortinet_split_tun_cfg_cnt = - 1 ;
static int hf_capwap_fortinet_mgmt_vlan_id = - 1 ;
static int hf_capwap_fortinet_vap_psk_passwd_rid = - 1 ;
static int hf_capwap_fortinet_vap_psk_passwd_wid = - 1 ;
static int hf_capwap_fortinet_vap_psk_passwd_key = - 1 ;
static int hf_capwap_fortinet_mesh_eth_bridge_enable = - 1 ;
static int hf_capwap_fortinet_mesh_eth_bridge_type = - 1 ;
static int hf_capwap_fortinet_wtp_cap = - 1 ;
static int hf_capwap_fortinet_txpwr_rid = - 1 ;
static int hf_capwap_fortinet_txpwr = - 1 ;
static int hf_capwap_fortinet_wids_enable_rid = - 1 ;
static int hf_capwap_fortinet_wids_enable = - 1 ;
static int hf_capwap_fortinet_unknown_rid = - 1 ;
static int hf_capwap_fortinet_unknown_wid = - 1 ;
static int hf_capwap_fortinet_unknown = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_msg_fragments = - 1 ;
static int hf_msg_fragment = - 1 ;
static int hf_msg_fragment_overlap = - 1 ;
static int hf_msg_fragment_overlap_conflicts = - 1 ;
static int hf_msg_fragment_multiple_tails = - 1 ;
static int hf_msg_fragment_too_long_fragment = - 1 ;
static int hf_msg_fragment_error = - 1 ;
2011-01-30 21:01:07 +00:00
static int hf_msg_fragment_count = - 1 ;
2009-11-29 13:33:05 +00:00
static int hf_msg_reassembled_in = - 1 ;
2010-02-02 16:01:52 +00:00
static int hf_msg_reassembled_length = - 1 ;
2009-11-29 13:33:05 +00:00
2009-06-02 18:39:38 +00:00
static dissector_handle_t dtls_handle ;
static dissector_handle_t ieee8023_handle ;
static dissector_handle_t ieee80211_handle ;
2009-11-29 13:33:05 +00:00
static dissector_handle_t ieee80211_bsfc_handle ;
2009-06-02 18:39:38 +00:00
static dissector_handle_t data_handle ;
static gint ett_capwap = - 1 ;
2014-08-20 08:08:15 +00:00
static gint ett_capwap_control = - 1 ;
static gint ett_capwap_data = - 1 ;
static gint ett_capwap_preamble = - 1 ;
static gint ett_capwap_header = - 1 ;
static gint ett_capwap_header_flags = - 1 ;
static gint ett_capwap_control_header = - 1 ;
static gint ett_capwap_control_header_msg = - 1 ;
static gint ett_capwap_data_keep_alive = - 1 ;
static gint ett_capwap_message_element = - 1 ;
static gint ett_capwap_data_message_bindings_ieee80211 = - 1 ;
static gint ett_capwap_encryption_capabilities = - 1 ;
static gint ett_capwap_encryption_capability = - 1 ;
static gint ett_capwap_ac_information = - 1 ;
static gint ett_capwap_wtp_descriptor = - 1 ;
static gint ett_capwap_board_data = - 1 ;
static gint ett_capwap_message_element_type = - 1 ;
static gint ett_capwap_ac_descriptor_security_flags = - 1 ;
static gint ett_capwap_ac_descriptor_dtls_flags = - 1 ;
static gint ett_capwap_wtp_frame_tunnel_mode = - 1 ;
static gint ett_capwap_ieee80211_add_wlan_capability = - 1 ;
2015-01-13 10:45:15 +00:00
static gint ett_capwap_ieee80211_ie_flags = - 1 ;
2015-01-12 17:14:00 +00:00
static gint ett_capwap_ieee80211_update_wlan_capability = - 1 ;
2014-11-25 11:23:52 +00:00
static gint ett_capwap_ieee80211_station_capabilities = - 1 ;
2015-01-12 17:14:00 +00:00
static gint ett_capwap_ieee80211_ofdm_control_band_support = - 1 ;
2009-06-02 21:44:00 +00:00
2009-11-29 13:33:05 +00:00
static gint ett_msg_fragment = - 1 ;
static gint ett_msg_fragments = - 1 ;
2013-06-09 03:28:05 +00:00
static expert_field ei_capwap_header_length_bad = EI_INIT ;
2013-10-17 02:13:23 +00:00
static expert_field ei_capwap_data_keep_alive_length = EI_INIT ;
2014-08-25 10:54:11 +00:00
static expert_field ei_capwap_msg_element_length = EI_INIT ;
static expert_field ei_capwap_message_element_type = EI_INIT ;
2014-12-07 13:30:50 +00:00
static expert_field ei_capwap_fortinet_mac_len = EI_INIT ;
static expert_field ei_capwap_message_element_fortinet_type = EI_INIT ;
2013-06-09 03:28:05 +00:00
2015-01-12 17:14:00 +00:00
static const int * ieee80211_ofdm_control_band_support_flags [ ] = {
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit0 ,
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit1 ,
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit2 ,
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit3 ,
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit4 ,
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit5 ,
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit6 ,
& hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit7 ,
NULL
} ;
2015-01-13 10:45:15 +00:00
static const int * ieee80211_ie_flags [ ] = {
& hf_capwap_msg_element_type_ieee80211_ie_flags_b ,
& hf_capwap_msg_element_type_ieee80211_ie_flags_p ,
& hf_capwap_msg_element_type_ieee80211_ie_flags_rsv ,
NULL
} ;
2009-11-29 13:33:05 +00:00
/* ************************************************************************* */
/* Fragment items */
/* ************************************************************************* */
static const fragment_items capwap_frag_items = {
2013-02-21 15:31:58 +00:00
/* Fragment subtrees */
& ett_msg_fragment ,
& ett_msg_fragments ,
/* Fragment fields */
& hf_msg_fragments ,
& hf_msg_fragment ,
& hf_msg_fragment_overlap ,
& hf_msg_fragment_overlap_conflicts ,
& hf_msg_fragment_multiple_tails ,
& hf_msg_fragment_too_long_fragment ,
& hf_msg_fragment_error ,
& hf_msg_fragment_count ,
/* Reassembled in field */
& hf_msg_reassembled_in ,
/* Reassembled length field */
& hf_msg_reassembled_length ,
/* Reassembled data field */
NULL ,
/* Tag */
" Message fragments "
2009-11-29 13:33:05 +00:00
} ;
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Header Type */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const value_string type_header_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " CAPWAP Header " } ,
{ 1 , " CAPWAP DTLS Header " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
/* Wireless Binding IDentifier (WBID) */
/* ************************************************************************* */
static const value_string type_wbid [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Reserved " } ,
{ 1 , " IEEE 802.11 " } ,
{ 2 , " IEEE 802.16 " } , /* From old RFC Draft... */
{ 3 , " EPCGlobal " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* flag Type Transported (payload) */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const true_false_string flag_type_t = {
2013-02-21 15:31:58 +00:00
" Native frame format (see Wireless Binding ID field) " ,
" IEEE 802.3 frame "
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* flag Type Fragment */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const true_false_string flag_type_f = {
2013-02-21 15:31:58 +00:00
" Fragmented " ,
" Don't Fragment "
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* flag Type Last Fragment */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const true_false_string flag_type_l = {
2013-02-21 15:31:58 +00:00
" This is the last fragment " ,
" More fragments follow "
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* flag Type Wireless */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const true_false_string flag_type_w = {
2013-02-21 15:31:58 +00:00
" Wireless Specific Information is present " ,
" No Wireless Specific Information "
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* flag Type Radio Mac */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const true_false_string flag_type_m = {
2013-02-21 15:31:58 +00:00
" Radio MAC Address is present " ,
" No Radio MAC Address "
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* flag Type Keep Alive */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const true_false_string flag_type_k = {
2013-02-21 15:31:58 +00:00
" Keep-Alive Packet " ,
" No Keep-Alive "
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Message Type Value */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const value_string message_type [ ] = {
2013-02-21 15:31:58 +00:00
{ 1 , " Discovery Request " } ,
{ 2 , " Discovery Response " } ,
{ 3 , " Join Request " } ,
{ 4 , " Join Response " } ,
{ 5 , " Configuration Status Request " } ,
{ 6 , " Configuration Status Response " } ,
{ 7 , " Configuration Update Request " } ,
{ 8 , " Configuration Update Response " } ,
{ 9 , " WTP Event Request " } ,
{ 10 , " WTP Event Response " } ,
{ 11 , " Change State Request " } ,
{ 12 , " Change State Response " } ,
{ 13 , " Echo Request " } ,
{ 14 , " Echo Response " } ,
{ 15 , " Image Data Request " } ,
{ 16 , " Image Data Response " } ,
{ 17 , " Reset Request " } ,
{ 18 , " Reset Response " } ,
{ 19 , " Primary Discovery Request " } ,
{ 20 , " Primary Discovery Response " } ,
{ 21 , " Data Transfer Request " } ,
{ 22 , " Data Transfer Response " } ,
{ 23 , " Clear Configuration Request " } ,
{ 24 , " Clear Configuration Response " } ,
{ 25 , " Station Configuration Request " } ,
{ 26 , " Station Configuration Response " } ,
2014-02-12 07:32:27 +00:00
/* RFC5416 : Section 3 : IEEE 802.11 Specific CAPWAP Control Messages */
{ 3398913 , " IEEE 802.11 WLAN Configuration Request " } ,
{ 3398914 , " IEEE 802.11 WLAN Configuration Response " } ,
2013-02-21 15:31:58 +00:00
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Message Element Type */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
2009-11-29 13:33:05 +00:00
# define TYPE_AC_DESCRIPTOR 1
# define TYPE_AC_IPV4_LIST 2
# define TYPE_AC_IPV6_LIST 3
# define TYPE_AC_NAME 4
# define TYPE_AC_NAME_W_PRIORITY 5
# define TYPE_AC_TIMESTAMP 6
# define TYPE_ADD_MAC_ACL_ENTRY 7
# define TYPE_ADD_STATION 8
# define TYPE_RESERVED_9 9
# define TYPE_CAPWAP_CONTROL_IPV4_ADDRESS 10
# define TYPE_CAPWAP_CONTROL_IPV6_ADDRESS 11
# define TYPE_CAPWAP_TIMERS 12
# define TYPE_DATA_TRANSFER_DATA 13
# define TYPE_DATA_TRANSFER_MODE 14
# define TYPE_DESCRYPTION_ERROR_REPORT 15
# define TYPE_DECRYPTION_ERROR_REPORT_PERIOD 16
# define TYPE_DELETE_MAC_ENTRY 17
# define TYPE_DELETE_STATION 18
# define TYPE_RESERVED_19 19
# define TYPE_DISCOVERY_TYPE 20
# define TYPE_DUPLICATE_IPV4_ADDRESS 21
# define TYPE_DUPLICATE_IPV6_ADDRESS 22
# define TYPE_IDLE_TIMEOUT 23
# define TYPE_IMAGE_DATA 24
# define TYPE_IMAGE_IDENTIFIER 25
# define TYPE_IMAGE_INFORMATION 26
# define TYPE_INITIATE_DOWNLOAD 27
# define TYPE_LOCATION_DATA 28
# define TYPE_MAXIMUM_MESSAGE_LENGTH 29
# define TYPE_CAPWAP_LOCAL_IPV4_ADDRESS 30
# define TYPE_RADIO_ADMINISTRATIVE_STATE 31
# define TYPE_RADIO_OPERATIONAL_STATE 32
# define TYPE_RESULT_CODE 33
# define TYPE_RETURNED_MESSAGE_ELEMENT 34
# define TYPE_SESSION_ID 35
# define TYPE_STATISTICS_TIMER 36
# define TYPE_VENDOR_SPECIFIC_PAYLOAD 37
# define TYPE_WTP_BOARD_DATA 38
# define TYPE_WTP_DESCRIPTOR 39
# define TYPE_WTP_FALLBACK 40
# define TYPE_WTP_FRAME_TUNNEL_MODE 41
# define TYPE_RESERVED_42 42
# define TYPE_RESERVED_43 43
# define TYPE_WTP_MAC_TYPE 44
# define TYPE_WTP_NAME 45
# define TYPE_RESERVED_46 46
# define TYPE_WTP_RADIO_STATISTICS 47
# define TYPE_WTP_REBOOT_STATISTICS 48
# define TYPE_WTP_STATIC_IP_ADDRESS_INFORMATION 49
# define TYPE_CAPWAP_LOCAL_IPV6_ADDRESS 50
# define TYPE_CAPWAP_TRANSPORT_PROTOCOL 51
# define TYPE_MTU_DISCOVERY_PADDING 52
# define TYPE_ECN_SUPPORT 53
# define IEEE80211_ADD_WLAN 1024
# define IEEE80211_ANTENNA 1025
# define IEEE80211_ASSIGNED_WTP_BSSID 1026
# define IEEE80211_DELETE_WLAN 1027
# define IEEE80211_DIRECT_SEQUENCE_CONTROL 1028
# define IEEE80211_INFORMATION_ELEMENT 1029
# define IEEE80211_MAC_OPERATION 1030
# define IEEE80211_MIC_COUNTERMEASURES 1031
# define IEEE80211_MULTI_DOMAIN_CAPABILITY 1032
# define IEEE80211_OFDM_CONTROL 1033
# define IEEE80211_RATE_SET 1034
# define IEEE80211_RSNA_ERROR_REPORT_FROM_STATION 1035
# define IEEE80211_STATION 1036
# define IEEE80211_STATION_QOS_PROFILE 1037
# define IEEE80211_STATION_SESSION_KEY 1038
# define IEEE80211_STATISTICS 1039
# define IEEE80211_SUPPORTED_RATES 1040
# define IEEE80211_TX_POWER 1041
2013-02-21 15:31:58 +00:00
# define IEEE80211_TX_POWER_LEVEL 1042
2009-11-29 13:33:05 +00:00
# define IEEE80211_UPDATE_STATION_QOS 1043
# define IEEE80211_UPDATE_WLAN 1044
# define IEEE80211_WTP_QUALITY_OF_SERVICE 1045
# define IEEE80211_WTP_RADIO_CONFIGURATION 1046
# define IEEE80211_WTP_RADIO_FAIL_ALARM_INDICATION 1047
# define IEEE80211_WTP_RADIO_INFORMATION 1048
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Message Element Type Value */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const value_string message_element_type_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ TYPE_AC_DESCRIPTOR , " AC Descriptor " } ,
{ TYPE_AC_IPV4_LIST , " AC IPv4 List " } ,
{ TYPE_AC_IPV6_LIST , " AC IPv6 List " } ,
{ TYPE_AC_NAME , " AC Name " } ,
{ TYPE_AC_NAME_W_PRIORITY , " AC Name With Priority " } ,
{ TYPE_AC_TIMESTAMP , " AC Timestamp " } ,
{ TYPE_ADD_MAC_ACL_ENTRY , " Add MAC ACL Entry " } ,
{ TYPE_ADD_STATION , " Add Station " } ,
{ TYPE_RESERVED_9 , " Reserved " } ,
{ TYPE_CAPWAP_CONTROL_IPV4_ADDRESS , " CAPWAP Control IPv4 Address " } ,
{ TYPE_CAPWAP_CONTROL_IPV6_ADDRESS , " CAPWAP Control IPv6 Address " } ,
{ TYPE_CAPWAP_TIMERS , " CAPWAP Timers " } ,
{ TYPE_DATA_TRANSFER_DATA , " Data Transfer Data " } ,
{ TYPE_DATA_TRANSFER_MODE , " Data Transfer Mode " } ,
{ TYPE_DESCRYPTION_ERROR_REPORT , " Decryption Error Report " } ,
{ TYPE_DECRYPTION_ERROR_REPORT_PERIOD , " Decryption Error Report Period " } ,
{ TYPE_DELETE_MAC_ENTRY , " Delete MAC ACL Entry " } ,
{ TYPE_DELETE_STATION , " Delete Station " } ,
{ TYPE_RESERVED_19 , " Reserved " } ,
{ TYPE_DISCOVERY_TYPE , " Discovery Type " } ,
{ TYPE_DUPLICATE_IPV4_ADDRESS , " Duplicate IPv4 Address " } ,
{ TYPE_DUPLICATE_IPV6_ADDRESS , " Duplicate IPv6 Address " } ,
{ TYPE_IDLE_TIMEOUT , " Idle Timeout " } ,
{ TYPE_IMAGE_DATA , " Image Data " } ,
{ TYPE_IMAGE_IDENTIFIER , " Image Identifier " } ,
{ TYPE_IMAGE_INFORMATION , " Image Information " } ,
{ TYPE_INITIATE_DOWNLOAD , " Initiate Download " } ,
{ TYPE_LOCATION_DATA , " Location Data " } ,
{ TYPE_MAXIMUM_MESSAGE_LENGTH , " Maximum Message Length " } ,
{ TYPE_CAPWAP_LOCAL_IPV4_ADDRESS , " CAPWAP Local IPv4 Address " } ,
{ TYPE_RADIO_ADMINISTRATIVE_STATE , " Radio Administrative State " } ,
{ TYPE_RADIO_OPERATIONAL_STATE , " Radio Operational State " } ,
{ TYPE_RESULT_CODE , " Result Code " } ,
{ TYPE_RETURNED_MESSAGE_ELEMENT , " Returned Message Element " } ,
{ TYPE_SESSION_ID , " Session ID " } ,
{ TYPE_STATISTICS_TIMER , " Statistics Timer " } ,
{ TYPE_VENDOR_SPECIFIC_PAYLOAD , " Vendor Specific Payload " } ,
{ TYPE_WTP_BOARD_DATA , " WTP Board Data " } ,
{ TYPE_WTP_DESCRIPTOR , " WTP Descriptor " } ,
{ TYPE_WTP_FALLBACK , " WTP Fallback " } ,
{ TYPE_WTP_FRAME_TUNNEL_MODE , " WTP Frame Tunnel Mode " } ,
{ TYPE_RESERVED_42 , " Reserved " } ,
{ TYPE_RESERVED_43 , " Reserved " } ,
{ TYPE_WTP_MAC_TYPE , " WTP MAC Type " } ,
{ TYPE_WTP_NAME , " WTP Name " } ,
{ TYPE_RESERVED_46 , " Unused/Reserved " } ,
{ TYPE_WTP_RADIO_STATISTICS , " WTP Radio Statistics " } ,
{ TYPE_WTP_REBOOT_STATISTICS , " WTP Reboot Statistics " } ,
{ TYPE_WTP_STATIC_IP_ADDRESS_INFORMATION , " WTP Static IP Address Information " } ,
{ TYPE_CAPWAP_LOCAL_IPV6_ADDRESS , " CAPWAP Local IPv6 Address " } ,
{ TYPE_CAPWAP_TRANSPORT_PROTOCOL , " CAPWAP Transport Protocol " } ,
{ TYPE_MTU_DISCOVERY_PADDING , " MTU Discovery Padding " } ,
{ TYPE_ECN_SUPPORT , " ECN Support " } ,
{ IEEE80211_ADD_WLAN , " IEEE 802.11 Add WLAN " } ,
{ IEEE80211_ANTENNA , " IEEE 802.11 Antenna " } ,
{ IEEE80211_ASSIGNED_WTP_BSSID , " IEEE 802.11 Assigned WTP BSSID " } ,
{ IEEE80211_DELETE_WLAN , " IEEE 802.11 Delete WLAN " } ,
{ IEEE80211_DIRECT_SEQUENCE_CONTROL , " IEEE 802.11 Direct Sequence Control " } ,
{ IEEE80211_INFORMATION_ELEMENT , " IEEE 802.11 Information Element " } ,
{ IEEE80211_MAC_OPERATION , " IEEE 802.11 MAC Operation " } ,
{ IEEE80211_MIC_COUNTERMEASURES , " IEEE 802.11 MIC Countermeasures " } ,
{ IEEE80211_MULTI_DOMAIN_CAPABILITY , " IEEE 802.11 Multi-Domain Capability " } ,
{ IEEE80211_OFDM_CONTROL , " IEEE 802.11 OFDM Control " } ,
{ IEEE80211_RATE_SET , " IEEE 802.11 Rate Set " } ,
{ IEEE80211_RSNA_ERROR_REPORT_FROM_STATION , " IEEE 802.11 RSNA Error Report From Station " } ,
{ IEEE80211_STATION , " IEEE 802.11 Station " } ,
{ IEEE80211_STATION_QOS_PROFILE , " IEEE 802.11 Station QoS Profile " } ,
{ IEEE80211_STATION_SESSION_KEY , " IEEE 802.11 Station Session Key " } ,
{ IEEE80211_STATISTICS , " IEEE 802.11 Statistics " } ,
{ IEEE80211_SUPPORTED_RATES , " IEEE 802.11 Supported Rates " } ,
{ IEEE80211_TX_POWER , " IEEE 802.11 Tx Power " } ,
{ IEEE80211_TX_POWER_LEVEL , " IEEE 802.11 Tx Power Level " } ,
{ IEEE80211_UPDATE_STATION_QOS , " IEEE 802.11 Update Station QoS " } ,
{ IEEE80211_UPDATE_WLAN , " IEEE 802.11 Update WLAN " } ,
{ IEEE80211_WTP_QUALITY_OF_SERVICE , " IEEE 802.11 WTP Quality of Service " } ,
{ IEEE80211_WTP_RADIO_CONFIGURATION , " IEEE 802.11 WTP Radio Configuration " } ,
{ IEEE80211_WTP_RADIO_FAIL_ALARM_INDICATION , " IEEE 802.11 WTP Radio Fail Alarm Indication " } ,
{ IEEE80211_WTP_RADIO_INFORMATION , " IEEE 802.11 WTP Radio Information " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Discovery Type */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const value_string discovery_type_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Unknown " } ,
{ 1 , " Static Configuration " } ,
{ 2 , " DHCP " } ,
{ 3 , " DNS " } ,
{ 4 , " AC Referral " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-11-29 13:33:05 +00:00
/* Radio Administrative State */
/* ************************************************************************* */
static const value_string radio_admin_state_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 1 , " Enabled " } ,
{ 2 , " Disabled " } ,
{ 0 , NULL }
2009-11-29 13:33:05 +00:00
} ;
/* ************************************************************************* */
/* Radio Operational State */
/* ************************************************************************* */
static const value_string radio_op_state_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Reserved " } ,
{ 1 , " Enabled " } ,
{ 2 , " Disabled " } ,
{ 0 , NULL }
2009-11-29 13:33:05 +00:00
} ;
/* ************************************************************************* */
/* Radio Operational Cause */
/* ************************************************************************* */
static const value_string radio_op_cause_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Normal " } ,
{ 1 , " Radio Failure " } ,
{ 2 , " Software Failure " } ,
{ 3 , " Administratively Set " } ,
{ 0 , NULL }
2009-11-29 13:33:05 +00:00
} ;
/* ************************************************************************* */
/* Result Code */
/* ************************************************************************* */
static const value_string result_code_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Success " } ,
{ 1 , " Failure (AC List Message Element MUST Be Present) " } ,
{ 2 , " Success (NAT Detected) " } ,
{ 3 , " Join Failure (Unspecified) " } ,
{ 4 , " Join Failure (Resource Depletion) " } ,
{ 5 , " Join Failure (Unknown Source) " } ,
{ 6 , " Join Failure (Incorrect Data) " } ,
{ 7 , " Join Failure (Session ID Already in Use) " } ,
{ 8 , " Join Failure (WTP Hardware Not Supported) " } ,
{ 9 , " Join Failure (Binding Not Supported) " } ,
{ 10 , " Reset Failure (Unable to Reset) " } ,
{ 11 , " Reset Failure (Firmware Write Error) " } ,
{ 12 , " Configuration Failure (Unable to Apply Requested Configuration - Service Provided Anyhow) " } ,
{ 13 , " Configuration Failure (Unable to Apply Requested Configuration - Service Not Provided) " } ,
{ 14 , " Image Data Error (Invalid Checksum) " } ,
{ 15 , " Image Data Error (Invalid Data Length) " } ,
{ 16 , " Image Data Error (Other Error) " } ,
{ 17 , " Image Data Error (Image Already Present) " } ,
{ 18 , " Message Unexpected (Invalid in Current State) " } ,
{ 19 , " Message Unexpected (Unrecognized Request) " } ,
{ 20 , " Failure - Missing Mandatory Message Element " } ,
{ 21 , " Failure - Unrecognized Message Element " } ,
{ 22 , " Data Transfer Error (No Information to Transfer) " } ,
{ 0 , NULL }
2009-11-29 13:33:05 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Radio MAC Address Field */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const value_string rmac_field_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Reserved " } ,
{ 1 , " Supported " } ,
{ 2 , " Not Supported " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Board Data Type Value */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
# define BOARD_DATA_WTP_MODEL_NUMBER 0
# define BOARD_DATA_WTP_SERIAL_NUMBER 1
# define BOARD_DATA_BOARD_ID 2
# define BOARD_DATA_BOARD_REVISION 3
# define BOARD_DATA_BASE_MAC_ADDRESS 4
static const value_string board_data_type_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ BOARD_DATA_WTP_MODEL_NUMBER , " WTP Model Number " } ,
{ BOARD_DATA_WTP_SERIAL_NUMBER , " WTP Serial Number " } ,
{ BOARD_DATA_BOARD_ID , " Board ID " } ,
{ BOARD_DATA_BOARD_REVISION , " Board Revision " } ,
{ BOARD_DATA_BASE_MAC_ADDRESS , " Base MAC Address " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* Descriptor WTP Type Value */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
# define WTP_DESCRIPTOR_HARDWARE_VERSION 0
# define WTP_DESCRIPTOR_ACTIVE_SOFTWARE_VERSION 1
# define WTP_DESCRIPTOR_BOOT_VERSION 2
# define WTP_DESCRIPTOR_OTHER_SOFTWARE_VERSION 3
static const value_string wtp_descriptor_type_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ WTP_DESCRIPTOR_HARDWARE_VERSION , " WTP Hardware Version " } ,
{ WTP_DESCRIPTOR_ACTIVE_SOFTWARE_VERSION , " WTP Active Software Version " } ,
{ WTP_DESCRIPTOR_BOOT_VERSION , " WTP Boot Version " } ,
{ WTP_DESCRIPTOR_OTHER_SOFTWARE_VERSION , " WTP Other Software Version " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* AC Information Type Value */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
# define AC_INFORMATION_HARDWARE_VERSION 4
# define AC_INFORMATION_SOFTWARE_VERSION 5
static const value_string ac_information_type_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ AC_INFORMATION_HARDWARE_VERSION , " AC Hardware Version " } ,
{ AC_INFORMATION_SOFTWARE_VERSION , " AC Software Version " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
/* ************************************************************************* */
2009-06-02 21:44:00 +00:00
/* WTP MAC Type */
2009-06-02 18:39:38 +00:00
/* ************************************************************************* */
static const value_string wtp_mac_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Local MAC " } ,
{ 1 , " Split MAC " } ,
{ 2 , " Both (Local and Split MAC) " } ,
{ 0 , NULL }
2009-06-02 18:39:38 +00:00
} ;
2009-11-29 13:33:05 +00:00
/* ************************************************************************* */
/* WTP Fallback */
/* ************************************************************************* */
static const value_string wtp_fallback_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Reserved " } ,
{ 1 , " Enabled " } ,
{ 2 , " Disabled " } ,
{ 0 , NULL }
2009-11-29 13:33:05 +00:00
} ;
/* ************************************************************************* */
/* Last Failure Type */
/* ************************************************************************* */
static const value_string last_failure_type_vals [ ] = {
2013-02-21 15:31:58 +00:00
{ 0 , " Not Supported " } ,
{ 1 , " AC Initiated " } ,
{ 2 , " Link Failure " } ,
{ 3 , " Software Failure " } ,
{ 4 , " Hardware Failure " } ,
{ 5 , " Other Failure " } ,
{ 255 , " Unknown (e.g., WTP doesn't keep track of info) " } ,
{ 0 , NULL }
2009-11-29 13:33:05 +00:00
} ;
2014-09-04 13:14:59 +00:00
/* ************************************************************************* */
/* CAPWAP Transport Protocol */
/* ************************************************************************* */
static const value_string capwap_transport_protocol_vals [ ] = {
{ 1 , " UDP-Lite " } ,
{ 2 , " UDP " } ,
{ 0 , NULL }
} ;
/* ************************************************************************* */
/* ECN Support */
/* ************************************************************************* */
static const value_string ecn_support_vals [ ] = {
{ 0 , " Limited ECN Support " } ,
{ 1 , " Full and Limited ECN Support " } ,
{ 0 , NULL }
} ;
2014-02-12 21:33:09 +00:00
/* ************************************************************************* */
2015-01-12 17:14:00 +00:00
/* Add/Update WLAN : Key Status */
2014-02-12 21:33:09 +00:00
/* ************************************************************************* */
2015-01-12 17:14:00 +00:00
static const value_string ieee80211_wlan_key_status_vals [ ] = {
2014-02-12 21:33:09 +00:00
{ 0 , " SN Information Element means that the WLAN uses per-station encryption keys " } ,
{ 1 , " static WEP Key " } ,
{ 2 , " Rekeying the GTK with the STA's in the BSS " } ,
{ 3 , " Rekeying the GTK and broadcast " } ,
{ 0 , NULL }
} ;
/* ************************************************************************* */
/* Add WLAN : QoS */
/* ************************************************************************* */
static const value_string ieee80211_add_wlan_qos_vals [ ] = {
{ 0 , " Best Effort " } ,
{ 1 , " Video " } ,
{ 2 , " Voice " } ,
{ 3 , " Background " } ,
{ 0 , NULL }
} ;
/* ************************************************************************* */
/* Add WLAN : Auth Type */
/* ************************************************************************* */
static const value_string ieee80211_add_wlan_auth_type_vals [ ] = {
{ 0 , " Open System " } ,
{ 1 , " WEP Shared Key " } ,
{ 0 , NULL }
} ;
/* ************************************************************************* */
/* Add WLAN : MAC Mode */
/* ************************************************************************* */
static const value_string ieee80211_add_wlan_mac_mode_vals [ ] = {
{ 0 , " Local MAC " } ,
{ 1 , " Split MAC " } ,
{ 0 , NULL }
} ;
/* ************************************************************************* */
/* Add WLAN : Tunnel Mode */
/* ************************************************************************* */
static const value_string ieee80211_add_wlan_tunnel_mode_vals [ ] = {
{ 0 , " Local Bridging " } ,
{ 1 , " 802.3 Tunnel " } ,
2014-06-16 22:01:00 +00:00
{ 2 , " 802.11 Tunnel " } ,
2014-02-12 21:33:09 +00:00
{ 0 , NULL }
} ;
2014-11-25 11:23:52 +00:00
/* ************************************************************************* */
/* IEE8011 Antenna */
/* ************************************************************************* */
static const value_string ieee80211_antenna_diversity_vals [ ] = {
{ 0 , " Disabled " } ,
{ 1 , " Enabled " } ,
{ 0 , NULL }
} ;
static const value_string ieee80211_antenna_combiner_vals [ ] = {
{ 1 , " Sectorized (Left) " } ,
{ 2 , " Sectorized (Right) " } ,
{ 3 , " Omni " } ,
{ 4 , " Multiple Input/Multiple Output (MIMO) " } ,
{ 0 , NULL }
} ;
static const value_string ieee80211_antenna_selection_vals [ ] = {
{ 1 , " Internal Antenna " } ,
{ 2 , " External Antenna " } ,
{ 0 , NULL }
} ;
2009-11-29 13:33:05 +00:00
static void capwap_reassemble_init ( void )
{
2013-03-22 23:59:54 +00:00
reassembly_table_init ( & capwap_reassembly_table ,
& addresses_reassembly_table_functions ) ;
2009-11-29 13:33:05 +00:00
}
static void
dissect_capwap_data_message_bindings_ieee80211 ( tvbuff_t * tvb , proto_tree * data_message_binding_tree , guint offset , packet_info * pinfo )
{
2014-06-10 06:48:27 +00:00
proto_item * data_message_binding_item , * ti ;
2013-02-21 15:31:58 +00:00
proto_tree * sub_data_message_binding_tree ;
2009-11-29 13:33:05 +00:00
2013-02-21 15:31:58 +00:00
if ( global_capwap_data_udp_port = = pinfo - > destport )
{
2014-06-10 06:48:27 +00:00
guint16 data_rate ;
2013-02-21 15:31:58 +00:00
/* (WTP -> AC) IEEE 802.11 Frame Info */
2014-06-10 06:48:27 +00:00
data_message_binding_item = proto_tree_add_item ( data_message_binding_tree , hf_capwap_header_wireless_data_ieee80211_fi , tvb , offset , 4 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
sub_data_message_binding_tree = proto_item_add_subtree ( data_message_binding_item , ett_capwap_data_message_bindings_ieee80211 ) ;
2009-11-29 13:33:05 +00:00
2014-06-10 06:48:27 +00:00
proto_tree_add_item ( sub_data_message_binding_tree , hf_capwap_header_wireless_data_ieee80211_fi_rssi , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-11-29 13:33:05 +00:00
2014-06-10 06:48:27 +00:00
proto_tree_add_item ( sub_data_message_binding_tree , hf_capwap_header_wireless_data_ieee80211_fi_snr , tvb , offset + 1 , 1 , ENC_BIG_ENDIAN ) ;
2009-11-29 13:33:05 +00:00
2014-06-10 06:48:27 +00:00
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 ) ;
data_rate = tvb_get_ntohs ( tvb , offset + 2 ) ;
proto_item_append_text ( ti , " (%.1f Mb/s) " , ( ( float ) data_rate / 10 ) ) ;
2013-02-21 15:31:58 +00:00
}
else
{
/* (AC -> WTP) IEEE 802.11 Destination Wlans */
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 ) ;
2014-08-20 08:08:15 +00:00
sub_data_message_binding_tree = proto_item_add_subtree ( data_message_binding_item , ett_capwap_data_message_bindings_ieee80211 ) ;
2009-06-02 18:39:38 +00:00
2014-06-10 06:48:27 +00:00
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 ) ;
2009-11-29 13:33:05 +00:00
2014-06-10 06:48:27 +00:00
proto_tree_add_item ( sub_data_message_binding_tree , hf_capwap_header_wireless_data_ieee80211_dw_reserved , tvb , offset + 2 , 2 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
}
2009-11-29 13:33:05 +00:00
}
2009-06-02 18:39:38 +00:00
static void
dissect_capwap_encryption_capabilities ( tvbuff_t * tvb , proto_tree * encryption_capabilities_tree , guint offset )
{
2013-02-21 15:31:58 +00:00
proto_item * encryption_capabilities_item ;
proto_tree * sub_encryption_capabilities_tree ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:32:07 +00:00
encryption_capabilities_item = proto_tree_add_item ( encryption_capabilities_tree , hf_capwap_msg_element_type_wtp_descriptor_encrypt , tvb , offset , 3 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
sub_encryption_capabilities_tree = proto_item_add_subtree ( encryption_capabilities_item , ett_capwap_encryption_capability ) ;
2009-06-02 18:39:38 +00:00
2014-12-11 23:37:07 +00:00
proto_tree_add_item ( sub_encryption_capabilities_tree , hf_capwap_msg_element_type_wtp_descriptor_encrypt_reserved , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:32:07 +00:00
2014-12-11 23:37:07 +00:00
proto_tree_add_item ( sub_encryption_capabilities_tree , hf_capwap_msg_element_type_wtp_descriptor_encrypt_wbid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:32:07 +00:00
proto_item_append_text ( encryption_capabilities_item , " : (WBID %d) " , tvb_get_guint8 ( tvb , offset ) & 0x1F ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_encryption_capabilities_tree , hf_capwap_msg_element_type_wtp_descriptor_encrypt_capabilities , tvb , offset + 1 , 2 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:32:07 +00:00
proto_item_append_text ( encryption_capabilities_item , " %d " , tvb_get_ntohs ( tvb , offset + 1 ) ) ;
2009-06-02 18:39:38 +00:00
}
/* Returns the number of bytes consumed by this option. */
static int
dissect_capwap_ac_information ( tvbuff_t * tvb , proto_tree * ac_information_type_tree , guint offset )
{
2013-02-21 15:31:58 +00:00
guint optlen , ac_information_type = 0 ;
proto_item * ac_information_type_item ;
proto_tree * sub_ac_information_type_tree ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
ac_information_type = tvb_get_ntohs ( tvb , offset + 4 ) ;
optlen = tvb_get_ntohs ( tvb , offset + 6 ) ;
2013-02-21 15:32:07 +00:00
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 ) ;
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) " ) ) ;
2014-08-20 08:08:15 +00:00
sub_ac_information_type_tree = proto_item_add_subtree ( ac_information_type_item , ett_capwap_ac_information ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_ac_information_type_tree , hf_capwap_msg_element_type_ac_information_vendor , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_ac_information_type_tree , hf_capwap_msg_element_type_ac_information_type , tvb , offset + 4 , 2 , ENC_BIG_ENDIAN ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_ac_information_type_tree , hf_capwap_msg_element_type_ac_information_length , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_ac_information_type_tree , hf_capwap_msg_element_type_ac_information_value , tvb , offset + 8 , optlen , ENC_NA ) ;
2013-02-21 15:32:07 +00:00
2013-02-21 15:31:58 +00:00
switch ( ac_information_type ) {
case AC_INFORMATION_HARDWARE_VERSION :
proto_tree_add_item ( sub_ac_information_type_tree , hf_capwap_msg_element_type_ac_information_hardware_version , tvb , offset + 8 , optlen , ENC_ASCII | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case AC_INFORMATION_SOFTWARE_VERSION :
proto_tree_add_item ( sub_ac_information_type_tree , hf_capwap_msg_element_type_ac_information_software_version , tvb , offset + 8 , optlen , ENC_ASCII | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
default :
/* No Default Action */
break ;
}
return 4 + 2 + 2 + optlen ;
2009-06-02 18:39:38 +00:00
}
/* Returns the number of bytes consumed by this option. */
static int
dissect_capwap_wtp_descriptor ( tvbuff_t * tvb , proto_tree * wtp_descriptor_type_tree , guint offset )
{
2013-02-21 15:31:58 +00:00
guint optlen , wtp_descriptor_type = 0 ;
proto_item * wtp_descriptor_type_item ;
proto_tree * sub_wtp_descriptor_type_tree ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
wtp_descriptor_type = tvb_get_ntohs ( tvb , offset + 4 ) ;
optlen = tvb_get_ntohs ( tvb , offset + 6 ) ;
2013-02-21 15:32:07 +00:00
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 ) ;
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) " ) ) ;
2014-08-20 08:08:15 +00:00
sub_wtp_descriptor_type_tree = proto_item_add_subtree ( wtp_descriptor_type_item , ett_capwap_wtp_descriptor ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_wtp_descriptor_type_tree , hf_capwap_msg_element_type_wtp_descriptor_vendor , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_wtp_descriptor_type_tree , hf_capwap_msg_element_type_wtp_descriptor_type , tvb , offset + 4 , 2 , ENC_BIG_ENDIAN ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_wtp_descriptor_type_tree , hf_capwap_msg_element_type_wtp_descriptor_length , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_wtp_descriptor_type_tree , hf_capwap_msg_element_type_wtp_descriptor_value , tvb , offset + 8 , optlen , ENC_NA ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
switch ( wtp_descriptor_type ) {
case WTP_DESCRIPTOR_HARDWARE_VERSION :
proto_tree_add_item ( sub_wtp_descriptor_type_tree , hf_capwap_msg_element_type_wtp_descriptor_hardware_version , tvb , offset + 8 , optlen , ENC_ASCII | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case WTP_DESCRIPTOR_ACTIVE_SOFTWARE_VERSION :
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 | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case WTP_DESCRIPTOR_BOOT_VERSION :
proto_tree_add_item ( sub_wtp_descriptor_type_tree , hf_capwap_msg_element_type_wtp_descriptor_boot_version , tvb , offset + 8 , optlen , ENC_ASCII | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case WTP_DESCRIPTOR_OTHER_SOFTWARE_VERSION :
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 | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
default :
/* No Default Action */
break ;
}
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
return 4 + 2 + 2 + optlen ;
2009-06-02 18:39:38 +00:00
}
/* Returns the number of bytes consumed by this option. */
static int
dissect_capwap_board_data ( tvbuff_t * tvb , proto_tree * board_data_type_tree , guint offset )
{
2013-02-21 15:31:58 +00:00
guint optlen , board_data_type = 0 ;
proto_item * board_data_type_item ;
proto_tree * sub_board_data_type_tree ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
board_data_type = tvb_get_ntohs ( tvb , offset ) ;
optlen = tvb_get_ntohs ( tvb , offset + 2 ) ;
2013-02-21 15:32:07 +00:00
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 ) ;
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) " ) ) ;
2014-08-20 08:08:15 +00:00
sub_board_data_type_tree = proto_item_add_subtree ( board_data_type_item , ett_capwap_board_data ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:32:07 +00:00
proto_tree_add_item ( sub_board_data_type_tree , hf_capwap_msg_element_type_wtp_board_data_type , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
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 ) ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_board_data_type_tree , hf_capwap_msg_element_type_wtp_board_data_value , tvb , offset + 4 , optlen , ENC_NA ) ;
switch ( board_data_type ) {
case BOARD_DATA_WTP_MODEL_NUMBER :
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 | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case BOARD_DATA_WTP_SERIAL_NUMBER :
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 | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case BOARD_DATA_BOARD_ID :
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 | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case BOARD_DATA_BOARD_REVISION :
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 | ENC_NA ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
case BOARD_DATA_BASE_MAC_ADDRESS :
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 ) ;
break ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
default :
/* No Default Action */
break ;
}
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
return 2 + 2 + optlen ;
2009-06-02 18:39:38 +00:00
}
2009-06-02 21:44:00 +00:00
2014-12-07 13:30:50 +00:00
/* From FortiAP/WiFI 5.2.0
*/
# define VSP_FORTINET_AP_SCAN 16
# define VSP_FORTINET_PASSIVE 24
# define VSP_FORTINET_DAEMON_RST 32
# define VSP_FORTINET_MAC 33
# define VSP_FORTINET_WTP_ALLOW 34
# define VSP_FORTINET_WBH_STA 36
# define VSP_FORTINET_HTCAP 49
# define VSP_FORTINET_MGMT_VAP 50 /* MVAP */
# define VSP_FORTINET_MODE 51
# define VSP_FORTINET_COEXT 52
# define VSP_FORTINET_AMSDU 53
# define VSP_FORTINET_PS_OPT 54
# define VSP_FORTINET_PURE 55
# define VSP_FORTINET_EBP_TAG 56 /* ?? */
# define VSP_FORTINET_TELNET_ENABLE 81
# define VSP_FORTINET_ADMIN_PASSWD 82
# define VSP_FORTINET_REGCODE 83
# define VSP_FORTINET_COUNTRYCODE 84
# define VSP_FORTINET_STA_SCAN 99
# define VSP_FORTINET_FHO 103
# define VSP_FORTINET_APHO 104
# define VSP_FORTINET_STA_LOCATE 106
# define VSP_FORTINET_SPECTRUM_ANALYSIS 108
# define VSP_FORTINET_DARRP_CFG 112
# define VSP_FORTINET_AP_SUPPRESS_LIST 128
# define VSP_FORTINET_WDS 145
# define VSP_FORTINET_VAP_VLAN_TAG 147
# define VSP_FORTINET_VAP_BITMAP 148
# define VSP_FORTINET_MCAST_RATE 149
# define VSP_FORTINET_CFG 150
# define VSP_FORTINET_SPLIT_TUN_CFG 151
# define VSP_FORTINET_MGMT_VLAN_TAG 161
# define VSP_FORTINET_VAP_PSK_PASSWD 167
# define VSP_FORTINET_MESH_ETH_BRIDGE_ENABLE 176
# define VSP_FORTINET_MESH_ETH_BRIDGE_TYPE 177
# define VSP_FORTINET_WTP_CAP 192
# define VSP_FORTINET_TXPWR 193
# define VSP_FORTINET_WIDS_ENABLE 209
static const value_string fortinet_element_id_vals [ ] = {
{ VSP_FORTINET_AP_SCAN , " AP Scan " } ,
{ VSP_FORTINET_DAEMON_RST , " Daemon Reset " } ,
{ VSP_FORTINET_MAC , " MAC " } ,
{ VSP_FORTINET_PASSIVE , " Passive " } ,
{ VSP_FORTINET_WTP_ALLOW , " WTP Allow " } ,
{ VSP_FORTINET_WBH_STA , " Mesh WBH STA " } ,
{ VSP_FORTINET_HTCAP , " HT Capabilities " } ,
{ VSP_FORTINET_MGMT_VAP , " Management VAP " } ,
{ VSP_FORTINET_MODE , " Mode " } ,
{ VSP_FORTINET_COEXT , " Coext " } ,
{ VSP_FORTINET_AMSDU , " AMSDU " } ,
{ VSP_FORTINET_PS_OPT , " PS OPT " } ,
{ VSP_FORTINET_PURE , " Pure " } ,
{ VSP_FORTINET_EBP_TAG , " EBP Tag " } ,
{ VSP_FORTINET_TELNET_ENABLE , " Telnet Enable " } ,
{ VSP_FORTINET_ADMIN_PASSWD , " Admin Password " } ,
{ VSP_FORTINET_REGCODE , " Reg Code " } ,
{ VSP_FORTINET_COUNTRYCODE , " Country Code " } ,
{ VSP_FORTINET_STA_SCAN , " STA Scan " } ,
{ VSP_FORTINET_FHO , " FHO " } ,
{ VSP_FORTINET_APHO , " APHO " } ,
{ VSP_FORTINET_STA_LOCATE , " STA Locate " } ,
{ VSP_FORTINET_SPECTRUM_ANALYSIS , " Spectrum Analysis " } ,
{ VSP_FORTINET_DARRP_CFG , " DARRP Configuration " } ,
{ VSP_FORTINET_AP_SUPPRESS_LIST , " AP Suppress List " } ,
{ VSP_FORTINET_WDS , " WDS " } ,
{ VSP_FORTINET_VAP_VLAN_TAG , " VAP Vlan " } ,
{ VSP_FORTINET_VAP_BITMAP , " VAP Bitmap " } ,
{ VSP_FORTINET_MCAST_RATE , " Multicast Rate " } ,
{ VSP_FORTINET_CFG , " Configuration " } ,
{ VSP_FORTINET_SPLIT_TUN_CFG , " Split Tunnel Configuration " } ,
{ VSP_FORTINET_MGMT_VLAN_TAG , " Management Vlan " } ,
{ VSP_FORTINET_VAP_PSK_PASSWD , " VAP PSK Password " } ,
{ VSP_FORTINET_MESH_ETH_BRIDGE_ENABLE , " Mesh Eth Bridge Enable " } ,
{ VSP_FORTINET_MESH_ETH_BRIDGE_TYPE , " Mesh Eth Bridge Type " } ,
{ VSP_FORTINET_WTP_CAP , " WTP Capabilities " } ,
{ VSP_FORTINET_TXPWR , " Tx Power " } ,
{ VSP_FORTINET_WIDS_ENABLE , " WIDS Enable " } ,
{ 0 , NULL }
} ;
static int
dissect_capwap_message_element_vendor_fortinet_type ( tvbuff_t * tvb , proto_tree * sub_msg_element_type_tree , guint offset , packet_info * pinfo _U_ , guint optlen , proto_item * msg_element_type_item )
{
guint element_id ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_element_id , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
element_id = tvb_get_ntohs ( tvb , offset ) ;
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) " ) ) ;
offset + = 2 ;
/* Remove length and element id to optlen */
optlen - = 6 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_value , tvb , offset , optlen , ENC_NA ) ;
switch ( element_id ) {
case VSP_FORTINET_AP_SCAN : /* 16 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_scan_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_scan_bgscan_intv , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_scan_bgscan_idle , tvb , offset , 3 , ENC_BIG_ENDIAN ) ;
offset + = 3 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_scan_bgscan_rpt_intv , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_scan_fgscan_rpt_intv , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_PASSIVE : /* 24 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_passive_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_passive , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_DAEMON_RST : /* 32 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_daemon_rst , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_MAC : { /* 33 */
guint8 mac_length ;
proto_item * ti ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mac_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mac_wid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
ti = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mac_len , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
mac_length = tvb_get_guint8 ( tvb , offset ) ;
offset + = 1 ;
if ( mac_length % 6 ! = 0 )
{
expert_add_info ( pinfo , ti , & ei_capwap_fortinet_mac_len ) ;
break ;
}
for ( ; mac_length > 0 ; mac_length - = 6 ) {
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mac , tvb , offset , 6 , ENC_NA ) ;
offset + = 6 ;
}
}
break ;
case VSP_FORTINET_WTP_ALLOW : /* 34 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wtp_allow_sn , tvb , offset , optlen - 1 , ENC_ASCII | ENC_NA ) ;
offset + = optlen - 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wtp_allow_allow , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_WBH_STA : { /* 36 */
guint16 mac_length ;
proto_item * ti ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wbh_sta_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
ti = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wbh_sta_len , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
mac_length = tvb_get_guint8 ( tvb , offset ) ;
offset + = 1 ;
if ( mac_length % 6 ! = 0 )
{
expert_add_info ( pinfo , ti , & ei_capwap_fortinet_mac_len ) ;
break ;
}
for ( ; mac_length > 0 ; mac_length - = 6 ) {
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wbh_sta_mac , tvb , offset , 6 , ENC_NA ) ;
offset + = 6 ;
}
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wbh_sta_bssid , tvb , offset , 6 , ENC_NA ) ;
offset + = 6 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wbh_sta_mhc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
}
break ;
case VSP_FORTINET_HTCAP : /* 49 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_htcap_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_htcap_mcs , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_htcap_gi , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_htcap_bw , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_MGMT_VAP : { /* 50 */
guint16 sn_length ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mvap_sn_length , tvb , offset , 2 , ENC_NA ) ;
sn_length = tvb_get_ntohs ( tvb , offset ) ;
offset + = 2 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mvap_sn , tvb , offset , sn_length , ENC_ASCII | ENC_NA ) ;
offset + = sn_length ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mvap_unknown , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mvap_unknown , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mvap_age , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mvap_period , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mvap_vfid , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
break ;
}
case VSP_FORTINET_MODE : /* 51 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mode_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mode , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_COEXT : /* 52 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_coext_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_coext , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_AMSDU : /* 53 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_amsdu_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_amsdu , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_PS_OPT : /* 54 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ps_opt_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ps_opt , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_PURE : /* 55 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_pure_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_pure , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_EBP_TAG : /* 56 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ebptag_ebp , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ebptag_tag , tvb , offset , 6 , ENC_NA ) ;
offset + = 6 ;
break ;
case VSP_FORTINET_TELNET_ENABLE : /* 81 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_telnet_enable , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
break ;
case VSP_FORTINET_ADMIN_PASSWD : /* 82 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_admin_passwd , tvb , offset , optlen , ENC_ASCII | ENC_NA ) ;
offset + = optlen ;
break ;
case VSP_FORTINET_REGCODE : /* 83 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_regcode , tvb , offset , 3 , ENC_ASCII | ENC_NA ) ;
offset + = 3 ;
break ;
case VSP_FORTINET_COUNTRYCODE : /* 84 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_countrycode_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_countrycode_code , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_countrycode_string , tvb , offset , 3 , ENC_ASCII | ENC_NA ) ;
offset + = 3 ;
break ;
case VSP_FORTINET_STA_SCAN : /* 99 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sta_scan_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sta_scan , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_FHO : /* 103 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_fho_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_fho , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_APHO : /* 104 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_apho_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_apho , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_STA_LOCATE : /* 106 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sta_locate_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sta_locate_enable , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sta_locate_interval , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_SPECTRUM_ANALYSIS : /* 108 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sa_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
optlen - = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sa_enable , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
optlen - = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_sa_ssid , tvb , offset , optlen , ENC_ASCII | ENC_NA ) ;
offset + = optlen ;
break ;
case VSP_FORTINET_DARRP_CFG : /* 112 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_darrp_cfg_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_darrp_cfg_enable , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_darrp_cfg_interval , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_AP_SUPPRESS_LIST : /* 128 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_suppress_list_ver , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_suppress_list_op , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_suppress_list_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_ap_suppress_list_len , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_WDS : /* 145 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wds_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wds_wid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wds_enable , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_VAP_VLAN_TAG : /* 147 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_vlan_tag_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_vlan_tag_wid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_vlan_tag , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_VAP_BITMAP : /* 148 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_bitmap_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_bitmap , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_MCAST_RATE : /* 149 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mcast_rate_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mcast_rate_wid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mcast_rate , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
break ;
case VSP_FORTINET_CFG : /* 150 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_cfg_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_cfg_wid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_cfg_ip , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_cfg_mask , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
break ;
case VSP_FORTINET_SPLIT_TUN_CFG : /* 151 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_split_tun_cfg_enable_local_subnet , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_split_tun_cfg_cnt , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_MGMT_VLAN_TAG : /* 161 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mgmt_vlan_id , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_VAP_PSK_PASSWD : /* 167 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_psk_passwd_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
optlen - = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_psk_passwd_wid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
optlen - = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_vap_psk_passwd_key , tvb , offset , optlen , ENC_ASCII | ENC_NA ) ;
offset + = optlen ;
break ;
case VSP_FORTINET_MESH_ETH_BRIDGE_ENABLE : /* 176 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mesh_eth_bridge_enable , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
break ;
case VSP_FORTINET_MESH_ETH_BRIDGE_TYPE : /* 177 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_mesh_eth_bridge_type , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_WTP_CAP : /* 192 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wtp_cap , tvb , offset , optlen , ENC_NA ) ;
offset + = optlen ;
break ;
case VSP_FORTINET_TXPWR : /* 193 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_txpwr_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_txpwr , tvb , offset , 2 , ENC_NA ) ;
offset + = 2 ;
break ;
case VSP_FORTINET_WIDS_ENABLE : /* 209 */
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wids_enable_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_wids_enable , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
break ;
case 146 : /* VAP (ak Virtual AP) stuff, there is Radio ID and Wlan ID to start... */
case 152 :
case 153 :
case 163 :
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_unknown_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
optlen - = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_unknown_wid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
optlen - = 1 ;
expert_add_info_format ( pinfo , msg_element_type_item , & ei_capwap_message_element_fortinet_type ,
" Dissector for CAPWAP Vendor Specific (Fortinet) Message Element "
" (%d) type not implemented (VAP Stuff..) " , element_id ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_unknown , tvb , offset , optlen , ENC_NA ) ;
offset + = optlen ;
break ;
case 65 : /* Radio stuff, there is Radio ID to start... */
case 170 :
case 171 :
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_unknown_rid , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
optlen - = 1 ;
expert_add_info_format ( pinfo , msg_element_type_item , & ei_capwap_message_element_fortinet_type ,
" Dissector for CAPWAP Vendor Specific (Fortinet) Message Element "
" (%d) type not implemented (VAP Stuff..) " , element_id ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_unknown , tvb , offset , optlen , ENC_NA ) ;
offset + = optlen ;
break ;
default :
expert_add_info_format ( pinfo , msg_element_type_item , & ei_capwap_message_element_fortinet_type ,
" Dissector for CAPWAP Vendor Specific (Fortinet) Message Element "
" (%d) type not implemented " , element_id ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_fortinet_unknown , tvb , offset , optlen , ENC_NA ) ;
offset + = optlen ;
break ;
}
return offset ;
}
2009-06-02 18:39:38 +00:00
/* Returns the number of bytes consumed by this option. */
static int
2014-08-25 10:54:11 +00:00
dissect_capwap_message_element_type ( tvbuff_t * tvb , proto_tree * msg_element_type_tree , guint offset , packet_info * pinfo )
2009-06-02 18:39:38 +00:00
{
2013-02-21 15:31:58 +00:00
guint optlen , offset_end , number_encrypt , i , msg_element_type = 0 ;
2014-08-25 10:54:11 +00:00
proto_item * msg_element_type_item , * msg_element_type_item_flag , * ti_len , * ti_type ;
2013-02-21 15:31:58 +00:00
proto_tree * sub_msg_element_type_tree , * sub_msg_element_type_flag_tree ;
msg_element_type = tvb_get_ntohs ( tvb , offset ) ;
optlen = tvb_get_ntohs ( tvb , offset + 2 ) ;
2013-02-21 15:32:07 +00:00
msg_element_type_item = proto_tree_add_item ( msg_element_type_tree , hf_capwap_msg_element , tvb , offset , 2 + 2 + optlen , ENC_NA ) ;
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) " ) ) ;
2014-08-20 08:08:15 +00:00
sub_msg_element_type_tree = proto_item_add_subtree ( msg_element_type_item , ett_capwap_message_element_type ) ;
2013-02-21 15:31:58 +00:00
2014-08-25 10:54:11 +00:00
ti_type = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
2014-08-25 10:54:11 +00:00
ti_len = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_length , tvb , offset + 2 , 2 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_value , tvb , offset + 4 , optlen , ENC_NA ) ;
switch ( msg_element_type ) {
case TYPE_AC_DESCRIPTOR : /* AC Descriptor (1) */
2014-08-25 10:54:11 +00:00
if ( optlen < 12 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" AC Descriptor length %u wrong, must be >= 12 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_descriptor_stations , tvb , offset + 4 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_descriptor_limit , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
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 ) ;
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 ) ;
/* AC Descriptor Security Flags... */
msg_element_type_item_flag = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_descriptor_security , tvb , offset + 12 , 1 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
sub_msg_element_type_flag_tree = proto_item_add_subtree ( msg_element_type_item_flag , ett_capwap_ac_descriptor_security_flags ) ;
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ac_descriptor_security_r , tvb , offset + 12 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ac_descriptor_security_s , tvb , offset + 12 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ac_descriptor_security_x , tvb , offset + 12 , 1 , ENC_BIG_ENDIAN ) ;
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 ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_descriptor_reserved , tvb , offset + 14 , 1 , ENC_BIG_ENDIAN ) ;
/* AC Descriptor DTLS Flags... */
msg_element_type_item_flag = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_descriptor_dtls_policy , tvb , offset + 15 , 1 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
sub_msg_element_type_flag_tree = proto_item_add_subtree ( msg_element_type_item_flag , ett_capwap_ac_descriptor_dtls_flags ) ;
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ac_descriptor_dtls_policy_r , tvb , offset + 15 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ac_descriptor_dtls_policy_d , tvb , offset + 15 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ac_descriptor_dtls_policy_c , tvb , offset + 15 , 1 , ENC_BIG_ENDIAN ) ;
offset_end = offset + optlen - 4 ;
offset + = 4 + 12 ;
while ( offset < offset_end ) {
offset + = dissect_capwap_ac_information ( tvb , sub_msg_element_type_tree , offset ) ;
}
break ;
case TYPE_AC_IPV4_LIST : /* AC IPv4 List (2) */
2014-08-25 10:54:11 +00:00
if ( optlen < 4 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" AC IPv4 List length %u wrong, must be >= 4 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
offset_end = offset + 4 + optlen ;
offset + = 4 ;
if ( optlen % 4 = = 0 )
{
while ( offset_end - offset > 0 )
{
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_ipv4_list , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
offset + = 4 ;
}
}
break ;
case TYPE_AC_IPV6_LIST : /* AC IPv6 List (3) */
2014-08-25 10:54:11 +00:00
if ( optlen < 16 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" AC IPv6 List length %u wrong, must be >= 4 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
offset_end = offset + 4 + optlen ;
offset + = 4 ;
if ( optlen % 16 = = 0 )
{
while ( offset_end - offset > 0 )
{
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_ipv6_list , tvb , offset , 16 , ENC_NA ) ;
offset + = 16 ;
}
}
break ;
case TYPE_AC_NAME : /* AC Name (4) */
2014-08-25 10:54:11 +00:00
if ( optlen < 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" AC Name length %u wrong, must be >= 1 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_name , tvb , offset + 4 , optlen , ENC_ASCII | ENC_NA ) ;
break ;
case TYPE_AC_NAME_W_PRIORITY : /* AC Name With Priority (5) */
2014-08-25 10:54:11 +00:00
if ( optlen < 2 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" AC Name with Priority length %u wrong, must be >= 2 " , optlen ) ;
break ;
}
2014-08-26 19:36:53 +00:00
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 ) ;
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_name , tvb , offset + 5 , optlen - 1 , ENC_ASCII | ENC_NA ) ;
break ;
2014-09-04 13:14:59 +00:00
case TYPE_AC_TIMESTAMP : /* AC Timestamp (6) */
if ( optlen ! = 4 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" AC Timestamp length %u wrong, must be = 4 " , optlen ) ;
break ;
}
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ac_timestamp , tvb , offset + 4 , 4 , ENC_TIME_NTP | ENC_BIG_ENDIAN ) ;
break ;
case TYPE_ADD_STATION : { /* Add Station (8) */
guint8 maclength ;
if ( optlen < 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Add Station length %u wrong, must be >= 8 " , optlen ) ;
break ;
}
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 ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_add_station_length , tvb , offset + 5 , 1 , ENC_BIG_ENDIAN ) ;
maclength = tvb_get_guint8 ( tvb , offset + 5 ) ;
switch ( maclength ) {
case 6 :
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_add_station_mac_eui48 , tvb , offset + 6 , maclength , ENC_NA ) ;
break ;
case 8 :
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 ) ;
break ;
default :
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_add_station_mac_data , tvb , offset + 6 , maclength , ENC_NA ) ;
break ;
}
if ( optlen - ( 2 + maclength ) ) {
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 | ENC_NA ) ;
}
}
break ;
2013-02-21 15:31:58 +00:00
case TYPE_CAPWAP_CONTROL_IPV4_ADDRESS : /* CAPWAP Control IPv4 Address (10) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 6 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" CAPWAP Control IPv4 Address length %u wrong, must be = 6 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_capwap_control_ipv4 , tvb , offset + 4 , 4 , ENC_BIG_ENDIAN ) ;
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 ) ;
break ;
case TYPE_CAPWAP_CONTROL_IPV6_ADDRESS : /* CAPWAP Control IPv6 Address (11) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 18 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" CAPWAP Control IPv6 Address length %u wrong, must be = 18 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_capwap_control_ipv6 , tvb , offset + 4 , 16 , ENC_NA ) ;
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 ) ;
break ;
case TYPE_CAPWAP_TIMERS : /* CAPWAP Timers (12) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 2 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" CAPWAP Timers length %u wrong, must be = 2 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_capwap_timers_discovery , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
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 ) ;
break ;
case TYPE_DECRYPTION_ERROR_REPORT_PERIOD : /* Decryption Error Report Period (16) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 3 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Decryption Error Report Period length %u wrong, must be = 3 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
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 ) ;
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 ) ;
break ;
2015-01-12 16:13:28 +00:00
case TYPE_DELETE_STATION : { /* Delete Station (18) */
guint8 maclength ;
if ( optlen < 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Delete Station length %u wrong, must be >= 8 " , optlen ) ;
break ;
}
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 ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_delete_station_length , tvb , offset + 5 , 1 , ENC_BIG_ENDIAN ) ;
maclength = tvb_get_guint8 ( tvb , offset + 5 ) ;
switch ( maclength ) {
case 6 :
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_delete_station_mac_eui48 , tvb , offset + 6 , maclength , ENC_NA ) ;
break ;
case 8 :
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 ) ;
break ;
default :
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_delete_station_mac_data , tvb , offset + 6 , maclength , ENC_NA ) ;
break ;
}
}
break ;
2013-02-21 15:31:58 +00:00
case TYPE_DISCOVERY_TYPE : /* Discovery Type (20) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Discovery Type length %u wrong, must be = 1 " , optlen ) ;
break ;
}
2014-09-02 14:15:14 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_discovery_type , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
break ;
case TYPE_IDLE_TIMEOUT : /* Idle Timeout (23) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 4 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Idle Timeout length %u wrong, must be = 4 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_idle_timeout , tvb , offset + 4 , 4 , ENC_BIG_ENDIAN ) ;
break ;
case TYPE_LOCATION_DATA : /* Location Data (28) */
2014-08-25 10:54:11 +00:00
if ( optlen < 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Location Data length %u wrong, must be >= 1 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_location_data , tvb , offset + 4 , optlen , ENC_ASCII | ENC_NA ) ;
break ;
case TYPE_MAXIMUM_MESSAGE_LENGTH : /* Maximum Message Length (29) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 2 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Maximum Message length %u wrong, must be = 2 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_maximum_message_length , tvb , offset + 4 , 2 , ENC_BIG_ENDIAN ) ;
break ;
2014-09-04 13:14:59 +00:00
case TYPE_CAPWAP_LOCAL_IPV4_ADDRESS : /* CAPWAP Local IPv4 Address (30) */
if ( optlen ! = 4 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" CAPWAP Local IPv4 Address length %u wrong, must be = 4 " , optlen ) ;
break ;
}
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 ) ;
break ;
2013-02-21 15:31:58 +00:00
case TYPE_RADIO_ADMINISTRATIVE_STATE : /* Radio Administrative State (31) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 2 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Radio Administrative State length %u wrong, must be = 2 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_radio_admin_id , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_radio_admin_state , tvb , offset + 5 , 1 , ENC_BIG_ENDIAN ) ;
break ;
case TYPE_RADIO_OPERATIONAL_STATE : /* Radio Operational State (32) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 3 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Radio Operational State length %u wrong, must be = 3 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
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 ) ;
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 ) ;
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 ) ;
break ;
case TYPE_RESULT_CODE : /* Result Code (33) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 4 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Result Code length %u wrong, must be = 4 " , optlen ) ;
break ;
}
2014-09-02 14:15:14 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_result_code , tvb , offset + 4 , 4 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
break ;
case TYPE_SESSION_ID : /* Session ID (35) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 16 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Session ID length %u wrong, must be = 16 " , optlen ) ;
break ;
}
2014-09-02 14:15:14 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_session_id , tvb , offset + 4 , 16 , ENC_NA ) ;
2013-02-21 15:31:58 +00:00
break ;
case TYPE_STATISTICS_TIMER : /* Statistics Timer (36) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 2 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Statistics Timer length %u wrong, must be = 2 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_statistics_timer , tvb , offset + 4 , 2 , ENC_BIG_ENDIAN ) ;
break ;
2014-12-07 13:30:50 +00:00
case TYPE_VENDOR_SPECIFIC_PAYLOAD : { /* Vendor Specific Payload (37) */
guint32 vendor_id ;
2014-08-25 10:54:11 +00:00
if ( optlen < 7 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" Vendor Specific Payload length %u wrong, must be >= 7 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_vsp_vendor_identifier , tvb , offset + 4 , 4 , ENC_BIG_ENDIAN ) ;
2014-12-07 13:30:50 +00:00
vendor_id = tvb_get_ntohl ( tvb , offset + 4 ) ;
2013-02-21 15:31:58 +00:00
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 ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_vsp_vendor_data , tvb , offset + 10 , optlen - 6 , ENC_NA ) ;
2014-12-07 13:30:50 +00:00
switch ( vendor_id ) {
case VENDOR_FORTINET :
dissect_capwap_message_element_vendor_fortinet_type ( tvb , sub_msg_element_type_tree , offset + 8 , pinfo , optlen , msg_element_type_item ) ;
break ;
default :
/* No default... */
break ;
}
}
2013-02-21 15:31:58 +00:00
break ;
case TYPE_WTP_BOARD_DATA : /* WTP Board Data (38) */
2014-08-25 10:54:11 +00:00
if ( optlen < 14 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" WTP Board Data length %u wrong, must be >= 14 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
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 ) ;
offset + = 8 ;
offset_end = offset + optlen - 4 ;
while ( offset < offset_end ) {
offset + = dissect_capwap_board_data ( tvb , sub_msg_element_type_tree , offset ) ;
}
break ;
case TYPE_WTP_DESCRIPTOR : /* WTP Descriptor (39) */
2014-08-25 10:54:11 +00:00
if ( optlen < 33 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" WTP Descriptor length %u wrong, must be >= 33 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
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 ) ;
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 ) ;
if ( global_capwap_draft_8_cisco = = 0 )
{
number_encrypt = tvb_get_guint8 ( tvb , offset + 6 ) ;
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 ) ;
2014-08-20 08:08:15 +00:00
sub_msg_element_type_flag_tree = proto_item_add_subtree ( msg_element_type_item_flag , ett_capwap_encryption_capabilities ) ;
2013-02-21 15:31:58 +00:00
for ( i = 0 ; i < number_encrypt ; i + + ) {
dissect_capwap_encryption_capabilities ( tvb , sub_msg_element_type_flag_tree , offset + 4 + 3 + i * 3 ) ;
}
offset_end = offset + optlen - 4 ;
offset + = 4 + 3 + number_encrypt * 3 ;
}
else
{
/*in Draft 8, there is only one "encryption_capabilities*/
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 ) ;
offset_end = offset + optlen - 4 ;
offset + = 6 + 2 ;
}
while ( offset < offset_end ) {
offset + = dissect_capwap_wtp_descriptor ( tvb , sub_msg_element_type_tree , offset ) ;
}
break ;
case TYPE_WTP_FALLBACK : /* WTP Fallback (40) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" WTP Fallback length %u wrong, must be = 1 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_wtp_fallback , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
break ;
case TYPE_WTP_FRAME_TUNNEL_MODE : /* WTP Frame Tunnel Mode (41) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" WTP Frame Tunnel Mode length %u wrong, must be = 1 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
msg_element_type_item_flag = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_wtp_frame_tunnel_mode , tvb , offset + 4 , 1 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
sub_msg_element_type_flag_tree = proto_item_add_subtree ( msg_element_type_item_flag , ett_capwap_wtp_frame_tunnel_mode ) ;
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_wtp_frame_tunnel_mode_n , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_wtp_frame_tunnel_mode_e , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_wtp_frame_tunnel_mode_l , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_wtp_frame_tunnel_mode_r , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
break ;
case TYPE_WTP_MAC_TYPE : /* WTP MAC Type (44) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" WTP MAC Type length %u wrong, must be = 1 " , optlen ) ;
break ;
}
2014-09-02 14:15:14 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_wtp_mac_type , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
break ;
case TYPE_WTP_NAME : /* WTP Name (45) */
2014-08-25 10:54:11 +00:00
if ( optlen < 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" WTP Name length %u wrong, must be >= 1 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_wtp_name , tvb , offset + 4 , optlen , ENC_ASCII | ENC_NA ) ;
break ;
case TYPE_WTP_REBOOT_STATISTICS : /* WTP Reboot Statistics (48) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 15 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" WTP Reboot Statistics length %u wrong, must be = 15 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
break ;
2014-09-04 13:14:59 +00:00
case TYPE_CAPWAP_LOCAL_IPV6_ADDRESS : /* CAPWAP Local IPv6 Address (50) */
if ( optlen ! = 16 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" CAPWAP Local IPv6 Address length %u wrong, must be = 16 " , optlen ) ;
break ;
}
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_capwap_local_ipv6_address , tvb , offset + 4 , 16 , ENC_NA ) ;
break ;
case TYPE_CAPWAP_TRANSPORT_PROTOCOL : /* CAPWAP Transport Protocol (51) */
if ( optlen ! = 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" CAPWAP Transport Protocol length %u wrong, must be = 1 " , optlen ) ;
break ;
}
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_capwap_transport_protocol , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
break ;
case TYPE_MTU_DISCOVERY_PADDING : /* MTU Discovery Padding (52) */
if ( optlen < 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" MTU Discovery Padding length %u wrong, must be >= 1 " , optlen ) ;
break ;
}
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_mtu_discovery_padding , tvb , offset + 4 , optlen , ENC_NA ) ;
break ;
case TYPE_ECN_SUPPORT : /* ECN Support (53) */
if ( optlen ! = 1 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" ECN Support length %u wrong, must be = 1 " , optlen ) ;
break ;
}
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ecn_support , tvb , offset + 4 , 1 , ENC_BIG_ENDIAN ) ;
break ;
2014-02-12 21:33:09 +00:00
case IEEE80211_ADD_WLAN : { /* ieee80211 Add WLAN (1024) */
guint16 key_length ;
2014-08-25 10:54:11 +00:00
if ( optlen < 20 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Add Wlan length %u wrong, must be >= 20 " , optlen ) ;
break ;
}
2014-02-12 21:33:09 +00:00
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 ) ;
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 ) ;
msg_element_type_item_flag = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
2014-08-20 08:08:15 +00:00
sub_msg_element_type_flag_tree = proto_item_add_subtree ( msg_element_type_item_flag , ett_capwap_ieee80211_add_wlan_capability ) ;
2014-02-12 21:33:09 +00:00
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_e , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_i , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_c , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_f , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_p , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_s , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_b , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_a , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_m , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_q , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_t , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_d , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_v , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_o , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_k , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_add_wlan_capability_l , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
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 ) ;
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 ) ;
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 ) ;
key_length = tvb_get_ntohs ( tvb , offset + 10 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 | ENC_NA ) ;
}
break ;
2014-11-25 11:23:52 +00:00
case IEEE80211_ANTENNA : { /* ieee80211 Antenna (1025) */
guint8 antenna_count , antenna = 0 ;
if ( optlen < 5 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Antenna length %u wrong, must be >= 5 " , optlen ) ;
break ;
}
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 ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_antenna_diversity , tvb , offset + 5 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_antenna_combiner , tvb , offset + 6 , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_antenna_count , tvb , offset + 7 , 1 , ENC_BIG_ENDIAN ) ;
antenna_count = tvb_get_guint8 ( tvb , offset + 7 ) ;
while ( antenna < antenna_count ) {
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 ) ;
antenna + = 1 ;
}
}
break ;
case IEEE80211_ASSIGNED_WTP_BSSID : /* ieee80211 Assigned WTP BSSID (1026) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Assigned WTP BSSID length %u wrong, must be = 8 " , optlen ) ;
break ;
}
2014-02-12 21:33:09 +00:00
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 ) ;
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 ) ;
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 ) ;
break ;
2014-11-25 11:23:52 +00:00
case IEEE80211_DELETE_WLAN : /* ieee80211 Delete WLAN (1027) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 2 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Delete Wlan length %u wrong, must be = 2 " , optlen ) ;
break ;
}
2014-02-12 21:33:09 +00:00
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 ) ;
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 ) ;
break ;
2014-11-25 11:23:52 +00:00
case IEEE80211_DIRECT_SEQUENCE_CONTROL : /* ieee80211 Direct Sequence Control (1028) */
if ( optlen ! = 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Direct Sequence Control length %u wrong, must be = 8 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
break ;
2015-01-13 10:45:15 +00:00
case IEEE80211_INFORMATION_ELEMENT : /* ieee80211 Information Element (1029) */
if ( optlen < 4 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Information Element length %u wrong, must be >= 4 " , optlen ) ;
break ;
}
offset + = 4 ;
offset_end = offset + optlen ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_ie_radio_id , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_ie_wlan_id , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
offset + = 1 ;
proto_tree_add_bitmask_with_flags ( sub_msg_element_type_tree , tvb , offset ,
hf_capwap_msg_element_type_ieee80211_ie_flags , ett_capwap_ieee80211_ie_flags , ieee80211_ie_flags , ENC_BIG_ENDIAN , BMT_NO_APPEND ) ;
offset + = 1 ;
while ( offset < offset_end ) {
offset + = add_tagged_field ( pinfo , sub_msg_element_type_tree , tvb , offset , 0 ) ;
}
break ;
2014-11-25 11:23:52 +00:00
case IEEE80211_MAC_OPERATION : /* ieee80211 MAC Operation (1030) */
if ( optlen ! = 16 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 MAC Operation length %u wrong, must be = 16 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
break ;
case IEEE80211_MIC_COUNTERMEASURES : /* ieee80211 MIC Countermeasures (1031) */
if ( optlen ! = 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 MIC Countermeasures length %u wrong, must be = 8 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
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 ) ;
break ;
case IEEE80211_MULTI_DOMAIN_CAPABILITY : /* ieee80211 Multi-Domain Capability (1032) */
if ( optlen ! = 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Multi-Domain Capability length %u wrong, must be = 8 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
break ;
2015-01-12 17:14:00 +00:00
case IEEE80211_OFDM_CONTROL : /* ieee80211 OFDM Control (1033) */
if ( optlen ! = 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 OFDM Control length %u wrong, must be = 8 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
break ;
2013-02-21 15:31:58 +00:00
case IEEE80211_RATE_SET : /* ieee80211 Rate Set (1034) */
2014-08-25 10:54:11 +00:00
if ( optlen < 3 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Rate Set length %u wrong, must be >= 3 " , optlen ) ;
break ;
}
2014-11-25 11:23:52 +00:00
offset + = 4 ;
offset_end = offset + optlen ;
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 ) ;
offset + = 1 ;
while ( offset < offset_end ) {
2014-12-11 23:37:07 +00:00
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 ) ;
2014-11-25 11:23:52 +00:00
offset + = 1 ;
}
break ;
case IEEE80211_STATION : /* ieee80211 Station (1036) */
if ( optlen < 14 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Station length %u wrong, must be >= 14 " , optlen ) ;
break ;
}
offset_end = offset + 4 + optlen ;
2014-12-11 23:37:07 +00:00
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 ) ;
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 ) ;
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_station_flags , tvb , offset + 7 , 1 , ENC_BIG_ENDIAN ) ;
2014-11-25 11:23:52 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_station_mac_address , tvb , offset + 8 , 6 , ENC_NA ) ;
msg_element_type_item_flag = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
sub_msg_element_type_flag_tree = proto_item_add_subtree ( msg_element_type_item_flag , ett_capwap_ieee80211_station_capabilities ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_e , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_i , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_c , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_f , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_p , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_s , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_b , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_a , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_m , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_q , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_t , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_d , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_v , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_o , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_k , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_station_capabilities_l , tvb , offset + 14 , 2 , ENC_BIG_ENDIAN ) ;
2014-12-11 23:37:07 +00:00
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 ) ;
2014-11-25 11:23:52 +00:00
offset + = 17 ;
while ( offset < offset_end ) {
2014-12-11 23:37:07 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_station_supported_rates , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2014-11-25 11:23:52 +00:00
offset + = 1 ;
}
2013-02-21 15:31:58 +00:00
break ;
case IEEE80211_STATION_SESSION_KEY : /* ieee80211 Station Session Key (1038) */
2014-08-25 10:54:11 +00:00
if ( optlen < 25 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Station Session Key length %u wrong, must be >= 25 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
break ;
2014-11-25 11:23:52 +00:00
case IEEE80211_SUPPORTED_RATES : /* ieee80211 Supported Rates (1040) */
if ( optlen < 3 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Supported Rates length %u wrong, must be >= 3 " , optlen ) ;
break ;
}
offset + = 4 ;
offset_end = offset + optlen ;
2014-12-11 23:37:07 +00:00
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 ) ;
2014-11-25 11:23:52 +00:00
offset + = 1 ;
while ( offset < offset_end ) {
2014-12-11 23:37:07 +00:00
proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_supported_rates_rate , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2014-11-25 11:23:52 +00:00
offset + = 1 ;
}
break ;
case IEEE80211_TX_POWER : /* ieee80211 Tx Power (1041) */
if ( optlen ! = 4 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Tx Power length %u wrong, must be = 4 " , optlen ) ;
break ;
}
2014-12-11 23:37:07 +00:00
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 ) ;
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 ) ;
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 ) ;
2014-11-25 11:23:52 +00:00
break ;
case IEEE80211_TX_POWER_LEVEL : { /* ieee80211 Tx Power Level (1042) */
guint8 num_levels , level = 0 ;
if ( optlen < 3 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Antenna length %u wrong, must be >= 3 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
num_levels = tvb_get_guint8 ( tvb , offset + 5 ) ;
while ( level < num_levels ) {
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 ) ;
level + = 1 ;
}
}
break ;
2015-01-12 17:14:00 +00:00
case IEEE80211_UPDATE_WLAN : { /* ieee80211 Update WLAN (1044) */
guint16 key_length ;
if ( optlen < 8 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 Update Wlan length %u wrong, must be >= 8 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
msg_element_type_item_flag = proto_tree_add_item ( sub_msg_element_type_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
sub_msg_element_type_flag_tree = proto_item_add_subtree ( msg_element_type_item_flag , ett_capwap_ieee80211_update_wlan_capability ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_e , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_i , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_c , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_f , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_p , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_s , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_b , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_a , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_m , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_q , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_t , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_d , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_v , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_o , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_k , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( sub_msg_element_type_flag_tree , hf_capwap_msg_element_type_ieee80211_update_wlan_capability_l , tvb , offset + 6 , 2 , ENC_BIG_ENDIAN ) ;
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 ) ;
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 ) ;
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 ) ;
key_length = tvb_get_ntohs ( tvb , offset + 10 ) ;
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 ) ;
}
break ;
2014-11-25 11:23:52 +00:00
case IEEE80211_WTP_RADIO_CONFIGURATION : /* ieee80211 WTP Radio Configuration (1046) */
if ( optlen ! = 16 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 WTP Radio Configuration length %u wrong, must be = 16 " , optlen ) ;
break ;
}
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 | ENC_NA ) ;
break ;
2013-02-21 15:31:58 +00:00
case IEEE80211_WTP_RADIO_INFORMATION : /* ieee80211 WTP Radio Information (1048) */
2014-08-25 10:54:11 +00:00
if ( optlen ! = 5 ) {
expert_add_info_format ( pinfo , ti_len , & ei_capwap_msg_element_length ,
" IEEE80211 WTP Radio Information length %u wrong, must be = 5 " , optlen ) ;
break ;
}
2013-02-21 15:31:58 +00:00
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
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 ) ;
break ;
default :
2014-08-25 10:54:11 +00:00
expert_add_info_format ( pinfo , ti_type , & ei_capwap_message_element_type ,
" Dissector for CAPWAP Message Element "
" (%s) type not implemented, Contact "
" Wireshark developers if you want this supported " ,
val_to_str ( msg_element_type , message_element_type_vals , " (%d) " ) ) ;
2013-02-21 15:31:58 +00:00
break ;
}
return 2 + 2 + optlen ;
2009-06-02 18:39:38 +00:00
}
/* Returns the number of bytes consumed by this option. */
static int
2014-08-25 10:54:11 +00:00
dissect_capwap_message_element ( tvbuff_t * tvb , proto_tree * capwap_control_tree , guint offset , packet_info * pinfo )
2009-06-02 18:39:38 +00:00
{
2013-02-21 15:31:58 +00:00
guint plen = 0 , offset_end ;
proto_item * ti ;
proto_tree * capwap_message_element_tree ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
ti = proto_tree_add_item ( capwap_control_tree , hf_capwap_message_element , tvb , offset , tvb_reported_length ( tvb ) - offset , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
capwap_message_element_tree = proto_item_add_subtree ( ti , ett_capwap_message_element ) ;
2009-06-02 21:44:00 +00:00
2013-02-21 15:31:58 +00:00
offset_end = tvb_reported_length ( tvb ) ;
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
while ( offset + plen < offset_end ) {
2014-08-25 10:54:11 +00:00
plen + = dissect_capwap_message_element_type ( tvb , capwap_message_element_tree , offset + plen , pinfo ) ;
2013-02-21 15:31:58 +00:00
}
2009-06-02 18:39:38 +00:00
2013-02-21 15:31:58 +00:00
return plen ;
2009-06-02 18:39:38 +00:00
}
2013-10-17 02:13:23 +00:00
/* Returns the number of bytes consumed by this option. */
static int
dissect_capwap_data_keep_alive ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * capwap_data_tree , guint offset )
{
guint16 len ;
guint plen = 0 , offset_end ;
proto_item * ti ;
proto_tree * capwap_data_keep_alive_tree ;
ti = proto_tree_add_item ( capwap_data_tree , hf_capwap_data_keep_alive , tvb , offset , tvb_reported_length ( tvb ) , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
capwap_data_keep_alive_tree = proto_item_add_subtree ( ti , ett_capwap_data_keep_alive ) ;
2013-10-17 02:13:23 +00:00
ti = proto_tree_add_item ( capwap_data_keep_alive_tree , hf_capwap_data_keep_alive_length , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
len = tvb_get_ntohs ( tvb , offset ) ;
if ( len ! = tvb_reported_length ( tvb ) )
expert_add_info ( pinfo , ti , & ei_capwap_data_keep_alive_length ) ;
plen + = 2 ;
offset_end = tvb_reported_length ( tvb ) ;
while ( offset + plen < offset_end ) {
2014-08-25 10:54:11 +00:00
plen + = dissect_capwap_message_element_type ( tvb , capwap_data_keep_alive_tree , offset + plen , pinfo ) ;
2013-10-17 02:13:23 +00:00
}
return plen ;
}
2009-06-02 18:39:38 +00:00
/* Returns the number of bytes consumed by this option. */
static int
2009-06-02 21:44:00 +00:00
dissect_capwap_control_header ( tvbuff_t * tvb , proto_tree * capwap_control_tree , guint offset , packet_info * pinfo )
2009-06-02 18:39:38 +00:00
{
2013-02-21 15:31:58 +00:00
guint plen = 0 ;
proto_item * ti , * ti_flag ;
proto_tree * capwap_control_header_tree ;
proto_tree * capwap_control_msg_type_tree ;
ti = proto_tree_add_item ( capwap_control_tree , hf_capwap_control_header , tvb , offset , 8 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
capwap_control_header_tree = proto_item_add_subtree ( ti , ett_capwap_control_header ) ;
2013-02-21 15:31:58 +00:00
/* Message Type 32 bits */
ti_flag = proto_tree_add_item ( capwap_control_header_tree , hf_capwap_control_header_msg_type , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
2014-08-20 08:08:15 +00:00
capwap_control_msg_type_tree = proto_item_add_subtree ( ti_flag , ett_capwap_control_header_msg ) ;
2013-02-21 15:31:58 +00:00
proto_tree_add_item ( capwap_control_msg_type_tree , hf_capwap_control_header_msg_type_enterprise_nbr , tvb , offset , 3 , ENC_BIG_ENDIAN ) ;
2014-02-12 07:32:27 +00:00
proto_tree_add_item ( capwap_control_msg_type_tree , hf_capwap_control_header_msg_type_enterprise_specific , tvb , offset , 4 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
2014-02-12 07:32:27 +00:00
col_append_fstr ( pinfo - > cinfo , COL_INFO , " - %s " , val_to_str ( tvb_get_ntohl ( tvb , offset ) , message_type , " Unknown Message Type (0x%x) " ) ) ;
2013-02-21 15:31:58 +00:00
plen + = 4 ;
/* Sequence 8 bits */
proto_tree_add_item ( capwap_control_header_tree , hf_capwap_control_header_seq_number , tvb , offset + plen , 1 , ENC_BIG_ENDIAN ) ;
plen + = 1 ;
/* Message Element Length 16 bits */
proto_tree_add_item ( capwap_control_header_tree , hf_capwap_control_header_msg_element_length , tvb , offset + plen , 2 , ENC_BIG_ENDIAN ) ;
plen + = 2 ;
/* Flags 8 bits */
proto_tree_add_item ( capwap_control_header_tree , hf_capwap_control_header_flags , tvb , offset + plen , 1 , ENC_BIG_ENDIAN ) ;
plen + = 1 ;
return plen ;
2009-06-02 18:39:38 +00:00
}
/* Returns the number of bytes consumed by this option. */
static int
2009-11-29 13:33:05 +00:00
dissect_capwap_header ( tvbuff_t * tvb , proto_tree * capwap_control_tree , guint offset , packet_info * pinfo , guint8 * payload_type , guint8 * payload_wbid , gboolean * fragment_is , gboolean * fragment_more , guint32 * fragment_id , guint32 * fragment_offset )
2009-06-02 18:39:38 +00:00
{
2013-02-21 15:31:58 +00:00
guint plen = 0 , hlen = 0 ;
proto_item * ti , * ti_flag , * ti_len ;
proto_tree * capwap_header_tree ;
proto_tree * capwap_header_flags_tree ;
guint flags = 0 ;
guint8 maclength , wirelesslength ;
guint align = 0 ;
/* RFC 5415 HLEN: A 5-bit field containing the length of the CAPWAP transport header in 4-byte words */
/* As we display the preamble separately reduce the length by 1 */
hlen = tvb_get_bits8 ( tvb , ( offset + plen ) * 8 , 5 ) * 4 - 1 ;
ti = proto_tree_add_item ( capwap_control_tree , hf_capwap_header , tvb , offset + plen , hlen , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
capwap_header_tree = proto_item_add_subtree ( ti , ett_capwap_header ) ;
2013-02-21 15:31:58 +00:00
/* Header Length : 5 Bits */
2013-02-21 15:32:07 +00:00
ti_len = proto_tree_add_item ( capwap_header_tree , hf_capwap_header_hlen , tvb , offset + plen , 1 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
proto_item_append_text ( ti_len , " (%d) " , hlen + 1 ) ;
/* Radio ID : 5 Bits */
2013-02-21 15:32:07 +00:00
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_rid , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
/* Wireless Binding ID : 5 Bits */
2013-02-21 15:32:07 +00:00
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_wbid , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
/* WBid of Payload (for CAPWAP Data Packet) */
* payload_wbid = tvb_get_bits8 ( tvb , ( offset + plen ) * 8 + 10 , 5 ) ;
/* Flags : 9 Bits */
2013-02-21 15:32:07 +00:00
flags = tvb_get_bits16 ( tvb , ( offset + plen ) * 8 + 15 , 9 , ENC_BIG_ENDIAN ) ;
ti_flag = proto_tree_add_item ( capwap_header_tree , hf_capwap_header_flags , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
2014-08-20 08:08:15 +00:00
capwap_header_flags_tree = proto_item_add_subtree ( ti_flag , ett_capwap_header_flags ) ;
2013-02-21 15:31:58 +00:00
2013-02-21 15:32:07 +00:00
proto_tree_add_item ( capwap_header_flags_tree , hf_capwap_header_flags_t , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( capwap_header_flags_tree , hf_capwap_header_flags_f , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( capwap_header_flags_tree , hf_capwap_header_flags_l , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( capwap_header_flags_tree , hf_capwap_header_flags_w , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( capwap_header_flags_tree , hf_capwap_header_flags_m , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( capwap_header_flags_tree , hf_capwap_header_flags_k , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( capwap_header_flags_tree , hf_capwap_header_flags_r , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
/* Fragment ??*/
* fragment_is = ( ( flags & 0x80 ) = = 0x80 ) ? TRUE : FALSE ;
* fragment_more = ( ( flags & 0x40 ) = = 0x40 ) ? FALSE : TRUE ;
2013-10-17 02:13:23 +00:00
/* Type of Payload (for CAPWAP Data Packet), use 0xff for Keep-Alive */
if ( flags & 0x08 /* data channel Keep-Alive packet */ ) {
col_append_str ( pinfo - > cinfo , COL_INFO , " Keep-Alive " ) ;
* payload_type = 0xff ;
} else
* payload_type = tvb_get_bits8 ( tvb , ( offset + plen ) * 8 + 15 , 1 ) ;
2013-02-21 15:31:58 +00:00
2013-02-21 15:32:07 +00:00
plen + = 3 ;
2013-02-21 15:31:58 +00:00
/* Fragment ID : 16 Bits */
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_fragment_id , tvb , offset + plen , 2 , ENC_BIG_ENDIAN ) ;
* fragment_id = ( guint32 ) tvb_get_ntohs ( tvb , offset + plen ) ;
plen + = 2 ;
/* Fragment offset : 13 Bits */
2013-02-21 15:32:07 +00:00
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_fragment_offset , tvb , offset + plen , 2 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
* fragment_offset = 8 * ( guint32 ) tvb_get_bits16 ( tvb , ( offset + plen ) * 8 , 13 , ENC_BIG_ENDIAN ) ;
/* Reserved 3 Bits */
2013-02-21 15:32:07 +00:00
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_reserved , tvb , offset + plen + 1 , 1 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:31:58 +00:00
plen + = 2 ;
/* Optionnal Headers */
if ( flags & 0x10 /* Radio MAC address */ ) {
maclength = tvb_get_guint8 ( tvb , offset + plen ) ;
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_mac_length , tvb , offset + plen , 1 , ENC_BIG_ENDIAN ) ;
plen + = 1 ;
if ( maclength = = 6 ) {
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_mac_eui48 , tvb , offset + plen , maclength , ENC_NA ) ;
} else if ( maclength = = 8 ) {
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_mac_eui64 , tvb , offset + plen , maclength , ENC_BIG_ENDIAN ) ;
} else {
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_mac_data , tvb , offset + plen , maclength , ENC_NA ) ;
}
plen + = maclength ;
/* 4 Bytes Alignment ? */
align = 4 - ( ( offset + plen ) % 4 ) ;
if ( align ! = 4 )
{
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_padding , tvb , offset + plen , align , ENC_NA ) ;
plen + = align ;
}
}
if ( flags & 0x20 /* Wireless specific information */ ) {
wirelesslength = tvb_get_guint8 ( tvb , offset + plen ) ;
/* in Draft 8, the WBid is add in Wireless Specific Information*/
if ( global_capwap_draft_8_cisco = = 1 )
{
plen + = 1 ;
wirelesslength = 4 ;
}
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_wireless_length , tvb , offset + plen , 1 , ENC_BIG_ENDIAN ) ;
plen + = 1 ;
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_wireless_data , tvb , offset + plen , wirelesslength , ENC_NA ) ;
/* Optional Wireless Specific Information for ieee80211 (wbid = 1) Section 4 of RFC5416 */
if ( * payload_wbid = = 1 )
{
dissect_capwap_data_message_bindings_ieee80211 ( tvb , capwap_header_tree , offset + plen , pinfo ) ;
}
plen + = wirelesslength ;
/* 4 Bytes Alignment ? */
align = 4 - ( ( offset + plen ) % 4 ) ;
if ( align ! = 4 )
{
proto_tree_add_item ( capwap_header_tree , hf_capwap_header_padding , tvb , offset + plen , align , ENC_NA ) ;
plen + = align ;
}
}
if ( ( plen ! = hlen ) & & global_capwap_draft_8_cisco = = 0 )
{
2013-09-09 00:44:09 +00:00
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 ) ;
2013-02-21 15:31:58 +00:00
}
return hlen ;
2009-06-02 18:39:38 +00:00
}
/* Returns the number of bytes consumed by this option. */
static int
2009-06-02 21:44:00 +00:00
dissect_capwap_preamble ( tvbuff_t * tvb , proto_tree * capwap_control_tree , guint offset , guint8 * type_header )
2009-06-02 18:39:38 +00:00
{
2013-02-21 15:31:58 +00:00
guint plen = 0 ;
proto_item * ti ;
proto_tree * capwap_preamble_tree ;
ti = proto_tree_add_item ( capwap_control_tree , hf_capwap_preamble , tvb , offset + plen , - 1 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
capwap_preamble_tree = proto_item_add_subtree ( ti , ett_capwap_preamble ) ;
2013-02-21 15:31:58 +00:00
2014-12-11 23:37:07 +00:00
proto_tree_add_item ( capwap_preamble_tree , hf_capwap_preamble_version , tvb , offset + plen , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( capwap_preamble_tree , hf_capwap_preamble_type , tvb , offset + plen , 1 , ENC_BIG_ENDIAN ) ;
2013-02-21 15:32:07 +00:00
* type_header = tvb_get_guint8 ( tvb , offset + plen ) & 0x0F ;
2013-02-21 15:31:58 +00:00
plen + + ;
/* DTLS Header ? */
if ( * type_header = = 1 ) {
proto_tree_add_item ( capwap_preamble_tree , hf_capwap_preamble_reserved , tvb , offset + plen , 3 , ENC_BIG_ENDIAN ) ;
plen + = 3 ;
}
proto_item_set_len ( ti , plen ) ;
return plen ;
2009-06-02 18:39:38 +00:00
}
/* Code to actually dissect the packets */
2011-10-28 17:39:31 +00:00
static int
2012-09-10 21:40:21 +00:00
dissect_capwap_control ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree , void * data _U_ )
2009-06-02 18:39:38 +00:00
{
2013-02-21 15:31:58 +00:00
proto_item * ti ;
proto_tree * capwap_control_tree ;
guint offset = 0 ;
tvbuff_t * next_tvb = NULL ;
guint8 type_header ;
guint8 payload_type ;
guint8 payload_wbid ;
gboolean fragment_is ;
gboolean fragment_more ;
guint32 fragment_id ;
guint32 fragment_offset ;
2013-07-17 21:12:24 +00:00
fragment_head * frag_msg = NULL ;
2013-02-21 15:31:58 +00:00
gboolean save_fragmented ;
2014-08-20 07:46:47 +00:00
col_set_str ( pinfo - > cinfo , COL_PROTOCOL , " CAPWAP-Control " ) ;
2013-02-21 15:31:58 +00:00
col_set_str ( pinfo - > cinfo , COL_INFO , " CAPWAP-Control " ) ;
2014-08-20 07:46:47 +00:00
ti = proto_tree_add_item ( tree , proto_capwap_control , tvb , 0 , - 1 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
capwap_control_tree = proto_item_add_subtree ( ti , ett_capwap_control ) ;
2013-02-21 15:31:58 +00:00
/* CAPWAP Preamble */
offset + = dissect_capwap_preamble ( tvb , capwap_control_tree , offset , & type_header ) ;
if ( type_header = = 1 ) {
next_tvb = tvb_new_subset_remaining ( tvb , offset ) ;
call_dissector ( dtls_handle , next_tvb , pinfo , tree ) ;
return offset ;
}
/* CAPWAP Header */
offset + = dissect_capwap_header ( tvb , capwap_control_tree , offset , pinfo , & payload_type , & payload_wbid , & fragment_is , & fragment_more , & fragment_id , & fragment_offset ) ;
/* CAPWAP Reassemble */
save_fragmented = pinfo - > fragmented ;
if ( global_capwap_reassemble & & fragment_is )
{
2014-06-10 06:58:39 +00:00
const int len_rem = tvb_reported_length_remaining ( tvb , offset ) ;
2013-02-21 15:31:58 +00:00
if ( len_rem < = 0 )
return offset ;
pinfo - > fragmented = TRUE ;
2013-03-22 23:59:54 +00:00
frag_msg = fragment_add_check ( & capwap_reassembly_table ,
tvb , offset , pinfo , fragment_id , NULL ,
2013-02-21 15:31:58 +00:00
fragment_offset ,
len_rem ,
fragment_more ) ;
next_tvb = process_reassembled_data ( tvb , offset , pinfo ,
" Reassembled CAPWAP " , frag_msg ,
& capwap_frag_items , NULL , tree ) ;
if ( next_tvb = = NULL )
{ /* make a new subset */
next_tvb = tvb_new_subset_remaining ( tvb , offset ) ;
call_dissector ( data_handle , next_tvb , pinfo , tree ) ;
col_append_fstr ( pinfo - > cinfo , COL_INFO , " (Fragment ID: %u, Fragment Offset: %u) " , fragment_id , fragment_offset ) ;
}
else
{
/* CAPWAP Control Header */
offset = dissect_capwap_control_header ( next_tvb , capwap_control_tree , 0 , pinfo ) ;
/* CAPWAP Message Element */
2014-08-25 10:54:11 +00:00
offset + = dissect_capwap_message_element ( next_tvb , capwap_control_tree , offset , pinfo ) ;
2013-02-21 15:31:58 +00:00
col_append_fstr ( pinfo - > cinfo , COL_INFO , " (Reassembled, Fragment ID: %u) " , fragment_id ) ;
}
}
else
{
/* CAPWAP Control Header */
offset + = dissect_capwap_control_header ( tvb , capwap_control_tree , offset , pinfo ) ;
/* CAPWAP Message Element */
2014-08-25 10:54:11 +00:00
offset + = dissect_capwap_message_element ( tvb , capwap_control_tree , offset , pinfo ) ;
2013-02-21 15:31:58 +00:00
}
pinfo - > fragmented = save_fragmented ;
return offset ;
2009-06-02 18:39:38 +00:00
}
static void
dissect_capwap_data ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree )
{
2013-02-21 15:31:58 +00:00
proto_item * ti ;
proto_tree * capwap_data_tree ;
guint offset = 0 ;
tvbuff_t * next_tvb ;
guint8 type_header ;
guint8 payload_type ;
guint8 payload_wbid ;
gboolean fragment_is ;
gboolean fragment_more ;
guint32 fragment_id ;
guint32 fragment_offset ;
2013-07-17 21:12:24 +00:00
fragment_head * frag_msg = NULL ;
2013-02-21 15:31:58 +00:00
gboolean save_fragmented ;
2014-08-11 21:55:30 +00:00
2014-08-20 07:46:47 +00:00
col_set_str ( pinfo - > cinfo , COL_PROTOCOL , " CAPWAP-Data " ) ;
2013-02-21 15:31:58 +00:00
col_set_str ( pinfo - > cinfo , COL_INFO , " CAPWAP-Data " ) ;
2014-08-20 07:46:47 +00:00
ti = proto_tree_add_item ( tree , proto_capwap_data , tvb , 0 , - 1 , ENC_NA ) ;
2014-08-20 08:08:15 +00:00
capwap_data_tree = proto_item_add_subtree ( ti , ett_capwap_data ) ;
2013-02-21 15:31:58 +00:00
/* CAPWAP Preamble */
offset + = dissect_capwap_preamble ( tvb , capwap_data_tree , offset , & type_header ) ;
if ( type_header = = 1 ) {
next_tvb = tvb_new_subset_remaining ( tvb , offset ) ;
call_dissector ( dtls_handle , next_tvb , pinfo , tree ) ;
return ;
}
/* CAPWAP Header */
offset + = dissect_capwap_header ( tvb , capwap_data_tree , offset , pinfo , & payload_type , & payload_wbid , & fragment_is , & fragment_more , & fragment_id , & fragment_offset ) ;
/* CAPWAP Reassemble */
save_fragmented = pinfo - > fragmented ;
if ( global_capwap_reassemble & & fragment_is )
{
2014-06-10 06:58:39 +00:00
gint len_rem = tvb_reported_length_remaining ( tvb , offset ) ;
2013-02-21 15:31:58 +00:00
if ( len_rem < = 0 )
return ;
pinfo - > fragmented = TRUE ;
2013-03-22 23:59:54 +00:00
frag_msg = fragment_add_check ( & capwap_reassembly_table ,
tvb , offset , pinfo , fragment_id , NULL ,
2013-02-21 15:31:58 +00:00
fragment_offset ,
len_rem ,
fragment_more ) ;
next_tvb = process_reassembled_data ( tvb , offset , pinfo ,
" Reassembled CAPWAP " , frag_msg ,
& capwap_frag_items , NULL , tree ) ;
if ( next_tvb = = NULL )
{ /* make a new subset */
next_tvb = tvb_new_subset_remaining ( tvb , offset ) ;
call_dissector ( data_handle , next_tvb , pinfo , tree ) ;
col_append_fstr ( pinfo - > cinfo , COL_INFO , " (Fragment ID: %u, Fragment Offset: %u) " , fragment_id , fragment_offset ) ;
}
else
{
col_append_fstr ( pinfo - > cinfo , COL_INFO , " (Reassembled, Fragment ID: %u) " , fragment_id ) ;
}
}
else
{
next_tvb = tvb_new_subset_remaining ( tvb , offset ) ;
}
/* CAPWAP Data Payload */
if ( payload_type = = 0 ) {
/* IEEE 802.3 Frame */
call_dissector ( ieee8023_handle , next_tvb , pinfo , tree ) ;
2013-10-17 02:13:23 +00:00
}
else if ( payload_type = = 0xff ) {
/* CAPWAP Keep-Alive Payload */
2013-10-26 17:17:38 +00:00
dissect_capwap_data_keep_alive ( next_tvb , pinfo , capwap_data_tree , 0 ) ;
2013-10-17 02:13:23 +00:00
}
else
{
2013-02-21 15:31:58 +00:00
switch ( payload_wbid ) {
case 0 : /* Reserved - Cisco seems to use this instead of 1 */
/* It seems that just calling ieee80211_handle is not
* quite enough to get this right , so call data_handle
* for now :
*/
call_dissector ( data_handle , next_tvb , pinfo , tree ) ;
break ;
case 1 : /* IEEE 802.11 */
call_dissector ( global_capwap_swap_frame_control ? ieee80211_bsfc_handle : ieee80211_handle , next_tvb , pinfo , tree ) ;
break ;
default : /* Unknown Data */
call_dissector ( data_handle , next_tvb , pinfo , tree ) ;
break ;
}
}
pinfo - > fragmented = save_fragmented ;
2013-10-17 02:13:23 +00:00
}
2009-06-02 21:44:00 +00:00
2009-06-02 18:39:38 +00:00
void
proto_register_capwap_control ( void )
{
2013-02-21 15:31:58 +00:00
module_t * capwap_module ;
static hf_register_info hf [ ] = {
/* Preamble */
{ & hf_capwap_preamble ,
2014-08-11 21:55:30 +00:00
{ " Preamble " , " capwap.preamble " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_preamble_version ,
2014-08-11 21:55:30 +00:00
{ " Version " , " capwap.preamble.version " ,
FT_UINT8 , BASE_DEC , NULL , 0xF0 ,
" Version of CAPWAP " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_preamble_type ,
2014-08-11 21:55:30 +00:00
{ " Type " , " capwap.preamble.type " ,
FT_UINT8 , BASE_DEC , VALS ( type_header_vals ) , 0x0F ,
" Type of Payload " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_preamble_reserved ,
2014-08-11 21:55:30 +00:00
{ " Reserved " , " capwap.preamble.reserved " ,
FT_UINT24 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
/* CAPWAP Header */
{ & hf_capwap_header ,
2014-08-11 21:55:30 +00:00
{ " Header " , " capwap.header " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_hlen ,
2014-08-11 21:55:30 +00:00
{ " Header Length " , " capwap.header.length " ,
FT_UINT24 , BASE_DEC , NULL , 0xF80000 ,
" Length of the CAPWAP transport header in 4-byte words (similar to IP header length) " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_rid ,
2014-08-11 21:55:30 +00:00
{ " Radio ID " , " capwap.header.rid " ,
FT_UINT24 , BASE_DEC , NULL , 0x07C000 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wbid ,
2014-08-11 21:55:30 +00:00
{ " Wireless Binding ID " , " capwap.header.wbid " ,
FT_UINT24 , BASE_DEC , VALS ( type_wbid ) , 0x003E00 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags ,
2014-08-11 21:55:30 +00:00
{ " Header Flags " , " capwap.header.flags " ,
FT_UINT24 , BASE_HEX , NULL , 0x0001FF ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags_t ,
2014-08-11 21:55:30 +00:00
{ " Payload Type " , " capwap.header.flags.t " ,
FT_BOOLEAN , 24 , TFS ( & flag_type_t ) , 0x0000100 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags_f ,
2014-08-11 21:55:30 +00:00
{ " Fragment " , " capwap.header.flags.f " ,
FT_BOOLEAN , 24 , TFS ( & flag_type_f ) , 0x000080 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags_l ,
2014-08-11 21:55:30 +00:00
{ " Last Fragment " , " capwap.header.flags.l " ,
FT_BOOLEAN , 24 , TFS ( & flag_type_l ) , 0x000040 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags_w ,
{ " Wireless header " , " capwap.header.flags.w " ,
2013-02-21 15:32:07 +00:00
FT_BOOLEAN , 24 , TFS ( & flag_type_w ) , 0x000020 ,
2014-08-11 21:55:30 +00:00
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags_m ,
2014-08-11 21:55:30 +00:00
{ " Radio MAC header " , " capwap.header.flags.m " ,
FT_BOOLEAN , 24 , TFS ( & flag_type_m ) , 0x000010 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags_k ,
2014-08-11 21:55:30 +00:00
{ " Keep-Alive " , " capwap.header.flags.k " ,
FT_BOOLEAN , 24 , TFS ( & flag_type_k ) , 0x000008 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_flags_r ,
2014-08-11 21:55:30 +00:00
{ " Reserved " , " capwap.header.flags.r " ,
FT_UINT24 , BASE_HEX , 0x0 , 0x000007 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_fragment_id ,
2014-08-11 21:55:30 +00:00
{ " Fragment ID " , " capwap.header.fragment.id " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_fragment_offset ,
2014-08-11 21:55:30 +00:00
{ " Fragment Offset " , " capwap.header.fragment.offset " ,
FT_UINT16 , BASE_DEC , NULL , 0xFFF8 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_reserved ,
2014-08-11 21:55:30 +00:00
{ " Reserved " , " capwap.header.fragment.reserved " ,
FT_UINT16 , BASE_DEC , NULL , 0x0007 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_mac_length ,
2014-08-11 21:55:30 +00:00
{ " MAC length " , " capwap.header.mac.length " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_mac_eui48 ,
2014-08-11 21:55:30 +00:00
{ " MAC address " , " capwap.header.mac.eui48 " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_mac_eui64 ,
2014-08-11 21:55:30 +00:00
{ " MAC address " , " capwap.header.mac.eui64 " ,
FT_EUI64 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_mac_data ,
2014-08-11 21:55:30 +00:00
{ " MAC address " , " capwap.header.mac.data " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_length ,
2014-08-11 21:55:30 +00:00
{ " Wireless length " , " capwap.header.wireless.length " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data ,
2014-08-11 21:55:30 +00:00
{ " Wireless data " , " capwap.header.wireless.data " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data_ieee80211_fi ,
2014-08-11 21:55:30 +00:00
{ " Wireless data ieee80211 Frame Info " , " capwap.header.wireless.data.ieee80211.fi " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data_ieee80211_fi_rssi ,
2014-08-11 21:55:30 +00:00
{ " Wireless data ieee80211 RSSI (dBm) " , " capwap.header.wireless.data.ieee80211.fi.rssi " ,
FT_INT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data_ieee80211_fi_snr ,
2014-08-11 21:55:30 +00:00
{ " Wireless data ieee80211 SNR (dB) " , " capwap.header.wireless.data.ieee80211.fi.snr " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data_ieee80211_fi_data_rate ,
2014-08-11 21:55:30 +00:00
{ " Wireless data ieee80211 Data Rate (Mbps) " , " capwap.header.wireless.data.ieee80211.fi.data_rate " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data_ieee80211_dest_wlan ,
2014-08-11 21:55:30 +00:00
{ " Wireless data ieee80211 Destination WLANs " , " capwap.header.wireless.data.ieee80211.dw " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data_ieee80211_dw_wlan_id_bitmap ,
2014-08-11 21:55:30 +00:00
{ " Wireless data ieee80211 Destination Wlan Id bitmap " ,
" capwap.header.wireless.data.ieee80211.dw.wlan_id_bitmap " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_wireless_data_ieee80211_dw_reserved ,
2014-08-11 21:55:30 +00:00
{ " Wireless data ieee80211 Destination Wlan reserved " , " capwap.header.wireless.data.ieee80211.dw.reserved " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_header_padding ,
2014-08-11 21:55:30 +00:00
{ " Padding for 4 Byte Alignement " , " capwap.header.padding " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
/* CAPWAP Control Header Message */
{ & hf_capwap_control_header ,
2014-08-11 21:55:30 +00:00
{ " Control Header " , " capwap.control.header " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_control_header_msg_type ,
2014-08-11 21:55:30 +00:00
{ " Message Type " , " capwap.control.header.message_type " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_control_header_msg_type_enterprise_nbr ,
2014-08-11 21:55:30 +00:00
{ " Message Type (Enterprise Number) " , " capwap.control.header.message_type.enterprise_number " ,
FT_UINT32 , BASE_DEC | BASE_EXT_STRING , & sminmpec_values_ext , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_control_header_msg_type_enterprise_specific ,
2014-08-11 21:55:30 +00:00
{ " Message Type (Enterprise Specific) " , " capwap.control.header.message_type.enterprise_specific " ,
FT_UINT32 , BASE_DEC , VALS ( message_type ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_control_header_seq_number ,
2014-08-11 21:55:30 +00:00
{ " Sequence Number " , " capwap.control.header.sequence_number " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_control_header_msg_element_length ,
2014-08-11 21:55:30 +00:00
{ " Message Element Length " , " capwap.control.header.message_element_length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_control_header_flags ,
2014-08-11 21:55:30 +00:00
{ " Flags " , " capwap.control.header.flags " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
/* CAPWAP Protocol Message Elements */
{ & hf_capwap_message_element ,
2014-08-11 21:55:30 +00:00
{ " Message Element " , " capwap.message_element " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:32:07 +00:00
{ & hf_capwap_msg_element ,
2014-08-11 21:55:30 +00:00
{ " Type " , " capwap.message_element " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:32:07 +00:00
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type ,
2014-08-11 21:55:30 +00:00
{ " Type " , " capwap.message_element.type " ,
FT_UINT16 , BASE_DEC , VALS ( message_element_type_vals ) , 0x0 ,
" CAPWAP Message Element type " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_length ,
2014-08-11 21:55:30 +00:00
{ " Length " , " capwap.message_element.length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" CAPWAP Message Element length " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_value ,
2014-08-11 21:55:30 +00:00
{ " Value " , " capwap.message_element.value " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
" CAPWAP Message Element value " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
/* CAPWAP Protocol Message Element Type */
/* AC Descriptor */
{ & hf_capwap_msg_element_type_ac_descriptor_stations ,
2014-08-11 21:55:30 +00:00
{ " Stations " , " capwap.control.message_element.ac_descriptor.stations " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_limit ,
2014-08-11 21:55:30 +00:00
{ " Limit Stations " , " capwap.control.message_element.ac_descriptor.limit " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_active_wtp ,
2014-08-11 21:55:30 +00:00
{ " Active WTPs " , " capwap.control.message_element.ac_descriptor.active_wtp " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_max_wtp ,
2014-08-11 21:55:30 +00:00
{ " Max WTPs " , " capwap.control.message_element.ac_descriptor.max_wtp " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
/* AC Descriptor Security Flags... */
{ & hf_capwap_msg_element_type_ac_descriptor_security ,
2014-08-11 21:55:30 +00:00
{ " Security Flags " , " capwap.control.message_element.ac_descriptor.security " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_security_s ,
2014-08-11 21:55:30 +00:00
{ " AC supports the pre-shared " , " capwap.control.message_element.ac_descriptor.security.s " ,
FT_BOOLEAN , 8 , TFS ( & tfs_true_false ) , 0x04 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_security_x ,
2014-08-11 21:55:30 +00:00
{ " AC supports X.509 Certificate " , " capwap.control.message_element.ac_descriptor.security.x " ,
FT_BOOLEAN , 8 , TFS ( & tfs_true_false ) , 0x02 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_security_r ,
2014-08-11 21:55:30 +00:00
{ " Reserved " , " capwap.control.message_element.ac_descriptor.security.r " ,
FT_BOOLEAN , 8 , TFS ( & tfs_set_notset ) , 0xF9 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_rmac_field ,
2014-08-11 21:55:30 +00:00
{ " R-MAC Field " , " capwap.control.message_element.ac_descriptor.rmac_field " ,
FT_UINT8 , BASE_DEC , VALS ( rmac_field_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_reserved ,
2014-08-11 21:55:30 +00:00
{ " Reserved " , " capwap.control.message_element.ac_descriptor.reserved " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
/* AC Descriptor DTLS Policy Flags... */
{ & hf_capwap_msg_element_type_ac_descriptor_dtls_policy ,
2014-08-11 21:55:30 +00:00
{ " DTLS Policy Flags " , " capwap.control.message_element.ac_descriptor.dtls_policy " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_dtls_policy_d ,
2014-08-11 21:55:30 +00:00
{ " DTLS-Enabled Data Channel Supported " , " capwap.control.message_element.ac_descriptor.dtls_policy.d " ,
FT_BOOLEAN , 8 , TFS ( & tfs_true_false ) , 0x04 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_dtls_policy_c ,
2014-08-11 21:55:30 +00:00
{ " Clear Text Data Channel Supported " , " capwap.control.message_element.ac_descriptor.dtls_policy.c " ,
FT_BOOLEAN , 8 , TFS ( & tfs_true_false ) , 0x02 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_descriptor_dtls_policy_r ,
2014-08-11 21:55:30 +00:00
{ " Reserved " , " capwap.control.message_element.ac_descriptor.dtls_policy.r " ,
FT_UINT8 , BASE_HEX , 0x0 , 0xF9 ,
" Must be zero " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
2013-02-21 15:32:07 +00:00
{ & hf_capwap_msg_element_type_ac_information ,
2014-08-11 21:55:30 +00:00
{ " AC Information " , " capwap.control.message_element.ac_information " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:32:07 +00:00
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_information_vendor ,
2014-08-11 21:55:30 +00:00
{ " AC Information Vendor " , " capwap.control.message_element.ac_information.vendor " ,
FT_UINT32 , BASE_DEC | BASE_EXT_STRING , & sminmpec_values_ext , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_information_type ,
2014-08-11 21:55:30 +00:00
{ " AC Information Type " , " capwap.control.message_element.ac_information.type " ,
FT_UINT16 , BASE_DEC , VALS ( ac_information_type_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_information_length ,
2014-08-11 21:55:30 +00:00
{ " AC Information Length " , " capwap.control.message_element.ac_information.length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_information_value ,
2014-08-11 21:55:30 +00:00
{ " AC Information Value " , " capwap.control.message_element.ac_information.value " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_information_hardware_version ,
2014-08-11 21:55:30 +00:00
{ " AC Hardware Version " , " capwap.control.message_element.ac_information.hardware_version " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_information_software_version ,
2014-08-11 21:55:30 +00:00
{ " AC Software Version " , " capwap.control.message_element.ac_information.software_version " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_ipv4_list ,
2014-08-11 21:55:30 +00:00
{ " AC IPv4 List " , " capwap.control.message_element.message_element.ac_ipv4_list " ,
FT_IPv4 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_ipv6_list ,
2014-08-11 21:55:30 +00:00
{ " AC IPv6 List " , " capwap.control.message_element.message_element.ac_ipv6_list " ,
FT_IPv6 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
/* CAPWAP Control IPvX Address*/
{ & hf_capwap_msg_element_type_capwap_control_ipv4 ,
2014-08-11 21:55:30 +00:00
{ " CAPWAP Control IP Address " , " capwap.control.message_element.message_element.capwap_control_ipv4 " ,
FT_IPv4 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_capwap_control_ipv6 ,
2014-08-11 21:55:30 +00:00
{ " CAPWAP Control IP Address " , " capwap.control.message_element.message_element.capwap_control_ipv6 " ,
FT_IPv6 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_capwap_control_wtp_count ,
2014-08-11 21:55:30 +00:00
{ " CAPWAP Control WTP Count " , " capwap.control.message_element.capwap_control_wtp_count " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_capwap_timers_discovery ,
2014-08-11 21:55:30 +00:00
{ " CAPWAP Timers Discovery (Sec) " , " capwap.control.message_element.capwap_timers_discovery " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_capwap_timers_echo_request ,
2014-08-11 21:55:30 +00:00
{ " CAPWAP Timers Echo Request (Sec) " , " capwap.control.message_element.capwap_timers_echo_request " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_decryption_error_report_period_radio_id ,
2014-08-11 21:55:30 +00:00
{ " Decryption Error Report Period Radio ID " , " capwap.control.message_element.decryption_error_report_period.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_decryption_error_report_period_interval ,
2014-08-11 21:55:30 +00:00
{ " Decryption Error Report Report Interval (Sec) " , " capwap.control.message_element.decryption_error_report_period.interval " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2015-01-12 16:13:28 +00:00
{ & hf_capwap_msg_element_type_delete_station_radio_id ,
{ " Radio ID " , " capwap.control.message_element.delete_station.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
" Representing the radio, whose value is between one (1) and 31 " , HFILL }
} ,
{ & hf_capwap_msg_element_type_delete_station_length ,
{ " Mac Length " , " capwap.control.message_element.delete_station.length " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
" The length of the MAC Address field " , HFILL }
} ,
{ & hf_capwap_msg_element_type_delete_station_mac_eui48 ,
{ " MAC address " , " capwap.control.message_element.delete_station.mac.eui48 " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_delete_station_mac_eui64 ,
{ " MAC address " , " capwap.control.message_element.delete_station.mac.eui64 " ,
FT_EUI64 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_delete_station_mac_data ,
{ " MAC address " , " capwap.control.message_element.delete_station.mac.data " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_name ,
2014-08-11 21:55:30 +00:00
{ " AC Name " , " capwap.control.message_element.ac_name " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ac_name_with_priority ,
2014-08-11 21:55:30 +00:00
{ " AC Name Priority " , " capwap.control.message_element.ac_name_with_priority " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
2014-09-04 13:14:59 +00:00
{ & hf_capwap_msg_element_type_ac_timestamp ,
{ " AC Timestamp " , " capwap.control.message_element.ac_timestamp " ,
FT_ABSOLUTE_TIME , ABSOLUTE_TIME_LOCAL , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_add_station_radio_id ,
{ " Radio ID " , " capwap.control.message_element.add_station.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
" Representing the radio, whose value is between one (1) and 31 " , HFILL }
} ,
{ & hf_capwap_msg_element_type_add_station_length ,
{ " Mac Length " , " capwap.control.message_element.add_station.length " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
" The length of the MAC Address field " , HFILL }
} ,
{ & hf_capwap_msg_element_type_add_station_mac_eui48 ,
{ " MAC address " , " capwap.control.message_element.add_station.mac.eui48 " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_add_station_mac_eui64 ,
{ " MAC address " , " capwap.control.message_element.add_station.mac.eui64 " ,
FT_EUI64 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_add_station_mac_data ,
{ " MAC address " , " capwap.control.message_element.add_station.mac.data " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_add_station_vlan_name ,
{ " Vlan Name " , " capwap.control.message_element.add_station.vlan_name " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
" Containing the VLAN Name on which the WTP is to locally bridge user data " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_discovery_type ,
2014-08-11 21:55:30 +00:00
{ " Discovery Type " , " capwap.control.message_element.discovery_type " ,
FT_UINT8 , BASE_DEC , VALS ( discovery_type_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_idle_timeout ,
2014-08-11 21:55:30 +00:00
{ " Idle Timeout (Sec) " , " capwap.control.message_element.idle_timeout " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_location_data ,
2014-08-11 21:55:30 +00:00
{ " Location Data " , " capwap.control.message_element.location_data " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_maximum_message_length ,
2014-08-11 21:55:30 +00:00
{ " Maximum Message Length " , " capwap.control.message_element.maximum_message_length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
2014-09-04 13:14:59 +00:00
{ & hf_capwap_msg_element_type_capwap_local_ipv4_address ,
{ " CAPWAP Local IPv4 Address " , " capwap.control.message_element.capwap_local_ipv4_address " ,
FT_IPv4 , BASE_NONE , NULL , 0x0 ,
" The IP address of the sender " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_radio_admin_id ,
2014-08-11 21:55:30 +00:00
{ " Radio Administrative ID " , " capwap.control.message_element.radio_admin.id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_radio_admin_state ,
2014-08-11 21:55:30 +00:00
{ " Radio Administrative State " , " capwap.control.message_element.radio_admin.state " ,
FT_UINT8 , BASE_DEC , VALS ( radio_admin_state_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_radio_op_state_radio_id ,
2014-08-11 21:55:30 +00:00
{ " Radio Operational ID " , " capwap.control.message_element.radio_op_state.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_radio_op_state_radio_state ,
2014-08-11 21:55:30 +00:00
{ " Radio Operational State " , " capwap.control.message_element.radio_op_state.radio_state " ,
FT_UINT8 , BASE_DEC , VALS ( radio_op_state_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_radio_op_state_radio_cause ,
2014-08-11 21:55:30 +00:00
{ " Radio Operational Cause " , " capwap.control.message_element.radio_op_state.radio_cause " ,
FT_UINT8 , BASE_DEC , VALS ( radio_op_cause_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_result_code ,
2014-08-11 21:55:30 +00:00
{ " Result Code " , " capwap.control.message_element.result_code " ,
FT_UINT32 , BASE_DEC , VALS ( result_code_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_session_id ,
2014-08-11 21:55:30 +00:00
{ " Session ID " , " capwap.control.message_element.session_id " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_statistics_timer ,
2014-08-11 21:55:30 +00:00
{ " Statistics Timer (Sec) " , " capwap.control.message_element.statistics_timer " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_vsp_vendor_identifier ,
2014-08-11 21:55:30 +00:00
{ " Vendor Identifier " , " capwap.control.message_element.vsp.vendor_identifier " ,
FT_UINT32 , BASE_DEC | BASE_EXT_STRING , & sminmpec_values_ext , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_vsp_vendor_element_id ,
2014-08-11 21:55:30 +00:00
{ " Vendor Element ID " , " capwap.control.message_element.vsp.vendor_element_id " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_vsp_vendor_data ,
2014-08-11 21:55:30 +00:00
{ " Vendor Data " , " capwap.control.message_element.vsp.vendor_data " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
2013-02-21 15:32:07 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data ,
2014-08-11 21:55:30 +00:00
{ " WTP Board Data " , " capwap.control.message_element.wtp_board_data " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_vendor ,
2014-08-11 21:55:30 +00:00
{ " WTP Board Data Vendor " , " capwap.control.message_element.wtp_board_data.vendor " ,
FT_UINT32 , BASE_DEC | BASE_EXT_STRING , & sminmpec_values_ext , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_type ,
2014-08-11 21:55:30 +00:00
{ " Board Data Type " , " capwap.control.message_element.wtp_board_data.type " ,
FT_UINT16 , BASE_DEC , VALS ( board_data_type_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_length ,
2014-08-11 21:55:30 +00:00
{ " Board Data Length " , " capwap.control.message_element.wtp_board_data.length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_value ,
2014-08-11 21:55:30 +00:00
{ " Board Data Value " , " capwap.control.message_element.wtp_board_data.value " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_wtp_model_number ,
2014-08-11 21:55:30 +00:00
{ " WTP Model Number " , " capwap.control.message_element.wtp_board_data.wtp_model_number " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_wtp_serial_number ,
2014-08-11 21:55:30 +00:00
{ " WTP Serial Number " , " capwap.control.message_element.wtp_board_data.wtp_serial_number " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_wtp_board_id ,
2014-08-11 21:55:30 +00:00
{ " WTP Board ID " , " capwap.control.message_element.wtp_board_data.wtp_board_id " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_wtp_board_revision ,
2014-08-11 21:55:30 +00:00
{ " WTP Board Revision " , " capwap.control.message_element.wtp_board_data.wtp_board_revision " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_board_data_base_mac_address ,
2014-08-11 21:55:30 +00:00
{ " Base Mac Address " , " capwap.control.message_element.wtp_board_data.base_mac_address " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_max_radios ,
2014-08-11 21:55:30 +00:00
{ " Max Radios " , " capwap.control.message_element.wtp_descriptor.max_radios " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_radio_in_use ,
2014-08-11 21:55:30 +00:00
{ " Radio in use " , " capwap.control.message_element.wtp_descriptor.radio_in_use " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_number_encrypt ,
2014-08-11 21:55:30 +00:00
{ " Encryption Capabilities (Number) " , " capwap.control.message_element.wtp_descriptor.number_encrypt " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:32:07 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_encrypt ,
2014-08-11 21:55:30 +00:00
{ " Encryption Capabilities " , " capwap.control.message_element.wtp_descriptor.encrypt " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_encrypt_reserved ,
2014-08-11 21:55:30 +00:00
{ " Reserved (Encrypt) " , " capwap.control.message_element.wtp_descriptor.encrypt_reserved " ,
FT_UINT8 , BASE_DEC , NULL , 0xE0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_encrypt_wbid ,
2014-08-11 21:55:30 +00:00
{ " Encrypt WBID " , " capwap.control.message_element.wtp_descriptor.encrypt_wbid " ,
FT_UINT8 , BASE_DEC , VALS ( type_wbid ) , 0x1F ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_encrypt_capabilities ,
2014-08-11 21:55:30 +00:00
{ " Encryption Capabilities " , " capwap.control.message_element.wtp_descriptor.encrypt_capabilities " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:32:07 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor ,
2014-08-11 21:55:30 +00:00
{ " WTP Descriptor " , " capwap.control.message_element.wtp_descriptor " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_vendor ,
2014-08-11 21:55:30 +00:00
{ " WTP Descriptor Vendor " , " capwap.control.message_element.wtp_descriptor.vendor " ,
FT_UINT32 , BASE_DEC | BASE_EXT_STRING , & sminmpec_values_ext , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_type ,
2014-08-11 21:55:30 +00:00
{ " Descriptor Type " , " capwap.control.message_element.wtp_descriptor.type " ,
FT_UINT16 , BASE_DEC , VALS ( wtp_descriptor_type_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_length ,
2014-08-11 21:55:30 +00:00
{ " Descriptor Length " , " capwap.control.message_element.wtp_descriptor.length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_value ,
2014-08-11 21:55:30 +00:00
{ " Descriptor Value " , " capwap.control.message_element.wtp_descriptor.value " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_hardware_version ,
2014-08-11 21:55:30 +00:00
{ " WTP Hardware Version " , " capwap.control.message_element.wtp_descriptor.hardware_version " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_active_software_version ,
2014-08-11 21:55:30 +00:00
{ " WTP Active Software Version " , " capwap.control.message_element.wtp_descriptor.active_software_version " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_boot_version ,
2014-08-11 21:55:30 +00:00
{ " WTP Boot Version " , " capwap.control.message_element.wtp_descriptor.boot_version " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_descriptor_other_software_version ,
2014-08-11 21:55:30 +00:00
{ " WTP Other Software Version " , " capwap.control.message_element.wtp_descriptor.other_software_version " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_fallback ,
2014-08-11 21:55:30 +00:00
{ " WTP Fallback " , " capwap.control.message_element.wtp_fallback " ,
FT_UINT8 , BASE_DEC , VALS ( wtp_fallback_vals ) , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_frame_tunnel_mode ,
2014-08-11 21:55:30 +00:00
{ " WTP Frame Tunnel Mode " , " capwap.control.message_element.wtp_frame_tunnel_mode " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_frame_tunnel_mode_n ,
2014-08-11 21:55:30 +00:00
{ " Native Frame Tunnel Mode " , " capwap.control.message_element.wtp_frame_tunnel_mode.n " ,
FT_BOOLEAN , 8 , TFS ( & tfs_true_false ) , 0x08 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_frame_tunnel_mode_e ,
2014-08-11 21:55:30 +00:00
{ " 802.3 Frame Tunnel Mode " , " capwap.control.message_element.wtp_frame_tunnel_mode.e " ,
FT_BOOLEAN , 8 , TFS ( & tfs_true_false ) , 0x04 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_frame_tunnel_mode_l ,
2014-08-11 21:55:30 +00:00
{ " Local Bridging " , " capwap.control.message_element.wtp_frame_tunnel_mode.l " ,
FT_BOOLEAN , 8 , TFS ( & tfs_true_false ) , 0x02 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_frame_tunnel_mode_r ,
2014-08-11 21:55:30 +00:00
{ " Reserved " , " capwap.control.message_element.wtp_frame_tunnel_mode.r " ,
FT_UINT8 , BASE_HEX , 0x0 , 0xF1 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_mac_type ,
{ " WTP MAC Type " , " capwap.control.message_element.wtp_mac_type " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , VALS ( wtp_mac_vals ) , 0x0 ,
" The MAC mode of operation supported by the WTP " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_name ,
{ " WTP Name " , " capwap.control.message_element.wtp_name " ,
2014-08-11 21:55:30 +00:00
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_reboot_count ,
{ " Reboot Count " , " capwap.control.message_element.wtp_reboot_statistics.reboot_count " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" The number of reboots that have occurred due to a WTP crash " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_ac_initiated_count ,
{ " AC Initiated Count " , " capwap.control.message_element.wtp_reboot_statistics.ac_initiated_count " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" The number of reboots that have occurred at the request of a CAPWAP protocol message " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_link_failure_count ,
{ " Link Failure Count " , " capwap.control.message_element.wtp_reboot_statistics.link_failure_count " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" The number of times that a CAPWAP protocol connection with an AC has failed due to link failure " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_sw_failure_count ,
{ " SW Failure Count " , " capwap.control.message_element.wtp_reboot_statistics.sw_failure_count " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" The number of times that a CAPWAP protocol connection with an AC has failed due to software-related reasons " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_hw_failure_count ,
{ " HW Failure Count " , " capwap.control.message_element.wtp_reboot_statistics.hw_failure_count " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" The number of times that a CAPWAP protocol connection with an AC has failed due to hardware-related reasons " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_other_failure_count ,
{ " Other Failure Count " , " capwap.control.message_element.wtp_reboot_statistics.other_failure_count " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" 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 }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_unknown_failure_count ,
{ " Unknown Failure Count " , " capwap.control.message_element.wtp_reboot_statistics.unknown_failure_count " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" The number of times that a CAPWAP protocol connection with an AC has failed for unknown reasons " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_wtp_reboot_statistics_last_failure_type ,
{ " Last Failure Type " , " capwap.control.message_element.wtp_reboot_statistics.last_failure_type " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , VALS ( last_failure_type_vals ) , 0x0 ,
" The failure type of the most recent WTP failure " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
2014-09-04 13:14:59 +00:00
{ & hf_capwap_msg_element_type_capwap_local_ipv6_address ,
{ " CAPWAP Local IPv6 Address " , " capwap.control.message_element.capwap_local_ipv6_address " ,
FT_IPv6 , BASE_NONE , NULL , 0x0 ,
" The IP address of the sender " , HFILL }
} ,
{ & hf_capwap_msg_element_type_capwap_transport_protocol ,
{ " CAPWAP Transport Protocol " , " capwap.control.message_element.capwap_transport_protocol " ,
FT_UINT8 , BASE_DEC , VALS ( capwap_transport_protocol_vals ) , 0x0 ,
" The transport to use for the CAPWAP Data channel " , HFILL }
} ,
{ & hf_capwap_msg_element_type_mtu_discovery_padding ,
{ " MTU Discovery Padding " , " capwap.control.message_element.mtu_discovery_padding " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
" A variable-length pad, filled with the value 0xFF " , HFILL }
} ,
{ & hf_capwap_msg_element_type_ecn_support ,
{ " ECN Support " , " capwap.control.message_element.ecn_support " ,
FT_UINT8 , BASE_DEC , VALS ( ecn_support_vals ) , 0x0 ,
" The sender's support for ECN, as defined in [RFC3168] " , HFILL }
} ,
2014-02-12 21:33:09 +00:00
/* Message element type IEEE80211 : RFC 5416 Section 6 */
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_add_wlan.radio_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_wlan_id ,
{ " WLAN ID " , " capwap.control.message_element.ieee80211_add_wlan.wlan_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability ,
{ " Capability " , " capwap.control.message_element.ieee80211_add_wlan.capability " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_e ,
{ " ESS " , " capwap.control.message_element.ieee80211_add_wlan.capability.e " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x8000 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_i ,
{ " IBSS " , " capwap.control.message_element.ieee80211_add_wlan.capability.i " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x4000 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_c ,
{ " CF-Pollable " , " capwap.control.message_element.ieee80211_add_wlan.capability.c " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x2000 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_f ,
{ " CF-Poll Request " , " capwap.control.message_element.ieee80211_add_wlan.capability.f " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x1000 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_p ,
{ " Privacy " , " capwap.control.message_element.ieee80211_add_wlan.capability.p " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0800 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_s ,
{ " Short Preamble " , " capwap.control.message_element.ieee80211_add_wlan.capability.s " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0400 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_b ,
{ " PBCC " , " capwap.control.message_element.ieee80211_add_wlan.capability.b " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0200 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_a ,
{ " Channek Agility " , " capwap.control.message_element.ieee80211_add_wlan.capability.a " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0100 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_m ,
{ " Spectrum Management " , " capwap.control.message_element.ieee80211_add_wlan.capability.m " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0080 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_q ,
{ " QoS " , " capwap.control.message_element.ieee80211_add_wlan.capability.q " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0040 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_t ,
{ " Short Slot Time " , " capwap.control.message_element.ieee80211_add_wlan.capability.t " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0020 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_d ,
{ " APSD " , " capwap.control.message_element.ieee80211_add_wlan.capability.d " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0010 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_v ,
{ " Reserved " , " capwap.control.message_element.ieee80211_add_wlan.capability.v " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0008 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_o ,
{ " DSSS-OFDM " , " capwap.control.message_element.ieee80211_add_wlan.capability.o " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0004 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_k ,
{ " Delayed Block ACK " , " capwap.control.message_element.ieee80211_add_wlan.capability.k " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0002 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_capability_l ,
{ " Immediate Block ACK " , " capwap.control.message_element.ieee80211_add_wlan.capability.l " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0001 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_key_index ,
{ " Key-Index " , " capwap.control.message_element.ieee80211_add_wlan.key_index " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_key_status ,
{ " Key Status " , " capwap.control.message_element.ieee80211_add_wlan.key_status " ,
2015-01-12 17:14:00 +00:00
FT_UINT8 , BASE_DEC , VALS ( ieee80211_wlan_key_status_vals ) , 0x0 ,
2014-08-11 21:55:30 +00:00
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_key_length ,
{ " Key Length " , " capwap.control.message_element.ieee80211_add_wlan.key_length " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_key ,
{ " Key " , " capwap.control.message_element.ieee80211_add_wlan.key " ,
2014-08-11 21:55:30 +00:00
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_group_tsc ,
{ " Group TSC " , " capwap.control.message_element.ieee80211_add_wlan.group_tsc " ,
2014-08-11 21:55:30 +00:00
FT_UINT64 , BASE_DEC , NULL , 0x00FFFFFF ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_qos ,
{ " QoS " , " capwap.control.message_element.ieee80211_add_wlan.qos " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , VALS ( ieee80211_add_wlan_qos_vals ) , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_auth_type ,
{ " Auth Type " , " capwap.control.message_element.ieee80211_add_wlan.auth_type " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , VALS ( ieee80211_add_wlan_auth_type_vals ) , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_mac_mode ,
{ " MAC Mode " , " capwap.control.message_element.ieee80211_add_wlan.mac_mode " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , VALS ( ieee80211_add_wlan_mac_mode_vals ) , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_tunnel_mode ,
{ " Tunnel Mode " , " capwap.control.message_element.ieee80211_add_wlan.tunnel_mode " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , VALS ( ieee80211_add_wlan_tunnel_mode_vals ) , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_suppress_ssid ,
{ " Suppress SSID " , " capwap.control.message_element.ieee80211_add_wlan.supress_ssid " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x01 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_add_wlan_ssid ,
{ " SSID " , " capwap.control.message_element.ieee80211_add_wlan.ssid " ,
2014-08-11 21:55:30 +00:00
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-11-25 11:23:52 +00:00
{ & hf_capwap_msg_element_type_ieee80211_antenna_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_antenna.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_antenna_diversity ,
{ " Diversity " , " capwap.control.message_element.ieee80211_antenna.diversity " ,
FT_UINT8 , BASE_DEC , VALS ( ieee80211_antenna_diversity_vals ) , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_antenna_combiner ,
{ " Combiner " , " capwap.control.message_element.ieee80211_antenna.combiner " ,
FT_UINT8 , BASE_DEC , VALS ( ieee80211_antenna_combiner_vals ) , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_antenna_count ,
{ " Antenna Count " , " capwap.control.message_element.ieee80211_antenna.count " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_antenna_selection ,
{ " Selection " , " capwap.control.message_element.ieee80211_antenna.selection " ,
FT_UINT8 , BASE_DEC , VALS ( ieee80211_antenna_selection_vals ) , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_assigned_wtp_bssid.radio_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_wlan_id ,
{ " WLAN ID " , " capwap.control.message_element.ieee80211_assigned_wtp_bssid.wlan_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_assigned_wtp_bssid_bssid ,
{ " BSSID " , " capwap.control.message_element.ieee80211_assigned_wtp_bssid.bssid " ,
2014-08-11 21:55:30 +00:00
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_delete_wlan_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_delete_wlan.radio_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-02-12 21:33:09 +00:00
{ & hf_capwap_msg_element_type_ieee80211_delete_wlan_wlan_id ,
{ " WLAN ID " , " capwap.control.message_element.ieee80211_delete_wlan.wlan_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-11-25 11:23:52 +00:00
{ & hf_capwap_msg_element_type_ieee80211_direct_sequence_control_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_direct_sequence_control.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_direct_sequence_control_reserved ,
{ " Reserved " , " capwap.control.message_element.ieee80211_direct_sequence_control.reserved " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_channel ,
{ " Current Channel " , " capwap.control.message_element.ieee80211_direct_sequence_control.current_channel " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_direct_sequence_control_current_cca ,
{ " Current CCA " , " capwap.control.message_element.ieee80211_direct_sequence_control.current_cca " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_direct_sequence_control_energy_detect_threshold ,
{ " Energy Detect Threshold " , " capwap.control.message_element.ieee80211_direct_sequence_control.energy_detect_threshold " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2015-01-13 10:45:15 +00:00
{ & hf_capwap_msg_element_type_ieee80211_ie_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_ie.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ie_wlan_id ,
{ " WLAN ID " , " capwap.control.message_element.ieee80211_ie.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ie_flags ,
{ " Flags " , " capwap.control.message_element.ieee80211_ie.flags " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ie_flags_b ,
{ " Include IE in Beacons " , " capwap.control.message_element.ieee80211_ie.flags.b " ,
FT_BOOLEAN , 8 , NULL , 0x80 ,
" When set, the WTP is to include the Information Element in IEEE 802.11 Beacons associated with the WLAN " , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ie_flags_p ,
{ " Include IE in Probe Responses " , " capwap.control.message_element.ieee80211_ie.flags.p " ,
FT_BOOLEAN , 8 , NULL , 0x40 ,
" When set, the WTP is to include the Information Element in Probe Responses associated with the WLAN " , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ie_flags_rsv ,
{ " Reserved " , " capwap.control.message_element.ieee80211_ie.flags.rsv " ,
FT_UINT8 , BASE_HEX , NULL , 0x3F ,
" Must be Zero " , HFILL }
} ,
2014-11-25 11:23:52 +00:00
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_mac_operation.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_reserved ,
{ " Reserved " , " capwap.control.message_element.ieee80211_mac_operation.reserved " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_rts_threshold ,
{ " RTS Threshold " , " capwap.control.message_element.ieee80211_mac_operation.rts_threshold " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_short_retry ,
{ " Short Retry " , " capwap.control.message_element.ieee80211_mac_operation.short_retry " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_long_retry ,
{ " Long Retry " , " capwap.control.message_element.ieee80211_mac_operation.long_retry " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_fragmentation_threshold ,
{ " Fragmentation Threshold " , " capwap.control.message_element.ieee80211_mac_operation.fragmentation_threshold " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_tx_msdu_lifetime ,
{ " Tx MDSU Lifetime " , " capwap.control.message_element.ieee80211_mac_operation.tx_msdu_lifetime " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mac_operation_rx_msdu_lifetime ,
{ " Rx MDSU Lifetime " , " capwap.control.message_element.ieee80211_mac_operation.rx_msdu_lifetime " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mic_countermeasures_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_mic_countermeasures.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mic_countermeasures_wlan_id ,
{ " WLAN ID " , " capwap.control.message_element.ieee80211_mic_countermeasures.wlan_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_mic_countermeasures_mac_address ,
{ " MAC Address " , " capwap.control.message_element.ieee80211_mic_countermeasures.mac_address " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_multi_domain_capability_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_multi_domain_capability.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_multi_domain_capability_reserved ,
{ " Reserved " , " capwap.control.message_element.ieee80211_multi_domain_capability.reserved " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_multi_domain_capability_first_channel ,
{ " First Channel " , " capwap.control.message_element.ieee80211_multi_domain_capability.first_channel " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_multi_domain_capability_number_of_channels ,
{ " Number of Channels " , " capwap.control.message_element.ieee80211_multi_domain_capability.number_of_channels " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_multi_domain_capability_max_tx_power_level ,
{ " Max TX Power Level " , " capwap.control.message_element.ieee80211_multi_domain_capability.max_tx_power_level " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2015-01-12 17:14:00 +00:00
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_ofdm_control.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_reserved ,
{ " Reserved " , " capwap.control.message_element.ieee80211_ofdm_control.reserved " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_current_channel ,
{ " Current Channel " , " capwap.control.message_element.ieee80211_ofdm_control.current_channel " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support ,
{ " Band Support " , " capwap.control.message_element.ieee80211_ofdm_control.band_support " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit0 ,
{ " Operating in the 5.15-5.25 GHz band " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit0 " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x01 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit1 ,
{ " Operating in the 5.25-5.35 GHz band " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit1 " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x02 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit2 ,
{ " Operating in the 5.725-5.825 GHz band " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit2 " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x04 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit3 ,
{ " Operating in the 5.47-5.725 GHz band " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit3 " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x08 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit4 ,
{ " Operating in the lower Japanese 5.25 GHz band " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit4 " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x10 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit5 ,
{ " Operating in the l5.03-5.091 GHz band " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit5 " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x20 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit6 ,
{ " Operating in the l5.03-5.091 GHz band " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit5 " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x40 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_band_support_bit7 ,
{ " Reserved " , " capwap.control.message_element.ieee80211_ofdm_control.band_support.bit7 " ,
FT_UINT8 , BASE_HEX , NULL , 0x80 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_ofdm_control_ti_threshold ,
{ " TI Threshold " , " capwap.control.message_element.ieee80211_mofdm_control.ti_threshold " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_rate_set_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_rate_set.radio_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_rate_set_rate_set ,
{ " Rate Set " , " capwap.control.message_element.ieee80211_rate_set.rate_set " ,
2014-11-25 11:23:52 +00:00
FT_UINT8 , BASE_HEX | BASE_EXT_STRING , & ieee80211_supported_rates_vals_ext , 0x0 ,
" In Mbit/sec, (B) for Basic Rates " , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_station.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_association_id ,
{ " Association ID " , " capwap.control.message_element.ieee80211_station.association_id " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_flags ,
{ " Flags " , " capwap.control.message_element.ieee80211_station.flags " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_mac_address ,
{ " MAC Address " , " capwap.control.message_element.ieee80211_station.mac_address " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities ,
{ " Capabilities " , " capwap.control.message_element.ieee80211_station.capabilities " ,
FT_UINT16 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_e ,
{ " ESS " , " capwap.control.message_element.ieee80211_station.capabilities.e " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x8000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_i ,
{ " IBSS " , " capwap.control.message_element.ieee80211_station.capabilities.i " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x4000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_c ,
{ " CF-Pollable " , " capwap.control.message_element.ieee80211_station.capabilities.c " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x2000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_f ,
{ " CF-Poll Request " , " capwap.control.message_element.ieee80211_station.capabilities.f " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x1000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_p ,
{ " Privacy " , " capwap.control.message_element.ieee80211_station.capabilities.p " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0800 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_s ,
{ " Short Preamble " , " capwap.control.message_element.ieee80211_station.capabilities.s " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0400 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_b ,
{ " PBCC " , " capwap.control.message_element.ieee80211_station.capabilities.b " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0200 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_a ,
{ " Channek Agility " , " capwap.control.message_element.ieee80211_station.capabilities.a " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0100 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_m ,
{ " Spectrum Management " , " capwap.control.message_element.ieee80211_station.capabilities.m " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0080 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_q ,
{ " QoS " , " capwap.control.message_element.ieee80211_station.capabilities.q " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0040 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_t ,
{ " Short Slot Time " , " capwap.control.message_element.ieee80211_station.capabilities.t " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0020 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_d ,
{ " APSD " , " capwap.control.message_element.ieee80211_station.capabilities.d " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0010 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_v ,
{ " Reserved " , " capwap.control.message_element.ieee80211_station.capabilities.v " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0008 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_o ,
{ " DSSS-OFDM " , " capwap.control.message_element.ieee80211_station.capabilities.o " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0004 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_k ,
{ " Delayed Block ACK " , " capwap.control.message_element.ieee80211_station.capabilities.k " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0002 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_capabilities_l ,
{ " Immediate Block ACK " , " capwap.control.message_element.ieee80211_station.capabilities.l " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0001 ,
2014-08-11 21:55:30 +00:00
NULL , HFILL }
} ,
2014-11-25 11:23:52 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_wlan_id ,
{ " WLAN ID " , " capwap.control.message_element.ieee80211_station.wlan_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_station_supported_rates ,
{ " Supported Rates " , " capwap.control.message_element.ieee80211_station.supported_rates " ,
FT_UINT8 , BASE_HEX | BASE_EXT_STRING , & ieee80211_supported_rates_vals_ext , 0x0 ,
" In Mbit/sec, (B) for Basic Rates " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_session_key_mac ,
{ " Mac Address " , " capwap.control.message_element.ieee80211_station_session_key.mac " ,
2014-08-11 21:55:30 +00:00
FT_ETHER , BASE_NONE , NULL , 0x0 ,
" The station's MAC Address " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_session_key_flags ,
{ " Flags " , " capwap.control.message_element.ieee80211_station_session_key.flags " ,
2014-08-11 21:55:30 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x3FFF ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_session_key_flags_a ,
{ " Flag A " , " capwap.control.message_element.ieee80211_station_session_key.flags_a " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 1 , NULL , 0x2000 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_session_key_flags_c ,
{ " Flag C " , " capwap.control.message_element.ieee80211_station_session_key.flags_c " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 1 , NULL , 0x1000 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_tsc ,
{ " Pairwise TSC " , " capwap.control.message_element.ieee80211_station_session_key.pairwire_tsc " ,
2014-08-11 21:55:30 +00:00
FT_BYTES , BASE_NONE , NULL , 0x0 ,
" Transmit Sequence Counter (TSC) " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_session_key_pairwire_rsc ,
{ " Pairwise RSC " , " capwap.control.message_element.ieee80211_station_session_key.pairwire_rsc " ,
2014-08-11 21:55:30 +00:00
FT_BYTES , BASE_NONE , NULL , 0x0 ,
" Receive Sequence Counter (TSC) " , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_station_session_key_key ,
{ " Key " , " capwap.control.message_element.ieee80211_station_session_key.key " ,
2014-08-11 21:55:30 +00:00
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-11-25 11:23:52 +00:00
{ & hf_capwap_msg_element_type_ieee80211_supported_rates_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_supported_rates.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_supported_rates_rate ,
{ " Rates " , " capwap.control.message_element.ieee80211_supported_rates.rate " ,
FT_UINT8 , BASE_HEX | BASE_EXT_STRING , & ieee80211_supported_rates_vals_ext , 0x0 ,
" In Mbit/sec, (B) for Basic Rates " , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_tx_power_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_tx_power.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_tx_power_reserved ,
{ " Reserved " , " capwap.control.message_element.ieee80211_tx_power.reserved " ,
FT_UINT8 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_tx_power_current_tx_power ,
{ " Current Tx Power " , " capwap.control.message_element.ieee80211_tx_power.current_tx_power " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_tx_power_level_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_tx_power_level.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_tx_power_level_num_levels ,
{ " Num Levels " , " capwap.control.message_element.ieee80211_tx_power_level.num_levels " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_tx_power_level_power_level ,
{ " Power Level " , " capwap.control.message_element.ieee80211_tx_power_level.power_level " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2015-01-12 17:14:00 +00:00
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_update_wlan.radio_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_wlan_id ,
{ " WLAN ID " , " capwap.control.message_element.ieee80211_update_wlan.wlan_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability ,
{ " Capability " , " capwap.control.message_element.ieee80211_update_wlan.capability " ,
FT_UINT16 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_e ,
{ " ESS " , " capwap.control.message_element.ieee80211_update_wlan.capability.e " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x8000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_i ,
{ " IBSS " , " capwap.control.message_element.ieee80211_update_wlan.capability.i " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x4000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_c ,
{ " CF-Pollable " , " capwap.control.message_element.ieee80211_update_wlan.capability.c " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x2000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_f ,
{ " CF-Poll Request " , " capwap.control.message_element.ieee80211_update_wlan.capability.f " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x1000 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_p ,
{ " Privacy " , " capwap.control.message_element.ieee80211_update_wlan.capability.p " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0800 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_s ,
{ " Short Preamble " , " capwap.control.message_element.ieee80211_update_wlan.capability.s " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0400 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_b ,
{ " PBCC " , " capwap.control.message_element.ieee80211_update_wlan.capability.b " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0200 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_a ,
{ " Channek Agility " , " capwap.control.message_element.ieee80211_update_wlan.capability.a " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0100 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_m ,
{ " Spectrum Management " , " capwap.control.message_element.ieee80211_update_wlan.capability.m " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0080 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_q ,
{ " QoS " , " capwap.control.message_element.ieee80211_update_wlan.capability.q " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0040 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_t ,
{ " Short Slot Time " , " capwap.control.message_element.ieee80211_update_wlan.capability.t " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0020 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_d ,
{ " APSD " , " capwap.control.message_element.ieee80211_update_wlan.capability.d " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0010 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_v ,
{ " Reserved " , " capwap.control.message_element.ieee80211_update_wlan.capability.v " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0008 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_o ,
{ " DSSS-OFDM " , " capwap.control.message_element.ieee80211_update_wlan.capability.o " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0004 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_k ,
{ " Delayed Block ACK " , " capwap.control.message_element.ieee80211_update_wlan.capability.k " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0002 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_capability_l ,
{ " Immediate Block ACK " , " capwap.control.message_element.ieee80211_update_wlan.capability.l " ,
FT_BOOLEAN , 16 , TFS ( & tfs_yes_no ) , 0x0001 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_key_index ,
{ " Key-Index " , " capwap.control.message_element.ieee80211_update_wlan.key_index " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_key_status ,
{ " Key Status " , " capwap.control.message_element.ieee80211_update_wlan.key_status " ,
FT_UINT8 , BASE_DEC , VALS ( ieee80211_wlan_key_status_vals ) , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_key_length ,
{ " Key Length " , " capwap.control.message_element.ieee80211_update_wlan.key_length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_update_wlan_key ,
{ " Key " , " capwap.control.message_element.ieee80211_update_wlan.key " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2014-11-25 11:23:52 +00:00
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_radio_id ,
{ " Radio ID " , " capwap.control.message_element.ieee80211_wtp_radio_info.cfg_id " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_short_preamble ,
{ " Short Preamble " , " capwap.control.message_element.ieee80211_wtp_radio_info.short_preamble " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_num_of_bssids ,
{ " Num of BSSIDs " , " capwap.control.message_element.ieee80211_wtp_radio_info.num_of_bssids " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_dtim_period ,
{ " DTIM Period " , " capwap.control.message_element.ieee80211_wtp_radio_info.dtim_period " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_bssid ,
{ " BSSID " , " capwap.control.message_element.ieee80211_wtp_radio_info.bssid " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_beacon_period ,
{ " Beacon Period " , " capwap.control.message_element.ieee80211_wtp_radio_info.beacon_period " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_cfg_country_string ,
{ " Country String " , " capwap.control.message_element.ieee80211_wtp_radio_info.country_string " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_id ,
2014-11-25 11:23:52 +00:00
{ " Radio ID " , " capwap.control.message_element.ieee80211_wtp_radio_info.radio_id " ,
2014-08-11 21:55:30 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_reserved ,
{ " Radio Type Reserved " , " capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_reserved " ,
2014-08-11 21:55:30 +00:00
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_n ,
{ " Radio Type 802.11n " , " capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_n " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 4 , TFS ( & tfs_true_false ) , 0x0008 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_g ,
{ " Radio Type 802.11g " , " capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_g " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 4 , TFS ( & tfs_true_false ) , 0x0004 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_a ,
{ " Radio Type 802.11a " , " capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_a " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 4 , TFS ( & tfs_true_false ) , 0x0002 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_capwap_msg_element_type_ieee80211_wtp_radio_info_radio_type_b ,
2014-02-18 13:21:25 +00:00
{ " Radio Type 802.11b " , " capwap.control.message_element.ieee80211_wtp_info_radio.radio_type_b " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , 4 , TFS ( & tfs_true_false ) , 0x0001 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
2013-10-17 02:13:23 +00:00
/* Data Channel Keep-Alive entries */
{ & hf_capwap_data_keep_alive ,
2014-08-11 21:55:30 +00:00
{ " Keep-Alive " , " capwap.keep_alive " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-10-17 02:13:23 +00:00
{ & hf_capwap_data_keep_alive_length ,
2014-08-11 21:55:30 +00:00
{ " Message Element Length " , " capwap.keep_alive.length " ,
2014-12-07 13:30:50 +00:00
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
/* Fortinet Vendor Specific*/
{ & hf_capwap_fortinet_element_id ,
{ " Fortinet Element ID " , " capwap.control.fortinet.element_id " ,
FT_UINT16 , BASE_DEC , VALS ( fortinet_element_id_vals ) , 0x0 ,
2014-08-11 21:55:30 +00:00
NULL , HFILL }
} ,
2014-12-07 13:30:50 +00:00
{ & hf_capwap_fortinet_value ,
{ " Fortinet Value " , " capwap.control.fortinet.value " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_scan_rid ,
{ " Radio ID " , " capwap.control.fortinet.ap_scan.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_scan_bgscan_intv ,
{ " bg scan interval " , " capwap.control.fortinet.ap_scan.bgpscan.interval " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_scan_bgscan_idle ,
{ " bg scan idle " , " capwap.control.fortinet.ap_scan.bgpscan.idle " ,
FT_UINT24 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_scan_bgscan_rpt_intv ,
{ " bg scan rpt interval " , " capwap.control.fortinet.ap_scan.bgscan.rpt_interval " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_scan_fgscan_rpt_intv ,
{ " fg scan rpt interval " , " capwap.control.fortinet.ap_scan.fgscan.rpt_interval " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_passive_rid ,
{ " Radio ID " , " capwap.control.fortinet.passive.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_passive ,
{ " Passive " , " capwap.control.fortinet.passive " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_daemon_rst ,
{ " Daemon RST " , " capwap.control.fortinet.daemon_rst " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mac_rid ,
{ " Radio ID " , " capwap.control.fortinet.mac.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mac_wid ,
{ " WLAN ID " , " capwap.control.fortinet.mac.wid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mac_len ,
{ " Length " , " capwap.control.fortinet.mac.len " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mac ,
{ " MAC " , " capwap.control.fortinet.mac " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wtp_allow_sn ,
{ " Serial Number " , " capwap.control.fortinet.wtp_allow.sn " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
" WTP Serial Number " , HFILL }
} ,
{ & hf_capwap_fortinet_wtp_allow_allow ,
{ " Allowed " , " capwap.control.fortinet.wtp_allow.allowed " ,
FT_BOOLEAN , 8 , TFS ( & tfs_yes_no ) , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wbh_sta_rid ,
{ " Radio ID " , " capwap.control.fortinet.wbh_sta.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wbh_sta_len ,
{ " Length " , " capwap.control.fortinet.wbh_sta.length " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wbh_sta_mac ,
{ " STA MAC " , " capwap.control.fortinet.wbh_sta.mac " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wbh_sta_bssid ,
{ " BSSID " , " capwap.control.fortinet.wbh_sta.bssid " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wbh_sta_mhc ,
{ " MHC " , " capwap.control.fortinet.wbh_sta.mhc " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_htcap_rid ,
{ " Radio ID " , " capwap.control.fortinet.htcap.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_htcap_mcs ,
{ " MCS " , " capwap.control.fortinet.htcap.mcs " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_htcap_gi ,
{ " HT Short GI " , " capwap.control.fortinet.htcap.mcs.gi " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_htcap_bw ,
{ " Bandwidth " , " capwap.control.fortinet.htcap.mcs.bw " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
" 20 or 40Mhz Mode " , HFILL }
} ,
{ & hf_capwap_fortinet_mvap_sn_length ,
{ " SN Length " , " capwap.control.fortinet.mvap.sn.length " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mvap_sn ,
{ " SN " , " capwap.control.fortinet.mvap.sn " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mvap_unknown ,
{ " Unknown " , " capwap.control.fortinet.mvap.unknown " ,
FT_UINT32 , BASE_DEC_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mvap_age ,
{ " Age " , " capwap.control.fortinet.mvap.age " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mvap_period ,
{ " Period " , " capwap.control.fortinet.mvap.period " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mvap_vfid ,
{ " Vfid " , " capwap.control.fortinet.mvap.vfid " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mode_rid ,
{ " Radio ID " , " capwap.control.fortinet.mode.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mode ,
{ " Mode " , " capwap.control.fortinet.mode " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_coext_rid ,
{ " Radio ID " , " capwap.control.fortinet.coext.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_coext ,
{ " Coext " , " capwap.control.fortinet.coext " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_amsdu_rid ,
{ " Radio ID " , " capwap.control.fortinet.amsdu.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_amsdu ,
{ " AMSDU " , " capwap.control.fortinet.amsdu " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ps_opt_rid ,
{ " Radio ID " , " capwap.control.fortinet.ps_opt.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ps_opt ,
{ " PS OPT " , " capwap.control.fortinet.ps_opt " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_pure_rid ,
{ " Radio ID " , " capwap.control.fortinet.pure.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_pure ,
{ " Pure " , " capwap.control.fortinet.pure " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ebptag_ebp ,
{ " EBP " , " capwap.control.fortinet.ebptag.ebp " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ebptag_tag ,
{ " Tag " , " capwap.control.fortinet.ebptag.ebp " ,
FT_ETHER , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_telnet_enable ,
{ " Telnet Enable " , " capwap.control.fortinet.telnet_enable " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_admin_passwd ,
{ " Admin Password " , " capwap.control.fortinet.admin_password " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_regcode ,
{ " Reg Code " , " capwap.control.fortinet.reg_code " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_countrycode_rid ,
{ " Radio ID " , " capwap.control.fortinet.countrycode.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_countrycode_code ,
{ " Country Code " , " capwap.control.fortinet.countrycode.code " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_countrycode_string ,
{ " Country Code " , " capwap.control.fortinet.countrycode.string " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sta_scan_rid ,
{ " Radio ID " , " capwap.control.fortinet.sta_scan.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sta_scan ,
{ " STA Scan " , " capwap.control.fortinet.sta_scan " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_fho_rid ,
{ " Radio ID " , " capwap.control.fortinet.fho.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_fho ,
{ " FHO " , " capwap.control.fortinet.fho " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_apho_rid ,
{ " Radio ID " , " capwap.control.fortinet.fho.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_apho ,
{ " APHO " , " capwap.control.fortinet.apho " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sta_locate_rid ,
{ " Radio ID " , " capwap.control.fortinet.sta_locate.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sta_locate_enable ,
{ " Locate Enable " , " capwap.control.fortinet.sta_locate.enable " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sta_locate_interval ,
{ " Locate Interval " , " capwap.control.fortinet.sta_locate.interval " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sa_rid ,
{ " Radio ID " , " capwap.control.fortinet.spectrum_analysis.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sa_enable ,
{ " Spectrum Analysis Enable " , " capwap.control.fortinet.spectrum_analysis.enable " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_sa_ssid ,
{ " SSID " , " capwap.control.fortinet.spectrum_analysis.ssid " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_darrp_cfg_rid ,
{ " Radio ID " , " capwap.control.fortinet.darrp_cfg.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_darrp_cfg_enable ,
{ " DARRP CFG Enable " , " capwap.control.fortinet.darrp_cfg.enable " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_darrp_cfg_interval ,
{ " DARRP CFG Interval " , " capwap.control.fortinet.darrp_cfg.interval " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_suppress_list_ver ,
{ " Ver " , " capwap.control.fortinet.ap_suppress_list.ver " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_suppress_list_op ,
{ " Op " , " capwap.control.fortinet.ap_suppress_list.op " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
" Operation ? " , HFILL }
} ,
{ & hf_capwap_fortinet_ap_suppress_list_rid ,
{ " Radio ID " , " capwap.control.fortinet.ap_suppress_list.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_ap_suppress_list_len ,
{ " Length " , " capwap.control.fortinet.ap_suppress_list.length " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wds_rid ,
{ " Radio ID " , " capwap.control.fortinet.wds.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wds_wid ,
{ " WLAN ID " , " capwap.control.fortinet.wds.wid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wds_enable ,
{ " WDS Enable " , " capwap.control.fortinet.wds.enable " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_vlan_tag_rid ,
{ " Radio ID " , " capwap.control.fortinet.vap_vlan_tag.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_vlan_tag_wid ,
{ " WLAN ID " , " capwap.control.fortinet.vap_vlan_tag.wid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_vlan_tag ,
{ " Vlan ID " , " capwap.control.fortinet.vap_vlan_tag " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_bitmap_rid ,
{ " Radio ID " , " capwap.control.fortinet.bitmap.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_bitmap ,
{ " Bitmap " , " capwap.control.fortinet.vap_bitmap " ,
FT_UINT16 , BASE_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mcast_rate_rid ,
{ " Radio ID " , " capwap.control.fortinet.mcast_rate.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mcast_rate_wid ,
{ " WLAN ID " , " capwap.control.fortinet.mcast_rate.wid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mcast_rate ,
{ " Multicast Rate " , " capwap.control.fortinet.mcast_rate " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_cfg_rid ,
{ " Radio ID " , " capwap.control.fortinet.cfg.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_cfg_wid ,
{ " WLAN ID " , " capwap.control.fortinet.cfg.wid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_cfg_ip ,
{ " IP " , " capwap.control.fortinet.cfg.ip " ,
FT_IPv4 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_cfg_mask ,
{ " Mask " , " capwap.control.fortinet.cfg.mask " ,
FT_IPv4 , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_split_tun_cfg_enable_local_subnet ,
{ " Enable Local Subnet " , " capwap.control.fortinet.split_tun_cfg.enable_local_subnet " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_split_tun_cfg_cnt ,
{ " CNT " , " capwap.control.fortinet.split_tun_cfg.cnt " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mgmt_vlan_id ,
{ " Vlan ID " , " capwap.control.fortinet.mgmt_vlan.id " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_psk_passwd_rid ,
{ " Radio ID " , " capwap.control.fortinet.vap_psk_passwd.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_psk_passwd_wid ,
{ " WLAN ID " , " capwap.control.fortinet.vap_psk_passwd.wid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_vap_psk_passwd_key ,
{ " Key " , " capwap.control.fortinet.vap_psk_passwd.key " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mesh_eth_bridge_enable ,
{ " Mesh Eth Bridge Enable " , " capwap.control.fortinet.mesh_eth_bridge.enable " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_mesh_eth_bridge_type ,
{ " Mesh Eth Bridge Type " , " capwap.control.fortinet.mesh_eth_bridge.type " ,
FT_UINT16 , BASE_DEC_HEX , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wtp_cap ,
{ " WTP CAP " , " capwap.control.fortinet.wtp_cap " ,
FT_BYTES , SEP_SPACE , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_txpwr_rid ,
{ " Radio ID " , " capwap.control.fortinet.tx_power.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_txpwr ,
{ " TX Power " , " capwap.control.fortinet.tx_power " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
" In Pourcentage " , HFILL }
} ,
{ & hf_capwap_fortinet_wids_enable_rid ,
{ " Radio ID " , " capwap.control.fortinet.wids_enable.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_wids_enable ,
{ " WIDS Enable " , " capwap.control.fortinet.wids_enable.enable " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_unknown_rid ,
{ " Radio ID " , " capwap.control.fortinet.unknown.rid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_unknown_wid ,
{ " WLAN ID " , " capwap.control.fortinet.unknown.wid " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
{ & hf_capwap_fortinet_unknown ,
{ " Unknown Data " , " capwap.control.fortinet.unknown " ,
FT_BYTES , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-10-17 02:13:23 +00:00
2013-02-21 15:31:58 +00:00
/* Fragment entries */
{ & hf_msg_fragments ,
2014-08-11 21:55:30 +00:00
{ " Message fragments " , " capwap.fragments " ,
FT_NONE , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_fragment ,
2014-08-11 21:55:30 +00:00
{ " Message fragment " , " capwap.fragment " ,
FT_FRAMENUM , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_fragment_overlap ,
2014-08-11 21:55:30 +00:00
{ " Message fragment overlap " , " capwap.fragment.overlap " ,
FT_BOOLEAN , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_fragment_overlap_conflicts ,
2014-08-11 21:55:30 +00:00
{ " Message fragment overlapping with conflicting data " , " capwap.fragment.overlap.conflicts " ,
FT_BOOLEAN , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_fragment_multiple_tails ,
2014-08-11 21:55:30 +00:00
{ " Message has multiple tail fragments " , " capwap.fragment.multiple_tails " ,
FT_BOOLEAN , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_fragment_too_long_fragment ,
{ " Message fragment too long " , " capwap.fragment.too_long_fragment " ,
2014-08-11 21:55:30 +00:00
FT_BOOLEAN , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_fragment_error ,
2014-08-11 21:55:30 +00:00
{ " Message defragmentation error " , " capwap.fragment.error " ,
FT_FRAMENUM , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_fragment_count ,
2014-08-11 21:55:30 +00:00
{ " Message fragment count " , " capwap.fragment.count " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_reassembled_in ,
2014-08-11 21:55:30 +00:00
{ " Reassembled in " , " capwap.reassembled.in " ,
FT_FRAMENUM , BASE_NONE , NULL , 0x0 ,
NULL , HFILL }
} ,
2013-02-21 15:31:58 +00:00
{ & hf_msg_reassembled_length ,
2014-08-11 21:55:30 +00:00
{ " Reassembled CAPWAP length " , " capwap.reassembled.length " ,
FT_UINT32 , BASE_DEC , NULL , 0x0 ,
NULL , HFILL }
}
2013-02-21 15:31:58 +00:00
} ;
/* Setup protocol subtree array */
static gint * ett [ ] = {
& ett_capwap ,
2014-08-20 08:08:15 +00:00
& ett_capwap_control ,
& ett_capwap_data ,
& ett_capwap_preamble ,
& ett_capwap_header ,
& ett_capwap_header_flags ,
& ett_capwap_control_header ,
& ett_capwap_control_header_msg ,
& ett_capwap_data_keep_alive ,
& ett_capwap_message_element ,
& ett_capwap_data_message_bindings_ieee80211 ,
& ett_capwap_encryption_capabilities ,
& ett_capwap_encryption_capability ,
& ett_capwap_ac_information ,
& ett_capwap_wtp_descriptor ,
& ett_capwap_board_data ,
& ett_capwap_message_element_type ,
& ett_capwap_ac_descriptor_security_flags ,
& ett_capwap_ac_descriptor_dtls_flags ,
& ett_capwap_wtp_frame_tunnel_mode ,
& ett_capwap_ieee80211_add_wlan_capability ,
2015-01-13 10:45:15 +00:00
& ett_capwap_ieee80211_ie_flags ,
2015-01-12 17:14:00 +00:00
& ett_capwap_ieee80211_update_wlan_capability ,
2014-11-25 11:23:52 +00:00
& ett_capwap_ieee80211_station_capabilities ,
2015-01-12 17:14:00 +00:00
& ett_capwap_ieee80211_ofdm_control_band_support ,
2013-02-21 15:31:58 +00:00
& ett_msg_fragment ,
& ett_msg_fragments
} ;
2013-06-09 03:28:05 +00:00
static ei_register_info ei [ ] = {
{ & ei_capwap_header_length_bad , { " capwap.header.length.bad " , PI_MALFORMED , PI_WARN , " Wrong calculate length =! header length " , EXPFILL } } ,
2013-10-17 02:13:23 +00:00
{ & ei_capwap_data_keep_alive_length , { " capwap.keep_alive.length.bad " , PI_MALFORMED , PI_WARN , " Invalid Keep Alive length " , EXPFILL } } ,
2014-08-25 10:54:11 +00:00
{ & ei_capwap_msg_element_length , { " capwap.message_element.length.bad " , PI_MALFORMED , PI_ERROR , " Bad Message Element length " , EXPFILL } } ,
2014-12-07 13:30:50 +00:00
{ & 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 } } ,
{ & ei_capwap_fortinet_mac_len , { " capwap.control.fortinet.mac.length.bad " , PI_MALFORMED , PI_ERROR , " Bad length: Should be a multiple of 6 " , EXPFILL } } ,
{ & 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 } }
2013-06-09 03:28:05 +00:00
} ;
expert_module_t * expert_capwap ;
2014-08-20 07:46:47 +00:00
proto_capwap_control = proto_register_protocol ( " Control And Provisioning of Wireless Access Points - Control " , " CAPWAP-CONTROL " , " capwap " ) ;
proto_capwap_data = proto_register_protocol ( " Control And Provisioning of Wireless Access Points - Data " , " CAPWAP-DATA " , " capwap.data " ) ;
2013-02-21 15:31:58 +00:00
2014-08-20 07:46:47 +00:00
proto_register_field_array ( proto_capwap_control , hf , array_length ( hf ) ) ;
2013-02-21 15:31:58 +00:00
proto_register_subtree_array ( ett , array_length ( ett ) ) ;
2014-08-20 07:46:47 +00:00
expert_capwap = expert_register_protocol ( proto_capwap_control ) ;
2013-06-09 03:28:05 +00:00
expert_register_field_array ( expert_capwap , ei , array_length ( ei ) ) ;
2013-02-21 15:31:58 +00:00
register_init_routine ( & capwap_reassemble_init ) ;
2014-08-20 07:46:47 +00:00
capwap_module = prefs_register_protocol ( proto_capwap_control , proto_reg_handoff_capwap ) ;
2013-02-21 15:31:58 +00:00
prefs_register_uint_preference ( capwap_module , " udp.port.control " , " CAPWAP Control UDP Port " ,
" Set the port for CAPWAP Control messages (if other than the default of 5246) " ,
10 , & global_capwap_control_udp_port ) ;
prefs_register_uint_preference ( capwap_module , " udp.port.data " , " CAPWAP Data UDP Port " ,
" Set the port for CAPWAP Data messages (if other than the default of 5247) " ,
10 , & global_capwap_data_udp_port ) ;
prefs_register_bool_preference ( capwap_module , " draft_8_cisco " , " Cisco Wireless Controller Support " ,
" Enable support of Cisco Wireless Controller (based on old 8 draft revision). " ,
& global_capwap_draft_8_cisco ) ;
prefs_register_bool_preference ( capwap_module , " reassemble " , " Reassemble fragmented CAPWAP packets " ,
" Reassemble fragmented CAPWAP packets. " ,
& global_capwap_reassemble ) ;
prefs_register_bool_preference ( capwap_module , " swap_fc " , " Swap Frame Control " ,
" Swap frame control bytes (needed for some APs). " ,
& global_capwap_swap_frame_control ) ;
2009-06-02 21:44:00 +00:00
2009-06-02 18:39:38 +00:00
}
void
proto_reg_handoff_capwap ( void )
{
2013-02-21 15:31:58 +00:00
static gboolean inited = FALSE ;
static dissector_handle_t capwap_control_handle , capwap_data_handle ;
static guint capwap_control_udp_port , capwap_data_udp_port ;
if ( ! inited ) {
2014-08-20 07:46:47 +00:00
capwap_control_handle = new_create_dissector_handle ( dissect_capwap_control , proto_capwap_control ) ;
capwap_data_handle = create_dissector_handle ( dissect_capwap_data , proto_capwap_data ) ;
2013-02-21 15:31:58 +00:00
dtls_handle = find_dissector ( " dtls " ) ;
ieee8023_handle = find_dissector ( " eth_withoutfcs " ) ;
2014-05-29 17:56:46 +00:00
ieee80211_handle = find_dissector ( " wlan_withoutfcs " ) ;
2013-02-21 15:31:58 +00:00
ieee80211_bsfc_handle = find_dissector ( " wlan_bsfc " ) ;
data_handle = find_dissector ( " data " ) ;
inited = TRUE ;
} else {
dissector_delete_uint ( " udp.port " , capwap_control_udp_port , capwap_control_handle ) ;
dissector_delete_uint ( " udp.port " , capwap_data_udp_port , capwap_data_handle ) ;
}
dissector_add_uint ( " udp.port " , global_capwap_control_udp_port , capwap_control_handle ) ;
dissector_add_uint ( " udp.port " , global_capwap_data_udp_port , capwap_data_handle ) ;
capwap_control_udp_port = global_capwap_control_udp_port ;
capwap_data_udp_port = global_capwap_data_udp_port ;
2009-06-02 18:39:38 +00:00
}
2013-02-21 15:31:58 +00:00
/*
* Editor modelines
*
* Local Variables :
* c - basic - offset : 4
* tab - width : 8
* indent - tabs - mode : nil
* End :
*
* ex : set shiftwidth = 4 tabstop = 8 expandtab :
* : indentSize = 4 : tabSize = 8 : noTabs = true :
*/