]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/wpa_supplicant_i.h
DBus: Add support for P2P primitives
[thirdparty/hostap.git] / wpa_supplicant / wpa_supplicant_i.h
index f76ea57d76db62fbe9c22998f5a60f547cd993ed..281c5f6717eacf7e688836df9b28638cf692f274 100644 (file)
@@ -34,6 +34,7 @@ struct ibss_rsn;
 struct scan_info;
 struct wpa_bss;
 struct wpa_scan_results;
+struct hostapd_hw_modes;
 
 /*
  * Forward declarations of private structures used within the ctrl_iface
@@ -180,6 +181,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 {
@@ -214,6 +223,7 @@ struct wpa_global {
        struct dl_list p2p_srv_bonjour; /* struct p2p_srv_bonjour */
        struct dl_list p2p_srv_upnp; /* struct p2p_srv_upnp */
        int p2p_disabled;
+       int cross_connection;
 };
 
 
@@ -332,6 +342,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];
 
@@ -402,11 +413,14 @@ 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;
        int max_scan_ssids;
        unsigned int max_remain_on_chan;
+       unsigned int max_stations;
 
        int pending_mic_error_report;
        int pending_mic_error_pairwise;
@@ -423,6 +437,11 @@ struct wpa_supplicant {
 
        struct ibss_rsn *ibss_rsn;
 
+       int set_sta_uapsd;
+       int sta_uapsd;
+       int set_ap_uapsd;
+       int ap_uapsd;
+
 #ifdef CONFIG_SME
        struct {
                u8 ssid[32];
@@ -438,6 +457,14 @@ struct wpa_supplicant {
                u8 prev_bssid[ETH_ALEN];
                int prev_bssid_set;
                int auth_alg;
+
+               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 */
 
@@ -452,7 +479,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;
@@ -471,9 +498,10 @@ 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];
        int p2p_sd_over_ctrl_iface;
        int p2p_in_provisioning;
        int pending_invite_ssid_id;
@@ -483,7 +511,38 @@ struct wpa_supplicant {
        u8 pending_join_iface_addr[ETH_ALEN];
        u8 pending_join_dev_addr[ETH_ALEN];
        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;
+
+       /*
+        * Whether cross connection is disallowed by the AP to which this
+        * interface is associated (only valid if there is an association).
+        */
+       int cross_connect_disallowed;
+
+       /*
+        * Whether this P2P group is configured to use cross connection (only
+        * valid if this is P2P GO interface). The actual cross connect packet
+        * forwarding may not be configured depending on the uplink status.
+        */
+       int cross_connect_enabled;
+
+       /* Whether cross connection forwarding is in use at the moment. */
+       int cross_connect_in_use;
+
+       /*
+        * Uplink interface name for cross connection
+        */
+       char cross_connect_uplink[100];
+
+       enum {
+               P2P_GROUP_REMOVAL_UNKNOWN,
+               P2P_GROUP_REMOVAL_REQUESTED,
+               P2P_GROUP_REMOVAL_IDLE_TIMEOUT,
+               P2P_GROUP_REMOVAL_UNAVAILABLE
+       } removal_reason;
 #endif /* CONFIG_P2P */
 
        struct wpa_ssid *bgscan_ssid;
@@ -495,6 +554,12 @@ struct wpa_supplicant {
        int after_wps;
        unsigned int wps_freq;
        int wps_fragment_size;
+       int auto_reconnect_disabled;
+
+        /* Channel preferences for AP/P2P GO use */
+       int best_24_freq;
+       int best_5_freq;
+       int best_overall_freq;
 };
 
 
@@ -520,6 +585,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);
@@ -534,6 +600,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);
@@ -559,6 +629,9 @@ enum wpa_key_mgmt key_mgmt2driver(int key_mgmt);
 enum wpa_cipher cipher_suite2driver(int cipher);
 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);
 
 /* events.c */
 void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);