Wi-Fi Management
Overview
The Wi-Fi management API is used to manage Wi-Fi networks. It supports below modes:
IEEE802.11 Station (STA)
IEEE802.11 Access Point (AP)
Only personal mode security is supported with below types:
Open
WPA2-PSK
WPA3-PSK-256
WPA3-SAE
The Wi-Fi management API is implemented in the wifi_mgmt module as a part of the networking L2 stack. Currently, two types of Wi-Fi drivers are supported:
Networking or socket offloaded drivers
Native L2 Ethernet drivers
API Reference
- group wifi_mgmt
Wi-Fi Management API.
Wi-Fi utility functions.
Utility functions for the Wi-Fi subsystem.
-
int wifi_utils_parse_scan_bands(char *scan_bands_str, uint8_t *band_map)
Convert a band specification string to a bitmap representing the bands.
The function will parse a string which specifies Wi-Fi frequency band values as a comma separated string and convert it to a bitmap. The string can use the following characters to represent the bands:
2: 2.4 GHz
5: 5 GHz
6: 6 GHz
For the bitmap generated refer to wifi_frequency_bands for bit position of each band.
E.g. a string “2,5,6” will be converted to a bitmap value of 0x7
- Parameters:
scan_bands_str – String which spe.
band_map – Pointer to the bitmap variable to be updated.
- Return values:
0 – on success.
-errno – value in case of failure.
-
int wifi_utils_parse_scan_ssids(char *scan_ssids_str, const char *ssids[], uint8_t num_ssids)
Append a string containing an SSID to an array of SSID strings.
- Parameters:
scan_ssids_str – string to be appended in the list of scanned SSIDs.
ssids – Pointer to an array where the SSIDs pointers are to be stored.
num_ssids – Maximum number of SSIDs that can be stored.
- Return values:
0 – on success.
-errno – value in case of failure.
-
int wifi_utils_parse_scan_chan(char *scan_chan_str, struct wifi_band_channel *chan, uint8_t max_channels)
Convert a string containing a specification of scan channels to an array.
The function will parse a string which specifies channels to be scanned as a string and convert it to an array.
The channel string has to be formatted using the colon (:), comma(,), hyphen (-) and underscore (_) delimiters as follows:
A colon identifies the value preceding it as a band. A band value (2: 2.4 GHz, 5: 5 GHz 6: 6 GHz) has to precede the channels in that band (e.g. 2: etc)
Hyphens (-) are used to identify channel ranges (e.g. 2-7, 32-48 etc)
Commas are used to separate channel values within a band. Channels can be specified as individual values (2,6,48 etc) or channel ranges using hyphens (1-14, 32-48 etc)
Underscores (_) are used to specify multiple band-channel sets (e.g. 2:1,2_5:36,40 etc)
No spaces should be used anywhere, i.e. before/after commas, before/after hyphens etc.
An example channel specification specifying channels in the 2.4 GHz and 5 GHz bands is as below: 2:1,5,7,9-11_5:36-48,100,163-167
- Parameters:
scan_chan_str – List of channels expressed in the format described above.
chan – Pointer to an array where the parsed channels are to be stored.
max_channels – Maximum number of channels to store
- Return values:
0 – on success.
-errno – value in case of failure.
-
bool wifi_utils_validate_chan(uint8_t band, uint16_t chan)
Validate a channel against a band.
- Parameters:
band – Band to validate the channel against.
chan – Channel to validate.
- Return values:
true – if the channel is valid for the band.
false – if the channel is not valid for the band.
-
bool wifi_utils_validate_chan_2g(uint16_t chan)
Validate a channel against the 2.4 GHz band.
- Parameters:
chan – Channel to validate.
- Return values:
true – if the channel is valid for the band.
false – if the channel is not valid for the band.
-
bool wifi_utils_validate_chan_5g(uint16_t chan)
Validate a channel against the 5 GHz band.
- Parameters:
chan – Channel to validate.
- Return values:
true – if the channel is valid for the band.
false – if the channel is not valid for the band.
-
bool wifi_utils_validate_chan_6g(uint16_t chan)
Validate a channel against the 6 GHz band.
- Parameters:
chan – Channel to validate.
- Return values:
true – if the channel is valid for the band.
false – if the channel is not valid for the band.
-
WIFI_UTILS_MAX_BAND_STR_LEN
Maximum length of the band specification string.
-
WIFI_UTILS_MAX_CHAN_STR_LEN
Maximum length of the channel specification string.
Defines
-
WIFI_COUNTRY_CODE_LEN
Length of the country code string.
-
WIFI_SSID_MAX_LEN
Max SSID length.
-
WIFI_PSK_MIN_LEN
Minimum PSK length.
-
WIFI_PSK_MAX_LEN
Maximum PSK length.
-
WIFI_SAE_PSWD_MAX_LEN
Max SAW password length.
-
WIFI_MAC_ADDR_LEN
MAC address length.
-
WIFI_CHANNEL_MIN
Minimum channel number.
-
WIFI_CHANNEL_MAX
Maximum channel number.
-
WIFI_CHANNEL_ANY
Any channel number.
-
WIFI_INTERFACE_INDEX_MIN
Network interface index min value.
-
WIFI_INTERFACE_INDEX_MAX
Network interface index max value.
-
NET_REQUEST_WIFI_SCAN
Request a Wi-Fi scan.
-
NET_REQUEST_WIFI_CONNECT
Request a Wi-Fi connect.
-
NET_REQUEST_WIFI_DISCONNECT
Request a Wi-Fi disconnect.
-
NET_REQUEST_WIFI_AP_ENABLE
Request a Wi-Fi access point enable.
-
NET_REQUEST_WIFI_AP_DISABLE
Request a Wi-Fi access point disable.
-
NET_REQUEST_WIFI_IFACE_STATUS
Request a Wi-Fi network interface status.
-
NET_REQUEST_WIFI_PS
Request a Wi-Fi power save.
-
NET_REQUEST_WIFI_TWT
Request a Wi-Fi TWT.
-
NET_REQUEST_WIFI_PS_CONFIG
Request a Wi-Fi power save configuration.
-
NET_REQUEST_WIFI_REG_DOMAIN
Request a Wi-Fi regulatory domain.
-
NET_REQUEST_WIFI_MODE
Request current Wi-Fi mode.
-
NET_REQUEST_WIFI_PACKET_FILTER
Request Wi-Fi packet filter.
-
NET_REQUEST_WIFI_CHANNEL
Request a Wi-Fi channel.
-
NET_REQUEST_WIFI_AP_STA_DISCONNECT
Request a Wi-Fi access point to disconnect a station.
-
NET_REQUEST_WIFI_VERSION
Request a Wi-Fi version.
-
NET_REQUEST_WIFI_RTS_THRESHOLD
Request a Wi-Fi RTS threshold.
-
NET_REQUEST_WIFI_AP_CONFIG_PARAM
Request a Wi-Fi AP parameters configuration.
-
NET_EVENT_WIFI_SCAN_RESULT
Event emitted for Wi-Fi scan result.
-
NET_EVENT_WIFI_SCAN_DONE
Event emitted when Wi-Fi scan is done.
-
NET_EVENT_WIFI_CONNECT_RESULT
Event emitted for Wi-Fi connect result.
-
NET_EVENT_WIFI_DISCONNECT_RESULT
Event emitted for Wi-Fi disconnect result.
-
NET_EVENT_WIFI_IFACE_STATUS
Event emitted for Wi-Fi network interface status.
-
NET_EVENT_WIFI_TWT
Event emitted for Wi-Fi TWT information.
-
NET_EVENT_WIFI_TWT_SLEEP_STATE
Event emitted for Wi-Fi TWT sleep state.
-
NET_EVENT_WIFI_RAW_SCAN_RESULT
Event emitted for Wi-Fi raw scan result.
-
NET_EVENT_WIFI_DISCONNECT_COMPLETE
Event emitted Wi-Fi disconnect is completed.
-
NET_EVENT_WIFI_AP_ENABLE_RESULT
Event emitted for Wi-Fi access point enable result.
-
NET_EVENT_WIFI_AP_DISABLE_RESULT
Event emitted for Wi-Fi access point disable result.
-
NET_EVENT_WIFI_AP_STA_CONNECTED
Event emitted when Wi-Fi station is connected in AP mode.
-
NET_EVENT_WIFI_AP_STA_DISCONNECTED
Event emitted Wi-Fi station is disconnected from AP.
-
MAX_REG_CHAN_NUM
Max regulatory channel number.
Typedefs
-
typedef void (*scan_result_cb_t)(struct net_if *iface, int status, struct wifi_scan_result *entry)
Scan result callback.
- Param iface:
Network interface
- Param status:
Scan result status
- Param entry:
Scan result entry
Enums
-
enum wifi_security_type
IEEE 802.11 security types.
Values:
-
enumerator WIFI_SECURITY_TYPE_NONE = 0
No security.
-
enumerator WIFI_SECURITY_TYPE_PSK
WPA2-PSK security.
-
enumerator WIFI_SECURITY_TYPE_PSK_SHA256
WPA2-PSK-SHA256 security.
-
enumerator WIFI_SECURITY_TYPE_SAE
WPA3-SAE security.
-
enumerator WIFI_SECURITY_TYPE_WAPI
GB 15629.11-2003 WAPI security.
-
enumerator WIFI_SECURITY_TYPE_EAP
EAP security - Enterprise.
-
enumerator WIFI_SECURITY_TYPE_WEP
WEP security.
-
enumerator WIFI_SECURITY_TYPE_WPA_PSK
WPA-PSK security.
-
enumerator WIFI_SECURITY_TYPE_WPA_AUTO_PERSONAL
WPA/WPA2/WPA3 PSK security.
-
enumerator WIFI_SECURITY_TYPE_NONE = 0
-
enum wifi_mfp_options
IEEE 802.11w - Management frame protection.
Values:
-
enumerator WIFI_MFP_DISABLE = 0
MFP disabled.
-
enumerator WIFI_MFP_OPTIONAL
MFP optional.
-
enumerator WIFI_MFP_REQUIRED
MFP required.
-
enumerator WIFI_MFP_DISABLE = 0
-
enum wifi_frequency_bands
IEEE 802.11 operational frequency bands (not exhaustive).
Values:
-
enumerator WIFI_FREQ_BAND_2_4_GHZ = 0
2.4 GHz band.
-
enumerator WIFI_FREQ_BAND_5_GHZ
5 GHz band.
-
enumerator WIFI_FREQ_BAND_6_GHZ
6 GHz band (Wi-Fi 6E, also extends to 7GHz).
-
enumerator __WIFI_FREQ_BAND_AFTER_LAST
Number of frequency bands available.
-
enumerator WIFI_FREQ_BAND_MAX = __WIFI_FREQ_BAND_AFTER_LAST - 1
Highest frequency band available.
-
enumerator WIFI_FREQ_BAND_UNKNOWN
Invalid frequency band.
-
enumerator WIFI_FREQ_BAND_2_4_GHZ = 0
-
enum wifi_iface_state
Wi-Fi interface states.
Based on https://w1.fi/wpa_supplicant/devel/defs_8h.html#a4aeb27c1e4abd046df3064ea9756f0bc
Values:
-
enumerator WIFI_STATE_DISCONNECTED = 0
Interface is disconnected.
-
enumerator WIFI_STATE_INTERFACE_DISABLED
Interface is disabled (administratively).
-
enumerator WIFI_STATE_INACTIVE
No enabled networks in the configuration.
-
enumerator WIFI_STATE_SCANNING
Interface is scanning for networks.
-
enumerator WIFI_STATE_AUTHENTICATING
Authentication with a network is in progress.
-
enumerator WIFI_STATE_ASSOCIATING
Association with a network is in progress.
-
enumerator WIFI_STATE_ASSOCIATED
Association with a network completed.
-
enumerator WIFI_STATE_4WAY_HANDSHAKE
4-way handshake with a network is in progress.
-
enumerator WIFI_STATE_GROUP_HANDSHAKE
Group Key exchange with a network is in progress.
-
enumerator WIFI_STATE_COMPLETED
All authentication completed, ready to pass data.
-
enumerator WIFI_STATE_DISCONNECTED = 0
-
enum wifi_iface_mode
Wi-Fi interface modes.
Based on https://w1.fi/wpa_supplicant/devel/defs_8h.html#a4aeb27c1e4abd046df3064ea9756f0bc
Values:
-
enumerator WIFI_MODE_INFRA = 0
Infrastructure station mode.
-
enumerator WIFI_MODE_IBSS = 1
IBSS (ad-hoc) station mode.
-
enumerator WIFI_MODE_AP = 2
AP mode.
-
enumerator WIFI_MODE_P2P_GO = 3
P2P group owner mode.
-
enumerator WIFI_MODE_P2P_GROUP_FORMATION = 4
P2P group formation mode.
-
enumerator WIFI_MODE_MESH = 5
802.11s Mesh mode.
-
enumerator WIFI_MODE_INFRA = 0
-
enum wifi_link_mode
Wi-Fi link operating modes.
As per https://en.wikipedia.org/wiki/Wi-Fi#Versions_and_generations.
Values:
-
enumerator WIFI_0 = 0
802.11 (legacy).
-
enumerator WIFI_1
802.11b.
-
enumerator WIFI_2
802.11a.
-
enumerator WIFI_3
802.11g.
-
enumerator WIFI_4
802.11n.
-
enumerator WIFI_5
802.11ac.
-
enumerator WIFI_6
802.11ax.
-
enumerator WIFI_6E
802.11ax 6GHz.
-
enumerator WIFI_7
802.11be.
-
enumerator WIFI_0 = 0
-
enum wifi_scan_type
Wi-Fi scanning types.
Values:
-
enumerator WIFI_SCAN_TYPE_ACTIVE = 0
Active scanning (default).
-
enumerator WIFI_SCAN_TYPE_PASSIVE
Passive scanning.
-
enumerator WIFI_SCAN_TYPE_ACTIVE = 0
-
enum wifi_ps
Wi-Fi power save states.
Values:
-
enumerator WIFI_PS_DISABLED = 0
Power save disabled.
-
enumerator WIFI_PS_ENABLED
Power save enabled.
-
enumerator WIFI_PS_DISABLED = 0
-
enum wifi_ps_mode
Wi-Fi power save modes.
Values:
-
enumerator WIFI_PS_MODE_LEGACY = 0
Legacy power save mode.
-
enumerator WIFI_PS_MODE_WMM
WMM power save mode.
-
enumerator WIFI_PS_MODE_LEGACY = 0
-
enum wifi_operational_modes
Wifi operational mode.
Values:
-
enum wifi_filter
Mode filter settings.
Values:
-
enum wifi_twt_operation
Wi-Fi Target Wake Time (TWT) operations.
Values:
-
enumerator WIFI_TWT_SETUP = 0
TWT setup operation.
-
enumerator WIFI_TWT_TEARDOWN
TWT teardown operation.
-
enumerator WIFI_TWT_SETUP = 0
-
enum wifi_twt_negotiation_type
Wi-Fi Target Wake Time (TWT) negotiation types.
Values:
-
enumerator WIFI_TWT_INDIVIDUAL = 0
TWT individual negotiation.
-
enumerator WIFI_TWT_BROADCAST
TWT broadcast negotiation.
-
enumerator WIFI_TWT_WAKE_TBTT
TWT wake TBTT negotiation.
-
enumerator WIFI_TWT_INDIVIDUAL = 0
-
enum wifi_twt_setup_cmd
Wi-Fi Target Wake Time (TWT) setup commands.
Values:
-
enumerator WIFI_TWT_SETUP_CMD_REQUEST = 0
TWT setup request.
-
enumerator WIFI_TWT_SETUP_CMD_SUGGEST
TWT setup suggest (parameters can be changed by AP)
-
enumerator WIFI_TWT_SETUP_CMD_DEMAND
TWT setup demand (parameters can not be changed by AP)
-
enumerator WIFI_TWT_SETUP_CMD_GROUPING
TWT setup grouping (grouping of TWT flows)
-
enumerator WIFI_TWT_SETUP_CMD_ACCEPT
TWT setup accept (parameters accepted by AP)
-
enumerator WIFI_TWT_SETUP_CMD_ALTERNATE
TWT setup alternate (alternate parameters suggested by AP)
-
enumerator WIFI_TWT_SETUP_CMD_DICTATE
TWT setup dictate (parameters dictated by AP)
-
enumerator WIFI_TWT_SETUP_CMD_REJECT
TWT setup reject (parameters rejected by AP)
-
enumerator WIFI_TWT_SETUP_CMD_REQUEST = 0
-
enum wifi_twt_setup_resp_status
Wi-Fi Target Wake Time (TWT) negotiation status.
Values:
-
enumerator WIFI_TWT_RESP_RECEIVED = 0
TWT response received for TWT request.
-
enumerator WIFI_TWT_RESP_NOT_RECEIVED
TWT response not received for TWT request.
-
enumerator WIFI_TWT_RESP_RECEIVED = 0
-
enum wifi_twt_fail_reason
Target Wake Time (TWT) error codes.
Values:
-
enumerator WIFI_TWT_FAIL_UNSPECIFIED
Unspecified error.
-
enumerator WIFI_TWT_FAIL_CMD_EXEC_FAIL
Command execution failed.
-
enumerator WIFI_TWT_FAIL_OPERATION_NOT_SUPPORTED
Operation not supported.
-
enumerator WIFI_TWT_FAIL_UNABLE_TO_GET_IFACE_STATUS
Unable to get interface status.
-
enumerator WIFI_TWT_FAIL_DEVICE_NOT_CONNECTED
Device not connected to AP.
-
enumerator WIFI_TWT_FAIL_PEER_NOT_HE_CAPAB
Peer not HE (802.11ax/Wi-Fi 6) capable.
-
enumerator WIFI_TWT_FAIL_PEER_NOT_TWT_CAPAB
Peer not TWT capable.
-
enumerator WIFI_TWT_FAIL_OPERATION_IN_PROGRESS
A TWT flow is already in progress.
-
enumerator WIFI_TWT_FAIL_INVALID_FLOW_ID
Invalid negotiated flow id.
-
enumerator WIFI_TWT_FAIL_IP_NOT_ASSIGNED
IP address not assigned or configured.
-
enumerator WIFI_TWT_FAIL_FLOW_ALREADY_EXISTS
Flow already exists.
-
enumerator WIFI_TWT_FAIL_UNSPECIFIED
-
enum wifi_twt_teardown_status
Wi-Fi Target Wake Time (TWT) teradown status.
Values:
-
enumerator WIFI_TWT_TEARDOWN_SUCCESS = 0
TWT teardown success.
-
enumerator WIFI_TWT_TEARDOWN_FAILED
TWT teardown failure.
-
enumerator WIFI_TWT_TEARDOWN_SUCCESS = 0
-
enum wifi_ps_param_type
Wi-Fi power save parameters.
Values:
-
enumerator WIFI_PS_PARAM_STATE
Power save state.
-
enumerator WIFI_PS_PARAM_LISTEN_INTERVAL
Power save listen interval.
-
enumerator WIFI_PS_PARAM_WAKEUP_MODE
Power save wakeup mode.
-
enumerator WIFI_PS_PARAM_MODE
Power save mode.
-
enumerator WIFI_PS_PARAM_TIMEOUT
Power save timeout.
-
enumerator WIFI_PS_PARAM_STATE
-
enum wifi_ps_wakeup_mode
Wi-Fi power save modes.
Values:
-
enumerator WIFI_PS_WAKEUP_MODE_DTIM = 0
DTIM based wakeup.
-
enumerator WIFI_PS_WAKEUP_MODE_LISTEN_INTERVAL
Listen interval based wakeup.
-
enumerator WIFI_PS_WAKEUP_MODE_DTIM = 0
-
enum wifi_config_ps_param_fail_reason
Wi-Fi power save error codes.
Values:
-
enumerator WIFI_PS_PARAM_FAIL_UNSPECIFIED
Unspecified error.
-
enumerator WIFI_PS_PARAM_FAIL_CMD_EXEC_FAIL
Command execution failed.
-
enumerator WIFI_PS_PARAM_FAIL_OPERATION_NOT_SUPPORTED
Parameter not supported.
-
enumerator WIFI_PS_PARAM_FAIL_UNABLE_TO_GET_IFACE_STATUS
Unable to get interface status.
-
enumerator WIFI_PS_PARAM_FAIL_DEVICE_NOT_CONNECTED
Device not connected to AP.
-
enumerator WIFI_PS_PARAM_FAIL_DEVICE_CONNECTED
Device already connected to AP.
-
enumerator WIFI_PS_PARAM_LISTEN_INTERVAL_RANGE_INVALID
Listen interval out of range.
-
enumerator WIFI_PS_PARAM_FAIL_UNSPECIFIED
-
enum wifi_ap_config_param
Wi-Fi AP mode configuration parameter.
Values:
-
enum net_request_wifi_cmd
Wi-Fi management commands.
Values:
-
enumerator NET_REQUEST_WIFI_CMD_SCAN = 1
Scan for Wi-Fi networks.
-
enumerator NET_REQUEST_WIFI_CMD_CONNECT
Connect to a Wi-Fi network.
-
enumerator NET_REQUEST_WIFI_CMD_DISCONNECT
Disconnect from a Wi-Fi network.
-
enumerator NET_REQUEST_WIFI_CMD_AP_ENABLE
Enable AP mode.
-
enumerator NET_REQUEST_WIFI_CMD_AP_DISABLE
Disable AP mode.
-
enumerator NET_REQUEST_WIFI_CMD_IFACE_STATUS
Get interface status.
-
enumerator NET_REQUEST_WIFI_CMD_PS
Set power save status.
-
enumerator NET_REQUEST_WIFI_CMD_TWT
Setup or teardown TWT flow.
-
enumerator NET_REQUEST_WIFI_CMD_PS_CONFIG
Get power save config.
-
enumerator NET_REQUEST_WIFI_CMD_REG_DOMAIN
Set or get regulatory domain.
-
enumerator NET_REQUEST_WIFI_CMD_MODE
Set or get Mode of operation.
-
enumerator NET_REQUEST_WIFI_CMD_PACKET_FILTER
Set or get packet filter setting for current mode.
-
enumerator NET_REQUEST_WIFI_CMD_CHANNEL
Set or get Wi-Fi channel for Monitor or TX-Injection mode.
-
enumerator NET_REQUEST_WIFI_CMD_AP_STA_DISCONNECT
Disconnect a STA from AP.
-
enumerator NET_REQUEST_WIFI_CMD_VERSION
Get Wi-Fi driver and Firmware versions.
-
enumerator NET_REQUEST_WIFI_CMD_RTS_THRESHOLD
Set RTS threshold.
-
enumerator NET_REQUEST_WIFI_CMD_AP_CONFIG_PARAM
Configure AP parameter.
-
enumerator NET_REQUEST_WIFI_CMD_SCAN = 1
-
enum net_event_wifi_cmd
Wi-Fi management events.
Values:
-
enumerator NET_EVENT_WIFI_CMD_SCAN_RESULT = 1
Scan results available.
-
enumerator NET_EVENT_WIFI_CMD_SCAN_DONE
Scan done.
-
enumerator NET_EVENT_WIFI_CMD_CONNECT_RESULT
Connect result.
-
enumerator NET_EVENT_WIFI_CMD_DISCONNECT_RESULT
Disconnect result.
-
enumerator NET_EVENT_WIFI_CMD_IFACE_STATUS
Interface status.
-
enumerator NET_EVENT_WIFI_CMD_TWT
TWT events.
-
enumerator NET_EVENT_WIFI_CMD_TWT_SLEEP_STATE
TWT sleep status: awake or sleeping, can be used by application to determine if it can send data or not.
-
enumerator NET_EVENT_WIFI_CMD_RAW_SCAN_RESULT
Raw scan results available.
-
enumerator NET_EVENT_WIFI_CMD_DISCONNECT_COMPLETE
Disconnect complete.
-
enumerator NET_EVENT_WIFI_CMD_AP_ENABLE_RESULT
AP mode enable result.
-
enumerator NET_EVENT_WIFI_CMD_AP_DISABLE_RESULT
AP mode disable result.
-
enumerator NET_EVENT_WIFI_CMD_AP_STA_CONNECTED
STA connected to AP.
-
enumerator NET_EVENT_WIFI_CMD_AP_STA_DISCONNECTED
STA disconnected from AP.
-
enumerator NET_EVENT_WIFI_CMD_SCAN_RESULT = 1
-
enum wifi_conn_status
Wi-Fi connect result codes.
To be overlaid on top of wifi_status in the connect result event for detailed status.
Values:
-
enumerator WIFI_STATUS_CONN_SUCCESS = 0
Connection successful.
-
enumerator WIFI_STATUS_CONN_FAIL
Connection failed - generic failure.
-
enumerator WIFI_STATUS_CONN_WRONG_PASSWORD
Connection failed - wrong password Few possible reasons for 4-way handshake failure that we can guess are as follows: 1) Incorrect key 2) EAPoL frames lost causing timeout.
#1 is the likely cause, so, we convey to the user that it is due to Wrong passphrase/password.
-
enumerator WIFI_STATUS_CONN_TIMEOUT
Connection timed out.
-
enumerator WIFI_STATUS_CONN_AP_NOT_FOUND
Connection failed - AP not found.
-
enumerator WIFI_STATUS_CONN_LAST_STATUS
Last connection status.
-
enumerator WIFI_STATUS_DISCONN_FIRST_STATUS = WIFI_STATUS_CONN_LAST_STATUS
Connection disconnected status.
-
enumerator WIFI_STATUS_CONN_SUCCESS = 0
-
enum wifi_disconn_reason
Wi-Fi disconnect reason codes.
To be overlaid on top of wifi_status in the disconnect result event for detailed reason.
Values:
-
enumerator WIFI_REASON_DISCONN_SUCCESS = 0
Success, overload status as reason.
-
enumerator WIFI_REASON_DISCONN_UNSPECIFIED
Unspecified reason.
-
enumerator WIFI_REASON_DISCONN_USER_REQUEST
Disconnected due to user request.
-
enumerator WIFI_REASON_DISCONN_AP_LEAVING
Disconnected due to AP leaving.
-
enumerator WIFI_REASON_DISCONN_INACTIVITY
Disconnected due to inactivity.
-
enumerator WIFI_REASON_DISCONN_SUCCESS = 0
-
enum wifi_ap_status
Wi-Fi AP mode result codes.
To be overlaid on top of wifi_status in the AP mode enable or disable result event for detailed status.
Values:
-
enumerator WIFI_STATUS_AP_SUCCESS = 0
AP mode enable or disable successful.
-
enumerator WIFI_STATUS_AP_FAIL
AP mode enable or disable failed - generic failure.
-
enumerator WIFI_STATUS_AP_CHANNEL_NOT_SUPPORTED
AP mode enable failed - channel not supported.
-
enumerator WIFI_STATUS_AP_CHANNEL_NOT_ALLOWED
AP mode enable failed - channel not allowed.
-
enumerator WIFI_STATUS_AP_SSID_NOT_ALLOWED
AP mode enable failed - SSID not allowed.
-
enumerator WIFI_STATUS_AP_AUTH_TYPE_NOT_SUPPORTED
AP mode enable failed - authentication type not supported.
-
enumerator WIFI_STATUS_AP_OP_NOT_SUPPORTED
AP mode enable failed - operation not supported.
-
enumerator WIFI_STATUS_AP_OP_NOT_PERMITTED
AP mode enable failed - operation not permitted.
-
enumerator WIFI_STATUS_AP_SUCCESS = 0
Functions
-
const char *wifi_security_txt(enum wifi_security_type security)
Helper function to get user-friendly security type name.
-
const char *wifi_mfp_txt(enum wifi_mfp_options mfp)
Helper function to get user-friendly MFP name.
-
const char *wifi_band_txt(enum wifi_frequency_bands band)
Helper function to get user-friendly frequency band name.
-
const char *wifi_state_txt(enum wifi_iface_state state)
Helper function to get user-friendly interface state name.
-
const char *wifi_mode_txt(enum wifi_iface_mode mode)
Helper function to get user-friendly interface mode name.
-
const char *wifi_link_mode_txt(enum wifi_link_mode link_mode)
Helper function to get user-friendly link mode name.
-
const char *wifi_ps_mode_txt(enum wifi_ps_mode ps_mode)
Helper function to get user-friendly ps mode name.
-
const char *wifi_twt_operation_txt(enum wifi_twt_operation twt_operation)
Helper function to get user-friendly twt operation name.
-
const char *wifi_twt_negotiation_type_txt(enum wifi_twt_negotiation_type twt_negotiation)
Helper function to get user-friendly twt negotiation type name.
-
const char *wifi_twt_setup_cmd_txt(enum wifi_twt_setup_cmd twt_setup)
Helper function to get user-friendly twt setup cmd name.
-
static inline const char *wifi_twt_get_err_code_str(int16_t err_no)
Helper function to get user-friendly TWT error code name.
-
const char *wifi_ps_wakeup_mode_txt(enum wifi_ps_wakeup_mode ps_wakeup_mode)
Helper function to get user-friendly ps wakeup mode name.
-
static inline const char *wifi_ps_get_config_err_code_str(int16_t err_no)
Helper function to get user-friendly power save error code name.
-
void wifi_mgmt_raise_connect_result_event(struct net_if *iface, int status)
Wi-Fi management connect result event.
- Parameters:
iface – Network interface
status – Connect result status
-
void wifi_mgmt_raise_disconnect_result_event(struct net_if *iface, int status)
Wi-Fi management disconnect result event.
- Parameters:
iface – Network interface
status – Disconnect result status
-
void wifi_mgmt_raise_iface_status_event(struct net_if *iface, struct wifi_iface_status *iface_status)
Wi-Fi management interface status event.
- Parameters:
iface – Network interface
iface_status – Interface status
-
void wifi_mgmt_raise_twt_event(struct net_if *iface, struct wifi_twt_params *twt_params)
Wi-Fi management TWT event.
- Parameters:
iface – Network interface
twt_params – TWT parameters
-
void wifi_mgmt_raise_twt_sleep_state(struct net_if *iface, int twt_sleep_state)
Wi-Fi management TWT sleep state event.
- Parameters:
iface – Network interface
twt_sleep_state – TWT sleep state
-
void wifi_mgmt_raise_raw_scan_result_event(struct net_if *iface, struct wifi_raw_scan_result *raw_scan_info)
Wi-Fi management raw scan result event.
- Parameters:
iface – Network interface
raw_scan_info – Raw scan result
-
void wifi_mgmt_raise_disconnect_complete_event(struct net_if *iface, int status)
Wi-Fi management disconnect complete event.
- Parameters:
iface – Network interface
status – Disconnect complete status
-
void wifi_mgmt_raise_ap_enable_result_event(struct net_if *iface, enum wifi_ap_status status)
Wi-Fi management AP mode enable result event.
- Parameters:
iface – Network interface
status – AP mode enable result status
-
void wifi_mgmt_raise_ap_disable_result_event(struct net_if *iface, enum wifi_ap_status status)
Wi-Fi management AP mode disable result event.
- Parameters:
iface – Network interface
status – AP mode disable result status
-
void wifi_mgmt_raise_ap_sta_connected_event(struct net_if *iface, struct wifi_ap_sta_info *sta_info)
Wi-Fi management AP mode STA connected event.
- Parameters:
iface – Network interface
sta_info – STA information
-
void wifi_mgmt_raise_ap_sta_disconnected_event(struct net_if *iface, struct wifi_ap_sta_info *sta_info)
Wi-Fi management AP mode STA disconnected event.
- Parameters:
iface – Network interface
sta_info – STA information
-
struct wifi_version
- #include <wifi_mgmt.h>
Wi-Fi version.
-
struct wifi_band_channel
- #include <wifi_mgmt.h>
Wi-Fi structure to uniquely identify a band-channel pair.
-
struct wifi_scan_params
- #include <wifi_mgmt.h>
Wi-Fi scan parameters structure.
Used to specify parameters which can control how the Wi-Fi scan is performed.
Public Members
-
enum wifi_scan_type scan_type
Scan type, see enum wifi_scan_type.
The scan_type is only a hint to the underlying Wi-Fi chip for the preferred mode of scan. The actual mode of scan can depend on factors such as the Wi-Fi chip implementation support, regulatory domain restrictions etc.
-
uint8_t bands
Bitmap of bands to be scanned.
Refer to wifi_frequency_bands for bit position of each band.
-
uint16_t dwell_time_active
Active scan dwell time (in ms) on a channel.
-
uint16_t dwell_time_passive
Passive scan dwell time (in ms) on a channel.
-
const char *ssids[WIFI_MGMT_SCAN_SSID_FILT_MAX]
Array of SSID strings to scan.
-
uint16_t max_bss_cnt
Specifies the maximum number of scan results to return.
These results would be the BSSIDS with the best RSSI values, in all the scanned channels. This should only be used to limit the number of returned scan results, and cannot be counted upon to limit the scan time, since the underlying Wi-Fi chip might have to scan all the channels to find the max_bss_cnt number of APs with the best signal strengths. A value of 0 signifies that there is no restriction on the number of scan results to be returned.
-
struct wifi_band_channel band_chan[WIFI_MGMT_SCAN_CHAN_MAX_MANUAL]
Channel information array indexed on Wi-Fi frequency bands and channels within that band.
E.g. to scan channel 6 and 11 on the 2.4 GHz band, channel 36 on the 5 GHz band:
chan[0] = {WIFI_FREQ_BAND_2_4_GHZ, 6}; chan[1] = {WIFI_FREQ_BAND_2_4_GHZ, 11}; chan[2] = {WIFI_FREQ_BAND_5_GHZ, 36};
This list specifies the channels to be considered for scan. The underlying Wi-Fi chip can silently omit some channels due to various reasons such as channels not conforming to regulatory restrictions etc. The invoker of the API should ensure that the channels specified follow regulatory rules.
-
enum wifi_scan_type scan_type
-
struct wifi_scan_result
- #include <wifi_mgmt.h>
Wi-Fi scan result, each result is provided to the net_mgmt_event_callback via its info attribute (see net_mgmt.h)
Public Members
-
uint8_t ssid[WIFI_SSID_MAX_LEN]
SSID.
-
uint8_t ssid_length
SSID length.
-
uint8_t band
Frequency band.
-
uint8_t channel
Channel.
-
enum wifi_security_type security
Security type.
-
enum wifi_mfp_options mfp
MFP options.
-
int8_t rssi
RSSI.
-
uint8_t mac[WIFI_MAC_ADDR_LEN]
BSSID.
-
uint8_t mac_length
BSSID length.
-
uint8_t ssid[WIFI_SSID_MAX_LEN]
-
struct wifi_connect_req_params
- #include <wifi_mgmt.h>
Wi-Fi connect request parameters.
Public Members
-
const uint8_t *ssid
SSID.
-
uint8_t ssid_length
SSID length.
-
const uint8_t *psk
Pre-shared key.
-
uint8_t psk_length
Pre-shared key length.
-
const uint8_t *sae_password
SAE password (same as PSK but with no length restrictions), optional.
-
uint8_t sae_password_length
SAE password length.
-
uint8_t band
Frequency band.
-
uint8_t channel
Channel.
-
enum wifi_security_type security
Security type.
-
enum wifi_mfp_options mfp
MFP options.
-
uint8_t bssid[WIFI_MAC_ADDR_LEN]
BSSID.
-
int timeout
Connect timeout in seconds, SYS_FOREVER_MS for no timeout.
-
const uint8_t *ssid
-
struct wifi_status
- #include <wifi_mgmt.h>
Generic Wi-Fi status for commands and events.
Public Members
-
int status
Status value.
-
enum wifi_conn_status conn_status
Connection status.
-
enum wifi_disconn_reason disconn_reason
Disconnection reason status.
-
enum wifi_ap_status ap_status
Access point status.
-
int status
-
struct wifi_iface_status
- #include <wifi_mgmt.h>
Wi-Fi interface status.
Public Members
-
int state
Interface state, see enum wifi_iface_state.
-
unsigned int ssid_len
SSID length.
-
char ssid[WIFI_SSID_MAX_LEN]
SSID.
-
char bssid[WIFI_MAC_ADDR_LEN]
BSSID.
-
enum wifi_frequency_bands band
Frequency band.
-
unsigned int channel
Channel.
-
enum wifi_iface_mode iface_mode
Interface mode, see enum wifi_iface_mode.
-
enum wifi_link_mode link_mode
Link mode, see enum wifi_link_mode.
-
enum wifi_security_type security
Security type, see enum wifi_security_type.
-
enum wifi_mfp_options mfp
MFP options, see enum wifi_mfp_options.
-
int rssi
RSSI.
-
unsigned char dtim_period
DTIM period.
-
unsigned short beacon_interval
Beacon interval.
-
bool twt_capable
is TWT capable?
-
int state
-
struct wifi_ps_params
- #include <wifi_mgmt.h>
Wi-Fi power save parameters.
Public Members
-
unsigned short listen_interval
Listen interval.
-
enum wifi_ps_wakeup_mode wakeup_mode
Wi-Fi power save wakeup mode.
-
enum wifi_ps_mode mode
Wi-Fi power save mode.
-
unsigned int timeout_ms
Wi-Fi power save timeout.
This is the time out to wait after sending a TX packet before going back to power save (in ms) to receive any replies from the AP. Zero means this feature is disabled.
It’s a tradeoff between power consumption and latency.
-
enum wifi_ps_param_type type
Wi-Fi power save type.
-
enum wifi_config_ps_param_fail_reason fail_reason
Wi-Fi power save fail reason.
-
unsigned short listen_interval
-
struct wifi_twt_params
- #include <wifi_mgmt.h>
Wi-Fi TWT parameters.
Public Members
-
enum wifi_twt_operation operation
TWT operation, see enum wifi_twt_operation.
-
enum wifi_twt_negotiation_type negotiation_type
TWT negotiation type, see enum wifi_twt_negotiation_type.
-
enum wifi_twt_setup_cmd setup_cmd
TWT setup command, see enum wifi_twt_setup_cmd.
-
enum wifi_twt_setup_resp_status resp_status
TWT setup response status, see enum wifi_twt_setup_resp_status.
-
enum wifi_twt_teardown_status teardown_status
TWT teardown cmd status, see enum wifi_twt_teardown_status.
-
uint8_t dialog_token
Dialog token, used to map requests to responses.
-
uint8_t flow_id
Flow ID, used to map setup with teardown.
-
uint64_t twt_interval
Interval = Wake up time + Sleeping time.
-
bool responder
Requestor or responder.
-
bool trigger
Trigger enabled or disabled.
-
bool implicit
Implicit or explicit.
-
bool announce
Announced or unannounced.
-
uint32_t twt_wake_interval
Wake up time.
-
uint32_t twt_wake_ahead_duration
Wake ahead notification is sent earlier than TWT Service period (SP) start based on this duration.
This should give applications ample time to prepare the data before TWT SP starts.
-
struct wifi_twt_params.[anonymous].[anonymous] setup
Setup specific parameters.
-
bool teardown_all
Teardown all flows.
-
struct wifi_twt_params.[anonymous].[anonymous] teardown
Teardown specific parameters.
-
enum wifi_twt_fail_reason fail_reason
TWT fail reason, see enum wifi_twt_fail_reason.
-
enum wifi_twt_operation operation
-
struct wifi_twt_flow_info
- #include <wifi_mgmt.h>
Wi-Fi TWT flow information.
Public Members
-
uint64_t twt_interval
Interval = Wake up time + Sleeping time.
-
uint8_t dialog_token
Dialog token, used to map requests to responses.
-
uint8_t flow_id
Flow ID, used to map setup with teardown.
-
enum wifi_twt_negotiation_type negotiation_type
TWT negotiation type, see enum wifi_twt_negotiation_type.
-
bool responder
Requestor or responder.
-
bool trigger
Trigger enabled or disabled.
-
bool implicit
Implicit or explicit.
-
bool announce
Announced or unannounced.
-
uint32_t twt_wake_interval
Wake up time.
-
uint32_t twt_wake_ahead_duration
Wake ahead duration.
-
uint64_t twt_interval
-
struct wifi_ps_config
- #include <wifi_mgmt.h>
Wi-Fi power save configuration.
Public Members
-
char num_twt_flows
Number of TWT flows.
-
struct wifi_twt_flow_info twt_flows[WIFI_MAX_TWT_FLOWS]
TWT flow details.
-
struct wifi_ps_params ps_params
Power save configuration.
-
char num_twt_flows
-
struct wifi_reg_chan_info
- #include <wifi_mgmt.h>
Per-channel regulatory attributes.
-
struct wifi_reg_domain
- #include <wifi_mgmt.h>
Regulatory domain information or configuration.
Public Members
-
enum wifi_mgmt_op oper
Regulatory domain operation.
-
bool force
Ignore all other regulatory hints over this one.
-
uint8_t country_code[WIFI_COUNTRY_CODE_LEN]
Country code: ISO/IEC 3166-1 alpha-2.
-
unsigned int num_channels
Number of channels supported.
-
struct wifi_reg_chan_info *chan_info
Channels information.
-
enum wifi_mgmt_op oper
-
struct wifi_raw_scan_result
- #include <wifi_mgmt.h>
Wi-Fi raw scan result.
-
struct wifi_ap_sta_info
- #include <wifi_mgmt.h>
AP mode - connected STA details.
Public Members
-
enum wifi_link_mode link_mode
Link mode, see enum wifi_link_mode.
-
uint8_t mac[WIFI_MAC_ADDR_LEN]
MAC address.
-
uint8_t mac_length
MAC address length.
-
bool twt_capable
is TWT capable ?
-
enum wifi_link_mode link_mode
-
struct wifi_mode_info
- #include <wifi_mgmt.h>
Wi-Fi mode setup.
Public Members
-
uint8_t mode
Mode setting for a specific mode of operation.
-
uint8_t if_index
Interface index.
-
enum wifi_mgmt_op oper
Get or set operation.
-
uint8_t mode
-
struct wifi_filter_info
- #include <wifi_mgmt.h>
Wi-Fi filter setting for monitor, prmoiscuous, TX-injection modes.
Public Members
-
uint8_t filter
Filter setting.
-
uint8_t if_index
Interface index.
-
uint16_t buffer_size
Filter buffer size.
-
enum wifi_mgmt_op oper
Get or set operation.
-
uint8_t filter
-
struct wifi_channel_info
- #include <wifi_mgmt.h>
Wi-Fi channel setting for monitor and TX-injection modes.
Public Members
-
uint16_t channel
Channel value to set.
-
uint8_t if_index
Interface index.
-
enum wifi_mgmt_op oper
Get or set operation.
-
uint16_t channel
-
struct wifi_ap_config_params
- #include <wifi_mgmt.h>
Wi-Fi AP configuration parameter.
Public Members
-
enum wifi_ap_config_param type
Parameter used to identify the different AP parameters.
-
uint32_t max_inactivity
Parameter used for setting maximum inactivity duration for stations.
-
uint32_t max_num_sta
Parameter used for setting maximum number of stations.
-
enum wifi_ap_config_param type
-
struct wifi_mgmt_ops
- #include <wifi_mgmt.h>
Wi-Fi management API.
Public Members
-
int (*scan)(const struct device *dev, struct wifi_scan_params *params, scan_result_cb_t cb)
Scan for Wi-Fi networks.
- Param dev:
Pointer to the device structure for the driver instance.
- Param params:
Scan parameters
- Param cb:
Callback to be called for each result cb parameter is the cb that should be called for each result by the driver. The wifi mgmt part will take care of raising the necessary event etc.
- Return:
0 if ok, < 0 if error
-
int (*connect)(const struct device *dev, struct wifi_connect_req_params *params)
Connect to a Wi-Fi network.
- Param dev:
Pointer to the device structure for the driver instance.
- Param params:
Connect parameters
- Return:
0 if ok, < 0 if error
-
int (*disconnect)(const struct device *dev)
Disconnect from a Wi-Fi network.
- Param dev:
Pointer to the device structure for the driver instance.
- Return:
0 if ok, < 0 if error
-
int (*ap_enable)(const struct device *dev, struct wifi_connect_req_params *params)
Enable AP mode.
- Param dev:
Pointer to the device structure for the driver instance.
- Param params:
AP mode parameters
- Return:
0 if ok, < 0 if error
-
int (*ap_disable)(const struct device *dev)
Disable AP mode.
- Param dev:
Pointer to the device structure for the driver instance.
- Return:
0 if ok, < 0 if error
-
int (*ap_sta_disconnect)(const struct device *dev, const uint8_t *mac)
Disconnect a STA from AP.
- Param dev:
Pointer to the device structure for the driver instance.
- Param mac:
MAC address of the STA to disconnect
- Return:
0 if ok, < 0 if error
-
int (*iface_status)(const struct device *dev, struct wifi_iface_status *status)
Get interface status.
- Param dev:
Pointer to the device structure for the driver instance.
- Param status:
Interface status
- Return:
0 if ok, < 0 if error
-
int (*get_stats)(const struct device *dev, struct net_stats_wifi *stats)
Get Wi-Fi statistics.
- Param dev:
Pointer to the device structure for the driver instance.
- Param stats:
Wi-Fi statistics
- Return:
0 if ok, < 0 if error
-
int (*set_power_save)(const struct device *dev, struct wifi_ps_params *params)
Set power save status.
- Param dev:
Pointer to the device structure for the driver instance.
- Param params:
Power save parameters
- Return:
0 if ok, < 0 if error
-
int (*set_twt)(const struct device *dev, struct wifi_twt_params *params)
Setup or teardown TWT flow.
- Param dev:
Pointer to the device structure for the driver instance.
- Param params:
TWT parameters
- Return:
0 if ok, < 0 if error
-
int (*get_power_save_config)(const struct device *dev, struct wifi_ps_config *config)
Get power save config.
- Param dev:
Pointer to the device structure for the driver instance.
- Param config:
Power save config
- Return:
0 if ok, < 0 if error
-
int (*reg_domain)(const struct device *dev, struct wifi_reg_domain *reg_domain)
Set or get regulatory domain.
- Param dev:
Pointer to the device structure for the driver instance.
- Param reg_domain:
Regulatory domain
- Return:
0 if ok, < 0 if error
-
int (*filter)(const struct device *dev, struct wifi_filter_info *filter)
Set or get packet filter settings for monitor and promiscuous modes.
- Param dev:
Pointer to the device structure for the driver instance.
- Param packet:
filter settings
- Return:
0 if ok, < 0 if error
-
int (*mode)(const struct device *dev, struct wifi_mode_info *mode)
Set or get mode of operation.
- Param dev:
Pointer to the device structure for the driver instance.
- Param mode:
settings
- Return:
0 if ok, < 0 if error
-
int (*channel)(const struct device *dev, struct wifi_channel_info *channel)
Set or get current channel of operation.
- Param dev:
Pointer to the device structure for the driver instance.
- Param channel:
settings
- Return:
0 if ok, < 0 if error
-
int (*get_version)(const struct device *dev, struct wifi_version *params)
Get Version of WiFi driver and Firmware.
The driver that implements the get_version function must not use stack to allocate the version information pointers that are returned as params struct members. The version pointer parameters should point to a static memory either in ROM (preferred) or in RAM.
- Param dev:
Pointer to the device structure for the driver instance
- Param params:
Version parameters
- Return:
0 if ok, < 0 if error
-
int (*set_rts_threshold)(const struct device *dev, unsigned int rts_threshold)
Set RTS threshold value.
- Param dev:
Pointer to the device structure for the driver instance.
- Param RTS:
threshold value
- Return:
0 if ok, < 0 if error
-
int (*ap_config_params)(const struct device *dev, struct wifi_ap_config_params *params)
Configure AP parameter.
- Param dev:
Pointer to the device structure for the driver instance.
- Param params:
AP mode parameter configuration parameter info
- Return:
0 if ok, < 0 if error
-
int (*scan)(const struct device *dev, struct wifi_scan_params *params, scan_result_cb_t cb)
-
struct net_wifi_mgmt_offload
- #include <wifi_mgmt.h>
Wi-Fi management offload API.
Public Members
-
struct ethernet_api wifi_iface
Mandatory to get in first position.
A network device should indeed provide a pointer on such net_if_api structure. So we make current structure pointer that can be casted to a net_if_api structure pointer. Ethernet API
-
const struct wifi_mgmt_ops *const wifi_mgmt_api
Wi-Fi management API.
-
const void *wifi_drv_ops
Wi-Fi supplicant driver API.
-
struct ethernet_api wifi_iface
-
int wifi_utils_parse_scan_bands(char *scan_bands_str, uint8_t *band_map)