]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/wpa_supplicant_i.h
Add HE Capabilities into ieee802_11_parse_elems()
[thirdparty/hostap.git] / wpa_supplicant / wpa_supplicant_i.h
index b1331a585c153b2261d3c82599244608cbcf562a..ee581e75657f791ec1f0ee5d24cbb2125d01d45f 100644 (file)
@@ -345,6 +345,7 @@ int radio_add_work(struct wpa_supplicant *wpa_s, unsigned int freq,
 void radio_work_done(struct wpa_radio_work *work);
 void radio_remove_works(struct wpa_supplicant *wpa_s,
                        const char *type, int remove_all);
+void radio_remove_pending_work(struct wpa_supplicant *wpa_s, void *ctx);
 void radio_work_check_next(struct wpa_supplicant *wpa_s);
 struct wpa_radio_work *
 radio_work_pending(struct wpa_supplicant *wpa_s, const char *type);
@@ -450,10 +451,12 @@ struct icon_entry {
 struct wpa_bss_tmp_disallowed {
        struct dl_list list;
        u8 bssid[ETH_ALEN];
+       int rssi_threshold;
 };
 
 struct beacon_rep_data {
        u8 token;
+       u8 last_indication;
        struct wpa_driver_scan_params scan_params;
        u8 ssid[SSID_MAX_LEN];
        size_t ssid_len;
@@ -491,6 +494,10 @@ struct wpa_supplicant {
        struct wpa_supplicant *next;
        struct l2_packet_data *l2;
        struct l2_packet_data *l2_br;
+       struct os_reltime roam_start;
+       struct os_reltime roam_time;
+       struct os_reltime session_start;
+       struct os_reltime session_length;
        unsigned char own_addr[ETH_ALEN];
        unsigned char perm_addr[ETH_ALEN];
        char ifname[100];
@@ -531,6 +538,8 @@ struct wpa_supplicant {
        struct wpa_bss *current_bss;
        int ap_ies_from_associnfo;
        unsigned int assoc_freq;
+       u8 *last_con_fail_realm;
+       size_t last_con_fail_realm_len;
 
        /* Selected configuration (based on Beacon/ProbeResp WPA IE) */
        int pairwise_cipher;
@@ -740,6 +749,8 @@ struct wpa_supplicant {
        unsigned int mac_addr_changed:1;
        unsigned int added_vif:1;
        unsigned int wnmsleep_used:1;
+       unsigned int owe_transition_select:1;
+       unsigned int owe_transition_search:1;
 
        struct os_reltime last_mac_addr_change;
        int last_mac_addr_style;
@@ -751,6 +762,7 @@ struct wpa_supplicant {
        int set_ap_uapsd;
        int ap_uapsd;
        int auth_alg;
+       u16 last_owe_group;
 
 #ifdef CONFIG_SME
        struct {
@@ -788,6 +800,8 @@ struct wpa_supplicant {
                struct wpabuf *sae_token;
                int sae_group_index;
                unsigned int sae_pmksa_caching:1;
+               u16 seq_num;
+               struct external_auth ext_auth;
 #endif /* CONFIG_SAE */
        } sme;
 #endif /* CONFIG_SME */
@@ -806,6 +820,7 @@ struct wpa_supplicant {
        unsigned int mesh_if_created:1;
        unsigned int mesh_ht_enabled:1;
        unsigned int mesh_vht_enabled:1;
+       struct wpa_driver_mesh_join_params *mesh_params;
 #ifdef CONFIG_PMKSA_CACHE_EXTERNAL
        /* struct external_pmksa_cache::list */
        struct dl_list mesh_external_pmksa_cache;
@@ -903,6 +918,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_he:1;
        unsigned int user_initiated_pd:1;
        unsigned int p2p_go_group_formation_completed:1;
        unsigned int group_formation_reported:1;
@@ -1010,6 +1026,10 @@ struct wpa_supplicant {
        /* WLAN_REASON_* reason codes. Negative if locally generated. */
        int disconnect_reason;
 
+       /* WLAN_STATUS_* status codes from last received Authentication frame
+        * from the AP. */
+       u16 auth_status_code;
+
        /* WLAN_STATUS_* status codes from (Re)Association Response frame. */
        u16 assoc_status_code;
 
@@ -1051,6 +1071,11 @@ struct wpa_supplicant {
        struct neighbor_report *wnm_neighbor_report_elements;
        struct os_reltime wnm_cand_valid_until;
        u8 wnm_cand_from_bss[ETH_ALEN];
+       enum bss_trans_mgmt_status_code bss_tm_status;
+       struct wpabuf *coloc_intf_elems;
+       u8 coloc_intf_dialog_token;
+       u8 coloc_intf_auto_report;
+       u8 coloc_intf_timeout;
 #ifdef CONFIG_MBO
        unsigned int wnm_mbo_trans_reason_present:1;
        u8 wnm_mbo_transition_reason;
@@ -1178,6 +1203,8 @@ struct wpa_supplicant {
        /* RIC elements for FT protocol */
        struct wpabuf *ric_ies;
 
+       int last_auth_timeout_sec;
+
 #ifdef CONFIG_DPP
        struct dl_list dpp_bootstrap; /* struct dpp_bootstrap_info */
        struct dl_list dpp_configurator; /* struct dpp_configurator */
@@ -1215,6 +1242,13 @@ struct wpa_supplicant {
        unsigned int dpp_ignore_netaccesskey_mismatch:1;
 #endif /* CONFIG_TESTING_OPTIONS */
 #endif /* CONFIG_DPP */
+
+#ifdef CONFIG_FILS
+       unsigned int disable_fils:1;
+#endif /* CONFIG_FILS */
+       unsigned int ieee80211ac:1;
+       unsigned int enabled_4addr_mode:1;
+       unsigned int multi_bss_support:1;
 };
 
 
@@ -1247,6 +1281,7 @@ void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s);
 void wpa_clear_keys(struct wpa_supplicant *wpa_s, const u8 *addr);
 void wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s,
                                     int sec, int usec);
+void wpas_auth_timeout_restart(struct wpa_supplicant *wpa_s, int sec_diff);
 void wpa_supplicant_reinit_autoscan(struct wpa_supplicant *wpa_s);
 void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
                              enum wpa_states state);
@@ -1304,6 +1339,7 @@ void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
 void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s);
 void wpa_supplicant_clear_status(struct wpa_supplicant *wpa_s);
 void wpas_connection_failed(struct wpa_supplicant *wpa_s, const u8 *bssid);
+void fils_connection_failure(struct wpa_supplicant *wpa_s);
 int wpas_driver_bss_selection(struct wpa_supplicant *wpa_s);
 int wpas_is_p2p_prioritized(struct wpa_supplicant *wpa_s);
 void wpas_auth_failed(struct wpa_supplicant *wpa_s, char *reason);
@@ -1344,8 +1380,12 @@ void wpas_flush_fils_hlp_req(struct wpa_supplicant *wpa_s);
 
 
 /* MBO functions */
-int wpas_mbo_ie(struct wpa_supplicant *wpa_s, u8 *buf, size_t len);
+int wpas_mbo_ie(struct wpa_supplicant *wpa_s, u8 *buf, size_t len,
+               int add_oce_capa);
+const u8 * mbo_attr_from_mbo_ie(const u8 *mbo_ie, enum mbo_attr_id attr);
 const u8 * wpas_mbo_get_bss_attr(struct wpa_bss *bss, enum mbo_attr_id attr);
+const u8 * mbo_get_attr_from_ies(const u8 *ies, size_t ies_len,
+                                enum mbo_attr_id attr);
 int wpas_mbo_update_non_pref_chan(struct wpa_supplicant *wpa_s,
                                  const char *non_pref_chan);
 void wpas_mbo_scan_ie(struct wpa_supplicant *wpa_s, struct wpabuf *ie);
@@ -1368,8 +1408,9 @@ enum chan_allowed {
 
 enum chan_allowed verify_channel(struct hostapd_hw_modes *mode, u8 channel,
                                 u8 bw);
-size_t wpas_supp_op_class_ie(struct wpa_supplicant *wpa_s, int freq, u8 *pos,
-                             size_t len);
+size_t wpas_supp_op_class_ie(struct wpa_supplicant *wpa_s,
+                            struct wpa_ssid *ssid,
+                            int freq, u8 *pos, size_t len);
 
 /**
  * wpa_supplicant_ctrl_iface_ctrl_rsp_handle - Handle a control response
@@ -1402,6 +1443,8 @@ int wpa_supplicant_fast_associate(struct wpa_supplicant *wpa_s);
 struct wpa_bss * wpa_supplicant_pick_network(struct wpa_supplicant *wpa_s,
                                             struct wpa_ssid **selected_ssid);
 int wpas_temp_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
+void wpa_supplicant_update_channel_list(struct wpa_supplicant *wpa_s,
+                                       struct channel_list_changed *info);
 
 /* eap_register.c */
 int eap_register_methods(void);
@@ -1454,8 +1497,10 @@ struct hostapd_hw_modes * get_mode(struct hostapd_hw_modes *modes,
                                   u16 num_modes, enum hostapd_hw_mode mode);
 
 void wpa_bss_tmp_disallow(struct wpa_supplicant *wpa_s, const u8 *bssid,
-                         unsigned int sec);
-int wpa_is_bss_tmp_disallowed(struct wpa_supplicant *wpa_s, const u8 *bssid);
+                         unsigned int sec, int rssi_threshold);
+int wpa_is_bss_tmp_disallowed(struct wpa_supplicant *wpa_s,
+                             struct wpa_bss *bss);
+void free_bss_tmp_disallowed(struct wpa_supplicant *wpa_s);
 
 struct wpa_ssid * wpa_scan_res_match(struct wpa_supplicant *wpa_s,
                                     int i, struct wpa_bss *bss,
@@ -1467,4 +1512,7 @@ int wpas_ctrl_iface_get_pref_freq_list_override(struct wpa_supplicant *wpa_s,
                                                unsigned int *num,
                                                unsigned int *freq_list);
 
+int wpa_is_fils_supported(struct wpa_supplicant *wpa_s);
+int wpa_is_fils_sk_pfs_supported(struct wpa_supplicant *wpa_s);
+
 #endif /* WPA_SUPPLICANT_I_H */