]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/wpa_supplicant_i.h
EAP: Increase the maximum number of message exchanges
[thirdparty/hostap.git] / wpa_supplicant / wpa_supplicant_i.h
index a2f78e685afac9dd5816a2d0c2f1a9539acb160f..32f390fd9864b89854661171f6004c409e91c382 100644 (file)
@@ -456,6 +456,7 @@ struct wpa_bss_tmp_disallowed {
 
 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;
@@ -493,15 +494,16 @@ 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];
 #ifdef CONFIG_MATCH_IFACE
        int matched;
 #endif /* CONFIG_MATCH_IFACE */
-#ifdef CONFIG_CTRL_IFACE_DBUS
-       char *dbus_path;
-#endif /* CONFIG_CTRL_IFACE_DBUS */
 #ifdef CONFIG_CTRL_IFACE_DBUS_NEW
        char *dbus_new_path;
        char *dbus_groupobj_path;
@@ -746,6 +748,10 @@ struct wpa_supplicant {
        unsigned int wnmsleep_used:1;
        unsigned int owe_transition_select:1;
        unsigned int owe_transition_search:1;
+       unsigned int connection_set:1;
+       unsigned int connection_ht:1;
+       unsigned int connection_vht:1;
+       unsigned int connection_he:1;
 
        struct os_reltime last_mac_addr_change;
        int last_mac_addr_style;
@@ -796,7 +802,9 @@ struct wpa_supplicant {
                int sae_group_index;
                unsigned int sae_pmksa_caching:1;
                u16 seq_num;
-               struct external_auth ext_auth;
+               u8 ext_auth_bssid[ETH_ALEN];
+               u8 ext_auth_ssid[SSID_MAX_LEN];
+               size_t ext_auth_ssid_len;
 #endif /* CONFIG_SAE */
        } sme;
 #endif /* CONFIG_SME */
@@ -815,6 +823,8 @@ struct wpa_supplicant {
        unsigned int mesh_if_created:1;
        unsigned int mesh_ht_enabled:1;
        unsigned int mesh_vht_enabled:1;
+       unsigned int mesh_he_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;
@@ -912,6 +922,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;
@@ -1019,6 +1030,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;
 
@@ -1060,6 +1075,7 @@ 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;
@@ -1194,9 +1210,7 @@ struct wpa_supplicant {
        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 */
-       int dpp_init_done;
+       struct dpp_global *dpp;
        struct dpp_authentication *dpp_auth;
        struct wpa_radio_work *dpp_listen_work;
        unsigned int dpp_pending_listen_freq;
@@ -1223,6 +1237,9 @@ struct wpa_supplicant {
        unsigned int dpp_resp_wait_time;
        unsigned int dpp_resp_max_tries;
        unsigned int dpp_resp_retry_time;
+#ifdef CONFIG_DPP2
+       struct dpp_pfs *dpp_pfs;
+#endif /* CONFIG_DPP2 */
 #ifdef CONFIG_TESTING_OPTIONS
        char *dpp_config_obj_override;
        char *dpp_discovery_override;
@@ -1237,6 +1254,7 @@ struct wpa_supplicant {
        unsigned int ieee80211ac:1;
        unsigned int enabled_4addr_mode:1;
        unsigned int multi_bss_support:1;
+       unsigned int drv_authorized_port:1;
 };
 
 
@@ -1277,7 +1295,7 @@ 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);
+                                  u16 reason_code);
 
 struct wpa_ssid * wpa_supplicant_add_network(struct wpa_supplicant *wpa_s);
 int wpa_supplicant_remove_network(struct wpa_supplicant *wpa_s, int id);
@@ -1388,6 +1406,7 @@ struct wpabuf * mbo_build_anqp_buf(struct wpa_supplicant *wpa_s,
 void mbo_parse_rx_anqp_resp(struct wpa_supplicant *wpa_s,
                            struct wpa_bss *bss, const u8 *sa,
                            const u8 *data, size_t slen);
+void wpas_update_mbo_connect_params(struct wpa_supplicant *wpa_s);
 
 /* op_classes.c */
 enum chan_allowed {
@@ -1396,8 +1415,15 @@ 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);
+
+int wpas_enable_mac_addr_randomization(struct wpa_supplicant *wpa_s,
+                                      unsigned int type, const u8 *addr,
+                                      const u8 *mask);
+int wpas_disable_mac_addr_randomization(struct wpa_supplicant *wpa_s,
+                                       unsigned int type);
 
 /**
  * wpa_supplicant_ctrl_iface_ctrl_rsp_handle - Handle a control response
@@ -1446,6 +1472,25 @@ static inline int network_is_persistent_group(struct wpa_ssid *ssid)
        return ssid->disabled == 2 && ssid->p2p_persistent_group;
 }
 
+
+static inline int wpas_mode_to_ieee80211_mode(enum wpas_mode mode)
+{
+       switch (mode) {
+       default:
+       case WPAS_MODE_INFRA:
+               return IEEE80211_MODE_INFRA;
+       case WPAS_MODE_IBSS:
+               return IEEE80211_MODE_IBSS;
+       case WPAS_MODE_AP:
+       case WPAS_MODE_P2P_GO:
+       case WPAS_MODE_P2P_GROUP_FORMATION:
+               return IEEE80211_MODE_AP;
+       case WPAS_MODE_MESH:
+               return IEEE80211_MODE_MESH;
+       }
+}
+
+
 int wpas_network_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
 int wpas_get_ssid_pmf(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);