Lines Matching refs:sme
67 if (!index_within_array(groups, wpa_s->sme.sae_group_index)) in sme_set_sae_group()
71 int group = groups[wpa_s->sme.sae_group_index]; in sme_set_sae_group()
74 if (!int_array_includes(wpa_s->sme.sae_rejected_groups, in sme_set_sae_group()
76 sae_set_group(&wpa_s->sme.sae, group) == 0) { in sme_set_sae_group()
78 wpa_s->sme.sae.group); in sme_set_sae_group()
79 wpa_s->sme.sae.akmp = external ? in sme_set_sae_group()
80 wpa_s->sme.ext_auth_key_mgmt : wpa_s->key_mgmt; in sme_set_sae_group()
83 wpa_s->sme.sae_group_index++; in sme_set_sae_group()
105 int key_mgmt = external ? wpa_s->sme.ext_auth_key_mgmt : in sme_auth_build_sae_commit()
170 if (reuse && wpa_s->sme.sae.tmp && in sme_auth_build_sae_commit()
171 ether_addr_equal(addr, wpa_s->sme.sae.tmp->bssid)) { in sme_auth_build_sae_commit()
174 use_pt = wpa_s->sme.sae.h2e; in sme_auth_build_sae_commit()
175 use_pk = wpa_s->sme.sae.pk; in sme_auth_build_sae_commit()
243 sae_prepare_commit_pt(&wpa_s->sme.sae, ssid->pt, in sme_auth_build_sae_commit()
245 wpa_s->sme.sae_rejected_groups, NULL) < 0) in sme_auth_build_sae_commit()
250 &wpa_s->sme.sae) < 0) { in sme_auth_build_sae_commit()
254 if (wpa_s->sme.sae.tmp) { in sme_auth_build_sae_commit()
255 os_memcpy(wpa_s->sme.sae.tmp->bssid, addr, ETH_ALEN); in sme_auth_build_sae_commit()
257 wpa_s->sme.sae.pk = 1; in sme_auth_build_sae_commit()
259 os_memcpy(wpa_s->sme.sae.tmp->own_addr, wpa_s->own_addr, in sme_auth_build_sae_commit()
261 os_memcpy(wpa_s->sme.sae.tmp->peer_addr, addr, ETH_ALEN); in sme_auth_build_sae_commit()
262 sae_pk_set_password(&wpa_s->sme.sae, password); in sme_auth_build_sae_commit()
267 len = wpa_s->sme.sae_token ? 3 + wpabuf_len(wpa_s->sme.sae_token) : 0; in sme_auth_build_sae_commit()
282 if (sae_write_commit(&wpa_s->sme.sae, buf, wpa_s->sme.sae_token, in sme_auth_build_sae_commit()
314 sae_write_confirm(&wpa_s->sme.sae, buf); in sme_auth_build_sae_confirm()
355 if (sizeof(wpa_s->sme.assoc_req_ie) < in sme_auth_handle_rrm()
356 wpa_s->sme.assoc_req_ie_len + rrm_ie_len + 2) { in sme_auth_handle_rrm()
363 pos = wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len; in sme_auth_handle_rrm()
379 wpa_s->sme.assoc_req_ie_len += rrm_ie_len + 2; in sme_auth_handle_rrm()
614 if (wpa_s->sme.ssid_len != params.ssid_len || in sme_send_authentication()
615 os_memcmp(wpa_s->sme.ssid, params.ssid, params.ssid_len) != 0) in sme_send_authentication()
616 wpa_s->sme.prev_bssid_set = 0; in sme_send_authentication()
618 wpa_s->sme.freq = params.freq; in sme_send_authentication()
619 os_memcpy(wpa_s->sme.ssid, params.ssid, params.ssid_len); in sme_send_authentication()
620 wpa_s->sme.ssid_len = params.ssid_len; in sme_send_authentication()
641 wpa_s->sme.sae_pmksa_caching = 0; in sme_send_authentication()
706 wpa_s->sme.assoc_req_ie_len = sizeof(wpa_s->sme.assoc_req_ie); in sme_send_authentication()
708 wpa_s->sme.assoc_req_ie, in sme_send_authentication()
709 &wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
720 wpa_s->sme.assoc_req_ie_len = sizeof(wpa_s->sme.assoc_req_ie); in sme_send_authentication()
722 wpa_s->sme.assoc_req_ie, in sme_send_authentication()
723 &wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
739 wpa_s->sme.assoc_req_ie_len = 0; in sme_send_authentication()
741 wpa_s->sme.assoc_req_ie_len = sizeof(wpa_s->sme.assoc_req_ie); in sme_send_authentication()
743 wpa_s->sme.assoc_req_ie, in sme_send_authentication()
744 &wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
757 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_send_authentication()
758 wpa_s->sme.assoc_req_ie_len = wpabuf_len(wps_ie); in sme_send_authentication()
759 os_memcpy(wpa_s->sme.assoc_req_ie, wpabuf_head(wps_ie), in sme_send_authentication()
760 wpa_s->sme.assoc_req_ie_len); in sme_send_authentication()
762 wpa_s->sme.assoc_req_ie_len = 0; in sme_send_authentication()
768 wpa_s->sme.assoc_req_ie_len = 0; in sme_send_authentication()
779 wpa_ie = os_memdup(wpa_s->sme.assoc_req_ie, in sme_send_authentication()
780 wpa_s->sme.assoc_req_ie_len); in sme_send_authentication()
784 wpa_ie_len = wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
785 wpa_s->sme.assoc_req_ie_len = 0; in sme_send_authentication()
811 if (wpa_s->sme.assoc_req_ie_len + 5 < in sme_send_authentication()
812 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_send_authentication()
814 u8 *pos = wpa_s->sme.assoc_req_ie + in sme_send_authentication()
815 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
822 wpa_s->sme.assoc_req_ie_len += 5; in sme_send_authentication()
825 if (wpa_s->sme.prev_bssid_set && wpa_s->sme.ft_used && in sme_send_authentication()
826 os_memcmp(md, wpa_s->sme.mobility_domain, 2) == 0 && in sme_send_authentication()
831 params.ie = wpa_s->sme.ft_ies; in sme_send_authentication()
832 params.ie_len = wpa_s->sme.ft_ies_len; in sme_send_authentication()
837 wpa_s->sme.mfp = wpas_get_ssid_pmf(wpa_s, ssid); in sme_send_authentication()
838 if (wpa_s->sme.mfp != NO_MGMT_FRAME_PROTECTION) { in sme_send_authentication()
846 wpa_s->sme.mfp = MGMT_FRAME_PROTECTION_REQUIRED; in sme_send_authentication()
855 pos = wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
856 len = sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
857 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
861 wpa_s->sme.assoc_req_ie_len += res; in sme_send_authentication()
869 if (wpa_s->sme.assoc_req_ie_len + fst_ies_len <= in sme_send_authentication()
870 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_send_authentication()
871 os_memcpy(wpa_s->sme.assoc_req_ie + in sme_send_authentication()
872 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
875 wpa_s->sme.assoc_req_ie_len += fst_ies_len; in sme_send_authentication()
883 wpa_s->sme.assoc_req_ie_len += wpas_supp_op_class_ie( in sme_send_authentication()
885 wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
886 sizeof(wpa_s->sme.assoc_req_ie) - wpa_s->sme.assoc_req_ie_len); in sme_send_authentication()
897 u8 *pos = wpa_s->sme.assoc_req_ie; in sme_send_authentication()
898 if (wpa_s->sme.assoc_req_ie_len > 0 && pos[0] == WLAN_EID_RSN) in sme_send_authentication()
901 wpa_s->sme.assoc_req_ie_len - in sme_send_authentication()
902 (pos - wpa_s->sme.assoc_req_ie)); in sme_send_authentication()
903 wpa_s->sme.assoc_req_ie_len += ext_capab_len; in sme_send_authentication()
907 if (ssid->max_idle && wpa_s->sme.assoc_req_ie_len + 5 <= in sme_send_authentication()
908 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_send_authentication()
909 u8 *pos = wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
916 wpa_s->sme.assoc_req_ie_len += 5; in sme_send_authentication()
922 sizeof(wpa_s->sme.assoc_req_ie) - wpa_s->sme.assoc_req_ie_len) { in sme_send_authentication()
924 os_memcpy(wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
927 wpa_s->sme.assoc_req_ie_len += in sme_send_authentication()
933 sizeof(wpa_s->sme.assoc_req_ie) - wpa_s->sme.assoc_req_ie_len && in sme_send_authentication()
935 os_memcpy(wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
937 wpa_s->sme.assoc_req_ie_len += wpa_s->rsnxe_len; in sme_send_authentication()
952 len = sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
953 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
955 os_memcpy(wpa_s->sme.assoc_req_ie + in sme_send_authentication()
956 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
958 wpa_s->sme.assoc_req_ie_len += wpabuf_len(hs20); in sme_send_authentication()
970 len = sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
971 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
974 os_memcpy(wpa_s->sme.assoc_req_ie + in sme_send_authentication()
975 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
977 wpa_s->sme.assoc_req_ie_len += wpa_ie_len; in sme_send_authentication()
989 len = sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
990 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
992 os_memcpy(wpa_s->sme.assoc_req_ie + in sme_send_authentication()
993 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
995 wpa_s->sme.assoc_req_ie_len += wpabuf_len(buf); in sme_send_authentication()
1004 len = wpas_mbo_ie(wpa_s, wpa_s->sme.assoc_req_ie + in sme_send_authentication()
1005 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
1006 sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
1007 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
1011 wpa_s->sme.assoc_req_ie_len += len; in sme_send_authentication()
1029 wpa_s->sme.sae_pmksa_caching = 1; in sme_send_authentication()
1049 wpa_s->sme.sae.state = start ? SAE_COMMITTED : SAE_CONFIRMED; in sme_send_authentication()
1142 wpa_s->sme.auth_alg = auth_alg; in sme_send_authentication()
1200 wpa_s->sme.auth_alg = params.auth_alg; in sme_send_authentication()
1304 cwork->sme = 1; in sme_authenticate()
1307 wpa_s->sme.sae.state = SAE_NOTHING; in sme_authenticate()
1308 wpa_s->sme.sae.send_confirm = 0; in sme_authenticate()
1309 wpa_s->sme.sae_group_index = 0; in sme_authenticate()
1379 wpa_s->sme.ext_ml_auth ? in sme_external_auth_send_sae_commit()
1380 wpa_s->sme.ext_auth_ap_mld_addr : NULL, in sme_external_auth_send_sae_commit()
1387 wpa_s->sme.sae.state = SAE_COMMITTED; in sme_external_auth_send_sae_commit()
1389 (wpa_s->sme.ext_ml_auth ? WPA_AUTH_FRAME_ML_IE_LEN : in sme_external_auth_send_sae_commit()
1396 wpa_s->sme.seq_num++; in sme_external_auth_send_sae_commit()
1404 wpa_s->sme.ext_ml_auth ? in sme_external_auth_send_sae_commit()
1405 wpa_s->sme.ext_auth_ap_mld_addr : bssid, 1, in sme_external_auth_send_sae_commit()
1406 wpa_s->sme.seq_num, status, in sme_external_auth_send_sae_commit()
1407 wpa_s->sme.ext_ml_auth ? in sme_external_auth_send_sae_commit()
1422 wpa_s->sme.ext_auth_wpa_ssid = NULL; in sme_send_external_auth_status()
1425 params.ssid = wpa_s->sme.ext_auth_ssid; in sme_send_external_auth_status()
1426 params.ssid_len = wpa_s->sme.ext_auth_ssid_len; in sme_send_external_auth_status()
1427 params.bssid = wpa_s->sme.ext_auth_bssid; in sme_send_external_auth_status()
1429 params.pmkid = wpa_s->sme.sae.pmkid; in sme_send_external_auth_status()
1441 wpa_s->sme.ext_auth_wpa_ssid = NULL; in sme_handle_external_auth_start()
1450 wpa_s->sme.ext_auth_wpa_ssid = ssid; in sme_handle_external_auth_start()
1474 wpa_s->sme.sae.state = SAE_CONFIRMED; in sme_external_auth_send_sae_confirm()
1476 (wpa_s->sme.ext_ml_auth ? WPA_AUTH_FRAME_ML_IE_LEN : in sme_external_auth_send_sae_confirm()
1483 wpa_s->sme.seq_num++; in sme_external_auth_send_sae_confirm()
1485 da, 2, wpa_s->sme.seq_num, in sme_external_auth_send_sae_confirm()
1487 wpa_s->sme.ext_ml_auth ? in sme_external_auth_send_sae_confirm()
1508 wpa_s->sme.ext_auth_key_mgmt = wpa_s->key_mgmt; in is_sae_key_mgmt_suite()
1513 wpa_s->sme.ext_auth_key_mgmt = WPA_KEY_MGMT_SAE; in is_sae_key_mgmt_suite()
1515 wpa_s->sme.ext_auth_key_mgmt = WPA_KEY_MGMT_FT_SAE; in is_sae_key_mgmt_suite()
1517 wpa_s->sme.ext_auth_key_mgmt = WPA_KEY_MGMT_SAE_EXT_KEY; in is_sae_key_mgmt_suite()
1519 wpa_s->sme.ext_auth_key_mgmt = WPA_KEY_MGMT_FT_SAE_EXT_KEY; in is_sae_key_mgmt_suite()
1536 os_memcpy(wpa_s->sme.ext_auth_bssid, data->external_auth.bssid, in sme_external_auth_trigger()
1538 os_memcpy(wpa_s->sme.ext_auth_ssid, data->external_auth.ssid, in sme_external_auth_trigger()
1540 wpa_s->sme.ext_auth_ssid_len = data->external_auth.ssid_len; in sme_external_auth_trigger()
1542 wpa_s->sme.ext_ml_auth = true; in sme_external_auth_trigger()
1543 os_memcpy(wpa_s->sme.ext_auth_ap_mld_addr, in sme_external_auth_trigger()
1546 wpa_s->sme.ext_ml_auth = false; in sme_external_auth_trigger()
1548 wpa_s->sme.seq_num = 0; in sme_external_auth_trigger()
1549 wpa_s->sme.sae.state = SAE_NOTHING; in sme_external_auth_trigger()
1550 wpa_s->sme.sae.send_confirm = 0; in sme_external_auth_trigger()
1551 wpa_s->sme.sae_group_index = 0; in sme_external_auth_trigger()
1649 if (!ether_addr_equal(wpa_s->sme.ext_auth_ap_mld_addr, mld_addr)) { in sme_external_ml_auth()
1652 MAC2STR(wpa_s->sme.ext_auth_ap_mld_addr)); in sme_external_ml_auth()
1671 wpa_s->sme.sae.state == SAE_COMMITTED && in sme_sae_auth()
1672 ((external && wpa_s->sme.ext_auth_wpa_ssid) || in sme_sae_auth()
1695 if (sae_group_allowed(&wpa_s->sme.sae, groups, group) != in sme_sae_auth()
1702 wpabuf_free(wpa_s->sme.sae_token); in sme_sae_auth()
1705 h2e = wpa_s->sme.sae.h2e; in sme_sae_auth()
1729 wpa_s->sme.sae_token = wpabuf_alloc_copy(token_pos, token_len); in sme_sae_auth()
1730 if (!wpa_s->sme.sae_token) { in sme_sae_auth()
1737 wpa_s->sme.sae_token); in sme_sae_auth()
1742 if (wpa_s->sme.ext_ml_auth && in sme_sae_auth()
1748 wpa_s, wpa_s->sme.ext_auth_bssid, in sme_sae_auth()
1749 wpa_s->sme.ext_auth_wpa_ssid); in sme_sae_auth()
1756 wpa_s->sme.sae.state == SAE_COMMITTED && in sme_sae_auth()
1757 ((external && wpa_s->sme.ext_auth_wpa_ssid) || in sme_sae_auth()
1760 int_array_add_unique(&wpa_s->sme.sae_rejected_groups, in sme_sae_auth()
1761 wpa_s->sme.sae.group); in sme_sae_auth()
1762 wpa_s->sme.sae_group_index++; in sme_sae_auth()
1770 if (wpa_s->sme.ext_ml_auth && in sme_sae_auth()
1776 wpa_s, wpa_s->sme.ext_auth_bssid, in sme_sae_auth()
1777 wpa_s->sme.ext_auth_wpa_ssid); in sme_sae_auth()
1810 if ((external && !wpa_s->sme.ext_auth_wpa_ssid) || in sme_sae_auth()
1814 if (wpa_s->sme.sae.state != SAE_COMMITTED) { in sme_sae_auth()
1819 if (wpa_s->sme.sae.h2e && status_code == WLAN_STATUS_SUCCESS) { in sme_sae_auth()
1824 if ((!wpa_s->sme.sae.h2e || wpa_s->sme.sae.pk) && in sme_sae_auth()
1830 if (!wpa_s->sme.sae.pk && in sme_sae_auth()
1839 res = sae_parse_commit(&wpa_s->sme.sae, data, len, NULL, NULL, in sme_sae_auth()
1852 if (wpa_s->sme.sae.tmp && in sme_sae_auth()
1855 wpa_s->sme.sae.tmp->peer_rejected_groups)) in sme_sae_auth()
1858 if (sae_process_commit(&wpa_s->sme.sae) < 0) { in sme_sae_auth()
1864 wpabuf_free(wpa_s->sme.sae_token); in sme_sae_auth()
1865 wpa_s->sme.sae_token = NULL; in sme_sae_auth()
1870 if (wpa_s->sme.ext_ml_auth && in sme_sae_auth()
1882 if (wpa_s->sme.sae.state != SAE_CONFIRMED) in sme_sae_auth()
1884 if (sae_check_confirm(&wpa_s->sme.sae, data, len, in sme_sae_auth()
1887 if (external && wpa_s->sme.ext_ml_auth && in sme_sae_auth()
1892 wpa_s->sme.sae.state = SAE_ACCEPTED; in sme_sae_auth()
1893 sae_clear_temp_data(&wpa_s->sme.sae); in sme_sae_auth()
1913 wpa_sm_set_pmk(wpa_s->wpa, wpa_s->sme.sae.pmk, wpa_s->sme.sae.pmk_len, in sme_sae_set_pmk()
1914 wpa_s->sme.sae.pmkid, bssid); in sme_sae_set_pmk()
1920 if (wpa_s->sme.assoc_req_ie_len + 2 + PMKID_LEN > in sme_sae_set_pmk()
1921 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_sae_set_pmk()
1926 if (wpa_insert_pmkid(wpa_s->sme.assoc_req_ie, in sme_sae_set_pmk()
1927 &wpa_s->sme.assoc_req_ie_len, in sme_sae_set_pmk()
1928 wpa_s->sme.sae.pmkid, true) < 0) in sme_sae_set_pmk()
1932 wpa_s->sme.assoc_req_ie, in sme_sae_set_pmk()
1933 wpa_s->sme.assoc_req_ie_len); in sme_sae_set_pmk()
1978 wpa_s->sme.ext_ml_auth ? in sme_external_auth_mgmt_rx()
1979 wpa_s->sme.ext_auth_ap_mld_addr : in sme_external_auth_mgmt_rx()
1980 wpa_s->sme.ext_auth_bssid) < 0) in sme_external_auth_mgmt_rx()
2037 if (wpa_s->sme.sae_rejected_groups && in sme_event_auth()
2075 if (wpa_s->sme.auth_alg == WPA_AUTH_ALG_FILS || in sme_event_auth()
2076 wpa_s->sme.auth_alg == WPA_AUTH_ALG_FILS_SK_PFS) in sme_event_auth()
2082 wpa_s->sme.auth_alg == data->auth.auth_type || in sme_event_auth()
2147 expect_auth_type = wpa_s->sme.auth_alg == in sme_event_auth()
2243 wpa_s->sme.assoc_auth_type = auth_type; in sme_associate()
2282 wpa_s->sme.assoc_req_ie, in sme_associate()
2283 wpa_s->sme.assoc_req_ie_len); in sme_associate()
2289 remove_ie(wpa_s->sme.assoc_req_ie, in sme_associate()
2290 &wpa_s->sme.assoc_req_ie_len, in sme_associate()
2294 wpa_s->sme.assoc_req_ie, in sme_associate()
2295 wpa_s->sme.assoc_req_ie_len); in sme_associate()
2296 remove_ie(wpa_s->sme.assoc_req_ie, in sme_associate()
2297 &wpa_s->sme.assoc_req_ie_len, in sme_associate()
2301 wpa_s->sme.assoc_req_ie, in sme_associate()
2302 wpa_s->sme.assoc_req_ie_len); in sme_associate()
2306 if (wpa_s->sme.assoc_req_ie_len + wpabuf_len(buf) > in sme_associate()
2307 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_associate()
2313 os_memcpy(wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_associate()
2315 wpa_s->sme.assoc_req_ie_len += wpabuf_len(buf); in sme_associate()
2318 wpa_s->sme.assoc_req_ie, in sme_associate()
2319 wpa_s->sme.assoc_req_ie_len); in sme_associate()
2330 if (get_ie_ext(wpa_s->sme.assoc_req_ie, wpa_s->sme.assoc_req_ie_len, in sme_associate()
2362 if (wpa_s->sme.assoc_req_ie_len + wpabuf_len(owe_ie) > in sme_associate()
2363 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_associate()
2369 os_memcpy(wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_associate()
2371 wpa_s->sme.assoc_req_ie_len += wpabuf_len(owe_ie); in sme_associate()
2394 if (wpa_s->sme.assoc_req_ie_len + in sme_associate()
2396 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_associate()
2403 os_memcpy(wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_associate()
2406 wpa_s->sme.assoc_req_ie_len += wpabuf_len(wpa_s->dpp_pfs->ie); in sme_associate()
2431 wpa_ie_len = &wpa_s->sme.assoc_req_ie_len; in sme_associate()
2432 max_ie_len = sizeof(wpa_s->sme.assoc_req_ie); in sme_associate()
2437 os_memcpy(wpa_s->sme.assoc_req_ie + *wpa_ie_len, in sme_associate()
2455 wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_associate()
2456 sizeof(wpa_s->sme.assoc_req_ie) - in sme_associate()
2457 wpa_s->sme.assoc_req_ie_len, in sme_associate()
2464 wpa_s->sme.assoc_req_ie_len += multi_ap_ie_len; in sme_associate()
2468 params.ssid = wpa_s->sme.ssid; in sme_associate()
2469 params.ssid_len = wpa_s->sme.ssid_len; in sme_associate()
2470 params.freq.freq = wpa_s->sme.freq; in sme_associate()
2472 params.wpa_ie = wpa_s->sme.assoc_req_ie_len ? in sme_associate()
2473 wpa_s->sme.assoc_req_ie : NULL; in sme_associate()
2474 params.wpa_ie_len = wpa_s->sme.assoc_req_ie_len; in sme_associate()
2501 if (auth_type == WLAN_AUTH_FT && wpa_s->sme.ft_ies && in sme_associate()
2502 get_ie(wpa_s->sme.ft_ies, wpa_s->sme.ft_ies_len, in sme_associate()
2512 params.wpa_ie = wpa_s->sme.ft_ies; in sme_associate()
2513 params.wpa_ie_len = wpa_s->sme.ft_ies_len; in sme_associate()
2514 } else if (auth_type == WLAN_AUTH_FT && wpa_s->sme.ft_ies) { in sme_associate()
2521 remove_ie(wpa_s->sme.assoc_req_ie, in sme_associate()
2522 &wpa_s->sme.assoc_req_ie_len, in sme_associate()
2524 remove_ie(wpa_s->sme.assoc_req_ie, in sme_associate()
2525 &wpa_s->sme.assoc_req_ie_len, in sme_associate()
2527 remove_ie(wpa_s->sme.assoc_req_ie, in sme_associate()
2528 &wpa_s->sme.assoc_req_ie_len, in sme_associate()
2530 rm_en = get_ie(wpa_s->sme.assoc_req_ie, in sme_associate()
2531 wpa_s->sme.assoc_req_ie_len, in sme_associate()
2539 remove_ie(wpa_s->sme.assoc_req_ie, in sme_associate()
2540 &wpa_s->sme.assoc_req_ie_len, in sme_associate()
2545 wpa_s->sme.assoc_req_ie, in sme_associate()
2546 wpa_s->sme.assoc_req_ie_len); in sme_associate()
2547 if (wpa_s->sme.assoc_req_ie_len + wpa_s->sme.ft_ies_len + in sme_associate()
2548 rm_en_len > sizeof(wpa_s->sme.assoc_req_ie)) { in sme_associate()
2555 os_memmove(wpa_s->sme.assoc_req_ie + wpa_s->sme.ft_ies_len + in sme_associate()
2557 wpa_s->sme.assoc_req_ie, in sme_associate()
2558 wpa_s->sme.assoc_req_ie_len); in sme_associate()
2559 pos = wpa_s->sme.ft_ies; in sme_associate()
2560 end = pos + wpa_s->sme.ft_ies_len; in sme_associate()
2561 wpos = wpa_s->sme.assoc_req_ie; in sme_associate()
2573 wpa_s->sme.assoc_req_ie_len += wpa_s->sme.ft_ies_len + in sme_associate()
2575 params.wpa_ie = wpa_s->sme.assoc_req_ie; in sme_associate()
2576 params.wpa_ie_len = wpa_s->sme.assoc_req_ie_len; in sme_associate()
2583 params.mgmt_frame_protection = wpa_s->sme.mfp; in sme_associate()
2585 if (wpa_s->sme.prev_bssid_set) in sme_associate()
2586 params.prev_bssid = wpa_s->sme.prev_bssid; in sme_associate()
2706 os_free(wpa_s->sme.ft_ies); in sme_update_ft_ies()
2707 wpa_s->sme.ft_ies = NULL; in sme_update_ft_ies()
2708 wpa_s->sme.ft_ies_len = 0; in sme_update_ft_ies()
2709 wpa_s->sme.ft_used = 0; in sme_update_ft_ies()
2713 os_memcpy(wpa_s->sme.mobility_domain, md, MOBILITY_DOMAIN_ID_LEN); in sme_update_ft_ies()
2715 os_free(wpa_s->sme.ft_ies); in sme_update_ft_ies()
2716 wpa_s->sme.ft_ies = os_memdup(ies, ies_len); in sme_update_ft_ies()
2717 if (wpa_s->sme.ft_ies == NULL) in sme_update_ft_ies()
2719 wpa_s->sme.ft_ies_len = ies_len; in sme_update_ft_ies()
2741 wpa_s->sme.prev_bssid_set = 0; in sme_deauth()
2767 wpa_s->sme.assoc_auth_type); in sme_assoc_comeback_timer()
2773 wpa_s->sme.assoc_auth_type); in sme_assoc_comeback_timer()
2863 if (wpa_s->sme.sae_pmksa_caching && wpa_s->current_ssid && in sme_event_assoc_reject()
2944 if (wpa_s->sme.prev_bssid_set) { in sme_event_disassoc()
2953 wpa_drv_deauthenticate(wpa_s, wpa_s->sme.prev_bssid, in sme_event_disassoc()
2993 wpa_s->sme.prev_bssid_set = 0; in sme_clear_on_disassoc()
2995 wpabuf_free(wpa_s->sme.sae_token); in sme_clear_on_disassoc()
2996 wpa_s->sme.sae_token = NULL; in sme_clear_on_disassoc()
2997 sae_clear_data(&wpa_s->sme.sae); in sme_clear_on_disassoc()
3000 if (wpa_s->sme.ft_ies || wpa_s->sme.ft_used) in sme_clear_on_disassoc()
3011 os_free(wpa_s->sme.sae_rejected_groups); in sme_deinit()
3012 wpa_s->sme.sae_rejected_groups = NULL; in sme_deinit()
3080 if (!wpa_s->sme.sched_obss_scan) in sme_proc_obss_scan()
3083 wpa_s->sme.sched_obss_scan = 0; in sme_proc_obss_scan()
3157 if (wpa_s->sme.ht_sec_chan == HT_SEC_CHAN_UNKNOWN && in wpa_obss_scan_freqs_list()
3167 wpa_s->sme.ht_sec_chan = HT_SEC_CHAN_ABOVE; in wpa_obss_scan_freqs_list()
3169 wpa_s->sme.ht_sec_chan = HT_SEC_CHAN_BELOW; in wpa_obss_scan_freqs_list()
3175 switch (wpa_s->sme.ht_sec_chan) { in wpa_obss_scan_freqs_list()
3229 wpa_s->sme.sched_obss_scan = 1; in sme_obss_scan_timeout()
3232 eloop_register_timeout(wpa_s->sme.obss_scan_int, 0, in sme_obss_scan_timeout()
3246 wpa_s->sme.sched_obss_scan = 0; in sme_sched_obss_scan()
3247 wpa_s->sme.ht_sec_chan = HT_SEC_CHAN_UNKNOWN; in sme_sched_obss_scan()
3295 wpa_s->sme.obss_scan_int = WPA_GET_LE16(ie + 6); in sme_sched_obss_scan()
3296 if (wpa_s->sme.obss_scan_int < 10) { in sme_sched_obss_scan()
3299 wpa_s->sme.obss_scan_int); in sme_sched_obss_scan()
3300 wpa_s->sme.obss_scan_int = 10; in sme_sched_obss_scan()
3303 wpa_s->sme.obss_scan_int); in sme_sched_obss_scan()
3304 eloop_register_timeout(wpa_s->sme.obss_scan_int, 0, in sme_sched_obss_scan()
3318 os_reltime_sub(&now, &wpa_s->sme.sa_query_start, &passed); in sme_check_sa_query_timeout()
3387 if (wpa_s->sme.sa_query_count > 0 && in sme_sa_query_timer()
3391 nbuf = os_realloc_array(wpa_s->sme.sa_query_trans_id, in sme_sa_query_timer()
3392 wpa_s->sme.sa_query_count + 1, in sme_sa_query_timer()
3398 if (wpa_s->sme.sa_query_count == 0) { in sme_sa_query_timer()
3400 os_get_reltime(&wpa_s->sme.sa_query_start); in sme_sa_query_timer()
3402 trans_id = nbuf + wpa_s->sme.sa_query_count * WLAN_SA_QUERY_TR_ID_LEN; in sme_sa_query_timer()
3403 wpa_s->sme.sa_query_trans_id = nbuf; in sme_sa_query_timer()
3404 wpa_s->sme.sa_query_count++; in sme_sa_query_timer()
3418 wpa_s->sme.sa_query_count); in sme_sa_query_timer()
3432 if (wpa_s->sme.sa_query_trans_id) in sme_stop_sa_query()
3435 os_free(wpa_s->sme.sa_query_trans_id); in sme_stop_sa_query()
3436 wpa_s->sme.sa_query_trans_id = NULL; in sme_stop_sa_query()
3437 wpa_s->sme.sa_query_count = 0; in sme_stop_sa_query()
3457 if (wpa_s->sme.sa_query_count > 0) in sme_event_unprot_disconnect()
3465 if (wpa_s->sme.last_unprot_disconnect.sec && in sme_event_unprot_disconnect()
3466 !os_reltime_expired(&now, &wpa_s->sme.last_unprot_disconnect, 10)) in sme_event_unprot_disconnect()
3468 wpa_s->sme.last_unprot_disconnect = now; in sme_event_unprot_disconnect()
3551 if (!wpa_s->sme.sa_query_trans_id) in sme_process_sa_query_response()
3560 for (i = 0; i < wpa_s->sme.sa_query_count; i++) { in sme_process_sa_query_response()
3561 if (os_memcmp(wpa_s->sme.sa_query_trans_id + in sme_process_sa_query_response()
3567 if (i >= wpa_s->sme.sa_query_count) { in sme_process_sa_query_response()