1 /* 2 * Copyright 2008-2024 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8 /*! \file wifi_events.h 9 * \brief Wi-Fi events 10 */ 11 12 #ifndef __WIFI_EVENTS_H__ 13 #define __WIFI_EVENTS_H__ 14 15 #include <osa.h> 16 17 /** Wifi events */ 18 enum wifi_event 19 { 20 /** uAP Started */ 21 WIFI_EVENT_UAP_STARTED = 0, 22 /** uAP Client Assoc */ 23 WIFI_EVENT_UAP_CLIENT_ASSOC, 24 /** uAP Client connected */ 25 WIFI_EVENT_UAP_CLIENT_CONN, 26 /** uAP Client De-authentication */ 27 WIFI_EVENT_UAP_CLIENT_DEAUTH, 28 /** uAP Network Address Configuration */ 29 WIFI_EVENT_UAP_NET_ADDR_CONFIG, 30 /** uAP Stopped */ 31 WIFI_EVENT_UAP_STOPPED, 32 /** uAP TX Data Pause */ 33 WIFI_EVENT_UAP_TX_DATA_PAUSE, 34 /** uAP Last */ 35 WIFI_EVENT_UAP_LAST, 36 /* All the uAP related events need to be above and STA related events 37 * below */ 38 /** Scan start event when scan is started */ 39 WIFI_EVENT_SCAN_START, 40 /** Scan Result */ 41 WIFI_EVENT_SCAN_RESULT, 42 /** Survey Result Get */ 43 WIFI_EVENT_SURVEY_RESULT_GET, 44 /** Get hardware spec */ 45 WIFI_EVENT_GET_HW_SPEC, 46 /** Association */ 47 WIFI_EVENT_ASSOCIATION, 48 #if CONFIG_WPA_SUPP 49 #if CONFIG_AUTO_RECONNECT 50 /** Association Notify */ 51 WIFI_EVENT_ASSOCIATION_NOTIFY, 52 #endif 53 #endif 54 /** PMK */ 55 WIFI_EVENT_PMK, 56 /** Authentication */ 57 WIFI_EVENT_AUTHENTICATION, 58 /** Disassociation */ 59 WIFI_EVENT_DISASSOCIATION, 60 /** De-authentication */ 61 WIFI_EVENT_DEAUTHENTICATION, 62 /** Link Loss */ 63 WIFI_EVENT_LINK_LOSS, 64 /* WiFi RSSI Low Event */ 65 WIFI_EVENT_RSSI_LOW, 66 /** Firmware Hang event */ 67 WIFI_EVENT_FW_HANG, 68 /** Firmware Reset event */ 69 WIFI_EVENT_FW_RESET, 70 #if CONFIG_SUBSCRIBE_EVENT_SUPPORT 71 /* WiFi RSSI High Event */ 72 WIFI_EVENT_RSSI_HIGH, 73 /* WiFi SRN Low Event */ 74 WIFI_EVENT_SNR_LOW, 75 /* WiFi SNR High Event */ 76 WIFI_EVENT_SNR_HIGH, 77 /* WiFi Max Fail Event */ 78 WIFI_EVENT_MAX_FAIL, 79 /* WiFi Beacon miised Event */ 80 WIFI_EVENT_BEACON_MISSED, 81 /* WiFi Data RSSI Low Event */ 82 WIFI_EVENT_DATA_RSSI_LOW, 83 /* WiFi Data RSSI High Event */ 84 WIFI_EVENT_DATA_RSSI_HIGH, 85 /* WiFi Data SNR Low Event */ 86 WIFI_EVENT_DATA_SNR_LOW, 87 /* WiFi Data SNR High Event */ 88 WIFI_EVENT_DATA_SNR_HIGH, 89 /* WiFi Link Quality Event */ 90 WIFI_EVENT_FW_LINK_QUALITY, 91 /* WiFi Pre Beacon Lost Event */ 92 WIFI_EVENT_FW_PRE_BCN_LOST, 93 #endif 94 #if CONFIG_HOST_SLEEP 95 /* Host sleep activated */ 96 WIFI_EVENT_HS_ACTIVATED, 97 /** HS configuration */ 98 WIFI_EVENT_HS_CONFIG, 99 /* Sleep confirm done */ 100 WIFI_EVENT_SLEEP_CONFIRM_DONE, 101 #endif 102 /** Network station address configuration */ 103 WIFI_EVENT_NET_STA_ADDR_CONFIG, 104 /** Network interface configuration */ 105 WIFI_EVENT_NET_INTERFACE_CONFIG, 106 /** WEP configuration */ 107 WIFI_EVENT_WEP_CONFIG, 108 /** STA MAC address configuration */ 109 WIFI_EVENT_STA_MAC_ADDR_CONFIG, 110 /** UAP MAC address configuration */ 111 WIFI_EVENT_UAP_MAC_ADDR_CONFIG, 112 /** Network DHCP configuration */ 113 WIFI_EVENT_NET_DHCP_CONFIG, 114 /** Supplicant PMK */ 115 WIFI_EVENT_SUPPLICANT_PMK, 116 /** Sleep */ 117 WIFI_EVENT_SLEEP, 118 /** IEEE PS */ 119 WIFI_EVENT_IEEE_PS, 120 /** Deep Sleep */ 121 WIFI_EVENT_DEEP_SLEEP, 122 /** WNM ps */ 123 WIFI_EVENT_WNM_PS, 124 /** IEEE and Deep Sleep */ 125 WIFI_EVENT_IEEE_DEEP_SLEEP, 126 /** WNM and Deep Sleep */ 127 WIFI_EVENT_WNM_DEEP_SLEEP, 128 /** PS Invalid */ 129 WIFI_EVENT_PS_INVALID, 130 /** Error Multicast */ 131 WIFI_EVENT_ERR_MULTICAST, 132 /** error Unicast */ 133 WIFI_EVENT_ERR_UNICAST, 134 /** 802.11K/11V neighbor report */ 135 WIFI_EVENT_NLIST_REPORT, 136 /* Add Block Ack */ 137 /** 802.11N send add block ack */ 138 WIFI_EVENT_11N_SEND_ADDBA, 139 /** 802.11N receive add block ack */ 140 WIFI_EVENT_11N_RECV_ADDBA, 141 /** 802.11N block Ack stream timeout */ 142 WIFI_EVENT_11N_BA_STREAM_TIMEOUT, 143 /** 802.11n Delete block add */ 144 WIFI_EVENT_11N_DELBA, 145 /** 802.11n aggregation control */ 146 WIFI_EVENT_11N_AGGR_CTRL, 147 /** Channel Switch Announcement */ 148 WIFI_EVENT_CHAN_SWITCH_ANN, 149 /** Channel Switch */ 150 WIFI_EVENT_CHAN_SWITCH, 151 #if CONFIG_IPV6 152 /** IPv6 address state change */ 153 WIFI_EVENT_NET_IPV6_CONFIG, 154 #endif 155 #if CONFIG_WLAN_BRIDGE 156 /** Auto link switch network */ 157 WIFI_EVENT_AUTOLINK_NETWORK_SWITCHED, 158 #endif 159 /* Background Scan Report */ 160 WIFI_EVENT_BG_SCAN_REPORT, 161 /* Background Scan Stop */ 162 WIFI_EVENT_BG_SCAN_STOPPED, 163 /* Event to indicate RX Management Frame */ 164 WIFI_EVENT_MGMT_FRAME, 165 /* Event to indicate remain on channel started */ 166 WIFI_EVENT_REMAIN_ON_CHANNEL, 167 /* Event to indicate Management tx status */ 168 WIFI_EVENT_MGMT_TX_STATUS, 169 #if CONFIG_CSI 170 /* Recv csi data */ 171 WIFI_EVENT_CSI, 172 WIFI_EVENT_CSI_STATUS, 173 #endif 174 #if (CONFIG_11MC) || (CONFIG_11AZ) 175 /* Event to trigger or stop ftm*/ 176 WIFI_EVENT_FTM_COMPLETE, 177 #if CONFIG_WLS_CSI_PROC 178 WIFI_EVENT_WLS_CSI, 179 #endif 180 #endif 181 /** Event to set region power*/ 182 WIFI_EVENT_REGION_POWER_CFG, 183 /** TX Data Pause */ 184 WIFI_EVENT_TX_DATA_PAUSE, 185 /** Event to indicate end of Wi-Fi events */ 186 WIFI_EVENT_LAST, 187 /* other events can be added after this, however this must 188 be the last event in the wifi module */ 189 }; 190 191 /** WiFi Event Reason */ 192 enum wifi_event_reason 193 { 194 /** Success */ 195 WIFI_EVENT_REASON_SUCCESS, 196 /** Timeout */ 197 WIFI_EVENT_REASON_TIMEOUT, 198 /** Failure */ 199 WIFI_EVENT_REASON_FAILURE, 200 }; 201 202 /** Network wireless BSS Type */ 203 enum wlan_bss_type 204 { 205 /** Station */ 206 WLAN_BSS_TYPE_STA = 0, 207 /** uAP */ 208 WLAN_BSS_TYPE_UAP = 1, 209 #if CONFIG_P2P 210 /** WiFi Direct */ 211 WLAN_BSS_TYPE_WIFIDIRECT = 2, 212 #endif 213 /** Any */ 214 WLAN_BSS_TYPE_ANY = 0xff, 215 }; 216 217 /** Network wireless BSS Role */ 218 enum wlan_bss_role 219 { 220 /** Infrastructure network. The system will act as a station connected 221 * to an Access Point. */ 222 WLAN_BSS_ROLE_STA = 0, 223 /** uAP (micro-AP) network. The system will act as an uAP node to 224 * which other Wireless clients can connect. */ 225 WLAN_BSS_ROLE_UAP = 1, 226 /** Either Infrastructure network or micro-AP network */ 227 WLAN_BSS_ROLE_ANY = 0xff, 228 }; 229 230 /** This enum defines various wakeup events 231 * for which wakeup will occur */ 232 enum wifi_wakeup_event_t 233 { 234 /** Wakeup on broadcast */ 235 WIFI_WAKE_ON_ALL_BROADCAST = 1, 236 /** Wakeup on unicast */ 237 WIFI_WAKE_ON_UNICAST = 1 << 1, 238 /** Wakeup on MAC event */ 239 WIFI_WAKE_ON_MAC_EVENT = 1 << 2, 240 /** Wakeup on multicast */ 241 WIFI_WAKE_ON_MULTICAST = 1 << 3, 242 /** Wakeup on ARP broadcast */ 243 WIFI_WAKE_ON_ARP_BROADCAST = 1 << 4, 244 /** Wakeup on receiving a management frame */ 245 WIFI_WAKE_ON_MGMT_FRAME = 1 << 6, 246 }; 247 248 #endif /*__WIFI_EVENTS_H__*/ 249