Zephyr Project API  3.2.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/* Not having support for legacy types is deliberate to enforce
16 * higher security.
17 */
23
24 __WIFI_SECURITY_TYPE_AFTER_LAST,
25 WIFI_SECURITY_TYPE_MAX = __WIFI_SECURITY_TYPE_AFTER_LAST - 1,
27};
28
32static inline const char *wifi_security_txt(enum wifi_security_type security)
33{
34 switch (security) {
36 return "OPEN";
38 return "WPA2-PSK";
40 return "WPA2-PSK-SHA256";
42 return "WPA3-SAE";
44 default:
45 return "UNKNOWN";
46 }
47}
48
49/* Management frame protection (IEEE 802.11w) options */
54
55 __WIFI_MFP_AFTER_LAST,
56 WIFI_MFP_MAX = __WIFI_MFP_AFTER_LAST - 1,
58};
59
63static inline const char *wifi_mfp_txt(enum wifi_mfp_options mfp)
64{
65 switch (mfp) {
67 return "Disable";
69 return "Optional";
71 return "Required";
73 default:
74 return "UNKNOWN";
75 }
76}
77
82
83 __WIFI_FREQ_BAND_AFTER_LAST,
84 WIFI_FREQ_BAND_MAX = __WIFI_FREQ_BAND_AFTER_LAST - 1,
86};
87
91static inline const char *wifi_band_txt(enum wifi_frequency_bands band)
92{
93 switch (band) {
95 return "2.4GHz";
97 return "5GHz";
99 return "6GHz";
101 default:
102 return "UNKNOWN";
103 }
104}
105
106#define WIFI_SSID_MAX_LEN 32
107#define WIFI_PSK_MAX_LEN 64
108#define WIFI_MAC_ADDR_LEN 6
109
110#define WIFI_CHANNEL_MAX 233
111#define WIFI_CHANNEL_ANY 255
112
113/* Based on https://w1.fi/wpa_supplicant/devel/defs_8h.html#a4aeb27c1e4abd046df3064ea9756f0bc */
125
126 __WIFI_STATE_AFTER_LAST,
127 WIFI_STATE_MAX = __WIFI_STATE_AFTER_LAST - 1,
130
134static inline const char *wifi_state_txt(enum wifi_iface_state state)
135{
136 switch (state) {
138 return "DISCONNECTED";
140 return "INACTIVE";
142 return "INTERFACE_DISABLED";
144 return "SCANNING";
146 return "AUTHENTICATING";
148 return "ASSOCIATING";
150 return "ASSOCIATED";
152 return "4WAY_HANDSHAKE";
154 return "GROUP_HANDSHAKE";
156 return "COMPLETED";
158 default:
159 return "UNKNOWN";
160 }
161}
162
163/* Based on https://w1.fi/wpa_supplicant/devel/structwpa__ssid.html#a625821e2acfc9014f3b3de6e6593ffb7 */
171
172 __WIFI_MODE_AFTER_LAST,
173 WIFI_MODE_MAX = __WIFI_MODE_AFTER_LAST - 1,
176
180static inline const char *wifi_mode_txt(enum wifi_iface_mode mode)
181{
182 switch (mode) {
183 case WIFI_MODE_INFRA:
184 return "STATION";
185 case WIFI_MODE_IBSS:
186 return "ADHOC";
187 case WIFI_MODE_AP:
188 return "ACCESS POINT";
189 case WIFI_MODE_P2P_GO:
190 return "P2P GROUP OWNER";
192 return "P2P GROUP FORMATION";
193 case WIFI_MODE_MESH:
194 return "MESH";
196 default:
197 return "UNKNOWN";
198 }
199}
200
201/* As per https://en.wikipedia.org/wiki/Wi-Fi#Versions_and_generations */
212
213 __WIFI_LINK_MODE_AFTER_LAST,
214 WIFI_LINK_MODE_MAX = __WIFI_LINK_MODE_AFTER_LAST - 1,
217
221static inline const char *wifi_link_mode_txt(enum wifi_link_mode link_mode)
222{
223 switch (link_mode) {
224 case WIFI_0:
225 return "WIFI 0 (802.11)";
226 case WIFI_1:
227 return "WIFI 1 (802.11b)";
228 case WIFI_2:
229 return "WIFI 2 (802.11a)";
230 case WIFI_3:
231 return "WIFI 3 (802.11g)";
232 case WIFI_4:
233 return "WIFI 4 (802.11n/HT)";
234 case WIFI_5:
235 return "WIFI 5 (802.11ac/VHT)";
236 case WIFI_6:
237 return "WIFI 6 (802.11ax/HE)";
238 case WIFI_6E:
239 return "WIFI 6E (802.11ax 6GHz/HE)";
240 case WIFI_7:
241 return "WIFI 7 (802.11be/EHT)";
243 default:
244 return "UNKNOWN";
245 }
246}
247
248#endif /* ZEPHYR_INCLUDE_NET_WIFI_H_ */
state
Definition: http_parser_state.h:29
wifi_frequency_bands
Definition: wifi.h:78
@ WIFI_FREQ_BAND_6_GHZ
Definition: wifi.h:81
@ WIFI_FREQ_BAND_2_4_GHZ
Definition: wifi.h:79
@ WIFI_FREQ_BAND_UNKNOWN
Definition: wifi.h:85
@ WIFI_FREQ_BAND_5_GHZ
Definition: wifi.h:80
@ WIFI_FREQ_BAND_MAX
Definition: wifi.h:84
wifi_mfp_options
Definition: wifi.h:50
@ WIFI_MFP_DISABLE
Definition: wifi.h:51
@ WIFI_MFP_OPTIONAL
Definition: wifi.h:52
@ WIFI_MFP_MAX
Definition: wifi.h:56
@ WIFI_MFP_UNKNOWN
Definition: wifi.h:57
@ WIFI_MFP_REQUIRED
Definition: wifi.h:53
static const char * wifi_link_mode_txt(enum wifi_link_mode link_mode)
Definition: wifi.h:221
static const char * wifi_mfp_txt(enum wifi_mfp_options mfp)
Definition: wifi.h:63
static const char * wifi_security_txt(enum wifi_security_type security)
Definition: wifi.h:32
static const char * wifi_state_txt(enum wifi_iface_state state)
Definition: wifi.h:134
wifi_iface_mode
Definition: wifi.h:164
@ WIFI_MODE_AP
Definition: wifi.h:167
@ WIFI_MODE_IBSS
Definition: wifi.h:166
@ WIFI_MODE_P2P_GO
Definition: wifi.h:168
@ WIFI_MODE_MAX
Definition: wifi.h:173
@ WIFI_MODE_P2P_GROUP_FORMATION
Definition: wifi.h:169
@ WIFI_MODE_INFRA
Definition: wifi.h:165
@ WIFI_MODE_MESH
Definition: wifi.h:170
@ WIFI_MODE_UNKNOWN
Definition: wifi.h:174
static const char * wifi_mode_txt(enum wifi_iface_mode mode)
Definition: wifi.h:180
wifi_iface_state
Definition: wifi.h:114
@ WIFI_STATE_UNKNOWN
Definition: wifi.h:128
@ WIFI_STATE_DISCONNECTED
Definition: wifi.h:115
@ WIFI_STATE_GROUP_HANDSHAKE
Definition: wifi.h:123
@ WIFI_STATE_INTERFACE_DISABLED
Definition: wifi.h:116
@ WIFI_STATE_4WAY_HANDSHAKE
Definition: wifi.h:122
@ WIFI_STATE_MAX
Definition: wifi.h:127
@ WIFI_STATE_ASSOCIATED
Definition: wifi.h:121
@ WIFI_STATE_SCANNING
Definition: wifi.h:118
@ WIFI_STATE_AUTHENTICATING
Definition: wifi.h:119
@ WIFI_STATE_COMPLETED
Definition: wifi.h:124
@ WIFI_STATE_ASSOCIATING
Definition: wifi.h:120
@ WIFI_STATE_INACTIVE
Definition: wifi.h:117
wifi_link_mode
Definition: wifi.h:202
@ WIFI_6E
Definition: wifi.h:210
@ WIFI_LINK_MODE_MAX
Definition: wifi.h:214
@ WIFI_5
Definition: wifi.h:208
@ WIFI_0
Definition: wifi.h:203
@ WIFI_7
Definition: wifi.h:211
@ WIFI_4
Definition: wifi.h:207
@ WIFI_2
Definition: wifi.h:205
@ WIFI_6
Definition: wifi.h:209
@ WIFI_1
Definition: wifi.h:204
@ WIFI_LINK_MODE_UNKNOWN
Definition: wifi.h:215
@ WIFI_3
Definition: wifi.h:206
static const char * wifi_band_txt(enum wifi_frequency_bands band)
Definition: wifi.h:91
wifi_security_type
Definition: wifi.h:18
@ WIFI_SECURITY_TYPE_SAE
Definition: wifi.h:22
@ WIFI_SECURITY_TYPE_PSK_SHA256
Definition: wifi.h:21
@ WIFI_SECURITY_TYPE_PSK
Definition: wifi.h:20
@ WIFI_SECURITY_TYPE_NONE
Definition: wifi.h:19
@ WIFI_SECURITY_TYPE_UNKNOWN
Definition: wifi.h:26
@ WIFI_SECURITY_TYPE_MAX
Definition: wifi.h:25