• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2015, The Linux Foundation. All rights reserved.
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are
5  * met:
6  *     * Redistributions of source code must retain the above copyright
7  *       notice, this list of conditions and the following disclaimer.
8  *     * Redistributions in binary form must reproduce the above
9  *       copyright notice, this list of conditions and the following
10  *       disclaimer in the documentation and/or other materials provided
11  *       with the distribution.
12  *     * Neither the name of The Linux Foundation nor the names of its
13  *       contributors may be used to endorse or promote products derived
14  *       from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef WIFILOGGER_EVENT_DEFS_H
30 #define WIFILOGGER_EVENT_DEFS_H
31 
32 typedef enum {
33     EVENT_DROP_ID = 0,
34 
35     EVENT_WLAN_PE = 0x67A, /* 16 byte payload */
36 
37     /* Events between 0x67b to 0x67f are not used */
38 
39     EVENT_WLAN_ADD_BLOCK_ACK_SUCCESS = 0x67B,        /* 11 byte payload */
40     EVENT_WLAN_ADD_BLOCK_ACK_FAILED = 0x67C,         /* 9 byte payload */
41     EVENT_WLAN_BRINGUP_STATUS = 0x680,               /* 12 byte payload */
42     EVENT_WLAN_POWERSAVE_WOW = 0x682,                /* 11 byte payload */
43 
44     EVENT_WLAN_EXTSCAN_FEATURE_STARTED =   0xA8E, /* 240 byte payload */
45     EVENT_WLAN_EXTSCAN_FEATURE_CHANNEL_CONFIG = 0xA8F, /* 243 byte payload */
46     EVENT_WLAN_EXTSCAN_CYCLE_STARTED = 0xA90, /* 12 byte payload */
47     EVENT_WLAN_EXTSCAN_CYCLE_COMPLETED = 0xA91, /* 12 byte payload */
48     EVENT_WLAN_EXTSCAN_BUCKET_STARTED = 0xA92, /* 1 byte payload */
49     EVENT_WLAN_EXTSCAN_BUCKET_COMPLETED = 0xA93, /* 4 byte payload */
50     EVENT_WLAN_ROAM_SCAN_STARTED = 0xA94, /* 128 byte payload */
51 
52 
53     EVENT_WLAN_ROAM_SCAN_COMPLETE = 0xA95,
54     EVENT_WLAN_ROAM_CANDIDATE_FOUND = 0xA96,
55     EVENT_WLAN_ROAM_SCAN_CONFIG = 0xA97,
56     EVENT_WLAN_BT_COEX_BT_SCO_START = 0xA98,
57     EVENT_WLAN_BT_COEX_BT_SCO_STOP = 0xA99,
58     EVENT_WLAN_BT_COEX_BT_SCAN_START = 0xA9A,
59     EVENT_WLAN_BT_COEX_BT_SCAN_STOP = 0xA9B,
60     EVENT_WLAN_BT_COEX_BT_HID_START = 0xA9C,
61     EVENT_WLAN_BT_COEX_BT_HID_STOP = 0xA9D,
62     EVENT_WLAN_WAKE_LOCK = 0xAA2, /* 96 bytes payload */
63     EVENT_WLAN_EAPOL = 0xA8D, /* 96 bytes payload */
64     EVENT_WLAN_EXTSCAN_FEATURE_STOP = 0xAA3,
65     EVENT_WLAN_EXTSCAN_RESULTS_AVAILABLE = 0xAA4,
66     EVENT_WLAN_BEACON_EVENT = 0xAA6,
67     EVENT_WLAN_LOG_COMPLETE = 0xAA7,
68     EVENT_WLAN_LOW_RESOURCE_FAILURE = 0xABB,
69     EVENT_WLAN_POWERSAVE_WOW_STATS = 0xB33, /* 76 bytes payload */
70     EVENT_WLAN_STA_KICKOUT = 0xB39, /* 11 bytes payload */
71     EVENT_WLAN_STA_DATA_STALL = 0xB3A,
72 
73     EVENT_MAX_ID = 0x0FFF
74 } event_id_enum_type;
75 
76 typedef enum {
77     LOG_DROP_ID = 0,
78     LOG_WLAN_EXTSCAN_CAPABILITIES = 0x18F1,
79     LOG_WLAN_EXTSCAN_FEATURE_STARTED = 0x18F2,
80 } log_id_enum_type;
81 
82 typedef enum
83 {
84     WLAN_PE_DIAG_SCAN_REQ_EVENT = 0,
85     WLAN_PE_DIAG_SCAN_ABORT_IND_EVENT,
86     WLAN_PE_DIAG_SCAN_RSP_EVENT,
87     WLAN_PE_DIAG_JOIN_REQ_EVENT,
88     WLAN_PE_DIAG_JOIN_RSP_EVENT,
89     WLAN_PE_DIAG_SETCONTEXT_REQ_EVENT,
90     WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT,
91     WLAN_PE_DIAG_REASSOC_REQ_EVENT,
92     WLAN_PE_DIAG_REASSOC_RSP_EVENT,
93     WLAN_PE_DIAG_AUTH_REQ_EVENT,
94     WLAN_PE_DIAG_AUTH_RSP_EVENT = 10,
95     WLAN_PE_DIAG_DISASSOC_REQ_EVENT,
96     WLAN_PE_DIAG_DISASSOC_RSP_EVENT,
97     WLAN_PE_DIAG_DISASSOC_IND_EVENT,
98     WLAN_PE_DIAG_DISASSOC_CNF_EVENT,
99     WLAN_PE_DIAG_DEAUTH_REQ_EVENT,
100     WLAN_PE_DIAG_DEAUTH_RSP_EVENT,
101     WLAN_PE_DIAG_DEAUTH_IND_EVENT,
102     WLAN_PE_DIAG_START_BSS_REQ_EVENT,
103     WLAN_PE_DIAG_START_BSS_RSP_EVENT,
104     WLAN_PE_DIAG_AUTH_IND_EVENT = 20,
105     WLAN_PE_DIAG_ASSOC_IND_EVENT,
106     WLAN_PE_DIAG_ASSOC_CNF_EVENT,
107     WLAN_PE_DIAG_REASSOC_IND_EVENT,
108     WLAN_PE_DIAG_SWITCH_CHL_REQ_EVENT,
109     WLAN_PE_DIAG_SWITCH_CHL_RSP_EVENT,
110     WLAN_PE_DIAG_STOP_BSS_REQ_EVENT,
111     WLAN_PE_DIAG_STOP_BSS_RSP_EVENT,
112     WLAN_PE_DIAG_DEAUTH_CNF_EVENT,
113     WLAN_PE_DIAG_ADDTS_REQ_EVENT,
114     WLAN_PE_DIAG_ADDTS_RSP_EVENT = 30,
115     WLAN_PE_DIAG_DELTS_REQ_EVENT,
116     WLAN_PE_DIAG_DELTS_RSP_EVENT,
117     WLAN_PE_DIAG_DELTS_IND_EVENT,
118     WLAN_PE_DIAG_ENTER_BMPS_REQ_EVENT,
119     WLAN_PE_DIAG_ENTER_BMPS_RSP_EVENT,
120     WLAN_PE_DIAG_EXIT_BMPS_REQ_EVENT,
121     WLAN_PE_DIAG_EXIT_BMPS_RSP_EVENT,
122     WLAN_PE_DIAG_EXIT_BMPS_IND_EVENT,
123     WLAN_PE_DIAG_ENTER_IMPS_REQ_EVENT,
124     WLAN_PE_DIAG_ENTER_IMPS_RSP_EVENT = 40,
125     WLAN_PE_DIAG_EXIT_IMPS_REQ_EVENT,
126     WLAN_PE_DIAG_EXIT_IMPS_RSP_EVENT,
127     WLAN_PE_DIAG_ENTER_UAPSD_REQ_EVENT,
128     WLAN_PE_DIAG_ENTER_UAPSD_RSP_EVENT,
129     WLAN_PE_DIAG_EXIT_UAPSD_REQ_EVENT,
130     WLAN_PE_DIAG_EXIT_UAPSD_RSP_EVENT,
131     WLAN_PE_DIAG_WOWL_ADD_BCAST_PTRN_EVENT,
132     WLAN_PE_DIAG_WOWL_DEL_BCAST_PTRN_EVENT,
133     WLAN_PE_DIAG_ENTER_WOWL_REQ_EVENT,
134     WLAN_PE_DIAG_ENTER_WOWL_RSP_EVENT = 50,
135     WLAN_PE_DIAG_EXIT_WOWL_REQ_EVENT,
136     WLAN_PE_DIAG_EXIT_WOWL_RSP_EVENT,
137     WLAN_PE_DIAG_HAL_ADDBA_REQ_EVENT,
138     WLAN_PE_DIAG_HAL_ADDBA_RSP_EVENT,
139     WLAN_PE_DIAG_HAL_DELBA_IND_EVENT,
140     WLAN_PE_DIAG_HB_FAILURE_TIMEOUT,
141     WLAN_PE_DIAG_PRE_AUTH_REQ_EVENT,
142     WLAN_PE_DIAG_PRE_AUTH_RSP_EVENT,
143     WLAN_PE_DIAG_PREAUTH_DONE,
144     WLAN_PE_DIAG_REASSOCIATING = 60,
145     WLAN_PE_DIAG_CONNECTED,
146     WLAN_PE_DIAG_ASSOC_REQ_EVENT,
147     WLAN_PE_DIAG_AUTH_COMP_EVENT,
148     WLAN_PE_DIAG_ASSOC_COMP_EVENT,
149     WLAN_PE_DIAG_AUTH_START_EVENT,
150     WLAN_PE_DIAG_ASSOC_START_EVENT,
151     WLAN_PE_DIAG_REASSOC_START_EVENT,
152     WLAN_PE_DIAG_ROAM_AUTH_START_EVENT,
153     WLAN_PE_DIAG_ROAM_AUTH_COMP_EVENT,
154     WLAN_PE_DIAG_ROAM_ASSOC_START_EVENT = 70,
155     WLAN_PE_DIAG_ROAM_ASSOC_COMP_EVENT,
156     WLAN_PE_DIAG_SCAN_COMP_EVENT,
157     WLAN_PE_DIAG_SCAN_RES_FOUND_EVENT,
158     WLAN_PE_DIAG_ASSOC_TIMEOUT,
159     WLAN_PE_DIAG_AUTH_TIMEOUT,
160 } wlan_host_diag_event_type;
161 
162 typedef struct wlan_pe_event {
163     char bssid[6];
164     u16 event_type;
165     u16 sme_state;
166     u16 mlm_state;
167     u16 status;
168     u16 reason_code;
169 } __attribute__((packed)) wlan_pe_event_t;
170 
171 typedef enum {
172     WLAN_DRIVER_EAPOL_FRAME_TRANSMIT_REQUESTED = 0,
173     WLAN_DRIVER_EAPOL_FRAME_RECEIVED,
174 } wlan_eapol_event_type;
175 
176 #define EAPOL_MASK 0x8013
177 #define EAPOL_M1_MASK 0x8000
178 #define EAPOL_M2_MASK 0x0001
179 #define EAPOL_M3_MASK 0x8013
180 #define EAPOL_M4_MASK 0x0003
181 
182 typedef struct wlan_eapol_event {
183     u8 event_sub_type;
184     u8 eapol_packet_type;
185     u16 eapol_key_info;
186     u16 eapol_rate;
187     u8 dest_addr[6];
188     u8 src_addr[6];
189 } __attribute__((packed)) wlan_eapol_event_t;
190 
191 /*EVENT_WLAN_EXTSCAN_FEATURE_STARTED */
192 typedef struct wlan_ext_bucket {
193     u8 bucket_id;
194     u8 base_period_multiplier;
195     u16 min_dwell_time_active;
196     u16 max_dwell_time_active;
197     u16 min_dwell_time_passive;
198     u16 max_dwell_time_passive;
199     u8 num_channels;
200     u8 channel_offset;
201     u8 forwarding_flags;
202     u8 channel_band;
203     u32 notify_extscan_events;
204 } __attribute__((packed)) wlan_ext_bucket_t;
205 
206 typedef struct {
207     u32 base_period;
208     u32 max_iterations;
209     u32 forwarding_flags;
210     u32 configuration_flags;
211     u32 notify_extscan_events;
212     u32 scan_priority;
213     u32 max_bssids_per_scan_cycle;
214     u32 min_rssi;
215     u32 max_table_usage;
216     u32 min_dwell_time_active;
217     u32 max_dwell_time_active;
218     u32 min_dwell_time_passive;
219     u32 max_dwell_time_passive;
220     u32 min_rest_time;
221     u32 max_rest_time;
222     u32 n_probes;
223     u32 repeat_probe_time;
224     u32 probe_spacing_time;
225     u32 idle_time;
226     u32 max_scan_time;
227     u32 probe_delay;
228     u32 scan_ctrl_flags;
229     u32 burst_duration;
230     u32 num_buckets;
231     wlan_ext_bucket bucket_list[8];
232 } __attribute__((packed)) wlan_ext_scan_feature_started_payload_type;
233 /*End EVENT_WLAN_EXTSCAN_FEATURE_STARTED*/
234 
235 /*EVENT_WLAN_EXTSCAN_FEATURE_CHANNEL_CONFIG*/
236 typedef struct {
237     u8 bucket_id;
238     u16 scan_channels[40];
239 } __attribute__((packed)) wlan_ext_bucket_channels;
240 
241 typedef struct {
242     wlan_ext_bucket_channels bucket_list[3];
243 } __attribute__((packed)) wlan_ext_bucket_channel_config_payload_type;
244 
245 /*End EVENT_WLAN_EXTSCAN_FEATURE_CHANNEL_CONFIG*/
246 
247 /*EVENT_WLAN_EXTSCAN_CYCLE_STARTED*/
248 typedef struct {
249     u32 scan_id;
250     u32 timer_tick;
251     u32 scheduled_bucket_mask;
252     u32 scan_cycle_count;
253 } __attribute__((packed)) wlan_ext_scan_cycle_started_payload_type;
254 /*End EVENT_WLAN_EXTSCAN_CYCLE_STARTED*/
255 
256 /*EVENT_WLAN_EXTSCAN_CYCLE_COMPLETED*/
257 typedef struct {
258     u32 scan_id;
259     u32 timer_tick;
260     u32 scheduled_bucket_mask;
261     u32 scan_cycle_count;
262 } __attribute__((packed)) wlan_ext_scan_cycle_completed_payload_type;
263 /*End EVENT_WLAN_EXTSCAN_CYCLE_COMPLETED*/
264 
265 /*EVENT_WLAN_EXTSCAN_BUCKET_STARTED*/
266 typedef struct {
267     u8 bucket_id;
268 } __attribute__((packed)) wlan_ext_scan_bucket_started_payload_type;
269 /*End EVENT_WLAN_EXTSCAN_BUCKET_STARTED*/
270 
271 /*EVENT_WLAN_EXTSCAN_BUCKET_COMPLETED*/
272 typedef struct {
273     u8 bucket_id;
274 } __attribute__((packed))  wlan_ext_scan_bucket_completed_payload_type;
275 /*End EVENT_WLAN_EXTSCAN_BUCKET_COMPLETED*/
276 
277 /*EVENT_WLAN_ROAM_SCAN_STARTED*/
278 typedef struct {
279     u32 scan_id;
280     u32 roam_scan_flags;
281     u32 cur_rssi;
282     u16 scan_params[18];
283     u16 scan_channels[40]; // first 40 channels only
284 } __attribute__((packed)) wlan_roam_scan_started_payload_type;
285 /*End EVENT_WLAN_ROAM_SCAN_STARTED*/
286 
287 /*EVENT_WLAN_ROAM_SCAN_COMPLETE*/
288 typedef struct {
289     u32 scan_id;
290     u32 reason;
291     u32 completion_flags;
292     u32 num_candidate;
293     u32 flags;
294 } __attribute__((packed)) wlan_roam_scan_complete_payload_type;
295 /*End EVENT_WLAN_ROAM_SCAN_COMPLETE*/
296 
297 /*EVENT_WLAN_ROAM_CANDIDATE_FOUND*/
298 typedef struct {
299     u8 channel;
300     u8 rssi;
301     u8 bssid[6];
302     u8 ssid[33];
303     u8 auth_mode;
304     u8 ucast_cipher;
305     u8 mcast_cipher;
306 } __attribute__((packed)) wlan_roam_candidate_found_payload_type;
307 /*End EVENT_WLAN_ROAM_CANDIDATE_FOUND*/
308 
309 /*EVENT_WLAN_ROAM_SCAN_CONFIG*/
310 typedef struct {
311     u32 flags;
312     u32 roam_scan_config[8];
313 } __attribute__((packed)) wlan_roam_scan_config_payload_type;
314 /*End EVENT_WLAN_ROAM_SCAN_CONFIG*/
315 
316 /* EVENT_WLAN_BT_COEX_BT_SCO_START */
317 typedef struct {
318     u8 link_id;
319     u8 link_state;
320     u8 link_role;
321     u8 link_type;
322     u16 Tsco;
323     u8 Rsco;
324 } __attribute__((packed)) wlan_bt_coex_bt_sco_start_payload_type;
325 /* End EVENT_WLAN_BT_COEX_BT_SCO_START */
326 
327 /* EVENT_WLAN_BT_COEX_BT_SCO_STOP */
328 typedef struct {
329     u8 link_id;
330     u8 link_state;
331     u8 link_role;
332     u8 link_type;
333     u16 Tsco;
334     u8 Rsco;
335 } __attribute__((packed)) wlan_bt_coex_bt_sco_stop_payload_type;
336 /* End EVENT_WLAN_BT_COEX_BT_SCO_STOP */
337 
338 /* EVENT_WLAN_BT_COEX_BT_SCAN_START */
339 typedef struct {
340     u8 scan_type;
341     u8 scan_bitmap;
342 } __attribute__((packed)) wlan_bt_coex_bt_scan_start_payload_type;
343 
344 /* End EVENT_WLAN_BT_COEX_BT_SCAN_START */
345 
346 /* EVENT_WLAN_BT_COEX_BT_SCAN_STOP */
347 typedef struct {
348     u8 scan_type;
349     u8 scan_bitmap;
350 } __attribute__((packed)) wlan_bt_coex_bt_scan_stop_payload_type;
351 /* End EVENT_WLAN_BT_COEX_BT_SCAN_STOP */
352 
353 /* EVENT_WIFI_BT_COEX_BT_HID_START */
354 typedef struct {
355     u8 link_id;
356     u8 link_state;
357     u8 link_role;
358     u8 Tsniff;
359     u8 attempts;
360 } __attribute__((packed)) wlan_bt_coex_bt_hid_start_payload_type;
361 /* End EVENT_WIFI_BT_COEX_BT_HID_START */
362 
363 /* EVENT_WIFI_BT_COEX_BT_HID_STOP */
364 typedef struct {
365     u8 link_id;
366     u8 link_state;
367     u8 link_role;
368     u8 Tsniff;
369     u8 attempts;
370 } __attribute__((packed)) wlan_bt_coex_bt_hid_stop_payload_type;
371 /* End EVENT_WIFI_BT_COEX_BT_HID_STOP */
372 
373 /* EVENT_WLAN_EXTSCAN_FEATURE_STOP */
374 typedef struct {
375     u32 request_id;
376 } __attribute__((packed)) wlan_ext_scan_feature_stop_payload_type;
377 /* End EVENT_WLAN_EXTSCAN_FEATURE_STOP */
378 
379 /* EVENT_WLAN_EXTSCAN_RESULTS_AVAILABLE */
380 typedef struct {
381     u32 request_id;
382     u32 table_type;
383     u32 entries_in_use;
384     u32 maximum_entries;
385     u32 scan_count_after_getResults;
386     u8 threshold_num_scans;
387 } __attribute__((packed)) wlan_ext_scan_results_available_payload_type;
388 /* End EVENT_WLAN_EXTSCAN_RESULTS_AVAILABLE */
389 
390 /* Log LOG_WLAN_EXTSCAN_CAPABILITIES */
391 typedef struct {
392     u32 header;
393     u32 request_id;
394     u32 requestor_id;
395     u32 vdev_id;
396     u32 num_extscan_cache_tables;
397     u32 num_wlan_change_monitor_tables;
398     u32 num_hotlist_monitor_tables;
399     u32 rtt_one_sided_supported;
400     u32 rtt_11v_supported;
401     u32 rtt_ftm_supported;
402     u32 num_extscan_cache_capabilities;
403     u32 num_extscan_wlan_change_capabilities;
404     u32 num_extscan_hotlist_capabilities;
405     u32 num_roam_ssid_whitelist;
406     u32 num_roam_bssid_blacklist;
407     u32 num_roam_bssid_preferred_list;
408     u32 num_extscan_hotlist_ssid;
409     u32 num_epno_networks;
410 } __attribute__((packed)) wlan_extscan_capabilities_event_fixed_param;
411 
412 typedef struct {
413     u32 header;
414     u32 table_id;
415     u32 scan_cache_entry_size;
416     u32 max_scan_cache_entries;
417     u32 max_buckets;
418     u32 max_bssid_per_scan;
419     u32 max_table_usage_threshold;
420 } __attribute__((packed)) wlan_extscan_cache_capabilities;
421 
422 typedef struct {
423     u32 tlv_header;
424     u32 table_id;
425     u32 wlan_hotlist_entry_size;
426     u32 max_hotlist_entries;
427 } __attribute__((packed)) wlan_extscan_hotlist_monitor_capabilities;
428 
429 typedef struct {
430     u32 request_id;
431     wlan_extscan_capabilities_event_fixed_param extscan_capabilities;
432     wlan_extscan_cache_capabilities extscan_cache_capabilities;
433     wlan_extscan_hotlist_monitor_capabilities extscan_hotlist_monitor_capabilities;
434 } __attribute__((packed)) wlan_ext_scan_capabilities_payload_type;
435 /* End LOG_WLAN_EXTSCAN_CAPABILITIES */
436 
437 /* EVENT_WLAN_BEACON_RECEIVED */
438 typedef struct {
439     u8 bssid[6];
440     u32 beacon_rssi;
441 } __attribute__((packed)) wlan_beacon_received_payload_type;
442 /* End EVENT_WLAN_BEACON_RECEIVED */
443 
444 typedef struct {
445     u8 ucBaPeerMac[6];
446     u8 ucBaTid;
447     u8 ucBaBufferSize;
448     u16 ucBaSSN;
449     u8 fInitiator;
450 } __attribute__((packed)) wlan_add_block_ack_success_payload_type;
451 
452 /* EVENT_WLAN_ADD_BLOCK_ACK_FAILED */
453 typedef struct {
454     u8 ucBaPeerMac[6];
455     u8 ucBaTid;
456     u8 ucReasonCode;
457     u8 fInitiator;
458 } __attribute__((packed)) wlan_add_block_ack_failed_payload_type;
459 
460 typedef enum
461 {
462     WIFI_EVENT_MEMORY_FAILURE,
463 } resource_failure_type;
464 
465 typedef struct wlan_low_resource_failure_event
466 {
467     resource_failure_type event_sub_type;
468 } __attribute__((packed)) wlan_low_resource_failure_event_t;
469 
470 /* EVENT_WLAN_POWERSAVE_WOW */
471 typedef struct {
472     u8 event_subtype;
473     u8 wow_type;
474     u8 wow_magic_pattern[6];
475     u8 wow_del_ptrn_id;
476     u8 wow_wakeup_cause;
477     u8 wow_wakeup_cause_pbm_ptrn_id;
478 } __attribute__((packed)) wlan_wow_payload_t;
479 
480 /* EVENT_WLAN_POWERSAVE_WOW_STATS */
481 typedef struct {
482     u32 wow_ucast_wake_up_count;
483     u32 wow_bcast_wake_up_count;
484     u32 wow_ipv4_mcast_wake_up_count;
485     u32 wow_ipv6_mcast_wake_up_count;
486     u32 wow_ipv6_mcast_ra_stats;
487     u32 wow_ipv6_mcast_ns_stats;
488     u32 wow_ipv6_mcast_na_stats;
489     u32 wow_pno_match_wake_up_count;
490     u32 wow_pno_complete_wake_up_count;
491     u32 wow_gscan_wake_up_count;
492     u32 wow_low_rssi_wake_up_count;
493     u32 wow_rssi_breach_wake_up_count;
494     u32 wow_icmpv4_count;
495     u32 wow_icmpv6_count;
496     u32 wow_oem_response_wake_up_count;
497     u32 Reserved_1;
498     u32 Reserved_2;
499     u32 Reserved_3;
500     u32 Reserved_4;
501 } __attribute__((packed)) wlan_wow_stats_t;
502 
503 /* EVENT_WLAN_STA_KICKOUT */
504 typedef struct {
505     u32 reasoncode;
506     u8 peer_mac[6];
507     u8 vdev_id;
508 } __attribute__((packed)) wlan_kickout_t;
509 
510 /* EVENT_WLAN_BRINGUP_STATUS */
511 typedef struct {
512     u16 wlan_status;
513     u8 driver_version[10];
514 } __attribute__((packed)) wlan_status_payload_t;
515 
516 #endif /* WIFILOGGER_EVENT_DEFS_H */
517