Zephyr Project API  3.3.0
A Scalable Open Source RTOS
wifi.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Texas Instruments, Incorporated
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_NET_WIFI_H_
13#define ZEPHYR_INCLUDE_NET_WIFI_H_
14
15#define WIFI_COUNTRY_CODE_LEN 2
16
17/* Not having support for legacy types is deliberate to enforce
18 * higher security.
19 */
25
26 __WIFI_SECURITY_TYPE_AFTER_LAST,
27 WIFI_SECURITY_TYPE_MAX = __WIFI_SECURITY_TYPE_AFTER_LAST - 1,
29};
30
34static inline const char *wifi_security_txt(enum wifi_security_type security)
35{
36 switch (security) {
38 return "OPEN";
40 return "WPA2-PSK";
42 return "WPA2-PSK-SHA256";
44 return "WPA3-SAE";
46 default:
47 return "UNKNOWN";
48 }
49}
50
51/* Management frame protection (IEEE 802.11w) options */
56
57 __WIFI_MFP_AFTER_LAST,
58 WIFI_MFP_MAX = __WIFI_MFP_AFTER_LAST - 1,
60};
61
65static inline const char *wifi_mfp_txt(enum wifi_mfp_options mfp)
66{
67 switch (mfp) {
69 return "Disable";
71 return "Optional";
73 return "Required";
75 default:
76 return "UNKNOWN";
77 }
78}
79
84
85 __WIFI_FREQ_BAND_AFTER_LAST,
86 WIFI_FREQ_BAND_MAX = __WIFI_FREQ_BAND_AFTER_LAST - 1,
88};
89
93static inline const char *wifi_band_txt(enum wifi_frequency_bands band)
94{
95 switch (band) {
97 return "2.4GHz";
99 return "5GHz";
101 return "6GHz";
103 default:
104 return "UNKNOWN";
105 }
106}
107
108#define WIFI_SSID_MAX_LEN 32
109#define WIFI_PSK_MAX_LEN 64
110#define WIFI_MAC_ADDR_LEN 6
111
112#define WIFI_CHANNEL_MAX 233
113#define WIFI_CHANNEL_ANY 255
114
115/* Based on https://w1.fi/wpa_supplicant/devel/defs_8h.html#a4aeb27c1e4abd046df3064ea9756f0bc */
127
128 __WIFI_STATE_AFTER_LAST,
129 WIFI_STATE_MAX = __WIFI_STATE_AFTER_LAST - 1,
132
136static inline const char *wifi_state_txt(enum wifi_iface_state state)
137{
138 switch (state) {
140 return "DISCONNECTED";
142 return "INACTIVE";
144 return "INTERFACE_DISABLED";
146 return "SCANNING";
148 return "AUTHENTICATING";
150 return "ASSOCIATING";
152 return "ASSOCIATED";
154 return "4WAY_HANDSHAKE";
156 return "GROUP_HANDSHAKE";
158 return "COMPLETED";
160 default:
161 return "UNKNOWN";
162 }
163}
164
165/* Based on https://w1.fi/wpa_supplicant/devel/structwpa__ssid.html#a625821e2acfc9014f3b3de6e6593ffb7 */
173
174 __WIFI_MODE_AFTER_LAST,
175 WIFI_MODE_MAX = __WIFI_MODE_AFTER_LAST - 1,
178
182static inline const char *wifi_mode_txt(enum wifi_iface_mode mode)
183{
184 switch (mode) {
185 case WIFI_MODE_INFRA:
186 return "STATION";
187 case WIFI_MODE_IBSS:
188 return "ADHOC";
189 case WIFI_MODE_AP:
190 return "ACCESS POINT";
191 case WIFI_MODE_P2P_GO:
192 return "P2P GROUP OWNER";
194 return "P2P GROUP FORMATION";
195 case WIFI_MODE_MESH:
196 return "MESH";
198 default:
199 return "UNKNOWN";
200 }
201}
202
203/* As per https://en.wikipedia.org/wiki/Wi-Fi#Versions_and_generations */
214
215 __WIFI_LINK_MODE_AFTER_LAST,
216 WIFI_LINK_MODE_MAX = __WIFI_LINK_MODE_AFTER_LAST - 1,
219
223static inline const char *wifi_link_mode_txt(enum wifi_link_mode link_mode)
224{
225 switch (link_mode) {
226 case WIFI_0:
227 return "WIFI 0 (802.11)";
228 case WIFI_1:
229 return "WIFI 1 (802.11b)";
230 case WIFI_2:
231 return "WIFI 2 (802.11a)";
232 case WIFI_3:
233 return "WIFI 3 (802.11g)";
234 case WIFI_4:
235 return "WIFI 4 (802.11n/HT)";
236 case WIFI_5:
237 return "WIFI 5 (802.11ac/VHT)";
238 case WIFI_6:
239 return "WIFI 6 (802.11ax/HE)";
240 case WIFI_6E:
241 return "WIFI 6E (802.11ax 6GHz/HE)";
242 case WIFI_7:
243 return "WIFI 7 (802.11be/EHT)";
245 default:
246 return "UNKNOWN";
247 }
248}
249
253};
254
255static const char * const wifi_ps2str[] = {
256 [WIFI_PS_DISABLED] = "Power save disabled",
257 [WIFI_PS_ENABLED] = "Power save enabled",
258};
259
262 /* This has to be configured before connecting to the AP,
263 * as support for ADDTS action frames is not available.
264 */
266};
267
268static const char * const wifi_ps_mode2str[] = {
269 [WIFI_PS_MODE_LEGACY] = "Legacy power save",
270 [WIFI_PS_MODE_WMM] = "WMM power save",
271};
272
276};
277
278static const char * const wifi_twt_operation2str[] = {
279 [WIFI_TWT_SETUP] = "TWT setup",
280 [WIFI_TWT_TEARDOWN] = "TWT teardown",
281};
282
288
289static const char * const wifi_twt_negotiation_type2str[] = {
290 [WIFI_TWT_INDIVIDUAL] = "TWT individual negotiation",
291 [WIFI_TWT_BROADCAST] = "TWT broadcast negotiation",
292 [WIFI_TWT_WAKE_TBTT] = "TWT wake TBTT negotiation",
293};
294
296 /* TWT Requests */
300 /* TWT Responses */
306};
307
308static const char * const wifi_twt_setup_cmd2str[] = {
309 /* TWT Requests */
310 [WIFI_TWT_SETUP_CMD_REQUEST] = "TWT request",
311 [WIFI_TWT_SETUP_CMD_SUGGEST] = "TWT suggest",
312 [WIFI_TWT_SETUP_CMD_DEMAND] = "TWT demand",
313 /* TWT Responses */
314 [WIFI_TWT_SETUP_CMD_GROUPING] = "TWT grouping",
315 [WIFI_TWT_SETUP_CMD_ACCEPT] = "TWT accept",
316 [WIFI_TWT_SETUP_CMD_ALTERNATE] = "TWT alternate",
317 [WIFI_TWT_SETUP_CMD_DICTATE] = "TWT dictate",
318 [WIFI_TWT_SETUP_CMD_REJECT] = "TWT reject",
319};
320
321#endif /* ZEPHYR_INCLUDE_NET_WIFI_H_ */
state
Definition: parser_state.h:29
static const char *const wifi_twt_negotiation_type2str[]
Definition: wifi.h:289
wifi_ps
Definition: wifi.h:250
@ WIFI_PS_ENABLED
Definition: wifi.h:252
@ WIFI_PS_DISABLED
Definition: wifi.h:251
wifi_frequency_bands
Definition: wifi.h:80
@ WIFI_FREQ_BAND_6_GHZ
Definition: wifi.h:83
@ WIFI_FREQ_BAND_2_4_GHZ
Definition: wifi.h:81
@ WIFI_FREQ_BAND_UNKNOWN
Definition: wifi.h:87
@ WIFI_FREQ_BAND_5_GHZ
Definition: wifi.h:82
@ WIFI_FREQ_BAND_MAX
Definition: wifi.h:86
wifi_mfp_options
Definition: wifi.h:52
@ WIFI_MFP_DISABLE
Definition: wifi.h:53
@ WIFI_MFP_OPTIONAL
Definition: wifi.h:54
@ WIFI_MFP_MAX
Definition: wifi.h:58
@ WIFI_MFP_UNKNOWN
Definition: wifi.h:59
@ WIFI_MFP_REQUIRED
Definition: wifi.h:55
wifi_twt_setup_cmd
Definition: wifi.h:295
@ WIFI_TWT_SETUP_CMD_DEMAND
Definition: wifi.h:299
@ WIFI_TWT_SETUP_CMD_REQUEST
Definition: wifi.h:297
@ WIFI_TWT_SETUP_CMD_ALTERNATE
Definition: wifi.h:303
@ WIFI_TWT_SETUP_CMD_GROUPING
Definition: wifi.h:301
@ WIFI_TWT_SETUP_CMD_DICTATE
Definition: wifi.h:304
@ WIFI_TWT_SETUP_CMD_SUGGEST
Definition: wifi.h:298
@ WIFI_TWT_SETUP_CMD_REJECT
Definition: wifi.h:305
@ WIFI_TWT_SETUP_CMD_ACCEPT
Definition: wifi.h:302
static const char * wifi_link_mode_txt(enum wifi_link_mode link_mode)
Definition: wifi.h:223
static const char * wifi_mfp_txt(enum wifi_mfp_options mfp)
Definition: wifi.h:65
static const char * wifi_security_txt(enum wifi_security_type security)
Definition: wifi.h:34
static const char * wifi_state_txt(enum wifi_iface_state state)
Definition: wifi.h:136
wifi_iface_mode
Definition: wifi.h:166
@ WIFI_MODE_AP
Definition: wifi.h:169
@ WIFI_MODE_IBSS
Definition: wifi.h:168
@ WIFI_MODE_P2P_GO
Definition: wifi.h:170
@ WIFI_MODE_MAX
Definition: wifi.h:175
@ WIFI_MODE_P2P_GROUP_FORMATION
Definition: wifi.h:171
@ WIFI_MODE_INFRA
Definition: wifi.h:167
@ WIFI_MODE_MESH
Definition: wifi.h:172
@ WIFI_MODE_UNKNOWN
Definition: wifi.h:176
static const char * wifi_mode_txt(enum wifi_iface_mode mode)
Definition: wifi.h:182
static const char *const wifi_twt_operation2str[]
Definition: wifi.h:278
wifi_twt_negotiation_type
Definition: wifi.h:283
@ WIFI_TWT_BROADCAST
Definition: wifi.h:285
@ WIFI_TWT_WAKE_TBTT
Definition: wifi.h:286
@ WIFI_TWT_INDIVIDUAL
Definition: wifi.h:284
static const char *const wifi_ps_mode2str[]
Definition: wifi.h:268
wifi_iface_state
Definition: wifi.h:116
@ WIFI_STATE_UNKNOWN
Definition: wifi.h:130
@ WIFI_STATE_DISCONNECTED
Definition: wifi.h:117
@ WIFI_STATE_GROUP_HANDSHAKE
Definition: wifi.h:125
@ WIFI_STATE_INTERFACE_DISABLED
Definition: wifi.h:118
@ WIFI_STATE_4WAY_HANDSHAKE
Definition: wifi.h:124
@ WIFI_STATE_MAX
Definition: wifi.h:129
@ WIFI_STATE_ASSOCIATED
Definition: wifi.h:123
@ WIFI_STATE_SCANNING
Definition: wifi.h:120
@ WIFI_STATE_AUTHENTICATING
Definition: wifi.h:121
@ WIFI_STATE_COMPLETED
Definition: wifi.h:126
@ WIFI_STATE_ASSOCIATING
Definition: wifi.h:122
@ WIFI_STATE_INACTIVE
Definition: wifi.h:119
static const char *const wifi_twt_setup_cmd2str[]
Definition: wifi.h:308
wifi_link_mode
Definition: wifi.h:204
@ WIFI_6E
Definition: wifi.h:212
@ WIFI_LINK_MODE_MAX
Definition: wifi.h:216
@ WIFI_5
Definition: wifi.h:210
@ WIFI_0
Definition: wifi.h:205
@ WIFI_7
Definition: wifi.h:213
@ WIFI_4
Definition: wifi.h:209
@ WIFI_2
Definition: wifi.h:207
@ WIFI_6
Definition: wifi.h:211
@ WIFI_1
Definition: wifi.h:206
@ WIFI_LINK_MODE_UNKNOWN
Definition: wifi.h:217
@ WIFI_3
Definition: wifi.h:208
static const char *const wifi_ps2str[]
Definition: wifi.h:255
wifi_twt_operation
Definition: wifi.h:273
@ WIFI_TWT_SETUP
Definition: wifi.h:274
@ WIFI_TWT_TEARDOWN
Definition: wifi.h:275
static const char * wifi_band_txt(enum wifi_frequency_bands band)
Definition: wifi.h:93
wifi_security_type
Definition: wifi.h:20
@ WIFI_SECURITY_TYPE_SAE
Definition: wifi.h:24
@ WIFI_SECURITY_TYPE_PSK_SHA256
Definition: wifi.h:23
@ WIFI_SECURITY_TYPE_PSK
Definition: wifi.h:22
@ WIFI_SECURITY_TYPE_NONE
Definition: wifi.h:21
@ WIFI_SECURITY_TYPE_UNKNOWN
Definition: wifi.h:28
@ WIFI_SECURITY_TYPE_MAX
Definition: wifi.h:27
wifi_ps_mode
Definition: wifi.h:260
@ WIFI_PS_MODE_WMM
Definition: wifi.h:265
@ WIFI_PS_MODE_LEGACY
Definition: wifi.h:261