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