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
280#define VSF_WIFI_CHIP_FLAG_FULLMAC (1 << 0)
282#if VSF_WIFI_USE_WPA == ENABLED
386#if VSF_WIFI_USE_WPA == ENABLED
487#define WIFI_BW_20MHZ 0
488#define WIFI_BW_40MHZ_PLUS 1
489#define WIFI_BW_40MHZ_MINUS 2
490#define WIFI_BW_80MHZ 3
579#if VSF_WIFI_USE_WPA == ENABLED
608#define VSF_WIFI_EVT_SCAN_HOP (VSF_EVT_USER + 0x40)
613#define VSF_WIFI_EVT_MLME_RETRY (VSF_EVT_USER + 0x41)
676#if VSF_WIFI_USE_WPA == ENABLED
702#if VSF_WIFI_USE_RT28XX == ENABLED
706#if VSF_WIFI_USE_MT76 == ENABLED
710#if VSF_WIFI_USE_AIC8800D == ENABLED
721#if VSF_WIFI_CFG_LOG_LEVEL >= 1
722# define vsf_wifi_trace_error(...) vsf_trace_error(__VA_ARGS__)
724# define vsf_wifi_trace_error(...) ((void)0)
727#if VSF_WIFI_CFG_LOG_LEVEL >= 2
728# define vsf_wifi_trace_info(...) vsf_trace_info(__VA_ARGS__)
730# define vsf_wifi_trace_info(...) ((void)0)
733#if VSF_WIFI_CFG_LOG_LEVEL >= 4
734# define vsf_wifi_trace_debug(...) vsf_trace_info(__VA_ARGS__)
736# 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:161
uint8_t pairwise_cipher
Definition vsf_wifi.h:163
uint8_t psk[32]
Definition vsf_wifi.h:165
uint8_t psk_len
Definition vsf_wifi.h:166
uint8_t group_cipher
Definition vsf_wifi.h:164
uint8_t auth_mode
Definition vsf_wifi.h:162
Definition vsf_wifi.h:312
vsf_err_t(* set_channel)(vsf_wifi_t *wifi, uint8_t channel, vsf_wifi_done_t done)
Definition vsf_wifi.h:330
vsf_err_t(* disconnect)(vsf_wifi_t *wifi, vsf_wifi_done_t done)
Definition vsf_wifi.h:345
uint32_t flags
Definition vsf_wifi.h:316
void(* parse_rx)(vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.h:353
vsf_err_t(* set_bssid)(vsf_wifi_t *wifi, const uint8_t bssid[6], vsf_wifi_done_t done)
Definition vsf_wifi.h:336
const vsf_wifi_radio_ops_t * radio_ops
Definition vsf_wifi.h:394
struct vsf_wifi_chip_drv_t::@344::@347 fullmac
vsf_err_t(* get_link_info)(vsf_wifi_t *wifi, vsf_wifi_link_info_t *info)
Definition vsf_wifi.h:346
void(* fini)(vsf_wifi_t *wifi)
Definition vsf_wifi.h:324
vsf_err_t(* tx)(vsf_wifi_t *wifi, const uint8_t *frame, uint16_t len)
Definition vsf_wifi.h:384
vsf_err_t(* set_mac_addr)(vsf_wifi_t *wifi, const uint8_t mac[6], vsf_wifi_done_t done)
Definition vsf_wifi.h:334
const char * name
Definition vsf_wifi.h:313
const vsf_wifi_crypto_ops_t * crypto_ops
Definition vsf_wifi.h:389
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:341
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:356
struct vsf_wifi_chip_drv_t::@344::@346 softmac
vsf_err_t(* firmware_load)(vsf_wifi_t *wifi, vsf_wifi_done_t done)
Definition vsf_wifi.h:322
vsf_err_t(* init)(vsf_wifi_t *wifi, vsf_wifi_done_t done)
Definition vsf_wifi.h:323
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:338
vsf_err_t(* scan)(vsf_wifi_t *wifi, const uint8_t *channels, uint8_t num_channels, uint16_t dwell_ms, vsf_wifi_done_t done)
Definition vsf_wifi.h:364
vsf_err_t(* set_rx_filter)(vsf_wifi_t *wifi, uint32_t mask, vsf_wifi_done_t done)
Definition vsf_wifi.h:332
Definition vsf_wifi.h:302
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:303
vsf_err_t(* encrypt)(vsf_wifi_t *wifi, uint8_t *dot11, uint16_t *len, uint16_t cap)
Definition vsf_wifi.h:306
vsf_err_t(* decrypt)(vsf_wifi_t *wifi, uint8_t *dot11, uint16_t *len)
Definition vsf_wifi.h:308
Definition vsf_wifi.h:152
uint16_t rx_rate
Definition vsf_wifi.h:157
uint8_t bssid[6]
Definition vsf_wifi.h:153
uint32_t flags
Definition vsf_wifi.h:158
uint8_t channel
Definition vsf_wifi.h:154
uint16_t tx_rate
Definition vsf_wifi.h:156
int8_t rssi
Definition vsf_wifi.h:155
Definition vsf_wifi.h:430
void(* on_link_down)(void *param, vsf_wifi_t *wifi, uint8_t reason)
Definition vsf_wifi.h:435
void(* on_rx)(void *param, vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.h:431
void(* on_link_up)(void *param, vsf_wifi_t *wifi, const vsf_wifi_link_info_t *info)
Definition vsf_wifi.h:433
Definition vsf_wifi_radio.h:59
Definition vsf_wifi.h:188
uint16_t chunk_size
Definition vsf_wifi.h:192
uint32_t base_reg
Definition vsf_wifi.h:191
uint32_t len
Definition vsf_wifi.h:190
const uint8_t * data
Definition vsf_wifi.h:189
Definition vsf_wifi.h:215
vsf_err_t(* reg_read)(vsf_wifi_t *wifi, uint32_t reg, uint32_t *out, vsf_wifi_done_t done)
Definition vsf_wifi.h:231
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:243
vsf_err_t(* data_tx)(vsf_wifi_t *wifi, uint8_t *data, uint16_t len)
Definition vsf_wifi.h:259
vsf_err_t(* reg_write)(vsf_wifi_t *wifi, uint32_t reg, uint32_t val, vsf_wifi_done_t done)
Definition vsf_wifi.h:223
void(* on_ready)(vsf_wifi_t *wifi)
Definition vsf_wifi.h:251
Definition vsf_wifi.h:176
uint32_t reg
Definition vsf_wifi.h:177
uint32_t val
Definition vsf_wifi.h:178
Definition vsf_wifi.h:132
int8_t rssi
Definition vsf_wifi.h:137
uint16_t rsn_cap
Definition vsf_wifi.h:147
uint8_t ssid[33]
Definition vsf_wifi.h:134
uint8_t ht40_width
Definition vsf_wifi.h:148
uint8_t ht40_plus
Definition vsf_wifi.h:149
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:57
bool vsf_wifi_is_ready(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1824
void vsf_wifi_on_del(vsf_wifi_t *wifi)
Definition vsf_wifi.c:101
void vsf_wifi_on_ready(vsf_wifi_t *wifi)
Definition vsf_wifi.c:108
bool(* vsf_wifi_reg_match_fn_t)(void *ctx, uint32_t val)
Definition vsf_wifi.h:130
void vsf_wifi_data_rx(vsf_wifi_t *wifi, const uint8_t *dot11, uint16_t len)
Definition vsf_wifi.c:1053
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:354
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:1917
@ 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
vsf_err_t vsf_wifi_disconnect(vsf_wifi_t *wifi)
Definition vsf_wifi.c:2036
void vsf_wifi_on_rx_internal(vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:773
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:1839
struct vsf_wifi_netif_ops_t vsf_wifi_netif_ops_t
void vsf_wifi_mlme_handshake_fail(vsf_wifi_t *wifi, uint8_t reason)
Definition vsf_wifi.c:2298
struct vsf_wifi_scan_result_t vsf_wifi_scan_result_t
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:433
vsf_err_t vsf_wifi_set_bssid(vsf_wifi_t *wifi, const uint8_t bssid[6])
Definition vsf_wifi.c:1882
void vsf_wifi_start(vsf_wifi_t *wifi)
Definition vsf_wifi.c:658
uint8_t vsf_wifi_get_channel(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1829
vsf_err_t vsf_wifi_reg_read_poll(vsf_wifi_t *wifi, uint32_t reg, vsf_wifi_reg_match_fn_t match, void *match_ctx, uint16_t max_retry, uint16_t interval_ms, vsf_wifi_done_t done)
Definition vsf_wifi.c:557
const char * vsf_wifi_get_chip_name(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1834
void vsf_wifi_on_mlme_retry_evt(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1664
void vsf_wifi_mlme_rx(vsf_wifi_t *wifi, const uint8_t *dot11, uint16_t len)
Definition vsf_wifi.c:1700
void vsf_wifi_on_link_down(vsf_wifi_t *wifi, uint8_t reason)
Definition vsf_wifi.c:123
void vsf_wifi_on_scan_hop_evt(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1301
vsf_err_t vsf_wifi_mlme_tx(vsf_wifi_t *wifi, const uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:2138
vsf_err_t vsf_wifi_set_auth_mode(vsf_wifi_t *wifi, const vsf_wifi_auth_cfg_t *cfg)
Definition vsf_wifi.c:1892
void vsf_wifi_on_rx(vsf_wifi_t *wifi, uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:104
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:133
void vsf_wifi_set_channel(vsf_wifi_t *wifi, uint8_t channel)
Definition vsf_wifi.c:1849
void vsf_wifi_mlme_arm_timer(vsf_wifi_t *wifi, uint16_t ms)
Definition vsf_wifi.c:2143
vsf_wifi_reg_op_t * vsf_wifi_reg_get_scratch_ops(vsf_wifi_t *wifi)
Definition vsf_wifi.c:476
void vsf_wifi_fini(vsf_wifi_t *wifi)
Definition vsf_wifi.c:744
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:604
void vsf_wifi_on_link_up(vsf_wifi_t *wifi, const vsf_wifi_link_info_t *info)
Definition vsf_wifi.c:119
void vsf_wifi_netdrv_detach(vsf_wifi_t *wifi)
Definition vsf_wifi.c:140
void vsf_wifi_on_scan_result(vsf_wifi_t *wifi, const vsf_wifi_scan_result_t *result)
Definition vsf_wifi.c:111
vsf_err_t vsf_wifi_get_link_info(vsf_wifi_t *wifi, vsf_wifi_link_info_t *info)
Definition vsf_wifi.c:2063
void vsf_wifi_on_new(vsf_wifi_t *wifi)
Definition vsf_wifi.c:98
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:116
void vsf_wifi_set_attach_fail(vsf_wifi_t *wifi, vsf_wifi_attach_fail_t hook)
Definition vsf_wifi.c:653
vsf_err_t vsf_wifi_tx(vsf_wifi_t *wifi, const uint8_t *frame, uint16_t len)
Definition vsf_wifi.c:2109
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:1976
@ 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
uint16_t vsf_wifi_get_bss_max_idle_period(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1844
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:1864
void vsf_wifi_mlme_handshake_done(vsf_wifi_t *wifi)
Definition vsf_wifi.c:2268
@ 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
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:627
vsf_err_t vsf_wifi_scan_stop(vsf_wifi_t *wifi)
Definition vsf_wifi.c:1963
@ 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
vsf_err_t vsf_wifi_set_mac(vsf_wifi_t *wifi, const uint8_t mac[6])
Definition vsf_wifi.c:1872
void(* vsf_wifi_attach_fail_t)(vsf_wifi_t *wifi, vsf_err_t err)
Definition vsf_wifi.h:559
uint16_t vsf_wifi_ccmp_encap_with_pn(vsf_wifi_t *wifi, const uint8_t *frame, uint16_t len, uint8_t *out, uint16_t cap, uint8_t pn[6])
Definition vsf_wifi.c:957