blob: 86b198cab93db0e6b6fed8723f557dc507b89553 [file] [log] [blame]
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef WIFILOGGER_EVENT_DEFS_H
#define WIFILOGGER_EVENT_DEFS_H
typedef enum {
EVENT_DROP_ID = 0,
EVENT_WLAN_PE = 0x67A, /* 16 byte payload */
/* Events between 0x67b to 0x67f are not used */
EVENT_WLAN_ADD_BLOCK_ACK_SUCCESS = 0x67B, /* 11 byte payload */
EVENT_WLAN_ADD_BLOCK_ACK_FAILED = 0x67C, /* 9 byte payload */
EVENT_WLAN_BRINGUP_STATUS = 0x680, /* 12 byte payload */
EVENT_WLAN_POWERSAVE_WOW = 0x682, /* 11 byte payload */
EVENT_WLAN_EXTSCAN_FEATURE_STARTED = 0xA8E, /* 240 byte payload */
EVENT_WLAN_EXTSCAN_FEATURE_CHANNEL_CONFIG = 0xA8F, /* 243 byte payload */
EVENT_WLAN_EXTSCAN_CYCLE_STARTED = 0xA90, /* 12 byte payload */
EVENT_WLAN_EXTSCAN_CYCLE_COMPLETED = 0xA91, /* 12 byte payload */
EVENT_WLAN_EXTSCAN_BUCKET_STARTED = 0xA92, /* 1 byte payload */
EVENT_WLAN_EXTSCAN_BUCKET_COMPLETED = 0xA93, /* 4 byte payload */
EVENT_WLAN_ROAM_SCAN_STARTED = 0xA94, /* 128 byte payload */
EVENT_WLAN_ROAM_SCAN_COMPLETE = 0xA95,
EVENT_WLAN_ROAM_CANDIDATE_FOUND = 0xA96,
EVENT_WLAN_ROAM_SCAN_CONFIG = 0xA97,
EVENT_WLAN_BT_COEX_BT_SCO_START = 0xA98,
EVENT_WLAN_BT_COEX_BT_SCO_STOP = 0xA99,
EVENT_WLAN_BT_COEX_BT_SCAN_START = 0xA9A,
EVENT_WLAN_BT_COEX_BT_SCAN_STOP = 0xA9B,
EVENT_WLAN_BT_COEX_BT_HID_START = 0xA9C,
EVENT_WLAN_BT_COEX_BT_HID_STOP = 0xA9D,
EVENT_WLAN_WAKE_LOCK = 0xAA2, /* 96 bytes payload */
EVENT_WLAN_EAPOL = 0xA8D, /* 96 bytes payload */
EVENT_WLAN_EXTSCAN_FEATURE_STOP = 0xAA3,
EVENT_WLAN_EXTSCAN_RESULTS_AVAILABLE = 0xAA4,
EVENT_WLAN_BEACON_EVENT = 0xAA6,
EVENT_WLAN_LOG_COMPLETE = 0xAA7,
EVENT_WLAN_LOW_RESOURCE_FAILURE = 0xABB,
EVENT_WLAN_POWERSAVE_WOW_STATS = 0xB33, /* 76 bytes payload */
EVENT_WLAN_STA_KICKOUT = 0xB39, /* 11 bytes payload */
EVENT_WLAN_STA_DATA_STALL = 0xB3A,
EVENT_MAX_ID = 0x0FFF
} event_id_enum_type;
typedef enum {
LOG_DROP_ID = 0,
LOG_WLAN_EXTSCAN_CAPABILITIES = 0x18F1,
LOG_WLAN_EXTSCAN_FEATURE_STARTED = 0x18F2,
} log_id_enum_type;
typedef enum
{
WLAN_PE_DIAG_SCAN_REQ_EVENT = 0,
WLAN_PE_DIAG_SCAN_ABORT_IND_EVENT,
WLAN_PE_DIAG_SCAN_RSP_EVENT,
WLAN_PE_DIAG_JOIN_REQ_EVENT,
WLAN_PE_DIAG_JOIN_RSP_EVENT,
WLAN_PE_DIAG_SETCONTEXT_REQ_EVENT,
WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT,
WLAN_PE_DIAG_REASSOC_REQ_EVENT,
WLAN_PE_DIAG_REASSOC_RSP_EVENT,
WLAN_PE_DIAG_AUTH_REQ_EVENT,
WLAN_PE_DIAG_AUTH_RSP_EVENT = 10,
WLAN_PE_DIAG_DISASSOC_REQ_EVENT,
WLAN_PE_DIAG_DISASSOC_RSP_EVENT,
WLAN_PE_DIAG_DISASSOC_IND_EVENT,
WLAN_PE_DIAG_DISASSOC_CNF_EVENT,
WLAN_PE_DIAG_DEAUTH_REQ_EVENT,
WLAN_PE_DIAG_DEAUTH_RSP_EVENT,
WLAN_PE_DIAG_DEAUTH_IND_EVENT,
WLAN_PE_DIAG_START_BSS_REQ_EVENT,
WLAN_PE_DIAG_START_BSS_RSP_EVENT,
WLAN_PE_DIAG_AUTH_IND_EVENT = 20,
WLAN_PE_DIAG_ASSOC_IND_EVENT,
WLAN_PE_DIAG_ASSOC_CNF_EVENT,
WLAN_PE_DIAG_REASSOC_IND_EVENT,
WLAN_PE_DIAG_SWITCH_CHL_REQ_EVENT,
WLAN_PE_DIAG_SWITCH_CHL_RSP_EVENT,
WLAN_PE_DIAG_STOP_BSS_REQ_EVENT,
WLAN_PE_DIAG_STOP_BSS_RSP_EVENT,
WLAN_PE_DIAG_DEAUTH_CNF_EVENT,
WLAN_PE_DIAG_ADDTS_REQ_EVENT,
WLAN_PE_DIAG_ADDTS_RSP_EVENT = 30,
WLAN_PE_DIAG_DELTS_REQ_EVENT,
WLAN_PE_DIAG_DELTS_RSP_EVENT,
WLAN_PE_DIAG_DELTS_IND_EVENT,
WLAN_PE_DIAG_ENTER_BMPS_REQ_EVENT,
WLAN_PE_DIAG_ENTER_BMPS_RSP_EVENT,
WLAN_PE_DIAG_EXIT_BMPS_REQ_EVENT,
WLAN_PE_DIAG_EXIT_BMPS_RSP_EVENT,
WLAN_PE_DIAG_EXIT_BMPS_IND_EVENT,
WLAN_PE_DIAG_ENTER_IMPS_REQ_EVENT,
WLAN_PE_DIAG_ENTER_IMPS_RSP_EVENT = 40,
WLAN_PE_DIAG_EXIT_IMPS_REQ_EVENT,
WLAN_PE_DIAG_EXIT_IMPS_RSP_EVENT,
WLAN_PE_DIAG_ENTER_UAPSD_REQ_EVENT,
WLAN_PE_DIAG_ENTER_UAPSD_RSP_EVENT,
WLAN_PE_DIAG_EXIT_UAPSD_REQ_EVENT,
WLAN_PE_DIAG_EXIT_UAPSD_RSP_EVENT,
WLAN_PE_DIAG_WOWL_ADD_BCAST_PTRN_EVENT,
WLAN_PE_DIAG_WOWL_DEL_BCAST_PTRN_EVENT,
WLAN_PE_DIAG_ENTER_WOWL_REQ_EVENT,
WLAN_PE_DIAG_ENTER_WOWL_RSP_EVENT = 50,
WLAN_PE_DIAG_EXIT_WOWL_REQ_EVENT,
WLAN_PE_DIAG_EXIT_WOWL_RSP_EVENT,
WLAN_PE_DIAG_HAL_ADDBA_REQ_EVENT,
WLAN_PE_DIAG_HAL_ADDBA_RSP_EVENT,
WLAN_PE_DIAG_HAL_DELBA_IND_EVENT,
WLAN_PE_DIAG_HB_FAILURE_TIMEOUT,
WLAN_PE_DIAG_PRE_AUTH_REQ_EVENT,
WLAN_PE_DIAG_PRE_AUTH_RSP_EVENT,
WLAN_PE_DIAG_PREAUTH_DONE,
WLAN_PE_DIAG_REASSOCIATING = 60,
WLAN_PE_DIAG_CONNECTED,
WLAN_PE_DIAG_ASSOC_REQ_EVENT,
WLAN_PE_DIAG_AUTH_COMP_EVENT,
WLAN_PE_DIAG_ASSOC_COMP_EVENT,
WLAN_PE_DIAG_AUTH_START_EVENT,
WLAN_PE_DIAG_ASSOC_START_EVENT,
WLAN_PE_DIAG_REASSOC_START_EVENT,
WLAN_PE_DIAG_ROAM_AUTH_START_EVENT,
WLAN_PE_DIAG_ROAM_AUTH_COMP_EVENT,
WLAN_PE_DIAG_ROAM_ASSOC_START_EVENT = 70,
WLAN_PE_DIAG_ROAM_ASSOC_COMP_EVENT,
WLAN_PE_DIAG_SCAN_COMP_EVENT,
WLAN_PE_DIAG_SCAN_RES_FOUND_EVENT,
WLAN_PE_DIAG_ASSOC_TIMEOUT,
WLAN_PE_DIAG_AUTH_TIMEOUT,
} wlan_host_diag_event_type;
typedef struct wlan_pe_event {
char bssid[6];
u16 event_type;
u16 sme_state;
u16 mlm_state;
u16 status;
u16 reason_code;
} __attribute__((packed)) wlan_pe_event_t;
typedef enum {
WLAN_DRIVER_EAPOL_FRAME_TRANSMIT_REQUESTED = 0,
WLAN_DRIVER_EAPOL_FRAME_RECEIVED,
} wlan_eapol_event_type;
#define EAPOL_MASK 0x8013
#define EAPOL_M1_MASK 0x8000
#define EAPOL_M2_MASK 0x0001
#define EAPOL_M3_MASK 0x8013
#define EAPOL_M4_MASK 0x0003
typedef struct wlan_eapol_event {
u8 event_sub_type;
u8 eapol_packet_type;
u16 eapol_key_info;
u16 eapol_rate;
u8 dest_addr[6];
u8 src_addr[6];
} __attribute__((packed)) wlan_eapol_event_t;
/*EVENT_WLAN_EXTSCAN_FEATURE_STARTED */
typedef struct wlan_ext_bucket {
u8 bucket_id;
u8 base_period_multiplier;
u16 min_dwell_time_active;
u16 max_dwell_time_active;
u16 min_dwell_time_passive;
u16 max_dwell_time_passive;
u8 num_channels;
u8 channel_offset;
u8 forwarding_flags;
u8 channel_band;
u32 notify_extscan_events;
} __attribute__((packed)) wlan_ext_bucket_t;
typedef struct {
u32 base_period;
u32 max_iterations;
u32 forwarding_flags;
u32 configuration_flags;
u32 notify_extscan_events;
u32 scan_priority;
u32 max_bssids_per_scan_cycle;
u32 min_rssi;
u32 max_table_usage;
u32 min_dwell_time_active;
u32 max_dwell_time_active;
u32 min_dwell_time_passive;
u32 max_dwell_time_passive;
u32 min_rest_time;
u32 max_rest_time;
u32 n_probes;
u32 repeat_probe_time;
u32 probe_spacing_time;
u32 idle_time;
u32 max_scan_time;
u32 probe_delay;
u32 scan_ctrl_flags;
u32 burst_duration;
u32 num_buckets;
wlan_ext_bucket bucket_list[8];
} __attribute__((packed)) wlan_ext_scan_feature_started_payload_type;
/*End EVENT_WLAN_EXTSCAN_FEATURE_STARTED*/
/*EVENT_WLAN_EXTSCAN_FEATURE_CHANNEL_CONFIG*/
typedef struct {
u8 bucket_id;
u16 scan_channels[40];
} __attribute__((packed)) wlan_ext_bucket_channels;
typedef struct {
wlan_ext_bucket_channels bucket_list[3];
} __attribute__((packed)) wlan_ext_bucket_channel_config_payload_type;
/*End EVENT_WLAN_EXTSCAN_FEATURE_CHANNEL_CONFIG*/
/*EVENT_WLAN_EXTSCAN_CYCLE_STARTED*/
typedef struct {
u32 scan_id;
u32 timer_tick;
u32 scheduled_bucket_mask;
u32 scan_cycle_count;
} __attribute__((packed)) wlan_ext_scan_cycle_started_payload_type;
/*End EVENT_WLAN_EXTSCAN_CYCLE_STARTED*/
/*EVENT_WLAN_EXTSCAN_CYCLE_COMPLETED*/
typedef struct {
u32 scan_id;
u32 timer_tick;
u32 scheduled_bucket_mask;
u32 scan_cycle_count;
} __attribute__((packed)) wlan_ext_scan_cycle_completed_payload_type;
/*End EVENT_WLAN_EXTSCAN_CYCLE_COMPLETED*/
/*EVENT_WLAN_EXTSCAN_BUCKET_STARTED*/
typedef struct {
u8 bucket_id;
} __attribute__((packed)) wlan_ext_scan_bucket_started_payload_type;
/*End EVENT_WLAN_EXTSCAN_BUCKET_STARTED*/
/*EVENT_WLAN_EXTSCAN_BUCKET_COMPLETED*/
typedef struct {
u8 bucket_id;
} __attribute__((packed)) wlan_ext_scan_bucket_completed_payload_type;
/*End EVENT_WLAN_EXTSCAN_BUCKET_COMPLETED*/
/*EVENT_WLAN_ROAM_SCAN_STARTED*/
typedef struct {
u32 scan_id;
u32 roam_scan_flags;
u32 cur_rssi;
u16 scan_params[18];
u16 scan_channels[40]; // first 40 channels only
} __attribute__((packed)) wlan_roam_scan_started_payload_type;
/*End EVENT_WLAN_ROAM_SCAN_STARTED*/
/*EVENT_WLAN_ROAM_SCAN_COMPLETE*/
typedef struct {
u32 scan_id;
u32 reason;
u32 completion_flags;
u32 num_candidate;
u32 flags;
} __attribute__((packed)) wlan_roam_scan_complete_payload_type;
/*End EVENT_WLAN_ROAM_SCAN_COMPLETE*/
/*EVENT_WLAN_ROAM_CANDIDATE_FOUND*/
typedef struct {
u8 channel;
u8 rssi;
u8 bssid[6];
u8 ssid[33];
u8 auth_mode;
u8 ucast_cipher;
u8 mcast_cipher;
} __attribute__((packed)) wlan_roam_candidate_found_payload_type;
/*End EVENT_WLAN_ROAM_CANDIDATE_FOUND*/
/*EVENT_WLAN_ROAM_SCAN_CONFIG*/
typedef struct {
u32 flags;
u32 roam_scan_config[8];
} __attribute__((packed)) wlan_roam_scan_config_payload_type;
/*End EVENT_WLAN_ROAM_SCAN_CONFIG*/
/* EVENT_WLAN_BT_COEX_BT_SCO_START */
typedef struct {
u8 link_id;
u8 link_state;
u8 link_role;
u8 link_type;
u16 Tsco;
u8 Rsco;
} __attribute__((packed)) wlan_bt_coex_bt_sco_start_payload_type;
/* End EVENT_WLAN_BT_COEX_BT_SCO_START */
/* EVENT_WLAN_BT_COEX_BT_SCO_STOP */
typedef struct {
u8 link_id;
u8 link_state;
u8 link_role;
u8 link_type;
u16 Tsco;
u8 Rsco;
} __attribute__((packed)) wlan_bt_coex_bt_sco_stop_payload_type;
/* End EVENT_WLAN_BT_COEX_BT_SCO_STOP */
/* EVENT_WLAN_BT_COEX_BT_SCAN_START */
typedef struct {
u8 scan_type;
u8 scan_bitmap;
} __attribute__((packed)) wlan_bt_coex_bt_scan_start_payload_type;
/* End EVENT_WLAN_BT_COEX_BT_SCAN_START */
/* EVENT_WLAN_BT_COEX_BT_SCAN_STOP */
typedef struct {
u8 scan_type;
u8 scan_bitmap;
} __attribute__((packed)) wlan_bt_coex_bt_scan_stop_payload_type;
/* End EVENT_WLAN_BT_COEX_BT_SCAN_STOP */
/* EVENT_WIFI_BT_COEX_BT_HID_START */
typedef struct {
u8 link_id;
u8 link_state;
u8 link_role;
u8 Tsniff;
u8 attempts;
} __attribute__((packed)) wlan_bt_coex_bt_hid_start_payload_type;
/* End EVENT_WIFI_BT_COEX_BT_HID_START */
/* EVENT_WIFI_BT_COEX_BT_HID_STOP */
typedef struct {
u8 link_id;
u8 link_state;
u8 link_role;
u8 Tsniff;
u8 attempts;
} __attribute__((packed)) wlan_bt_coex_bt_hid_stop_payload_type;
/* End EVENT_WIFI_BT_COEX_BT_HID_STOP */
/* EVENT_WLAN_EXTSCAN_FEATURE_STOP */
typedef struct {
u32 request_id;
} __attribute__((packed)) wlan_ext_scan_feature_stop_payload_type;
/* End EVENT_WLAN_EXTSCAN_FEATURE_STOP */
/* EVENT_WLAN_EXTSCAN_RESULTS_AVAILABLE */
typedef struct {
u32 request_id;
u32 table_type;
u32 entries_in_use;
u32 maximum_entries;
u32 scan_count_after_getResults;
u8 threshold_num_scans;
} __attribute__((packed)) wlan_ext_scan_results_available_payload_type;
/* End EVENT_WLAN_EXTSCAN_RESULTS_AVAILABLE */
/* Log LOG_WLAN_EXTSCAN_CAPABILITIES */
typedef struct {
u32 header;
u32 request_id;
u32 requestor_id;
u32 vdev_id;
u32 num_extscan_cache_tables;
u32 num_wlan_change_monitor_tables;
u32 num_hotlist_monitor_tables;
u32 rtt_one_sided_supported;
u32 rtt_11v_supported;
u32 rtt_ftm_supported;
u32 num_extscan_cache_capabilities;
u32 num_extscan_wlan_change_capabilities;
u32 num_extscan_hotlist_capabilities;
u32 num_roam_ssid_whitelist;
u32 num_roam_bssid_blacklist;
u32 num_roam_bssid_preferred_list;
u32 num_extscan_hotlist_ssid;
u32 num_epno_networks;
} __attribute__((packed)) wlan_extscan_capabilities_event_fixed_param;
typedef struct {
u32 header;
u32 table_id;
u32 scan_cache_entry_size;
u32 max_scan_cache_entries;
u32 max_buckets;
u32 max_bssid_per_scan;
u32 max_table_usage_threshold;
} __attribute__((packed)) wlan_extscan_cache_capabilities;
typedef struct {
u32 tlv_header;
u32 table_id;
u32 wlan_hotlist_entry_size;
u32 max_hotlist_entries;
} __attribute__((packed)) wlan_extscan_hotlist_monitor_capabilities;
typedef struct {
u32 request_id;
wlan_extscan_capabilities_event_fixed_param extscan_capabilities;
wlan_extscan_cache_capabilities extscan_cache_capabilities;
wlan_extscan_hotlist_monitor_capabilities extscan_hotlist_monitor_capabilities;
} __attribute__((packed)) wlan_ext_scan_capabilities_payload_type;
/* End LOG_WLAN_EXTSCAN_CAPABILITIES */
/* EVENT_WLAN_BEACON_RECEIVED */
typedef struct {
u8 bssid[6];
u32 beacon_rssi;
} __attribute__((packed)) wlan_beacon_received_payload_type;
/* End EVENT_WLAN_BEACON_RECEIVED */
typedef struct {
u8 ucBaPeerMac[6];
u8 ucBaTid;
u8 ucBaBufferSize;
u16 ucBaSSN;
u8 fInitiator;
} __attribute__((packed)) wlan_add_block_ack_success_payload_type;
/* EVENT_WLAN_ADD_BLOCK_ACK_FAILED */
typedef struct {
u8 ucBaPeerMac[6];
u8 ucBaTid;
u8 ucReasonCode;
u8 fInitiator;
} __attribute__((packed)) wlan_add_block_ack_failed_payload_type;
typedef enum
{
WIFI_EVENT_MEMORY_FAILURE,
} resource_failure_type;
typedef struct wlan_low_resource_failure_event
{
resource_failure_type event_sub_type;
} __attribute__((packed)) wlan_low_resource_failure_event_t;
/* EVENT_WLAN_POWERSAVE_WOW */
typedef struct {
u8 event_subtype;
u8 wow_type;
u8 wow_magic_pattern[6];
u8 wow_del_ptrn_id;
u8 wow_wakeup_cause;
u8 wow_wakeup_cause_pbm_ptrn_id;
} __attribute__((packed)) wlan_wow_payload_t;
/* EVENT_WLAN_POWERSAVE_WOW_STATS */
typedef struct {
u32 wow_ucast_wake_up_count;
u32 wow_bcast_wake_up_count;
u32 wow_ipv4_mcast_wake_up_count;
u32 wow_ipv6_mcast_wake_up_count;
u32 wow_ipv6_mcast_ra_stats;
u32 wow_ipv6_mcast_ns_stats;
u32 wow_ipv6_mcast_na_stats;
u32 wow_pno_match_wake_up_count;
u32 wow_pno_complete_wake_up_count;
u32 wow_gscan_wake_up_count;
u32 wow_low_rssi_wake_up_count;
u32 wow_rssi_breach_wake_up_count;
u32 wow_icmpv4_count;
u32 wow_icmpv6_count;
u32 wow_oem_response_wake_up_count;
u32 Reserved_1;
u32 Reserved_2;
u32 Reserved_3;
u32 Reserved_4;
} __attribute__((packed)) wlan_wow_stats_t;
/* EVENT_WLAN_STA_KICKOUT */
typedef struct {
u32 reasoncode;
u8 peer_mac[6];
u8 vdev_id;
} __attribute__((packed)) wlan_kickout_t;
/* EVENT_WLAN_BRINGUP_STATUS */
typedef struct {
u16 wlan_status;
u8 driver_version[10];
} __attribute__((packed)) wlan_status_payload_t;
#endif /* WIFILOGGER_EVENT_DEFS_H */