25#if VSF_USE_WIFI == ENABLED
58#define WIFI_LINK_FLAG_CONNECTED (1 << 0)
59#define WIFI_LINK_FLAG_AUTHORIZED (1 << 1)
61#define WIFI_SCAN_FLAG_PRIVACY (1 << 0)
62#define WIFI_SCAN_FLAG_WPS (1 << 1)
63#define WIFI_SCAN_FLAG_WPA (1 << 2)
64#define WIFI_SCAN_FLAG_WPA2 (1 << 3)
104#ifndef VSF_WIFI_CFG_SCRATCH_OPS
105# define VSF_WIFI_CFG_SCRATCH_OPS 24
109#ifndef VSF_WIFI_CFG_SCAN_MAX_CHANNELS
110# define VSF_WIFI_CFG_SCAN_MAX_CHANNELS 40
274#if VSF_WIFI_USE_WPA == ENABLED
355#if VSF_WIFI_USE_WPA == ENABLED
456#define WIFI_BW_20MHZ 0
457#define WIFI_BW_40MHZ_PLUS 1
458#define WIFI_BW_40MHZ_MINUS 2
459#define WIFI_BW_80MHZ 3
548#if VSF_WIFI_USE_WPA == ENABLED
577#define VSF_WIFI_EVT_SCAN_HOP (VSF_EVT_USER + 0x40)
582#define VSF_WIFI_EVT_MLME_RETRY (VSF_EVT_USER + 0x41)
655#if VSF_WIFI_USE_RT28XX == ENABLED
659#if VSF_WIFI_USE_MT76 == ENABLED
670#if VSF_WIFI_CFG_LOG_LEVEL >= 1
671# define vsf_wifi_trace_error(...) vsf_trace_error(__VA_ARGS__)
673# define vsf_wifi_trace_error(...) ((void)0)
676#if VSF_WIFI_CFG_LOG_LEVEL >= 2
677# define vsf_wifi_trace_info(...) vsf_trace_info(__VA_ARGS__)
679# define vsf_wifi_trace_info(...) ((void)0)
682#if VSF_WIFI_CFG_LOG_LEVEL >= 4
683# define vsf_wifi_trace_debug(...) vsf_trace_info(__VA_ARGS__)
685# define vsf_wifi_trace_debug(...) ((void)0)
vsf_err_t
Definition __type.h:42
struct ieee80211_ext_chansw_ie data
Definition ieee80211.h:80
u8 bssid[ETH_ALEN]
Definition ieee80211.h:2
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
signed char int8_t
Definition stdint.h:4
Definition vsf_wifi.h:160
uint8_t pairwise_cipher
Definition vsf_wifi.h:162
uint8_t psk[32]
Definition vsf_wifi.h:164
uint8_t psk_len
Definition vsf_wifi.h:165
uint8_t group_cipher
Definition vsf_wifi.h:163
uint8_t auth_mode
Definition vsf_wifi.h:161
Definition vsf_wifi.h:304
vsf_err_t(* set_channel)(vsf_wifi_t *wifi, uint8_t channel, vsf_wifi_done_t done)
Definition vsf_wifi.h:314
vsf_err_t(* disconnect)(vsf_wifi_t *wifi, vsf_wifi_done_t done)
Definition vsf_wifi.h:329
void(* parse_rx)(vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.h:337
vsf_err_t(* set_bssid)(vsf_wifi_t *wifi, const uint8_t bssid[6], vsf_wifi_done_t done)
Definition vsf_wifi.h:320
const vsf_wifi_radio_ops_t * radio_ops
Definition vsf_wifi.h:363
vsf_err_t(* get_link_info)(vsf_wifi_t *wifi, vsf_wifi_link_info_t *info)
Definition vsf_wifi.h:330
void(* fini)(vsf_wifi_t *wifi)
Definition vsf_wifi.h:313
vsf_err_t(* tx)(vsf_wifi_t *wifi, const uint8_t *frame, uint16_t len)
Definition vsf_wifi.h:353
vsf_err_t(* set_mac_addr)(vsf_wifi_t *wifi, const uint8_t mac[6], vsf_wifi_done_t done)
Definition vsf_wifi.h:318
const char * name
Definition vsf_wifi.h:305
const vsf_wifi_crypto_ops_t * crypto_ops
Definition vsf_wifi.h:358
vsf_err_t(* connect)(vsf_wifi_t *wifi, const uint8_t bssid[6], const uint8_t *ssid, uint8_t ssid_len, uint8_t channel, vsf_wifi_done_t done)
Definition vsf_wifi.h:325
uint16_t(* build_tx)(vsf_wifi_t *wifi, uint8_t *dst, uint16_t dst_cap, const uint8_t *frame, uint16_t frame_len)
Definition vsf_wifi.h:345
vsf_err_t(* firmware_load)(vsf_wifi_t *wifi, vsf_wifi_done_t done)
Definition vsf_wifi.h:311
vsf_err_t(* init)(vsf_wifi_t *wifi, vsf_wifi_done_t done)
Definition vsf_wifi.h:312
vsf_err_t(* set_auth_mode)(vsf_wifi_t *wifi, const vsf_wifi_auth_cfg_t *cfg, vsf_wifi_done_t done)
Definition vsf_wifi.h:322
vsf_err_t(* set_rx_filter)(vsf_wifi_t *wifi, uint32_t mask, vsf_wifi_done_t done)
Definition vsf_wifi.h:316
Definition vsf_wifi.h:294
vsf_err_t(* install_key)(vsf_wifi_t *wifi, uint8_t key_idx, bool pairwise, const uint8_t *key, uint8_t key_len, const uint8_t *mac, vsf_wifi_done_t done)
Definition vsf_wifi.h:295
vsf_err_t(* encrypt)(vsf_wifi_t *wifi, uint8_t *dot11, uint16_t *len, uint16_t cap)
Definition vsf_wifi.h:298
vsf_err_t(* decrypt)(vsf_wifi_t *wifi, uint8_t *dot11, uint16_t *len)
Definition vsf_wifi.h:300
Definition vsf_wifi.h:151
uint16_t rx_rate
Definition vsf_wifi.h:156
uint8_t bssid[6]
Definition vsf_wifi.h:152
uint32_t flags
Definition vsf_wifi.h:157
uint8_t channel
Definition vsf_wifi.h:153
uint16_t tx_rate
Definition vsf_wifi.h:155
int8_t rssi
Definition vsf_wifi.h:154
Definition vsf_wifi.h:399
void(* on_link_down)(void *param, vsf_wifi_t *wifi, uint8_t reason)
Definition vsf_wifi.h:404
void(* on_rx)(void *param, vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.h:400
void(* on_link_up)(void *param, vsf_wifi_t *wifi, const vsf_wifi_link_info_t *info)
Definition vsf_wifi.h:402
Definition vsf_wifi_radio.h:59
Definition vsf_wifi.h:187
uint16_t chunk_size
Definition vsf_wifi.h:191
uint32_t base_reg
Definition vsf_wifi.h:190
uint32_t len
Definition vsf_wifi.h:189
const uint8_t * data
Definition vsf_wifi.h:188
Definition vsf_wifi.h:214
vsf_err_t(* reg_read)(vsf_wifi_t *wifi, uint32_t reg, uint32_t *out, vsf_wifi_done_t done)
Definition vsf_wifi.h:230
vsf_err_t(* reg_block_write)(vsf_wifi_t *wifi, uint32_t base, const uint8_t *data, uint32_t len, vsf_wifi_done_t done)
Definition vsf_wifi.h:242
vsf_err_t(* data_tx)(vsf_wifi_t *wifi, uint8_t *data, uint16_t len)
Definition vsf_wifi.h:258
vsf_err_t(* reg_write)(vsf_wifi_t *wifi, uint32_t reg, uint32_t val, vsf_wifi_done_t done)
Definition vsf_wifi.h:222
void(* on_ready)(vsf_wifi_t *wifi)
Definition vsf_wifi.h:250
Definition vsf_wifi.h:175
uint32_t reg
Definition vsf_wifi.h:176
uint32_t val
Definition vsf_wifi.h:177
Definition vsf_wifi.h:132
int8_t rssi
Definition vsf_wifi.h:137
uint8_t ssid[33]
Definition vsf_wifi.h:134
uint8_t ht40_width
Definition vsf_wifi.h:147
uint8_t ht40_plus
Definition vsf_wifi.h:148
uint16_t capability
Definition vsf_wifi.h:138
uint8_t auth_mode
Definition vsf_wifi.h:144
uint8_t wmm
Definition vsf_wifi.h:140
uint8_t group_cipher
Definition vsf_wifi.h:146
uint8_t channel
Definition vsf_wifi.h:136
uint8_t bssid[6]
Definition vsf_wifi.h:133
uint8_t pairwise_cipher
Definition vsf_wifi.h:145
uint8_t flags
Definition vsf_wifi.h:139
uint8_t ssid_len
Definition vsf_wifi.h:135
Definition vsf_wifi_priv.h:53
bool vsf_wifi_is_ready(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1697
void vsf_wifi_on_del(vsf_wifi_t *wifi)
Definition vsf_wifi.c:97
void vsf_wifi_on_ready(vsf_wifi_t *wifi)
Definition vsf_wifi.c:104
void vsf_wifi_data_rx(vsf_wifi_t *wifi, const uint8_t *dot11, uint16_t len)
Definition vsf_wifi.c:1025
vsf_err_t vsf_wifi_reg_run_script(vsf_wifi_t *wifi, const vsf_wifi_reg_op_t *ops, uint16_t count, vsf_wifi_done_t done)
Definition vsf_wifi.c:348
vsf_err_t vsf_wifi_scan(vsf_wifi_t *wifi, const uint8_t *channels, uint8_t num_channels, uint16_t dwell_ms)
Definition vsf_wifi.c:1775
bool(* vsf_wifi_reg_match_fn_t)(uint32_t val)
Definition vsf_wifi.h:130
vsf_err_t vsf_wifi_disconnect(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1856
void vsf_wifi_on_rx_internal(vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:757
struct vsf_wifi_link_info_t vsf_wifi_link_info_t
const uint8_t * vsf_wifi_get_mac(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1712
struct vsf_wifi_netif_ops_t vsf_wifi_netif_ops_t
@ WIFI_CIPHER_TKIP
Definition vsf_wifi.h:53
@ WIFI_CIPHER_TKIP_CCMP
Definition vsf_wifi.h:55
@ WIFI_CIPHER_CCMP
Definition vsf_wifi.h:54
@ WIFI_CIPHER_NONE
Definition vsf_wifi.h:50
@ WIFI_CIPHER_WEP40
Definition vsf_wifi.h:51
@ WIFI_CIPHER_WEP104
Definition vsf_wifi.h:52
void vsf_wifi_mlme_handshake_fail(vsf_wifi_t *wifi, uint8_t reason)
Definition vsf_wifi.c:2082
struct vsf_wifi_scan_result_t vsf_wifi_scan_result_t
vsf_err_t vsf_wifi_reg_read_poll(vsf_wifi_t *wifi, uint32_t reg, vsf_wifi_reg_match_fn_t match, uint16_t max_retry, uint16_t interval_ms, vsf_wifi_done_t done)
Definition vsf_wifi.c:550
vsf_err_t vsf_wifi_reg_run_blob(vsf_wifi_t *wifi, const vsf_wifi_reg_blob_t *blob, vsf_wifi_done_t done)
Definition vsf_wifi.c:427
vsf_err_t vsf_wifi_set_bssid(vsf_wifi_t *wifi, const uint8_t bssid[6])
Definition vsf_wifi.c:1750
void vsf_wifi_start(vsf_wifi_t *wifi)
Definition vsf_wifi.c:650
uint8_t vsf_wifi_get_channel(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1702
@ WIFI_REASON_DISASSOC_LEAVING
Definition vsf_wifi.h:89
@ WIFI_REASON_AUTH_REJECTED
Definition vsf_wifi.h:91
@ WIFI_REASON_LOCAL_TIMEOUT
Definition vsf_wifi.h:90
@ WIFI_REASON_ASSOC_REJECTED
Definition vsf_wifi.h:92
@ WIFI_REASON_MIC_FAILURE
Definition vsf_wifi.h:88
@ WIFI_REASON_UNSPECIFIED
Definition vsf_wifi.h:86
@ WIFI_REASON_LOCAL_DISCONNECT
Definition vsf_wifi.h:93
@ WIFI_REASON_AUTH_LEAVING
Definition vsf_wifi.h:87
@ WIFI_MLME_ASSOC
Definition vsf_wifi.h:74
@ WIFI_MLME_IDLE
Definition vsf_wifi.h:72
@ WIFI_MLME_AUTH
Definition vsf_wifi.h:73
@ WIFI_MLME_KEY_INSTALL
Definition vsf_wifi.h:77
@ WIFI_MLME_RUN
Definition vsf_wifi.h:76
@ WIFI_MLME_4WAY
Definition vsf_wifi.h:75
@ WIFI_MLME_RAW_RADIO
Definition vsf_wifi.h:78
const char * vsf_wifi_get_chip_name(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1707
void vsf_wifi_on_mlme_retry_evt(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1537
void vsf_wifi_mlme_rx(vsf_wifi_t *wifi, const uint8_t *dot11, uint16_t len)
Definition vsf_wifi.c:1573
void vsf_wifi_on_link_down(vsf_wifi_t *wifi, uint8_t reason)
Definition vsf_wifi.c:119
void vsf_wifi_on_scan_hop_evt(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1257
vsf_err_t vsf_wifi_mlme_tx(vsf_wifi_t *wifi, const uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:1922
vsf_err_t vsf_wifi_set_auth_mode(vsf_wifi_t *wifi, const vsf_wifi_auth_cfg_t *cfg)
Definition vsf_wifi.c:1757
void vsf_wifi_on_rx(vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:100
struct vsf_wifi_auth_cfg_t vsf_wifi_auth_cfg_t
void vsf_wifi_netdrv_attach(vsf_wifi_t *wifi, const vsf_wifi_netif_ops_t *ops, void *param)
Definition vsf_wifi.c:129
void vsf_wifi_set_channel(vsf_wifi_t *wifi, uint8_t channel)
Definition vsf_wifi.c:1722
void vsf_wifi_mlme_arm_timer(vsf_wifi_t *wifi, uint16_t ms)
Definition vsf_wifi.c:1927
vsf_wifi_reg_op_t * vsf_wifi_reg_get_scratch_ops(vsf_wifi_t *wifi)
Definition vsf_wifi.c:470
void vsf_wifi_fini(vsf_wifi_t *wifi)
Definition vsf_wifi.c:728
vsf_err_t vsf_wifi_reg_read(vsf_wifi_t *wifi, uint32_t reg, uint32_t *out, vsf_wifi_done_t done)
Definition vsf_wifi.c:596
void vsf_wifi_on_link_up(vsf_wifi_t *wifi, const vsf_wifi_link_info_t *info)
Definition vsf_wifi.c:115
void vsf_wifi_netdrv_detach(vsf_wifi_t *wifi)
Definition vsf_wifi.c:136
void vsf_wifi_on_scan_result(vsf_wifi_t *wifi, const vsf_wifi_scan_result_t *result)
Definition vsf_wifi.c:107
vsf_err_t vsf_wifi_get_link_info(vsf_wifi_t *wifi, vsf_wifi_link_info_t *info)
Definition vsf_wifi.c:1873
void vsf_wifi_on_new(vsf_wifi_t *wifi)
Definition vsf_wifi.c:94
struct vsf_wifi_reg_blob_t vsf_wifi_reg_blob_t
void vsf_wifi_on_scan_done(vsf_wifi_t *wifi)
Definition vsf_wifi.c:112
void vsf_wifi_set_attach_fail(vsf_wifi_t *wifi, vsf_wifi_attach_fail_t hook)
Definition vsf_wifi.c:645
vsf_err_t vsf_wifi_tx(vsf_wifi_t *wifi, const uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:1892
void(* vsf_wifi_done_t)(vsf_wifi_t *wifi, vsf_err_t err)
Definition vsf_wifi.h:123
vsf_err_t vsf_wifi_connect(vsf_wifi_t *wifi, const uint8_t bssid[6], const uint8_t *ssid, uint8_t ssid_len, uint8_t channel)
Definition vsf_wifi.c:1819
uint16_t vsf_wifi_get_bss_max_idle_period(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1717
struct vsf_wifi_reg_op_t vsf_wifi_reg_op_t
struct vsf_wifi_crypto_ops_t vsf_wifi_crypto_ops_t
void vsf_wifi_set_channel_bw(vsf_wifi_t *wifi, uint8_t bw)
Definition vsf_wifi.c:1735
void vsf_wifi_mlme_handshake_done(vsf_wifi_t *wifi)
Definition vsf_wifi.c:2052
void vsf_wifi_init(vsf_wifi_t *wifi, const vsf_wifi_chip_drv_t *drv, const vsf_wifi_reg_bus_t *reg_bus, vsf_eda_t *post_eda)
Definition vsf_wifi.c:619
vsf_err_t vsf_wifi_scan_stop(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1806
vsf_err_t vsf_wifi_set_mac(vsf_wifi_t *wifi, const uint8_t mac[6])
Definition vsf_wifi.c:1743
void(* vsf_wifi_attach_fail_t)(vsf_wifi_t *wifi, vsf_err_t err)
Definition vsf_wifi.h:528
@ WIFI_AUTH_WPA2_PSK
Definition vsf_wifi.h:44
@ WIFI_AUTH_WPA_WPA2_PSK
Definition vsf_wifi.h:45
@ WIFI_AUTH_WEP
Definition vsf_wifi.h:42
@ WIFI_AUTH_WPA2_ENTERPRISE
Definition vsf_wifi.h:46
@ WIFI_AUTH_WPA_PSK
Definition vsf_wifi.h:43
@ WIFI_AUTH_OPEN
Definition vsf_wifi.h:41