20 #define WPA_SUPPLICANT_DRIVER_VERSION 4 22 #include "common/defs.h" 23 #include "common/ieee802_11_defs.h" 25 #include "pae/ieee802_1x_kay.h" 27 #include "utils/list.h" 29 #define HOSTAPD_CHAN_DISABLED 0x00000001 30 #define HOSTAPD_CHAN_NO_IR 0x00000002 31 #define HOSTAPD_CHAN_RADAR 0x00000008 32 #define HOSTAPD_CHAN_HT40PLUS 0x00000010 33 #define HOSTAPD_CHAN_HT40MINUS 0x00000020 34 #define HOSTAPD_CHAN_HT40 0x00000040 35 #define HOSTAPD_CHAN_SURVEY_LIST_INITIALIZED 0x00000080 37 #define HOSTAPD_CHAN_DFS_UNKNOWN 0x00000000 38 #define HOSTAPD_CHAN_DFS_USABLE 0x00000100 39 #define HOSTAPD_CHAN_DFS_UNAVAILABLE 0x00000200 40 #define HOSTAPD_CHAN_DFS_AVAILABLE 0x00000300 41 #define HOSTAPD_CHAN_DFS_MASK 0x00000300 43 #define HOSTAPD_CHAN_VHT_10_70 0x00000800 44 #define HOSTAPD_CHAN_VHT_30_50 0x00001000 45 #define HOSTAPD_CHAN_VHT_50_30 0x00002000 46 #define HOSTAPD_CHAN_VHT_70_10 0x00004000 48 #define HOSTAPD_CHAN_INDOOR_ONLY 0x00010000 49 #define HOSTAPD_CHAN_GO_CONCURRENT 0x00020000 51 #define HOSTAPD_CHAN_VHT_10_150 0x00100000 52 #define HOSTAPD_CHAN_VHT_30_130 0x00200000 53 #define HOSTAPD_CHAN_VHT_50_110 0x00400000 54 #define HOSTAPD_CHAN_VHT_70_90 0x00800000 55 #define HOSTAPD_CHAN_VHT_90_70 0x01000000 56 #define HOSTAPD_CHAN_VHT_110_50 0x02000000 57 #define HOSTAPD_CHAN_VHT_130_30 0x04000000 58 #define HOSTAPD_CHAN_VHT_150_10 0x08000000 61 #define WPA_DATA_FRAME_FILTER_FLAG_ARP BIT(0) 63 #define WPA_DATA_FRAME_FILTER_FLAG_NA BIT(1) 65 #define WPA_DATA_FRAME_FILTER_FLAG_GTK BIT(2) 70 enum reg_change_initiator {
74 REGDOM_SET_BY_COUNTRY_IE,
85 REGDOM_TYPE_CUSTOM_WORLD,
86 REGDOM_TYPE_INTERSECTION,
130 long double interference_factor;
139 #define HOSTAPD_MODE_FLAG_HT_INFO_KNOWN BIT(0) 140 #define HOSTAPD_MODE_FLAG_VHT_INFO_KNOWN BIT(1) 149 enum hostapd_hw_mode mode;
200 #define IEEE80211_MODE_INFRA 0 201 #define IEEE80211_MODE_IBSS 1 202 #define IEEE80211_MODE_AP 2 203 #define IEEE80211_MODE_MESH 5 205 #define IEEE80211_CAP_ESS 0x0001 206 #define IEEE80211_CAP_IBSS 0x0002 207 #define IEEE80211_CAP_PRIVACY 0x0010 208 #define IEEE80211_CAP_RRM 0x1000 212 #define IEEE80211_CAP_DMG_MASK 0x0003 213 #define IEEE80211_CAP_DMG_IBSS 0x0001 214 #define IEEE80211_CAP_DMG_PBSS 0x0002 215 #define IEEE80211_CAP_DMG_AP 0x0003 217 #define WPA_SCAN_QUAL_INVALID BIT(0) 218 #define WPA_SCAN_NOISE_INVALID BIT(1) 219 #define WPA_SCAN_LEVEL_INVALID BIT(2) 220 #define WPA_SCAN_LEVEL_DBM BIT(3) 221 #define WPA_SCAN_ASSOCIATED BIT(5) 270 unsigned int est_throughput;
273 u8 tsf_bssid[ETH_ALEN];
275 size_t beacon_ie_len;
305 const char *drv_name;
308 #define WPAS_MAX_SCAN_SSIDS 16 370 u8 ssid[SSID_MAX_LEN];
395 unsigned int p2p_probe:1;
404 unsigned int only_new_results:1;
412 unsigned int low_priority:1;
417 unsigned int mac_addr_rand:1;
496 unsigned int duration_mandatory:1;
517 const u8 *wep_key[4];
518 size_t wep_key_len[4];
520 int local_state_change;
569 enum hostapd_hw_mode mode;
743 const u8 *wep_key[4];
748 size_t wep_key_len[4];
758 enum mfp_options mgmt_frame_protection;
894 #ifdef CONFIG_VHT_OVERRIDES 951 HIDDEN_SSID_ZERO_LEN,
952 HIDDEN_SSID_ZERO_CONTENTS
959 u8 gtk_rekey_failure;
961 u8 four_way_handshake;
1018 enum beacon_rate_type rate_type;
1046 enum hide_ssid hide_ssid;
1220 #define WPA_DRIVER_MESH_CONF_FLAG_AUTO_PLINKS 0x00000001 1221 #define WPA_DRIVER_MESH_CONF_FLAG_PEER_LINK_TIMEOUT 0x00000002 1222 #define WPA_DRIVER_MESH_CONF_FLAG_MAX_PEER_LINKS 0x00000004 1223 #define WPA_DRIVER_MESH_CONF_FLAG_HT_OP_MODE 0x00000008 1230 int peer_link_timeout;
1238 const int *basic_rates;
1245 #define WPA_DRIVER_MESH_FLAG_USER_MPM 0x00000001 1246 #define WPA_DRIVER_MESH_FLAG_DRIVER_MPM 0x00000002 1247 #define WPA_DRIVER_MESH_FLAG_SAE_AUTH 0x00000004 1248 #define WPA_DRIVER_MESH_FLAG_AMPE 0x00000008 1256 #define WPA_DRIVER_CAPA_KEY_MGMT_WPA 0x00000001 1257 #define WPA_DRIVER_CAPA_KEY_MGMT_WPA2 0x00000002 1258 #define WPA_DRIVER_CAPA_KEY_MGMT_WPA_PSK 0x00000004 1259 #define WPA_DRIVER_CAPA_KEY_MGMT_WPA2_PSK 0x00000008 1260 #define WPA_DRIVER_CAPA_KEY_MGMT_WPA_NONE 0x00000010 1261 #define WPA_DRIVER_CAPA_KEY_MGMT_FT 0x00000020 1262 #define WPA_DRIVER_CAPA_KEY_MGMT_FT_PSK 0x00000040 1263 #define WPA_DRIVER_CAPA_KEY_MGMT_WAPI_PSK 0x00000080 1264 #define WPA_DRIVER_CAPA_KEY_MGMT_SUITE_B 0x00000100 1265 #define WPA_DRIVER_CAPA_KEY_MGMT_SUITE_B_192 0x00000200 1269 #define WPA_DRIVER_CAPA_ENC_WEP40 0x00000001 1270 #define WPA_DRIVER_CAPA_ENC_WEP104 0x00000002 1271 #define WPA_DRIVER_CAPA_ENC_TKIP 0x00000004 1272 #define WPA_DRIVER_CAPA_ENC_CCMP 0x00000008 1273 #define WPA_DRIVER_CAPA_ENC_WEP128 0x00000010 1274 #define WPA_DRIVER_CAPA_ENC_GCMP 0x00000020 1275 #define WPA_DRIVER_CAPA_ENC_GCMP_256 0x00000040 1276 #define WPA_DRIVER_CAPA_ENC_CCMP_256 0x00000080 1277 #define WPA_DRIVER_CAPA_ENC_BIP 0x00000100 1278 #define WPA_DRIVER_CAPA_ENC_BIP_GMAC_128 0x00000200 1279 #define WPA_DRIVER_CAPA_ENC_BIP_GMAC_256 0x00000400 1280 #define WPA_DRIVER_CAPA_ENC_BIP_CMAC_256 0x00000800 1281 #define WPA_DRIVER_CAPA_ENC_GTK_NOT_USED 0x00001000 1285 #define WPA_DRIVER_AUTH_OPEN 0x00000001 1286 #define WPA_DRIVER_AUTH_SHARED 0x00000002 1287 #define WPA_DRIVER_AUTH_LEAP 0x00000004 1292 #define WPA_DRIVER_FLAGS_DRIVER_IE 0x00000001 1294 #define WPA_DRIVER_FLAGS_SET_KEYS_AFTER_ASSOC 0x00000002 1296 #define WPA_DRIVER_FLAGS_DFS_OFFLOAD 0x00000004 1299 #define WPA_DRIVER_FLAGS_4WAY_HANDSHAKE 0x00000008 1301 #define WPA_DRIVER_FLAGS_WIRED 0x00000010 1304 #define WPA_DRIVER_FLAGS_SME 0x00000020 1306 #define WPA_DRIVER_FLAGS_AP 0x00000040 1308 #define WPA_DRIVER_FLAGS_SET_KEYS_AFTER_ASSOC_DONE 0x00000080 1310 #define WPA_DRIVER_FLAGS_HT_2040_COEX 0x00000100 1312 #define WPA_DRIVER_FLAGS_P2P_CONCURRENT 0x00000200 1317 #define WPA_DRIVER_FLAGS_P2P_DEDICATED_INTERFACE 0x00000400 1319 #define WPA_DRIVER_FLAGS_P2P_CAPABLE 0x00000800 1321 #define WPA_DRIVER_FLAGS_AP_TEARDOWN_SUPPORT 0x00001000 1327 #define WPA_DRIVER_FLAGS_P2P_MGMT_AND_NON_P2P 0x00002000 1333 #define WPA_DRIVER_FLAGS_SANE_ERROR_CODES 0x00004000 1335 #define WPA_DRIVER_FLAGS_OFFCHANNEL_TX 0x00008000 1337 #define WPA_DRIVER_FLAGS_EAPOL_TX_STATUS 0x00010000 1339 #define WPA_DRIVER_FLAGS_DEAUTH_TX_STATUS 0x00020000 1341 #define WPA_DRIVER_FLAGS_BSS_SELECTION 0x00040000 1343 #define WPA_DRIVER_FLAGS_TDLS_SUPPORT 0x00080000 1345 #define WPA_DRIVER_FLAGS_TDLS_EXTERNAL_SETUP 0x00100000 1347 #define WPA_DRIVER_FLAGS_PROBE_RESP_OFFLOAD 0x00200000 1349 #define WPA_DRIVER_FLAGS_AP_UAPSD 0x00400000 1351 #define WPA_DRIVER_FLAGS_INACTIVITY_TIMER 0x00800000 1353 #define WPA_DRIVER_FLAGS_AP_MLME 0x01000000 1355 #define WPA_DRIVER_FLAGS_SAE 0x02000000 1357 #define WPA_DRIVER_FLAGS_OBSS_SCAN 0x04000000 1359 #define WPA_DRIVER_FLAGS_IBSS 0x08000000 1361 #define WPA_DRIVER_FLAGS_RADAR 0x10000000 1363 #define WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE 0x20000000 1365 #define WPA_DRIVER_FLAGS_QOS_MAPPING 0x40000000 1367 #define WPA_DRIVER_FLAGS_AP_CSA 0x80000000 1369 #define WPA_DRIVER_FLAGS_MESH 0x0000000100000000ULL 1371 #define WPA_DRIVER_FLAGS_ACS_OFFLOAD 0x0000000200000000ULL 1373 #define WPA_DRIVER_FLAGS_KEY_MGMT_OFFLOAD 0x0000000400000000ULL 1375 #define WPA_DRIVER_FLAGS_TDLS_CHANNEL_SWITCH 0x0000000800000000ULL 1377 #define WPA_DRIVER_FLAGS_HT_IBSS 0x0000001000000000ULL 1379 #define WPA_DRIVER_FLAGS_VHT_IBSS 0x0000002000000000ULL 1381 #define WPA_DRIVER_FLAGS_SUPPORT_HW_MODE_ANY 0x0000004000000000ULL 1383 #define WPA_DRIVER_FLAGS_OFFCHANNEL_SIMULTANEOUS 0x0000008000000000ULL 1385 #define WPA_DRIVER_FLAGS_FULL_AP_CLIENT_STATE 0x0000010000000000ULL 1387 #define WPA_DRIVER_FLAGS_P2P_LISTEN_OFFLOAD 0x0000020000000000ULL 1389 #define WPA_DRIVER_FLAGS_SUPPORT_FILS 0x0000040000000000ULL 1391 #define WPA_DRIVER_FLAGS_BEACON_RATE_LEGACY 0x0000080000000000ULL 1393 #define WPA_DRIVER_FLAGS_BEACON_RATE_HT 0x0000100000000000ULL 1395 #define WPA_DRIVER_FLAGS_BEACON_RATE_VHT 0x0000200000000000ULL 1398 #define FULL_AP_CLIENT_STATE_SUPP(drv_flags) \ 1399 (drv_flags & WPA_DRIVER_FLAGS_FULL_AP_CLIENT_STATE) 1401 #define WPA_DRIVER_SMPS_MODE_STATIC 0x00000001 1402 #define WPA_DRIVER_SMPS_MODE_DYNAMIC 0x00000002 1403 unsigned int smps_modes;
1405 unsigned int wmm_ac_supported:1;
1407 unsigned int mac_addr_rand_scan_supported:1;
1408 unsigned int mac_addr_rand_sched_scan_supported:1;
1447 #define WPA_DRIVER_PROBE_RESP_OFFLOAD_WPS 0x00000001 1449 #define WPA_DRIVER_PROBE_RESP_OFFLOAD_WPS2 0x00000002 1451 #define WPA_DRIVER_PROBE_RESP_OFFLOAD_P2P 0x00000004 1453 #define WPA_DRIVER_PROBE_RESP_OFFLOAD_INTERWORKING 0x00000008 1454 unsigned int probe_resp_offloads;
1456 unsigned int max_acl_mac_addrs;
1470 unsigned int extended_capa_len;
1475 #define WPA_DRIVER_FLAGS_DS_PARAM_SET_IE_IN_PROBES 0x00000001 1477 #define WPA_DRIVER_FLAGS_WFA_TPC_IE_IN_PROBES 0x00000002 1479 #define WPA_DRIVER_FLAGS_QUIET 0x00000004 1489 #define WPA_DRIVER_FLAGS_TX_POWER_INSERTION 0x00000008 1494 #define WPA_DRIVER_FLAGS_SUPPORT_RRM 0x00000010 1497 #define WPA_DRIVER_FLAGS_SUPPORT_SET_SCAN_DWELL 0x00000020 1499 #define WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT 0x00000040 1504 unsigned int conc_capab;
1506 unsigned int max_conc_chan_2_4;
1508 unsigned int max_conc_chan_5_0;
1511 u16 max_csa_counters;
1518 unsigned long rx_packets, tx_packets;
1519 unsigned long long rx_bytes, tx_bytes;
1521 unsigned long current_tx_rate;
1522 unsigned long inactive_msec;
1523 unsigned long flags;
1524 unsigned long num_ps_buf_frames;
1525 unsigned long tx_retry_failed;
1526 unsigned long tx_retry_count;
1535 const u8 *supp_rates;
1536 size_t supp_rates_len;
1537 u16 listen_interval;
1540 int vht_opmode_enabled;
1545 enum mesh_plink_state plink_state;
1550 const u8 *ext_capab;
1551 size_t ext_capab_len;
1552 const u8 *supp_channels;
1553 size_t supp_channels_len;
1554 const u8 *supp_oper_classes;
1555 size_t supp_oper_classes_len;
1565 unsigned int num_mac_acl;
1569 enum wpa_driver_if_type {
1632 const char *driver_params;
1633 int use_pae_group_addr;
1653 enum mfp_options ieee80211w;
1656 #define WPA_STA_AUTHORIZED BIT(0) 1657 #define WPA_STA_WMM BIT(1) 1658 #define WPA_STA_SHORT_PREAMBLE BIT(2) 1659 #define WPA_STA_MFP BIT(3) 1660 #define WPA_STA_TDLS_PEER BIT(4) 1661 #define WPA_STA_AUTHENTICATED BIT(5) 1662 #define WPA_STA_ASSOCIATED BIT(6) 1675 WNM_SLEEP_ENTER_CONFIRM,
1676 WNM_SLEEP_ENTER_FAIL,
1677 WNM_SLEEP_EXIT_CONFIRM,
1678 WNM_SLEEP_EXIT_FAIL,
1679 WNM_SLEEP_TFS_REQ_IE_ADD,
1680 WNM_SLEEP_TFS_REQ_IE_NONE,
1681 WNM_SLEEP_TFS_REQ_IE_SET,
1683 WNM_SLEEP_TFS_RESP_IE_ADD,
1685 WNM_SLEEP_TFS_RESP_IE_NONE,
1686 WNM_SLEEP_TFS_RESP_IE_SET,
1688 WNM_SLEEP_TFS_IE_DEL
1707 int above_threshold;
1710 int avg_beacon_signal;
1713 enum chan_width chanwidth;
1742 size_t head_len, tail_len;
1743 size_t beacon_ies_len;
1744 size_t proberesp_ies_len;
1745 size_t assocresp_ies_len;
1746 size_t probe_resp_len;
1767 u16 counter_offset_beacon[2];
1768 u16 counter_offset_presp[2];
1772 enum tdls_peer_capability {
1773 TDLS_PEER_HT = BIT(0),
1774 TDLS_PEER_VHT = BIT(1),
1775 TDLS_PEER_WMM = BIT(2),
1779 enum wmm_params_valid_info {
1780 WMM_PARAMS_UAPSD_QUEUES_INFO = BIT(0),
1795 #ifdef CONFIG_MACSEC 1796 struct macsec_init_params {
1797 Boolean always_include_sci;
1803 enum drv_br_port_attr {
1804 DRV_BR_PORT_ATTR_PROXYARP,
1805 DRV_BR_PORT_ATTR_HAIRPIN_MODE,
1808 enum drv_br_net_param {
1809 DRV_BR_NET_PARAM_GARP_ACCEPT,
1810 DRV_BR_MULTICAST_SNOOPING,
1815 enum hostapd_hw_mode hw_mode;
1830 unsigned int ch_list_len;
1832 const int *freq_list;
1860 int (*get_bssid)(
void *priv, u8 *bssid);
1877 int (*get_ssid)(
void *priv, u8 *ssid);
1930 int (*set_key)(
const char *ifname,
void *priv,
enum wpa_alg alg,
1931 const u8 *addr,
int key_idx,
int set_tx,
1932 const u8 *seq,
size_t seq_len,
1933 const u8 *key,
size_t key_len);
1958 void * (*init)(
void *ctx,
const char *ifname);
1967 void (*deinit)(
void *priv);
1979 int (*set_param)(
void *priv,
const char *param);
1991 int (*set_countermeasures)(
void *priv,
int enabled);
2002 int (*deauthenticate)(
void *priv,
const u8 *addr,
int reason_code);
2011 int (*associate)(
void *priv,
2031 int (*add_pmkid)(
void *priv,
const u8 *
bssid,
const u8 *pmkid);
2051 int (*remove_pmkid)(
void *priv,
const u8 *
bssid,
const u8 *pmkid);
2069 int (*flush_pmkid)(
void *priv);
2093 void (*poll)(
void *priv);
2101 unsigned int (*get_ifindex)(
void *priv);
2114 const char * (*get_ifname)(
void *priv);
2126 const u8 * (*get_mac_addr)(
void *priv);
2140 int (*set_operstate)(
void *priv,
int state);
2158 int (*mlme_setprotection)(
void *priv,
const u8 *addr,
int protect_type,
2185 int (*send_mlme)(
void *priv,
const u8 *data,
size_t data_len,
2186 int noack,
unsigned int freq,
const u16 *csa_offs,
2187 size_t csa_offs_len);
2204 int (*update_ft_ies)(
void *priv,
const u8 *md,
const u8 *ies,
2225 int (*set_country)(
void *priv,
const char *alpha2);
2233 int (*get_country)(
void *priv,
char *alpha2);
2247 void * (*global_init)(
void *ctx);
2256 void (*global_deinit)(
void *priv);
2269 void * (*init2)(
void *ctx,
const char *ifname,
void *global_priv);
2305 int (*authenticate)(
void *priv,
2355 void (*hapd_deinit)(
void *priv);
2401 int (*get_seqnum)(
const char *
ifname,
void *priv,
const u8 *addr,
2413 int (*flush)(
void *priv);
2429 int (*set_generic_elem)(
void *priv,
const u8 *elem,
size_t elem_len);
2453 int (*hapd_send_eapol)(
void *priv,
const u8 *addr,
const u8 *data,
2454 size_t data_len,
int encrypt,
2455 const u8 *own_addr, u32 flags);
2468 int (*sta_deauth)(
void *priv,
const u8 *own_addr,
const u8 *addr,
2482 int (*sta_disassoc)(
void *priv,
const u8 *own_addr,
const u8 *addr,
2491 int (*sta_remove)(
void *priv,
const u8 *addr);
2503 int (*hapd_get_ssid)(
void *priv, u8 *buf,
int len);
2514 int (*hapd_set_ssid)(
void *priv,
const u8 *buf,
int len);
2525 int (*hapd_set_countermeasures)(
void *priv,
int enabled);
2553 int (*get_inact_sec)(
void *priv,
const u8 *addr);
2561 int (*sta_clear_stats)(
void *priv,
const u8 *addr);
2577 int (*set_rts)(
void *priv,
int rts);
2585 int (*set_frag)(
void *priv,
int frag);
2596 int (*sta_set_flags)(
void *priv,
const u8 *addr,
2597 unsigned int total_flags,
unsigned int flags_or,
2598 unsigned int flags_and);
2609 int (*set_tx_queue_params)(
void *priv,
int queue,
int aifs,
int cw_min,
2610 int cw_max,
int burst_time);
2632 int (*if_add)(
void *priv,
enum wpa_driver_if_type type,
2633 const char *ifname,
const u8 *addr,
void *bss_ctx,
2634 void **drv_priv,
char *force_ifname, u8 *if_addr,
2635 const char *bridge,
int use_existing,
int setup_ap);
2644 int (*if_remove)(
void *priv,
enum wpa_driver_if_type type,
2645 const char *ifname);
2661 int (*set_sta_vlan)(
void *priv,
const u8 *addr,
const char *ifname,
2674 int (*commit)(
void *priv);
2686 int (*send_ether)(
void *priv,
const u8 *dst,
const u8 *src, u16 proto,
2687 const u8 *data,
size_t data_len);
2697 int (*set_radius_acl_auth)(
void *priv,
const u8 *mac,
int accepted,
2698 u32 session_timeout);
2706 int (*set_radius_acl_expire)(
void *priv,
const u8 *mac);
2736 int (*set_ap_wps_ie)(
void *priv,
const struct wpabuf *beacon,
2737 const struct wpabuf *proberesp,
2738 const struct wpabuf *assocresp);
2746 int (*set_supp_port)(
void *priv,
int authorized);
2760 int (*set_wds_sta)(
void *priv,
const u8 *addr,
int aid,
int val,
2761 const char *bridge_ifname,
char *ifname_wds);
2789 int (*send_action)(
void *priv,
unsigned int freq,
unsigned int wait,
2790 const u8 *dst,
const u8 *src,
const u8 *bssid,
2791 const u8 *data,
size_t data_len,
int no_cck);
2801 void (*send_action_cancel_wait)(
void *priv);
2825 int (*remain_on_channel)(
void *priv,
unsigned int freq,
2826 unsigned int duration);
2839 int (*cancel_remain_on_channel)(
void *priv);
2855 int (*probe_req_report)(
void *priv,
int report);
2867 int (*deinit_ap)(
void *priv);
2878 int (*deinit_p2p_cli)(
void *priv);
2884 void (*suspend)(
void *priv);
2890 void (*resume)(
void *priv);
2906 int (*signal_monitor)(
void *priv,
int threshold,
int hysteresis);
2919 int (*send_frame)(
void *priv,
const u8 *data,
size_t data_len,
2933 int (*get_noa)(
void *priv, u8 *buf,
size_t buf_len);
2947 int (*set_noa)(
void *priv, u8 count,
int start,
int duration);
2957 int (*set_p2p_powersave)(
void *priv,
int legacy_ps,
int opp_ps,
2979 const char * (*get_radio_name)(
void *priv);
2997 int (*send_tdls_mgmt)(
void *priv,
const u8 *dst, u8 action_code,
2998 u8 dialog_token, u16 status_code, u32 peer_capab,
2999 int initiator,
const u8 *buf,
size_t len);
3011 int (*tdls_oper)(
void *priv,
enum tdls_oper oper,
const u8 *peer);
3022 int (*wnm_oper)(
void *priv,
enum wnm_oper oper,
const u8 *peer,
3023 u8 *buf, u16 *buf_len);
3031 int (*set_qos_map)(
void *priv,
const u8 *qos_map_set,
3032 u8 qos_map_set_len);
3043 int (*br_add_ip_neigh)(
void *priv, u8 version,
const u8 *ipaddr,
3044 int prefixlen,
const u8 *addr);
3053 int (*br_delete_ip_neigh)(
void *priv, u8 version,
const u8 *ipaddr);
3061 int (*br_port_set_attr)(
void *priv,
enum drv_br_port_attr attr,
3070 int (*br_set_net_param)(
void *priv,
enum drv_br_net_param param,
3099 int (*set_authmode)(
void *priv,
int authmode);
3110 int (*driver_cmd)(
void *priv,
char *cmd,
char *buf,
size_t buf_len);
3133 int (*vendor_cmd)(
void *priv,
unsigned int vendor_id,
3134 unsigned int subcmd,
const u8 *data,
size_t data_len,
3150 void (*set_rekey_info)(
void *priv,
const u8 *kek,
size_t kek_len,
3151 const u8 *kck,
size_t kck_len,
3152 const u8 *replay_ctr);
3168 int (*sta_assoc)(
void *priv,
const u8 *own_addr,
const u8 *addr,
3169 int reassoc, u16 status,
const u8 *ie,
size_t len);
3184 int (*sta_auth)(
void *priv,
const u8 *own_addr,
const u8 *addr,
3185 u16 seq, u16 status,
const u8 *ie,
size_t len);
3198 int (*add_tspec)(
void *priv,
const u8 *addr, u8 *tspec_ie,
3199 size_t tspec_ielen);
3211 int (*add_sta_node)(
void *priv,
const u8 *addr, u16 auth_alg);
3238 int (*stop_sched_scan)(
void *priv);
3251 void (*poll_client)(
void *priv,
const u8 *own_addr,
3252 const u8 *addr,
int qos);
3264 int (*radio_disable)(
void *priv,
int disabled);
3288 int (*add_tx_ts)(
void *priv, u8 tsid,
const u8 *addr, u8 user_prio,
3298 int (*del_tx_ts)(
void *priv, u8 tsid,
const u8 *addr);
3312 int (*tdls_enable_channel_switch)(
3313 void *priv,
const u8 *addr, u8 oper_class,
3325 int (*tdls_disable_channel_switch)(
void *priv,
const u8 *addr);
3344 int (*stop_ap)(
void *priv);
3369 int (*get_survey)(
void *priv,
unsigned int freq);
3378 int (*status)(
void *priv,
char *buf,
size_t buflen);
3394 int (*roaming)(
void *priv,
int allowed,
const u8 *bssid);
3402 int (*set_mac_addr)(
void *priv,
const u8 *addr);
3404 #ifdef CONFIG_MACSEC 3405 int (*macsec_init)(
void *priv,
struct macsec_init_params *params);
3407 int (*macsec_deinit)(
void *priv);
3415 int (*macsec_get_capability)(
void *priv,
enum macsec_cap *cap);
3424 int (*enable_protect_frames)(
void *priv, Boolean enabled);
3433 int (*enable_encrypt)(
void *priv, Boolean enabled);
3443 int (*set_replay_protect)(
void *priv, Boolean enabled, u32 window);
3451 int (*set_current_cipher_suite)(
void *priv, u64 cs);
3460 int (*enable_controlled_port)(
void *priv, Boolean enabled);
3468 int (*get_receive_lowest_pn)(
void *priv,
struct receive_sa *sa);
3476 int (*get_transmit_next_pn)(
void *priv,
struct transmit_sa *sa);
3484 int (*set_transmit_next_pn)(
void *priv,
struct transmit_sa *sa);
3495 int (*create_receive_sc)(
void *priv,
struct receive_sc *sc,
3496 unsigned int conf_offset,
3505 int (*delete_receive_sc)(
void *priv,
struct receive_sc *sc);
3513 int (*create_receive_sa)(
void *priv,
struct receive_sa *sa);
3521 int (*delete_receive_sa)(
void *priv,
struct receive_sa *sa);
3529 int (*enable_receive_sa)(
void *priv,
struct receive_sa *sa);
3537 int (*disable_receive_sa)(
void *priv,
struct receive_sa *sa);
3546 int (*create_transmit_sc)(
void *priv,
struct transmit_sc *sc,
3547 unsigned int conf_offset);
3555 int (*delete_transmit_sc)(
void *priv,
struct transmit_sc *sc);
3563 int (*create_transmit_sa)(
void *priv,
struct transmit_sa *sa);
3571 int (*delete_transmit_sa)(
void *priv,
struct transmit_sa *sa);
3579 int (*enable_transmit_sa)(
void *priv,
struct transmit_sa *sa);
3587 int (*disable_transmit_sa)(
void *priv,
struct transmit_sa *sa);
3595 int (*init_mesh)(
void *priv);
3603 int (*join_mesh)(
void *priv,
3611 int (*leave_mesh)(
void *priv);
3630 int (*set_band)(
void *priv,
enum set_band band);
3643 int (*get_pref_freq_list)(
void *priv,
enum wpa_driver_if_type if_type,
3644 unsigned int *num,
unsigned int *freq_list);
3656 int (*set_prob_oper_freq)(
void *priv,
unsigned int freq);
3666 int (*abort_scan)(
void *priv, u64 scan_cookie);
3675 int (*configure_data_frame_filters)(
void *priv, u32 filter_flags);
3686 int (*get_ext_capab)(
void *priv,
enum wpa_driver_if_type type,
3687 const u8 **ext_capab,
const u8 **ext_capab_mask,
3688 unsigned int *ext_capab_len);
3703 int (*p2p_lo_start)(
void *priv,
unsigned int freq,
3704 unsigned int period,
unsigned int interval,
3706 const u8 *device_types,
size_t dev_types_len,
3707 const u8 *ies,
size_t ies_len);
3714 int (*p2p_lo_stop)(
void *priv);
3730 int (*set_default_scan_ies)(
void *priv,
const u8 *ies,
size_t ies_len);
3741 int (*set_tdls_mode)(
void *priv,
int tdls_external_control);
3748 enum wpa_event_type {
3784 EVENT_MICHAEL_MIC_FAILURE,
3824 EVENT_INTERFACE_STATUS,
3850 EVENT_PMKID_CANDIDATE,
3887 EVENT_IBSS_RSN_START,
3922 EVENT_AUTH_TIMED_OUT,
3927 EVENT_ASSOC_TIMED_OUT,
3932 EVENT_WPS_BUTTON_PUSHED,
3942 EVENT_RX_FROM_UNKNOWN,
3956 EVENT_REMAIN_ON_CHANNEL,
3966 EVENT_CANCEL_REMAIN_ON_CHANNEL,
4007 EVENT_SIGNAL_CHANGE,
4015 EVENT_INTERFACE_ENABLED,
4023 EVENT_INTERFACE_DISABLED,
4032 EVENT_CHANNEL_LIST_CHANGED,
4047 EVENT_INTERFACE_UNAVAILABLE,
4066 EVENT_UNPROT_DEAUTH,
4076 EVENT_UNPROT_DISASSOC,
4085 EVENT_STATION_LOW_ACK,
4090 EVENT_IBSS_PEER_LOST,
4100 EVENT_DRIVER_GTK_REKEY,
4105 EVENT_SCHED_SCAN_STOPPED,
4113 EVENT_DRIVER_CLIENT_POLL_OK,
4118 EVENT_EAPOL_TX_STATUS,
4141 EVENT_CONNECT_FAILED_REASON,
4149 EVENT_DFS_RADAR_DETECTED,
4156 EVENT_DFS_CAC_FINISHED,
4165 EVENT_DFS_CAC_ABORTED,
4172 EVENT_DFS_NOP_FINISHED,
4203 EVENT_AVOID_FREQUENCIES,
4208 EVENT_NEW_PEER_CANDIDATE,
4216 EVENT_ACS_CHANNEL_SELECTED,
4225 EVENT_DFS_CAC_STARTED,
4254 u64 channel_time_busy;
4255 u64 channel_time_rx;
4256 u64 channel_time_tx;
4257 unsigned int filled;
4261 #define SURVEY_HAS_NF BIT(0) 4262 #define SURVEY_HAS_CHAN_TIME BIT(1) 4263 #define SURVEY_HAS_CHAN_TIME_BUSY BIT(2) 4264 #define SURVEY_HAS_CHAN_TIME_RX BIT(3) 4265 #define SURVEY_HAS_CHAN_TIME_TX BIT(4) 4498 unsigned int ifindex;
4501 EVENT_INTERFACE_ADDED, EVENT_INTERFACE_REMOVED
4531 TDLS_REQUEST_TEARDOWN,
4532 TDLS_REQUEST_DISCOVER,
4568 u8 target_ap[ETH_ALEN];
4589 u16 auth_transaction;
4730 u8 scan_start_tsf_bssid[ETH_ALEN];
4837 const u8 *replay_ctr;
4878 enum chan_width ch_width;
4888 struct connect_failed_reason {
4894 } connect_failed_reason;
4904 enum chan_width chan_width;
4915 struct survey_results {
4916 unsigned int freq_filter;
4926 struct channel_list_changed {
4927 enum reg_change_initiator initiator;
4930 } channel_list_changed;
4965 struct acs_selected_channels {
4968 u8 vht_seg0_center_ch;
4969 u8 vht_seg1_center_ch;
4971 enum hostapd_hw_mode hw_mode;
4972 } acs_selected_channels;
4986 struct p2p_lo_stop {
4988 P2P_LO_STOPPED_REASON_COMPLETE = 0,
4989 P2P_LO_STOPPED_REASON_RECV_STOP_CMD,
4990 P2P_LO_STOPPED_REASON_INVALID_PARAM,
4991 P2P_LO_STOPPED_REASON_NOT_SUPPORTED,
5006 void wpa_supplicant_event(
void *ctx,
enum wpa_event_type event,
5019 void wpa_supplicant_event_global(
void *ctx,
enum wpa_event_type event,
5027 static inline void drv_event_assoc(
void *ctx,
const u8 *addr,
const u8 *ie,
5028 size_t ielen,
int reassoc)
5031 os_memset(&event, 0,
sizeof(event));
5032 event.assoc_info.reassoc = reassoc;
5033 event.assoc_info.req_ies = ie;
5034 event.assoc_info.req_ies_len = ielen;
5035 event.assoc_info.addr = addr;
5036 wpa_supplicant_event(ctx, EVENT_ASSOC, &event);
5039 static inline void drv_event_disassoc(
void *ctx,
const u8 *addr)
5042 os_memset(&event, 0,
sizeof(event));
5043 event.disassoc_info.addr = addr;
5044 wpa_supplicant_event(ctx, EVENT_DISASSOC, &event);
5047 static inline void drv_event_eapol_rx(
void *ctx,
const u8 *src,
const u8 *data,
5051 os_memset(&event, 0,
sizeof(event));
5052 event.eapol_rx.src = src;
5053 event.eapol_rx.data = data;
5054 event.eapol_rx.data_len = data_len;
5055 wpa_supplicant_event(ctx, EVENT_EAPOL_RX, &event);
5062 const char * event_to_string(
enum wpa_event_type event);
5065 const char * channel_width_to_string(
enum chan_width width);
5074 const char * driver_flag_to_string(u64
flag);
5082 #ifdef CONFIG_DRIVER_WEXT 5085 #ifdef CONFIG_DRIVER_NL80211 5089 #ifdef CONFIG_DRIVER_HOSTAP 5092 #ifdef CONFIG_DRIVER_BSD 5095 #ifdef CONFIG_DRIVER_OPENBSD 5099 #ifdef CONFIG_DRIVER_NDIS 5102 #ifdef CONFIG_DRIVER_WIRED 5105 #ifdef CONFIG_DRIVER_MACSEC_QCA 5109 #ifdef CONFIG_DRIVER_MACSEC_LINUX 5113 #ifdef CONFIG_DRIVER_ROBOSWITCH 5117 #ifdef CONFIG_DRIVER_ATHEROS 5121 #ifdef CONFIG_DRIVER_NONE const u8 * bssid
bssid - BSSID of the received Probe Request frame or NULL if not available
Definition: driver.h:4752
const u8 * da
da - Destination address of the received Probe Request frame or NULL if not available ...
Definition: driver.h:4746
s32 filter_rssi
filter_rssi - Filter by RSSI
Definition: driver.h:386
size_t num_ssids
num_ssids - Number of entries in ssids array Zero indicates a request for a passive scan...
Definition: driver.h:336
size_t ssid_len
ssid_len - Length of the SSID (1..32)
Definition: driver.h:649
int center_freq2
center_freq2 - Segment 1 center frequency in MHz
Definition: driver.h:612
const u8 * fils_nonces
fils_nonces - Nonces for FILS association frame protection (AES-SIV AAD)
Definition: driver.h:941
const char * ifname
Interface name (for multi-SSID/VLAN support)
Definition: driver.h:1643
struct rx_from_unknown - Data for EVENT_RX_FROM_UNKNOWN events
Definition: driver.h:4653
unsigned int freq
freq - Frequency of the operational channel in MHz
Definition: driver.h:4357
unsigned int smps_mode
smps_mode - SMPS mode
Definition: driver.h:1169
struct scan_info - Optional data for EVENT_SCAN_RESULTS events : Whether the scan was aborted : Scann...
Definition: driver.h:4721
u16 ht_capab
ht_capab - HT (IEEE 802.11n) capabilities
Definition: driver.h:174
int uapsd
uapsd - UAPSD parameters for the network -1 = do not change defaults AP mode: 1 = enabled...
Definition: driver.h:855
struct csa_settings - Settings for channel switch command : Count in Beacon frames (TBTT) to perform ...
Definition: driver.h:1759
unsigned int max_remain_on_chan
max_remain_on_chan - Maximum remain-on-channel duration in msec
Definition: driver.h:1434
u8 a_mpdu_params
a_mpdu_params - A-MPDU (IEEE 802.11n) parameters
Definition: driver.h:184
int num_rates
num_rates - Number of entries in the rates array
Definition: driver.h:164
int ssi_signal
signal - signal strength in dBm (or 0 if not available)
Definition: driver.h:4767
struct stkstart - Data for EVENT_STKSTART
Definition: driver.h:4520
Definition: ieee802_1x_kay.h:94
size_t fils_kek_len
fils_kek_len: Length of fils_kek in bytes
Definition: driver.h:935
const struct wpabuf * proberesp_ies
proberesp_ies - P2P/WPS IE(s) for Probe Response frames
Definition: driver.h:1092
int freq
freq - Frequency (in MHz) on which the frame was received
Definition: driver.h:4679
struct ft_ies - FT information elements (EVENT_FT_RESPONSE)
Definition: driver.h:4564
size_t resp_frame_len
resp_frame_len - (Re)Association Response frame length
Definition: driver.h:4330
int enabled
Whether IEEE 802.1X or WPA/WPA2 is enabled.
Definition: driver.h:1645
s8 min_nf
min_nf - Minimum observed noise floor, in dBm, based on all surveyed channel data ...
Definition: driver.h:122
int preamble
preamble - Whether short preamble is enabled
Definition: driver.h:1118
struct hostapd_channel_data - Channel information
Definition: driver.h:92
const u8 * wpa_ie
wpa_ie - WPA information element for (Re)Association Request WPA information element to be included i...
Definition: driver.h:696
int max_sched_scan_ssids
Maximum number of supported active probe SSIDs for sched_scan.
Definition: driver.h:1414
struct tx_status - Data for EVENT_TX_STATUS events
Definition: driver.h:4641
struct tdls - Data for EVENT_TDLS
Definition: driver.h:4527
int(* ampdu)(void *priv, int ampdu)
ampdu - Enable/disable aggregation : Private driver interface data : 1/0 = enable/disable A-MPDU aggr...
Definition: driver.h:2966
Definition: driver.h:1563
const u8 * htcaps
htcaps - HT Capabilities over-rides
Definition: driver.h:885
int sec_channel_offset
sec_channel_offset - Secondary channel offset for HT40
Definition: driver.h:593
unsigned int key_mgmt_suite
key_mgmt_suite - Selected key management suite (WPA_KEY_MGMT_*)
Definition: driver.h:727
const u8 * key_replay_ctr
key_replay_ctr - Key replay counter value last used in a valid EAPOL-Key frame
Definition: driver.h:4390
int * basic_rates
basic_rates: -1 terminated array of basic rates in 100 kbps
Definition: driver.h:1002
struct michael_mic_failure - Data for EVENT_MICHAEL_MIC_FAILURE
Definition: driver.h:4489
struct best_channel - Data for EVENT_BEST_CHANNEL events : Best 2.4 GHz band channel frequency in MHz...
Definition: driver.h:4799
size_t ric_ies_len
Length of ric_ies buffer in octets.
Definition: driver.h:4572
Definition: ieee802_1x_kay.h:121
const u8 * hessid
hessid - Homogeneous ESS identifier or NULL if not set
Definition: driver.h:1141
size_t key_replay_ctr_len
key_replay_ctr_len - The length of key_replay_ctr
Definition: driver.h:4395
int authorized
The following is the key management offload information .
Definition: driver.h:4384
int ap_max_inactivity
ap_max_inactivity - Timeout in seconds to detect STA's inactivity
Definition: driver.h:1156
size_t resp_ies_len
resp_ies_len - Length of resp_ies in bytes
Definition: driver.h:4320
unsigned int dfs_cac_ms
dfs_cac_ms - DFS CAC time in milliseconds
Definition: driver.h:136
const u8 * prev_bssid
prev_bssid - Previously used BSSID in this ESS
Definition: driver.h:833
struct wpa_driver_scan_ssid - SSIDs to scan for - specific SSID to scan for (ProbeReq) NULL or zero-...
Definition: driver.h:317
Definition: driver.h:1517
const u8 * fils_kek
fils_kek - KEK for FILS association frame protection (AES-SIV)
Definition: driver.h:930
const u8 * ie
ie - Optional IE(s) in Deauthentication frame
Definition: driver.h:4473
u32 vht_capab
vht_capab - VHT (IEEE 802.11ac) capabilities
Definition: driver.h:189
int freq_hint
freq_hint - Frequency of the channel the proposed AP is using
Definition: driver.h:664
size_t fils_nonces_len
fils_nonces_len: Length of fils_nonce in bytes
Definition: driver.h:946
unsigned int sched_scan_plans_num
sched_scan_plans_num - Number of scan plans in sched_scan_plans array
Definition: driver.h:455
const u8 * ft_md
ft_md - FT Mobility domain (6 octets) (also included inside ft_ies)
Definition: driver.h:795
const u8 * beacon_ies
beacon_ies - Beacon or Probe Response IEs
Definition: driver.h:4348
unsigned int wpa_version
wpa_version - WPA_PROTO_* bitfield
Definition: driver.h:1071
struct driver_gtk_rekey - Data for EVENT_DRIVER_GTK_REKEY
Definition: driver.h:4835
Definition: driver.h:4811
void * drv_priv
drv_priv - Pointer to store driver private BSS information
Definition: driver.h:4674
const u8 * ssid
ssid - The SSID to use in Beacon/Probe Response frames
Definition: driver.h:1036
struct wpa_driver_scan_params - Scan parameters Data for struct wpa_driver_ops::scan2().
Definition: driver.h:326
unsigned int key_mgmt_suites
key_mgmt_suites - WPA_KEY_MGMT_* bitfield
Definition: driver.h:1061
struct ibss_peer_lost - Data for EVENT_IBSS_PEER_LOST
Definition: driver.h:4828
const u8 * auth_data
auth_data - Additional elements for Authentication frame
Definition: driver.h:534
unsigned int wpa_proto
wpa_proto - Bitfield of WPA_PROTO_* values to indicate WPA/WPA2
Definition: driver.h:706
int p2p
p2p - Whether this connection is a P2P group
Definition: driver.h:847
const u8 * extended_capa
extended_capa - extended capabilities in driver/device
Definition: driver.h:1469
int fixed_freq
fixed_freq - Fix control channel in IBSS mode 0 = don't fix control channel (default) 1 = fix control...
Definition: driver.h:870
int locally_generated
locally_generated - Whether the frame was locally generated
Definition: driver.h:4452
struct ibss_rsn_start - Data for EVENT_IBSS_RSN_START
Definition: driver.h:4578
const u8 * resp_frame
resp_frame - (Re)Association Response frame
Definition: driver.h:4325
size_t ie_len
ie_len - Length of ie buffer in octets
Definition: driver.h:4447
unsigned int enc
Bitfield of supported cipher suites.
Definition: driver.h:1283
size_t ssid_len
ssid_len - Length of the SSID (1..32)
Definition: driver.h:1041
int ssi_signal
ssi_signal - Signal strength in dBm (or 0 if not available)
Definition: driver.h:4684
size_t ie_len
ie_len - Length of ie buffer in octets
Definition: driver.h:4762
int ht_opmode
ht_opmode - HT operation mode or -1 if HT not in use
Definition: driver.h:1131
const u8 * ptk_kck
ptk_kck - The derived PTK KCK
Definition: driver.h:4400
const u8 * ssid
ssid - The selected SSID
Definition: driver.h:644
Definition: ieee802_11_defs.h:944
int freq
freq - Primary channel center frequency in MHz
Definition: driver.h:574
struct assoc_reject - Data for EVENT_ASSOC_REJECT events
Definition: driver.h:4598
struct wpa_scan_res - Scan result for an BSS/IBSS : information flags about the BSS/IBSS (WPA_SCAN_*)...
Definition: driver.h:259
size_t head_len
head_len - Length of the head buffer in octets
Definition: driver.h:974
struct ch_switch : Frequency of new channel in MHz : Whether this is an HT channel : Secondary channe...
Definition: driver.h:4874
size_t extra_ies_len
extra_ies_len - Length of extra_ies in octets
Definition: driver.h:346
struct hostapd_freq_params * freq
freq - Channel parameters for dynamic bandwidth changes
Definition: driver.h:1184
int pbss
pbss - If set, connect to a PCP in a PBSS.
Definition: driver.h:925
Definition: ieee802_1x_kay.h:110
int bg_scan_period
bg_scan_period - Background scan period in seconds, 0 to disable background scan, or -1 to indicate n...
Definition: driver.h:671
int bandwidth
bandwidth - Channel bandwidth in MHz (20, 40, 80, 160)
Definition: driver.h:617
unsigned int duration
duration - Duration to remain on the channel in milliseconds
Definition: driver.h:4701
int reenable
reenable - Whether this is to re-enable beaconing
Definition: driver.h:1189
unsigned int max_sched_scan_plans
Maximum number of supported scan plans for scheduled scan.
Definition: driver.h:1417
short chan
chan - Channel number (IEEE 802.11)
Definition: driver.h:96
int disable_dgaf
disable_dgaf - Whether group-addressed frames are disabled
Definition: driver.h:1174
int beacon_int
beacon_int - Beacon interval
Definition: driver.h:994
u8 * tail
tail - Beacon tail following TIM IE
Definition: driver.h:979
size_t proberesp_len
proberesp_len - Length of the proberesp buffer in octets
Definition: driver.h:1031
Definition: ieee802_11_defs.h:978
struct wpa_interface_info - Network interface information : Pointer to the next interface or NULL if ...
Definition: driver.h:301
struct client_poll - Data for EVENT_DRIVER_CLIENT_POLL_OK events : station address ...
Definition: driver.h:4844
u8 subnet_status
subnet_status - The subnet status: 0 = unknown, 1 = unchanged, 2 = changed
Definition: driver.h:4421
int reassoc
reassoc - Flag to indicate association or reassociation
Definition: driver.h:4284
size_t num_filter_ssids
num_filter_ssids - Number of entries in filter_ssids array
Definition: driver.h:377
int isolate
isolate - Whether to isolate frames between associated stations
Definition: driver.h:1108
sched_scan_plans - Scan plans for scheduled scan
Definition: driver.h:447
int rrm_used
Flag for indicating whether this association includes support for RRM (Radio Resource Measurements) ...
Definition: driver.h:919
const u8 * ie
ie - Optional IE(s) in Disassociation frame
Definition: driver.h:4442
int req_key_mgmt_offload
req_key_mgmt_offload - Request key management offload for connection
Definition: driver.h:913
unsigned int group_suite
group_suite - Selected group cipher suite (WPA_CIPHER_*)
Definition: driver.h:720
size_t req_ies_len
req_ies_len - Length of req_ies in bytes
Definition: driver.h:4302
u16 reason_code
reason_code - Reason Code (host byte order) used in Deauthentication frame
Definition: driver.h:4468
struct dl_list survey_list
survey_list - Linked list of surveys (struct freq_survey)
Definition: driver.h:116
int vht_enabled
vht_enabled - Whether VHT is enabled
Definition: driver.h:598
const u8 * htcaps_mask
htcaps_mask - HT Capabilities over-rides mask
Definition: driver.h:892
const char * name
Name of the driver interface.
Definition: driver.h:1845
unsigned int pairwise_suite
pairwise_suite - Selected pairwise cipher suite (WPA_CIPHER_*)
Definition: driver.h:713
int cts_protect
cts_protect - Whether CTS protection is enabled
Definition: driver.h:1113
const char * passphrase
passphrase - RSN passphrase for PSK
Definition: driver.h:806
const u8 * bssid
bssid - BSSID of the selected AP This can be NULL, if ap_scan=2 mode is used and the driver is respon...
Definition: driver.h:629
int max_scan_ssids
Maximum number of supported active probe SSIDs.
Definition: driver.h:1411
u16 reason_code
reason_code - Reason Code (host byte order) used in Deauthentication frame
Definition: driver.h:4437
unsigned int beacon_rate
beacon_rate: Beacon frame data rate
Definition: driver.h:1013
const u8 * addr
addr - Station address (for AP mode)
Definition: driver.h:4367
const u8 * bssid
bssid - Specific BSSID to scan for
Definition: driver.h:464
int p2p
p2p - Whether this connection is a P2P group
Definition: driver.h:525
struct hostapd_hw_modes - Supported hardware mode information
Definition: driver.h:145
Definition: driver.h:4634
const u8 * sa
sa - Source address of the received Probe Request frame
Definition: driver.h:4740
struct dl_list - Doubly-linked list
Definition: list.h:15
const u8 * resp_ies
resp_ies - (Re)Association Response IEs
Definition: driver.h:4315
struct wpa_driver_auth_params - Authentication parameters Data for struct wpa_driver_ops::authenticat...
Definition: driver.h:509
struct deauth_info - Data for EVENT_DEAUTH events
Definition: driver.h:4458
size_t auth_data_len
auth_data_len - Length of auth_data buffer in octets
Definition: driver.h:539
struct wpa_driver_associate_params - Association parameters Data for struct wpa_driver_ops::associate...
Definition: driver.h:624
Definition: driver.h:1219
struct eapol_tx_status : Original destination : Data starting with IEEE 802.1X header (!) : Length of...
Definition: driver.h:4858
int sched_scan_supported
Whether sched_scan (offloaded scanning) is supported.
Definition: driver.h:1426
size_t wpa_ie_len
wpa_ie_len - length of the wpa_ie
Definition: driver.h:701
Definition: driver.h:1641
int wep_tx_keyidx
wep_tx_keyidx - WEP TX key index for static WEP configuration
Definition: driver.h:753
int channel
channel - Channel number
Definition: driver.h:579
struct low_ack - Data for EVENT_STATION_LOW_ACK events : station address
Definition: driver.h:4821
struct wpa_driver_ops - Driver interface API definition
Definition: driver.h:1843
int interworking
interworking - Whether Interworking is enabled
Definition: driver.h:1136
int preauth
Whether RSN IE includes pre-authenticate flag.
Definition: driver.h:4514
size_t ft_ies_len
ft_ies_len - Length of ft_ies in bytes
Definition: driver.h:786
struct new_sta - Data for EVENT_NEW_STA events
Definition: driver.h:4773
struct interface_status - Data for EVENT_INTERFACE_STATUS
Definition: driver.h:4497
const u8 * ft_ies
ft_ies - IEEE 802.11r / FT information elements If the supplicant is using IEEE 802.11r (FT) and has the needed keys for fast transition, this parameter is set to include the IEs that are to be sent in the next FT Authentication Request message.
Definition: driver.h:781
struct rx_probe_req - Data for EVENT_RX_PROBE_REQ events
Definition: driver.h:4736
unsigned int auth
Bitfield of supported IEEE 802.11 authentication algorithms.
Definition: driver.h:1289
u16 duration
duration - Dwell time on each channel
Definition: driver.h:486
Definition: ieee802_1x_kay.h:79
u32 max_sched_scan_plan_interval
Maximum interval in a scan plan.
Definition: driver.h:1420
int mode
mode - Operation mode (infra/ibss) IEEE80211_MODE_*
Definition: driver.h:738
int freq
freq - Frequency in MHz
Definition: driver.h:101
const struct wpabuf * assocresp_ies
assocresp_ies - WPS IE(s) for (Re)Association Response frames
Definition: driver.h:1100
struct pmkid_candidate - Data for EVENT_PMKID_CANDIDATE
Definition: driver.h:4508
u64 scan_cookie
scan_cookie - Unique identification representing the scan request
Definition: driver.h:478
u8 max_tx_power
max_tx_power - Regulatory transmit power limit in dBm
Definition: driver.h:111
Definition: driver.h:1813
int short_slot_time
short_slot_time - Whether short slot time is enabled
Definition: driver.h:1126
struct wpa_scan_results - Scan results : Array of pointers to allocated variable length scan result e...
Definition: driver.h:285
struct wnm - Data for EVENT_WNM
Definition: driver.h:4540
const u8 * bssid
bssid - BSSID of the AP that rejected association
Definition: driver.h:4602
unsigned int auth_algs
auth_algs - WPA_AUTH_ALG_* bitfield
Definition: driver.h:1066
int drop_unencrypted
drop_unencrypted - Enable/disable unencrypted frame filtering
Definition: driver.h:825
const u8 * addr
addr - Station address (for AP mode)
Definition: driver.h:4431
unsigned int num_multichan_concurrent
Number of supported concurrent channels.
Definition: driver.h:1461
const u8 * addr
addr - Station address (for AP mode)
Definition: driver.h:4462
struct assoc_info - Data for EVENT_ASSOC and EVENT_ASSOCINFO events
Definition: driver.h:4280
u8 * proberesp
proberesp - Probe Response template
Definition: driver.h:1026
const u8 * ptk_kek
ptk_kek - The derived PTK KEK
Definition: driver.h:4410
int index
Smaller the index, higher the priority.
Definition: driver.h:4512
size_t beacon_ies_len
beacon_ies_len - Length of beacon_ies
Definition: driver.h:4352
int locally_generated
locally_generated - Whether the frame was locally generated
Definition: driver.h:4483
Definition: driver.h:1628
unsigned int key_mgmt
Bitfield of supported key management suites.
Definition: driver.h:1267
int num_channels
num_channels - Number of entries in the channels array
Definition: driver.h:154
int disable_ht
disable_ht - Disable HT (IEEE 802.11n) for this connection
Definition: driver.h:875
struct eapol_rx - Data for EVENT_EAPOL_RX events
Definition: driver.h:4780
unsigned int group_cipher
group_cipher - WPA_CIPHER_*
Definition: driver.h:1056
unsigned int pairwise_ciphers
pairwise_ciphers - WPA_CIPHER_* bitfield
Definition: driver.h:1051
unsigned int max_stations
max_stations - Maximum number of associated stations the driver supports in AP mode ...
Definition: driver.h:1440
const char * desc
One line description of the driver interface.
Definition: driver.h:1847
struct wpa_signal_info - Information about channel signal quality
Definition: driver.h:1705
int dtim_period
dtim_period - DTIM period
Definition: driver.h:989
struct wmm_params - WMM parameterss configured for this association : Bitmap of valid wmm_params info...
Definition: driver.h:1790
struct wpa_driver_capa - Driver capability information
Definition: driver.h:1255
size_t resp_ies_len
resp_ies_len - Length of resp_ies in bytes
Definition: driver.h:4620
int osen
osen - Whether OSEN security is enabled
Definition: driver.h:1179
struct hostapd_freq_params - Channel parameters
Definition: driver.h:565
struct disassoc_info - Data for EVENT_DISASSOC events
Definition: driver.h:4427
size_t ptk_kck_len
ptk_kek_len - The length of ptk_kck
Definition: driver.h:4405
u8 * head
head - Beacon head from IEEE 802.11 header to IEs before TIM IE
Definition: driver.h:969
int max_match_sets
Maximum number of supported match sets for sched_scan.
Definition: driver.h:1429
int * rates
rates - Array of supported rates in 100 kbps units
Definition: driver.h:169
int beacon_int
beacon_int - Beacon interval for IBSS or 0 to use driver default
Definition: driver.h:676
const u8 * mac_addr_mask
mac_addr_mask - MAC address mask used with randomization.
Definition: driver.h:433
const struct wpabuf * beacon_ies
beacon_ies - WPS/P2P IE(s) for Beacon frames
Definition: driver.h:1084
Definition: driver.h:1235
Definition: wpa_auth_i.h:152
int fixed_bssid
fixed_bssid - Whether to force this BSSID in IBSS mode 1 = Fix this BSSID and prevent merges...
Definition: driver.h:862
Definition: driver.h:4805
u8 access_network_type
access_network_type - Access Network Type (0..15)
Definition: driver.h:1149
size_t ie_len
ie_len - Length of ie buffer in octets
Definition: driver.h:4478
Definition: driver.h:1531
size_t ptk_kek_len
ptk_kek_len - The length of ptk_kek
Definition: driver.h:4415
int center_freq1
center_freq1 - Segment 0 center frequency in MHz
Definition: driver.h:605
int ht_enabled
ht_enabled - Whether HT is enabled
Definition: driver.h:584
int flag
flag - Channel flags (HOSTAPD_CHAN_*)
Definition: driver.h:106
int auth_alg
auth_alg - Allowed authentication algorithms Bit field of WPA_AUTH_ALG_*
Definition: driver.h:733
const u8 * bssid_hint
bssid_hint - BSSID of a proposed AP
Definition: driver.h:639
struct beacon_data - Beacon data : Head portion of Beacon frame (before TIM IE) : Tail portion of Bea...
Definition: driver.h:1735
struct freq_survey - Channel survey info
Definition: driver.h:4249
const u8 * ric_ies
Optional IE(s), e.g., WMM TSPEC(s), for RIC-Request.
Definition: driver.h:4570
filter_ssids - Filter for reporting SSIDs
Definition: driver.h:369
size_t tail_len
tail_len - Length of the tail buffer in octets
Definition: driver.h:984
const u8 * req_ies
req_ies - (Re)Association Request IEs
Definition: driver.h:4297
const u8 * resp_ies
resp_ies - (Re)Association Response IEs
Definition: driver.h:4615
int timed_out
timed_out - Whether failure is due to timeout (etc.) rather than explicit rejection response from the...
Definition: driver.h:4631
unsigned int freq
freq - Channel frequency in MHz
Definition: driver.h:4696
struct remain_on_channel - Data for EVENT_REMAIN_ON_CHANNEL events
Definition: driver.h:4692
struct hostapd_data - hostapd per-BSS data structure
Definition: hostapd.h:118
const u8 * ie
ie - IEs from the Probe Request body
Definition: driver.h:4757
Definition: driver.h:1559
int pbss
pbss - Whether to start a PCP (in PBSS) instead of an AP in infrastructure BSS.
Definition: driver.h:1195
u8 p2p_go_ctwindow
ctwindow - Client Traffic Window (in TUs)
Definition: driver.h:1161
const u8 * mac_addr
mac_addr - MAC address used with randomization.
Definition: driver.h:423
struct auth_info - Data for EVENT_AUTH events
Definition: driver.h:4585
const u8 * extra_ies
extra_ies - Extra IE(s) to add into Probe Request or NULL
Definition: driver.h:341
union wpa_event_data - Additional data for wpa_supplicant_event() calls
Definition: driver.h:4271
struct hostapd_channel_data * channels
channels - Array of supported channels
Definition: driver.h:159
int multicast_to_unicast
multicast_to_unicast - Whether to use multicast_to_unicast
Definition: driver.h:1216
const u8 * psk
psk - RSN PSK (alternative for passphrase for PSK)
Definition: driver.h:816
u32 max_sched_scan_plan_iterations
Maximum number of iterations in a single scan plan.
Definition: driver.h:1423
u16 status_code
status_code - Status Code from (Re)association Response
Definition: driver.h:4625
int privacy
privacy - Whether privacy is used in the BSS
Definition: driver.h:1076
struct rx_mgmt - Data for EVENT_RX_MGMT events
Definition: driver.h:4662
int * freqs
freqs - Array of frequencies to scan or NULL for all frequencies
Definition: driver.h:353