]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/wpa_supplicant_i.h
wpa_supplicant: Add HE override support
[thirdparty/hostap.git] / wpa_supplicant / wpa_supplicant_i.h
index 8c5defc3bc7fe6859c0201c1d62d3fbb50aae5bc..e0de59fa29714439cbcf9ad5e27a42fa3e904700 100644 (file)
@@ -47,6 +47,9 @@ struct ctrl_iface_global_priv;
 struct wpas_dbus_priv;
 struct wpas_binder_priv;
 
+/* How many seconds to consider old scan results valid for association. */
+#define SCAN_RES_VALID_FOR_CONNECT 5
+
 /**
  * struct wpa_interface - Parameters for wpa_supplicant_add_iface()
  */
@@ -280,6 +283,7 @@ struct wpa_global {
        struct dl_list p2p_srv_upnp; /* struct p2p_srv_upnp */
        int p2p_disabled;
        int cross_connection;
+       int p2p_long_listen; /* remaining time in long Listen state in ms */
        struct wpa_freq_range_list p2p_disallow_freq;
        struct wpa_freq_range_list p2p_go_avoid_freq;
        enum wpa_conc_pref {
@@ -477,6 +481,16 @@ struct fils_hlp_req {
        struct wpabuf *pkt;
 };
 
+struct driver_signal_override {
+       struct dl_list list;
+       u8 bssid[ETH_ALEN];
+       int si_current_signal;
+       int si_avg_signal;
+       int si_avg_beacon_signal;
+       int si_current_noise;
+       int scan_level;
+};
+
 /**
  * struct wpa_supplicant - Internal data for wpa_supplicant interface
  *
@@ -540,6 +554,7 @@ struct wpa_supplicant {
 
        /* Selected configuration (based on Beacon/ProbeResp WPA IE) */
        int pairwise_cipher;
+       int deny_ptk0_rekey;
        int group_cipher;
        int key_mgmt;
        int wpa_proto;
@@ -592,8 +607,8 @@ struct wpa_supplicant {
          * results.
          */
        struct wpa_bss **last_scan_res;
-       unsigned int last_scan_res_used;
-       unsigned int last_scan_res_size;
+       size_t last_scan_res_used;
+       size_t last_scan_res_size;
        struct os_reltime last_scan;
 
        const struct wpa_driver_ops *driver;
@@ -700,6 +715,7 @@ struct wpa_supplicant {
        int scan_id[MAX_SCAN_ID];
        unsigned int scan_id_count;
        u8 next_scan_bssid[ETH_ALEN];
+       unsigned int next_scan_bssid_wildcard_ssid:1;
 
        struct wpa_ssid_value *ssids_from_scan_req;
        unsigned int num_ssids_from_scan_req;
@@ -710,7 +726,6 @@ struct wpa_supplicant {
 
        u64 drv_flags;
        unsigned int drv_enc;
-       unsigned int drv_smps_modes;
        unsigned int drv_rrm_flags;
 
        /*
@@ -877,7 +892,6 @@ struct wpa_supplicant {
                P2P_GROUP_INTERFACE_CLIENT
        } p2p_group_interface;
        struct p2p_group *p2p_group;
-       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];
@@ -931,6 +945,7 @@ struct wpa_supplicant {
        unsigned int p2p_pd_before_go_neg:1;
        unsigned int p2p_go_ht40:1;
        unsigned int p2p_go_vht:1;
+       unsigned int p2p_go_edmg:1;
        unsigned int p2p_go_he:1;
        unsigned int user_initiated_pd:1;
        unsigned int p2p_go_group_formation_completed:1;
@@ -1058,6 +1073,7 @@ struct wpa_supplicant {
        unsigned int wmm_ac_supported:1;
        unsigned int ext_work_in_progress:1;
        unsigned int own_disconnect_req:1;
+       unsigned int own_reconnect_req:1;
        unsigned int ignore_post_flush_scan_res:1;
 
 #define MAC_ADDR_RAND_SCAN       BIT(0)
@@ -1116,7 +1132,9 @@ struct wpa_supplicant {
        unsigned int p2p_go_csa_on_inv:1;
        unsigned int ignore_auth_resp:1;
        unsigned int ignore_assoc_disallow:1;
+       unsigned int disable_sa_query:1;
        unsigned int testing_resend_assoc:1;
+       unsigned int ignore_sae_h2e_only:1;
        struct wpabuf *sae_commit_override;
        enum wpa_alg last_tk_alg;
        u8 last_tk_addr[ETH_ALEN];
@@ -1124,6 +1142,11 @@ struct wpa_supplicant {
        u8 last_tk[WPA_TK_MAX_LEN];
        size_t last_tk_len;
        struct wpabuf *last_assoc_req_wpa_ie;
+       int *extra_sae_rejected_groups;
+       struct wpabuf *rsne_override_eapol;
+       struct wpabuf *rsnxe_override_assoc;
+       struct wpabuf *rsnxe_override_eapol;
+       struct dl_list drv_signal_override;
 #endif /* CONFIG_TESTING_OPTIONS */
 
        struct wmm_ac_assoc_data *wmm_ac_assoc_info;
@@ -1226,7 +1249,7 @@ struct wpa_supplicant {
        unsigned int dpp_listen_freq;
        u8 dpp_allowed_roles;
        int dpp_qr_mutual;
-       int dpp_netrole_ap;
+       int dpp_netrole;
        int dpp_auth_ok_on_ack;
        int dpp_in_response_listen;
        int dpp_gas_client;
@@ -1250,6 +1273,15 @@ struct wpa_supplicant {
        size_t dpp_last_ssid_len;
 #ifdef CONFIG_DPP2
        struct dpp_pfs *dpp_pfs;
+       int dpp_pfs_fallback;
+       struct wpabuf *dpp_presence_announcement;
+       struct dpp_bootstrap_info *dpp_chirp_bi;
+       int dpp_chirp_freq;
+       int *dpp_chirp_freqs;
+       int dpp_chirp_iter;
+       int dpp_chirp_round;
+       int dpp_chirp_scan_done;
+       int dpp_chirp_listen;
 #endif /* CONFIG_DPP2 */
 #ifdef CONFIG_TESTING_OPTIONS
        char *dpp_config_obj_override;
@@ -1266,6 +1298,9 @@ struct wpa_supplicant {
        unsigned int enabled_4addr_mode:1;
        unsigned int multi_bss_support:1;
        unsigned int drv_authorized_port:1;
+       unsigned int multi_ap_ie:1;
+       unsigned int multi_ap_backhaul:1;
+       unsigned int multi_ap_fronthaul:1;
 };
 
 
@@ -1276,6 +1311,9 @@ void wpa_supplicant_apply_ht_overrides(
 void wpa_supplicant_apply_vht_overrides(
        struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
        struct wpa_driver_associate_params *params);
+void wpa_supplicant_apply_he_overrides(
+       struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
+       struct wpa_driver_associate_params *params);
 
 int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
 int wpa_supplicant_set_wpa_none_key(struct wpa_supplicant *wpa_s,
@@ -1307,6 +1345,7 @@ 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,
                                   u16 reason_code);
+void wpa_supplicant_reconnect(struct wpa_supplicant *wpa_s);
 
 struct wpa_ssid * wpa_supplicant_add_network(struct wpa_supplicant *wpa_s);
 int wpa_supplicant_remove_network(struct wpa_supplicant *wpa_s, int id);
@@ -1372,6 +1411,8 @@ int wpas_update_random_addr(struct wpa_supplicant *wpa_s, int style);
 int wpas_update_random_addr_disassoc(struct wpa_supplicant *wpa_s);
 void add_freq(int *freqs, int *num_freqs, int freq);
 
+int wpas_get_op_chan_phy(int freq, const u8 *ies, size_t ies_len,
+                        u8 *op_class, u8 *chan, u8 *phy_type);
 void wpas_rrm_reset(struct wpa_supplicant *wpa_s);
 void wpas_rrm_process_neighbor_rep(struct wpa_supplicant *wpa_s,
                                   const u8 *report, size_t report_len);
@@ -1394,6 +1435,7 @@ int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
                                 struct scan_info *info);
 void wpas_clear_beacon_rep_data(struct wpa_supplicant *wpa_s);
 void wpas_flush_fils_hlp_req(struct wpa_supplicant *wpa_s);
+void wpas_clear_disabled_interface(void *eloop_ctx, void *timeout_ctx);
 
 
 /* MBO functions */
@@ -1430,7 +1472,7 @@ enum chan_allowed verify_channel(struct hostapd_hw_modes *mode, u8 op_class,
                                 u8 channel, u8 bw);
 size_t wpas_supp_op_class_ie(struct wpa_supplicant *wpa_s,
                             struct wpa_ssid *ssid,
-                            int freq, u8 *pos, size_t len);
+                            struct wpa_bss *bss, u8 *pos, size_t len);
 int * wpas_supp_op_classes(struct wpa_supplicant *wpa_s);
 
 int wpas_enable_mac_addr_randomization(struct wpa_supplicant *wpa_s,
@@ -1540,7 +1582,8 @@ void fst_wpa_supplicant_fill_iface_obj(struct wpa_supplicant *wpa_s,
 int wpas_sched_scan_plans_set(struct wpa_supplicant *wpa_s, const char *cmd);
 
 struct hostapd_hw_modes * get_mode(struct hostapd_hw_modes *modes,
-                                  u16 num_modes, enum hostapd_hw_mode mode);
+                                  u16 num_modes, enum hostapd_hw_mode mode,
+                                  int is_6ghz);
 
 void wpa_bss_tmp_disallow(struct wpa_supplicant *wpa_s, const u8 *bssid,
                          unsigned int sec, int rssi_threshold);
@@ -1561,4 +1604,6 @@ int wpas_ctrl_iface_get_pref_freq_list_override(struct wpa_supplicant *wpa_s,
 int wpa_is_fils_supported(struct wpa_supplicant *wpa_s);
 int wpa_is_fils_sk_pfs_supported(struct wpa_supplicant *wpa_s);
 
+void wpas_clear_driver_signal_override(struct wpa_supplicant *wpa_s);
+
 #endif /* WPA_SUPPLICANT_I_H */