]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/wpa_supplicant_i.h
GAS: Add a generic GAS query module
[thirdparty/hostap.git] / wpa_supplicant / wpa_supplicant_i.h
index 853968ce7574e60943ae267392138fc9218e706c..ef1ba11d291f9623ff59efa96309974a36fad723 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "utils/list.h"
 #include "common/defs.h"
+#include "config_ssid.h"
 
 extern const char *wpa_supplicant_version;
 extern const char *wpa_supplicant_license;
@@ -181,6 +182,14 @@ struct wpa_params {
         * created.
         */
        char *override_ctrl_interface;
+
+       /**
+        * entropy_file - Optional entropy file
+        *
+        * This parameter can be used to configure wpa_supplicant to maintain
+        * its internal entropy store over restarts.
+        */
+       char *entropy_file;
 };
 
 struct p2p_srv_bonjour {
@@ -334,6 +343,7 @@ struct wpa_supplicant {
 #endif /* CONFIG_CTRL_IFACE_DBUS */
 #ifdef CONFIG_CTRL_IFACE_DBUS_NEW
        char *dbus_new_path;
+       char *dbus_groupobj_path;
 #endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
        char bridge_ifname[16];
 
@@ -356,6 +366,7 @@ struct wpa_supplicant {
        int pairwise_cipher;
        int group_cipher;
        int key_mgmt;
+       int wpa_proto;
        int mgmt_group_cipher;
 
        void *drv_priv; /* private data used by driver_ops */
@@ -404,6 +415,8 @@ struct wpa_supplicant {
        int scan_req; /* manual scan request; this forces a scan even if there
                       * are no enabled networks in the configuration */
        int scan_runs; /* number of scan runs since WPS was started */
+       int *next_scan_freqs;
+       int scan_interval; /* time in sec between scans to find suitable AP */
 
        struct wpa_client_mlme mlme;
        unsigned int drv_flags;
@@ -446,6 +459,15 @@ struct wpa_supplicant {
                u8 prev_bssid[ETH_ALEN];
                int prev_bssid_set;
                int auth_alg;
+               int proto;
+
+               int sa_query_count; /* number of pending SA Query requests;
+                                    * 0 = no SA Query in progress */
+               int sa_query_timed_out;
+               u8 *sa_query_trans_id; /* buffer of WLAN_SA_QUERY_TR_ID_LEN *
+                                       * sa_query_count octets of pending
+                                       * SA Query transaction identifiers */
+               struct os_time sa_query_start;
        } sme;
 #endif /* CONFIG_SME */
 
@@ -460,7 +482,7 @@ struct wpa_supplicant {
        struct p2p_go_neg_results *go_params;
        int create_p2p_iface;
        u8 pending_interface_addr[ETH_ALEN];
-       char pending_interface_name[IFNAMSIZ];
+       char pending_interface_name[100];
        int pending_interface_type;
        int p2p_group_idx;
        unsigned int off_channel_freq;
@@ -479,7 +501,7 @@ struct wpa_supplicant {
                P2P_GROUP_INTERFACE_CLIENT
        } p2p_group_interface;
        struct p2p_group *p2p_group;
-       int p2p_long_listen;
+       int p2p_long_listen; /* remaining time in long Listen state in ms */
        char p2p_pin[10];
        int p2p_wps_method;
        u8 p2p_auth_invite[ETH_ALEN];
@@ -494,6 +516,7 @@ struct wpa_supplicant {
        int pending_join_wps_method;
        int p2p_join_scan_count;
        unsigned int roc_waiting_drv_freq;
+       int action_tx_wait_time;
        int force_long_sd;
 
        /*
@@ -529,7 +552,7 @@ struct wpa_supplicant {
        const struct bgscan_ops *bgscan;
        void *bgscan_priv;
 
-       int connect_without_scan;
+       struct wpa_ssid *connect_without_scan;
 
        int after_wps;
        unsigned int wps_freq;
@@ -540,6 +563,8 @@ struct wpa_supplicant {
        int best_24_freq;
        int best_5_freq;
        int best_overall_freq;
+
+       struct gas_query *gas;
 };
 
 
@@ -565,6 +590,7 @@ void wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s,
 void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
                              enum wpa_states state);
 struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s);
+const char * wpa_supplicant_get_eap_mode(struct wpa_supplicant *wpa_s);
 void wpa_supplicant_cancel_auth_timeout(struct wpa_supplicant *wpa_s);
 void wpa_supplicant_deauthenticate(struct wpa_supplicant *wpa_s,
                                   int reason_code);
@@ -579,6 +605,10 @@ void wpa_supplicant_select_network(struct wpa_supplicant *wpa_s,
                                   struct wpa_ssid *ssid);
 int wpa_supplicant_set_ap_scan(struct wpa_supplicant *wpa_s,
                               int ap_scan);
+int wpa_supplicant_set_bss_expiration_age(struct wpa_supplicant *wpa_s,
+                                         unsigned int expire_age);
+int wpa_supplicant_set_bss_expiration_count(struct wpa_supplicant *wpa_s,
+                                           unsigned int expire_count);
 int wpa_supplicant_set_debug_params(struct wpa_global *global,
                                    int debug_level, int debug_timestamp,
                                    int debug_show_keys);
@@ -606,6 +636,8 @@ void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s);
 void wpa_supplicant_clear_status(struct wpa_supplicant *wpa_s);
 void ieee80211_sta_free_hw_features(struct hostapd_hw_modes *hw_features,
                                    size_t num_hw_features);
+void wpas_connection_failed(struct wpa_supplicant *wpa_s, const u8 *bssid);
+int wpas_driver_bss_selection(struct wpa_supplicant *wpa_s);
 
 /* events.c */
 void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
@@ -616,4 +648,14 @@ void wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
 /* eap_register.c */
 int eap_register_methods(void);
 
+/**
+ * Utility method to tell if a given network is a persistent group
+ * @ssid: Network object
+ * Returns: 1 if network is a persistent group, 0 otherwise
+ */
+static inline int network_is_persistent_group(struct wpa_ssid *ssid)
+{
+       return ((ssid->disabled == 2) || ssid->p2p_persistent_group);
+}
+
 #endif /* WPA_SUPPLICANT_I_H */