#include "utils/list.h"
#include "common/defs.h"
#include "common/sae.h"
+#include "common/wpa_ctrl.h"
#include "wps/wps_defs.h"
#include "config_ssid.h"
#ifdef CONFIG_P2P
/**
- * conf_p2p_dev - Additional configuration file used to hold the
+ * conf_p2p_dev - Configuration file used to hold the
* P2P Device configuration parameters.
*
* This can also be %NULL. In such a case, if a P2P Device dedicated
struct l2_packet_data *l2;
struct l2_packet_data *l2_br;
unsigned char own_addr[ETH_ALEN];
+ unsigned char perm_addr[ETH_ALEN];
char ifname[100];
#ifdef CONFIG_CTRL_IFACE_DBUS
char *dbus_path;
char *confname;
char *confanother;
-#ifdef CONFIG_P2P
- char *conf_p2p_dev;
-#endif /* CONFIG_P2P */
-
struct wpa_config *conf;
int countermeasures;
struct os_reltime last_michael_mic_error;
int disconnected; /* all connections disabled; i.e., do no reassociate
* before this has been cleared */
struct wpa_ssid *current_ssid;
+ struct wpa_ssid *last_ssid;
struct wpa_bss *current_bss;
int ap_ies_from_associnfo;
unsigned int assoc_freq;
int normal_scans; /* normal scans run before sched_scan */
int scan_for_connection; /* whether the scan request was triggered for
* finding a connection */
+#define MAX_SCAN_ID 16
+ int scan_id[MAX_SCAN_ID];
+ unsigned int scan_id_count;
unsigned int drv_flags;
unsigned int drv_enc;
struct wps_context *wps;
int wps_success; /* WPS success event received */
struct wps_er *wps_er;
+ unsigned int wps_run;
int blacklist_cleared;
struct wpabuf *pending_eapol_rx;
unsigned int last_eapol_matches_bssid:1;
unsigned int eap_expected_failure:1;
unsigned int reattach:1; /* reassociation to the same BSS requested */
+ unsigned int mac_addr_changed:1;
+
+ struct os_reltime last_mac_addr_change;
+ int last_mac_addr_style;
struct ibss_rsn *ibss_rsn;
* sa_query_count octets of pending
* SA Query transaction identifiers */
struct os_reltime sa_query_start;
+ struct os_reltime last_unprot_disconnect;
u8 sched_obss_scan;
u16 obss_scan_int;
u16 bss_max_idle_period;
struct sae_data sae;
struct wpabuf *sae_token;
int sae_group_index;
+ unsigned int sae_pmksa_caching:1;
#endif /* CONFIG_SAE */
} sme;
#endif /* CONFIG_SME */
unsigned int p2p_go_vht:1;
unsigned int user_initiated_pd:1;
unsigned int p2p_go_group_formation_completed:1;
+ unsigned int group_formation_reported:1;
unsigned int waiting_presence_resp;
int p2p_first_connection_timeout;
unsigned int p2p_nfc_tag_enabled:1;
unsigned int no_keep_alive:1;
unsigned int ext_mgmt_frame_handling:1;
+ unsigned int ext_eapol_frame_io:1;
#ifdef CONFIG_WNM
u8 wnm_dialog_token;
struct wpa_radio_work *connect_work;
unsigned int ext_work_id;
+
+ struct wpabuf *vendor_elem[NUM_VENDOR_ELEM_FRAMES];
};
size_t ssid_len);
void wpas_request_connection(struct wpa_supplicant *wpa_s);
int wpas_build_ext_capab(struct wpa_supplicant *wpa_s, u8 *buf, size_t buflen);
+int wpas_update_random_addr(struct wpa_supplicant *wpa_s, int style);
+int wpas_update_random_addr_disassoc(struct wpa_supplicant *wpa_s);
/**
* wpa_supplicant_ctrl_iface_ctrl_rsp_handle - Handle a control response