Lines Matching refs:ssid
130 int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid) in wpa_set_wep_keys() argument
135 if (ssid->wep_key_len[i] == 0) in wpa_set_wep_keys()
140 i, i == ssid->wep_tx_keyidx, NULL, 0, in wpa_set_wep_keys()
141 ssid->wep_key[i], ssid->wep_key_len[i]); in wpa_set_wep_keys()
149 struct wpa_ssid *ssid) in wpa_supplicant_set_wpa_none_key() argument
160 if (ssid->mode != WPAS_MODE_IBSS) { in wpa_supplicant_set_wpa_none_key()
162 "IBSS/ad-hoc) for WPA-None", ssid->mode); in wpa_supplicant_set_wpa_none_key()
166 if (!ssid->psk_set) { in wpa_supplicant_set_wpa_none_key()
174 os_memcpy(key, ssid->psk, 16); in wpa_supplicant_set_wpa_none_key()
179 os_memcpy(key, ssid->psk, 16); in wpa_supplicant_set_wpa_none_key()
185 os_memcpy(key, ssid->psk, 16 + 8); in wpa_supplicant_set_wpa_none_key()
186 os_memcpy(key + 16 + 8, ssid->psk + 16, 8); in wpa_supplicant_set_wpa_none_key()
302 struct wpa_ssid *ssid = wpa_s->current_ssid; in wpa_supplicant_initiate_eapol() local
305 if (ssid->mode == WPAS_MODE_IBSS && in wpa_supplicant_initiate_eapol()
332 if (ssid->eapol_flags & EAPOL_FLAG_REQUIRE_KEY_UNICAST) { in wpa_supplicant_initiate_eapol()
335 if (ssid->eapol_flags & EAPOL_FLAG_REQUIRE_KEY_BROADCAST) { in wpa_supplicant_initiate_eapol()
344 eapol_conf.workaround = ssid->eap_workaround; in wpa_supplicant_initiate_eapol()
368 eapol_sm_notify_config(wpa_s->eapol, &ssid->eap, &eapol_conf); in wpa_supplicant_initiate_eapol()
371 if (wpa_s->key_mgmt == WPA_KEY_MGMT_NONE && ssid->mka_psk_set) in wpa_supplicant_initiate_eapol()
372 ieee802_1x_create_preshared_mka(wpa_s, ssid); in wpa_supplicant_initiate_eapol()
374 ieee802_1x_alloc_kay_sm(wpa_s, ssid); in wpa_supplicant_initiate_eapol()
390 struct wpa_ssid *ssid) in wpa_supplicant_set_non_wpa_policy() argument
394 if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) in wpa_supplicant_set_non_wpa_policy()
396 else if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) in wpa_supplicant_set_non_wpa_policy()
408 if (ssid->wep_key_len[i] > 5) { in wpa_supplicant_set_non_wpa_policy()
412 } else if (ssid->wep_key_len[i] > 0) { in wpa_supplicant_set_non_wpa_policy()
501 struct wpa_ssid *ssid; in wpa_supplicant_cleanup() local
502 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) in wpa_supplicant_cleanup()
503 wpas_notify_network_removed(wpa_s, ssid); in wpa_supplicant_cleanup()
909 struct wpa_ssid *ssid = wpa_s->current_ssid; in wpa_supplicant_set_state() local
925 ssid ? ssid->id : -1, in wpa_supplicant_set_state()
926 ssid && ssid->id_str ? ssid->id_str : "", in wpa_supplicant_set_state()
929 wpas_clear_temp_disabled(wpa_s, ssid, 1); in wpa_supplicant_set_state()
944 if (!fils_hlp_sent && ssid && ssid->eap.erp) in wpa_supplicant_set_state()
1149 struct wpa_ssid *ssid, in wpa_supplicant_suites_from_ai() argument
1163 if (!(ie->group_cipher & ssid->group_cipher)) { in wpa_supplicant_suites_from_ai()
1166 ie->group_cipher, ssid->group_cipher); in wpa_supplicant_suites_from_ai()
1169 if (!(ie->pairwise_cipher & ssid->pairwise_cipher)) { in wpa_supplicant_suites_from_ai()
1172 ie->pairwise_cipher, ssid->pairwise_cipher); in wpa_supplicant_suites_from_ai()
1175 if (!(ie->key_mgmt & ssid->key_mgmt)) { in wpa_supplicant_suites_from_ai()
1178 ie->key_mgmt, ssid->key_mgmt); in wpa_supplicant_suites_from_ai()
1184 wpas_get_ssid_pmf(wpa_s, ssid) == MGMT_FRAME_PROTECTION_REQUIRED) { in wpa_supplicant_suites_from_ai()
1196 static int matching_ciphers(struct wpa_ssid *ssid, struct wpa_ie_data *ie, in matching_ciphers() argument
1203 return (ie->group_cipher & ssid->group_cipher) && in matching_ciphers()
1204 (ie->pairwise_cipher & ssid->pairwise_cipher); in matching_ciphers()
1223 struct wpa_bss *bss, struct wpa_ssid *ssid, in wpa_supplicant_set_suites() argument
1237 if (bss_rsn && (ssid->proto & WPA_PROTO_RSN) && in wpa_supplicant_set_suites()
1239 matching_ciphers(ssid, &ie, bss->freq) && in wpa_supplicant_set_suites()
1240 (ie.key_mgmt & ssid->key_mgmt)) { in wpa_supplicant_set_suites()
1243 } else if (bss_wpa && (ssid->proto & WPA_PROTO_WPA) && in wpa_supplicant_set_suites()
1245 (ie.group_cipher & ssid->group_cipher) && in wpa_supplicant_set_suites()
1246 (ie.pairwise_cipher & ssid->pairwise_cipher) && in wpa_supplicant_set_suites()
1247 (ie.key_mgmt & ssid->key_mgmt)) { in wpa_supplicant_set_suites()
1251 } else if (bss_osen && (ssid->proto & WPA_PROTO_OSEN) && in wpa_supplicant_set_suites()
1253 (ie.group_cipher & ssid->group_cipher) && in wpa_supplicant_set_suites()
1254 (ie.pairwise_cipher & ssid->pairwise_cipher) && in wpa_supplicant_set_suites()
1255 (ie.key_mgmt & ssid->key_mgmt)) { in wpa_supplicant_set_suites()
1258 } else if (bss_rsn && (ssid->proto & WPA_PROTO_OSEN) && in wpa_supplicant_set_suites()
1260 (ie.group_cipher & ssid->group_cipher) && in wpa_supplicant_set_suites()
1261 (ie.pairwise_cipher & ssid->pairwise_cipher) && in wpa_supplicant_set_suites()
1262 (ie.key_mgmt & ssid->key_mgmt)) { in wpa_supplicant_set_suites()
1270 ssid->proto, ssid->pairwise_cipher, ssid->group_cipher, in wpa_supplicant_set_suites()
1271 ssid->key_mgmt); in wpa_supplicant_set_suites()
1274 wpa_ssid_txt(bss->ssid, bss->ssid_len), in wpa_supplicant_set_suites()
1304 if (ssid->proto & WPA_PROTO_OSEN) in wpa_supplicant_set_suites()
1306 else if (ssid->proto & WPA_PROTO_RSN) in wpa_supplicant_set_suites()
1310 if (wpa_supplicant_suites_from_ai(wpa_s, ssid, &ie) < 0) { in wpa_supplicant_set_suites()
1312 ie.group_cipher = ssid->group_cipher; in wpa_supplicant_set_suites()
1313 ie.pairwise_cipher = ssid->pairwise_cipher; in wpa_supplicant_set_suites()
1314 ie.key_mgmt = ssid->key_mgmt; in wpa_supplicant_set_suites()
1317 if (ssid->ieee80211w != NO_MGMT_FRAME_PROTECTION) { in wpa_supplicant_set_suites()
1318 if (ssid->group_mgmt_cipher & in wpa_supplicant_set_suites()
1322 else if (ssid->group_mgmt_cipher & in wpa_supplicant_set_suites()
1326 else if (ssid->group_mgmt_cipher & in wpa_supplicant_set_suites()
1336 if ((ssid->key_mgmt & WPA_KEY_MGMT_OWE) && in wpa_supplicant_set_suites()
1337 !ssid->owe_only && in wpa_supplicant_set_suites()
1339 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid); in wpa_supplicant_set_suites()
1355 if (ssid->ieee80211w) { in wpa_supplicant_set_suites()
1364 !!(ssid->proto & (WPA_PROTO_RSN | WPA_PROTO_OSEN))); in wpa_supplicant_set_suites()
1378 sel = ie.group_cipher & ssid->group_cipher; in wpa_supplicant_set_suites()
1381 ie.group_cipher, ssid->group_cipher, sel); in wpa_supplicant_set_suites()
1391 sel = ie.pairwise_cipher & ssid->pairwise_cipher; in wpa_supplicant_set_suites()
1394 ie.pairwise_cipher, ssid->pairwise_cipher, sel); in wpa_supplicant_set_suites()
1405 sel = ie.key_mgmt & ssid->key_mgmt; in wpa_supplicant_set_suites()
1408 ie.key_mgmt, ssid->key_mgmt, sel); in wpa_supplicant_set_suites()
1529 if (ssid->group_mgmt_cipher) in wpa_supplicant_set_suites()
1530 sel &= ssid->group_mgmt_cipher; in wpa_supplicant_set_suites()
1531 if (wpas_get_ssid_pmf(wpa_s, ssid) == NO_MGMT_FRAME_PROTECTION || in wpa_supplicant_set_suites()
1536 ie.mgmt_group_cipher, ssid->group_mgmt_cipher, sel); in wpa_supplicant_set_suites()
1560 wpas_get_ssid_pmf(wpa_s, ssid)); in wpa_supplicant_set_suites()
1563 wpa_sm_set_param(wpa_s->wpa, WPA_PARAM_OCV, ssid->ocv); in wpa_supplicant_set_suites()
1577 } else if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt)) { in wpa_supplicant_set_suites()
1581 sae_only = (ssid->key_mgmt & (WPA_KEY_MGMT_PSK | in wpa_supplicant_set_suites()
1585 if (ssid->psk_set && !sae_only) { in wpa_supplicant_set_suites()
1587 ssid->psk, PMK_LEN); in wpa_supplicant_set_suites()
1588 wpa_sm_set_pmk(wpa_s->wpa, ssid->psk, PMK_LEN, NULL, in wpa_supplicant_set_suites()
1593 if (wpa_key_mgmt_sae(ssid->key_mgmt) && in wpa_supplicant_set_suites()
1594 (ssid->sae_password || ssid->passphrase)) in wpa_supplicant_set_suites()
1598 if (bss && ssid->bssid_set && ssid->ssid_len == 0 && in wpa_supplicant_set_suites()
1599 ssid->passphrase && !sae_only) { in wpa_supplicant_set_suites()
1601 pbkdf2_sha1(ssid->passphrase, bss->ssid, bss->ssid_len, in wpa_supplicant_set_suites()
1611 if (ssid->ext_psk && !sae_only) { in wpa_supplicant_set_suites()
1613 ssid->ext_psk); in wpa_supplicant_set_suites()
1637 pbkdf2_sha1(pw_str, bss->ssid, bss->ssid_len, in wpa_supplicant_set_suites()
1811 struct wpa_ssid *ssid; in wpas_valid_ssid() local
1813 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) { in wpas_valid_ssid()
1814 if (ssid == test_ssid) in wpas_valid_ssid()
1929 struct wpa_bss *bss, struct wpa_ssid *ssid) in wpa_supplicant_associate() argument
1943 if (ssid->mac_addr == -1) in wpa_supplicant_associate()
1946 rand_style = ssid->mac_addr; in wpa_supplicant_associate()
1955 if (wpa_s->last_ssid == ssid) { in wpa_supplicant_associate()
1969 wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid); in wpa_supplicant_associate()
1984 wpa_s->last_ssid = ssid; in wpa_supplicant_associate()
1990 if (ssid->mode == WPAS_MODE_IBSS && in wpa_supplicant_associate()
1991 !(ssid->key_mgmt & (WPA_KEY_MGMT_NONE | WPA_KEY_MGMT_WPA_NONE))) { in wpa_supplicant_associate()
1998 if (ssid->mode == WPAS_MODE_AP || ssid->mode == WPAS_MODE_P2P_GO || in wpa_supplicant_associate()
1999 ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION) { in wpa_supplicant_associate()
2006 if (wpa_supplicant_create_ap(wpa_s, ssid) < 0) { in wpa_supplicant_associate()
2008 if (ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION) in wpa_supplicant_associate()
2020 if (ssid->mode == WPAS_MODE_MESH) { in wpa_supplicant_associate()
2028 ssid->frequency = bss->freq; in wpa_supplicant_associate()
2029 if (wpa_supplicant_join_mesh(wpa_s, ssid) < 0) { in wpa_supplicant_associate()
2035 wpa_ssid_txt(ssid->ssid, ssid->ssid_len), in wpa_supplicant_associate()
2036 ssid->id); in wpa_supplicant_associate()
2037 wpas_notify_mesh_group_started(wpa_s, ssid); in wpa_supplicant_associate()
2052 wpa_supplicant_rsn_supp_set_config(wpa_s, ssid); in wpa_supplicant_associate()
2055 if (wpas_dpp_check_connect(wpa_s, ssid, bss) != 0) in wpa_supplicant_associate()
2066 ssid->mode == IEEE80211_MODE_INFRA) { in wpa_supplicant_associate()
2067 sme_authenticate(wpa_s, bss, ssid); in wpa_supplicant_associate()
2082 if (ssid->mode == WPAS_MODE_IBSS || ssid->mode == WPAS_MODE_MESH) { in wpa_supplicant_associate()
2095 cwork->ssid = ssid; in wpa_supplicant_associate()
2112 const struct wpa_ssid *ssid) in drv_supports_vht() argument
2119 hw_mode = ieee80211_freq_to_chan(ssid->frequency, &channel); in drv_supports_vht()
2137 const struct wpa_ssid *ssid, in ibss_mesh_setup_freq() argument
2153 freq->freq = ssid->frequency; in ibss_mesh_setup_freq()
2158 if (ssid->mode != WPAS_MODE_IBSS) in ibss_mesh_setup_freq()
2162 if (ssid->fixed_freq) in ibss_mesh_setup_freq()
2168 if (ssid->ssid_len == bss->ssid_len && in ibss_mesh_setup_freq()
2169 os_memcmp(ssid->ssid, bss->ssid, bss->ssid_len) == 0) { in ibss_mesh_setup_freq()
2180 if (ssid->mode == WPAS_MODE_IBSS && in ibss_mesh_setup_freq()
2204 if (ssid->disable_ht) { in ibss_mesh_setup_freq()
2234 if (ssid->disable_ht40) { in ibss_mesh_setup_freq()
2235 if (ssid->disable_vht) in ibss_mesh_setup_freq()
2313 if (!drv_supports_vht(wpa_s, ssid)) in ibss_mesh_setup_freq()
2317 if (ssid->mode == WPAS_MODE_IBSS && in ibss_mesh_setup_freq()
2324 if (ssid->disable_vht) { in ibss_mesh_setup_freq()
2360 if (ssid->max_oper_chwidth == VHT_CHANWIDTH_80P80MHZ) { in ibss_mesh_setup_freq()
2388 } else if (ssid->max_oper_chwidth == VHT_CHANWIDTH_160MHZ) { in ibss_mesh_setup_freq()
2398 } else if (ssid->max_oper_chwidth == VHT_CHANWIDTH_USE_HT) { in ibss_mesh_setup_freq()
2402 if (ssid->disable_ht40) in ibss_mesh_setup_freq()
2514 struct wpa_bss *bss, struct wpa_ssid *ssid, in wpas_populate_assoc_ies() argument
2551 wpa_key_mgmt_wpa(ssid->key_mgmt)) { in wpas_populate_assoc_ies()
2555 try_opportunistic = (ssid->proactive_key_caching < 0 ? in wpas_populate_assoc_ies()
2557 ssid->proactive_key_caching) && in wpas_populate_assoc_ies()
2558 (ssid->proto & WPA_PROTO_RSN); in wpas_populate_assoc_ies()
2560 if (wpa_key_mgmt_fils(ssid->key_mgmt)) in wpas_populate_assoc_ies()
2564 ssid, try_opportunistic, in wpas_populate_assoc_ies()
2572 if (wpa_supplicant_set_suites(wpa_s, bss, ssid, in wpas_populate_assoc_ies()
2581 (ssid->key_mgmt & WPA_KEY_MGMT_OSEN)) { in wpas_populate_assoc_ies()
2584 if (wpa_supplicant_set_suites(wpa_s, bss, ssid, in wpas_populate_assoc_ies()
2592 } else if ((ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) && bss && in wpas_populate_assoc_ies()
2593 wpa_key_mgmt_wpa_ieee8021x(ssid->key_mgmt)) { in wpas_populate_assoc_ies()
2599 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid); in wpas_populate_assoc_ies()
2602 } else if (wpa_key_mgmt_wpa_any(ssid->key_mgmt)) { in wpas_populate_assoc_ies()
2604 if (wpa_supplicant_set_suites(wpa_s, NULL, ssid, in wpas_populate_assoc_ies()
2613 } else if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) { in wpas_populate_assoc_ies()
2615 wps_ie = wps_build_assoc_req_ie(wpas_wps_get_req_type(ssid)); in wpas_populate_assoc_ies()
2622 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid); in wpas_populate_assoc_ies()
2630 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid); in wpas_populate_assoc_ies()
2636 if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) { in wpas_populate_assoc_ies()
2637 if (ssid->leap) { in wpas_populate_assoc_ies()
2638 if (ssid->non_leap == 0) in wpas_populate_assoc_ies()
2650 ssid->eap.erp && wpa_key_mgmt_fils(wpa_s->key_mgmt) && in wpas_populate_assoc_ies()
2651 eapol_sm_get_erp_info(wpa_s->eapol, &ssid->eap, &username, in wpas_populate_assoc_ies()
2677 if (ssid->auth_alg) { in wpas_populate_assoc_ies()
2678 algs = ssid->auth_alg; in wpas_populate_assoc_ies()
2699 ssid->p2p_group); in wpas_populate_assoc_ies()
2723 wpa_ie_len += wpas_supp_op_class_ie(wpa_s, ssid, bss->freq, in wpas_populate_assoc_ies()
2737 if (ssid->p2p_group) in wpas_populate_assoc_ies()
2760 if (is_hs20_network(wpa_s, ssid, bss)) { in wpas_populate_assoc_ies()
2765 int pps_mo_id = hs20_get_pps_mo_id(wpa_s, ssid); in wpas_populate_assoc_ies()
2770 wpas_hs20_add_roam_cons_sel(hs20, ssid); in wpas_populate_assoc_ies()
2839 ssid->key_mgmt == WPA_KEY_MGMT_OWE) { in wpas_populate_assoc_ies()
2843 if (ssid->owe_group) { in wpas_populate_assoc_ies()
2844 group = ssid->owe_group; in wpas_populate_assoc_ies()
2872 ssid->dpp_netaccesskey) { in wpas_populate_assoc_ies()
2874 wpa_s->dpp_pfs = dpp_pfs_init(ssid->dpp_netaccesskey, in wpas_populate_assoc_ies()
2875 ssid->dpp_netaccesskey_len); in wpas_populate_assoc_ies()
2925 if (ssid->multi_ap_backhaul_sta) { in wpas_populate_assoc_ies()
3010 struct wpa_ssid *ssid = cwork->ssid; in wpas_start_assoc_cb() local
3043 if (cwork->bss_removed || !wpas_valid_bss_ssid(wpa_s, bss, ssid) || in wpas_start_assoc_cb()
3044 wpas_network_disabled(wpa_s, ssid)) { in wpas_start_assoc_cb()
3061 wpa_ssid_txt(bss->ssid, bss->ssid_len), bss->freq); in wpas_start_assoc_cb()
3078 } else if ((ssid->ssid == NULL || ssid->ssid_len == 0) && in wpas_start_assoc_cb()
3080 (ssid->key_mgmt & WPA_KEY_MGMT_WPS)) { in wpas_start_assoc_cb()
3091 wpa_ssid_txt(ssid->ssid, ssid->ssid_len)); in wpas_start_assoc_cb()
3106 wpa_ie = wpas_populate_assoc_ies(wpa_s, bss, ssid, ¶ms, NULL); in wpas_start_assoc_cb()
3121 if (wpa_set_wep_keys(wpa_s, ssid)) { in wpas_start_assoc_cb()
3131 if ((ssid->eapol_flags & in wpas_start_assoc_cb()
3147 wpa_supplicant_set_wpa_none_key(wpa_s, ssid); in wpas_start_assoc_cb()
3152 params.ssid = bss->ssid; in wpas_start_assoc_cb()
3154 if (!wpas_driver_bss_selection(wpa_s) || ssid->bssid_set || in wpas_start_assoc_cb()
3160 ssid->bssid_set, in wpas_start_assoc_cb()
3169 if (ssid->bssid_hint_set) in wpas_start_assoc_cb()
3170 params.bssid_hint = ssid->bssid_hint; in wpas_start_assoc_cb()
3172 params.ssid = ssid->ssid; in wpas_start_assoc_cb()
3173 params.ssid_len = ssid->ssid_len; in wpas_start_assoc_cb()
3174 params.pbss = (ssid->pbss != 2) ? ssid->pbss : 0; in wpas_start_assoc_cb()
3177 if (ssid->mode == WPAS_MODE_IBSS && ssid->bssid_set && in wpas_start_assoc_cb()
3179 params.bssid = ssid->bssid; in wpas_start_assoc_cb()
3184 if ((ssid->mode == WPAS_MODE_IBSS || ssid->mode == WPAS_MODE_MESH) && in wpas_start_assoc_cb()
3185 ssid->frequency > 0 && params.freq.freq == 0) in wpas_start_assoc_cb()
3186 ibss_mesh_setup_freq(wpa_s, ssid, ¶ms.freq); in wpas_start_assoc_cb()
3188 if (ssid->mode == WPAS_MODE_IBSS) { in wpas_start_assoc_cb()
3189 params.fixed_freq = ssid->fixed_freq; in wpas_start_assoc_cb()
3190 if (ssid->beacon_int) in wpas_start_assoc_cb()
3191 params.beacon_int = ssid->beacon_int; in wpas_start_assoc_cb()
3202 params.mode = ssid->mode; in wpas_start_assoc_cb()
3203 params.bg_scan_period = ssid->bg_scan_period; in wpas_start_assoc_cb()
3205 if (ssid->wep_key_len[i]) in wpas_start_assoc_cb()
3206 params.wep_key[i] = ssid->wep_key[i]; in wpas_start_assoc_cb()
3207 params.wep_key_len[i] = ssid->wep_key_len[i]; in wpas_start_assoc_cb()
3209 params.wep_tx_keyidx = ssid->wep_tx_keyidx; in wpas_start_assoc_cb()
3214 params.passphrase = ssid->passphrase; in wpas_start_assoc_cb()
3215 if (ssid->psk_set) in wpas_start_assoc_cb()
3216 params.psk = ssid->psk; in wpas_start_assoc_cb()
3232 ssid->proactive_key_caching < 0 ? in wpas_start_assoc_cb()
3233 wpa_s->conf->okc : ssid->proactive_key_caching; in wpas_start_assoc_cb()
3240 ssid->psk_set) in wpas_start_assoc_cb()
3241 params.psk = ssid->psk; in wpas_start_assoc_cb()
3247 params.mgmt_frame_protection = wpas_get_ssid_pmf(wpa_s, ssid); in wpas_start_assoc_cb()
3259 } else if (!rsn && (ssid->key_mgmt & WPA_KEY_MGMT_OWE) && in wpas_start_assoc_cb()
3260 !ssid->owe_only) { in wpas_start_assoc_cb()
3267 params.p2p = ssid->p2p_group; in wpas_start_assoc_cb()
3279 wpa_supplicant_apply_ht_overrides(wpa_s, ssid, ¶ms); in wpas_start_assoc_cb()
3286 wpa_supplicant_apply_vht_overrides(wpa_s, ssid, ¶ms); in wpas_start_assoc_cb()
3303 wpa_s, params.freq.freq, ssid) < 0) { in wpas_start_assoc_cb()
3340 wpa_supplicant_set_wpa_none_key(wpa_s, ssid); in wpas_start_assoc_cb()
3346 } else if (ssid->mode == WPAS_MODE_IBSS && in wpas_start_assoc_cb()
3361 timeout = ssid->mode == WPAS_MODE_IBSS ? 10 : 5; in wpas_start_assoc_cb()
3364 timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 10; in wpas_start_assoc_cb()
3372 wpa_set_wep_keys(wpa_s, ssid); in wpas_start_assoc_cb()
3375 if (wpa_s->current_ssid && wpa_s->current_ssid != ssid) { in wpas_start_assoc_cb()
3383 wpa_s->current_ssid = ssid; in wpas_start_assoc_cb()
3385 if (!wpas_driver_bss_selection(wpa_s) || ssid->bssid_set) { in wpas_start_assoc_cb()
3487 struct wpa_ssid *ssid) in wpa_supplicant_enable_one_network() argument
3489 if (!ssid || !ssid->disabled || ssid->disabled == 2) in wpa_supplicant_enable_one_network()
3492 ssid->disabled = 0; in wpa_supplicant_enable_one_network()
3493 ssid->owe_transition_bss_select_count = 0; in wpa_supplicant_enable_one_network()
3494 wpas_clear_temp_disabled(wpa_s, ssid, 1); in wpa_supplicant_enable_one_network()
3495 wpas_notify_network_enabled_changed(wpa_s, ssid); in wpa_supplicant_enable_one_network()
3519 struct wpa_ssid *ssid; in wpa_supplicant_add_network() local
3521 ssid = wpa_config_add_network(wpa_s->conf); in wpa_supplicant_add_network()
3522 if (!ssid) in wpa_supplicant_add_network()
3524 wpas_notify_network_added(wpa_s, ssid); in wpa_supplicant_add_network()
3525 ssid->disabled = 1; in wpa_supplicant_add_network()
3526 wpa_config_set_network_defaults(ssid); in wpa_supplicant_add_network()
3528 return ssid; in wpa_supplicant_add_network()
3547 struct wpa_ssid *ssid; in wpa_supplicant_remove_network() local
3550 ssid = wpa_config_get_network(wpa_s->conf, id); in wpa_supplicant_remove_network()
3551 if (!ssid) in wpa_supplicant_remove_network()
3553 wpas_notify_network_removed(wpa_s, ssid); in wpa_supplicant_remove_network()
3555 if (wpa_s->last_ssid == ssid) in wpa_supplicant_remove_network()
3558 if (ssid == wpa_s->current_ssid || !wpa_s->current_ssid) { in wpa_supplicant_remove_network()
3569 if (ssid == wpa_s->current_ssid) { in wpa_supplicant_remove_network()
3579 was_disabled = ssid->disabled; in wpa_supplicant_remove_network()
3603 struct wpa_ssid *ssid) in wpa_supplicant_enable_network() argument
3605 if (ssid == NULL) { in wpa_supplicant_enable_network()
3606 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) in wpa_supplicant_enable_network()
3607 wpa_supplicant_enable_one_network(wpa_s, ssid); in wpa_supplicant_enable_network()
3609 wpa_supplicant_enable_one_network(wpa_s, ssid); in wpa_supplicant_enable_network()
3637 struct wpa_ssid *ssid) in wpa_supplicant_disable_network() argument
3642 if (ssid == NULL) { in wpa_supplicant_disable_network()
3646 for (other_ssid = wpa_s->conf->ssid; other_ssid; in wpa_supplicant_disable_network()
3665 } else if (ssid->disabled != 2) { in wpa_supplicant_disable_network()
3666 if (ssid == wpa_s->current_ssid) { in wpa_supplicant_disable_network()
3673 was_disabled = ssid->disabled; in wpa_supplicant_disable_network()
3675 ssid->disabled = 1; in wpa_supplicant_disable_network()
3677 if (was_disabled != ssid->disabled) { in wpa_supplicant_disable_network()
3678 wpas_notify_network_enabled_changed(wpa_s, ssid); in wpa_supplicant_disable_network()
3696 struct wpa_ssid *ssid) in wpa_supplicant_select_network() argument
3702 if (ssid && ssid != wpa_s->current_ssid && wpa_s->current_ssid) { in wpa_supplicant_select_network()
3710 if (ssid) in wpa_supplicant_select_network()
3711 wpas_clear_temp_disabled(wpa_s, ssid, 1); in wpa_supplicant_select_network()
3717 for (other_ssid = wpa_s->conf->ssid; other_ssid; in wpa_supplicant_select_network()
3723 other_ssid->disabled = ssid ? (ssid->id != other_ssid->id) : 0; in wpa_supplicant_select_network()
3731 if (ssid && ssid == wpa_s->current_ssid && wpa_s->current_ssid && in wpa_supplicant_select_network()
3739 if (ssid) { in wpa_supplicant_select_network()
3740 wpa_s->current_ssid = ssid; in wpa_supplicant_select_network()
3743 (ssid->mode == WPAS_MODE_MESH) ? ssid : NULL; in wpa_supplicant_select_network()
3758 if (ssid) in wpa_supplicant_select_network()
3759 ssid->owe_transition_bss_select_count = 0; in wpa_supplicant_select_network()
3768 if (ssid) in wpa_supplicant_select_network()
3769 wpas_notify_network_selected(wpa_s, ssid); in wpa_supplicant_select_network()
4020 u8 ssid[SSID_MAX_LEN]; in wpa_supplicant_get_ssid() local
4026 res = wpa_drv_get_ssid(wpa_s, ssid); in wpa_supplicant_get_ssid()
4043 entry = wpa_s->conf->ssid; in wpa_supplicant_get_ssid()
4047 (!entry->ssid || in wpa_supplicant_get_ssid()
4048 os_memcmp(ssid, entry->ssid, ssid_len) == 0)) || in wpa_supplicant_get_ssid()
4056 (entry->ssid == NULL || entry->ssid_len == 0) && in wpa_supplicant_get_ssid()
4064 owe_trans_ssid_match(wpa_s, bssid, entry->ssid, in wpa_supplicant_get_ssid()
4713 struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid, in wpa_supplicant_apply_ht_overrides() argument
4719 if (!ssid) in wpa_supplicant_apply_ht_overrides()
4722 params->disable_ht = ssid->disable_ht; in wpa_supplicant_apply_ht_overrides()
4728 wpa_set_htcap_mcs(wpa_s, htcaps, htcaps_mask, ssid->ht_mcs); in wpa_supplicant_apply_ht_overrides()
4730 ssid->disable_max_amsdu); in wpa_supplicant_apply_ht_overrides()
4731 wpa_set_ampdu_factor(wpa_s, htcaps, htcaps_mask, ssid->ampdu_factor); in wpa_supplicant_apply_ht_overrides()
4732 wpa_set_ampdu_density(wpa_s, htcaps, htcaps_mask, ssid->ampdu_density); in wpa_supplicant_apply_ht_overrides()
4733 wpa_set_disable_ht40(wpa_s, htcaps, htcaps_mask, ssid->disable_ht40); in wpa_supplicant_apply_ht_overrides()
4734 wpa_set_disable_sgi(wpa_s, htcaps, htcaps_mask, ssid->disable_sgi); in wpa_supplicant_apply_ht_overrides()
4735 wpa_set_disable_ldpc(wpa_s, htcaps, htcaps_mask, ssid->disable_ldpc); in wpa_supplicant_apply_ht_overrides()
4736 wpa_set_rx_stbc(wpa_s, htcaps, htcaps_mask, ssid->rx_stbc); in wpa_supplicant_apply_ht_overrides()
4737 wpa_set_tx_stbc(wpa_s, htcaps, htcaps_mask, ssid->tx_stbc); in wpa_supplicant_apply_ht_overrides()
4739 if (ssid->ht40_intolerant) { in wpa_supplicant_apply_ht_overrides()
4751 struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid, in wpa_supplicant_apply_vht_overrides() argument
4757 if (!ssid) in wpa_supplicant_apply_vht_overrides()
4760 params->disable_vht = ssid->disable_vht; in wpa_supplicant_apply_vht_overrides()
4768 vhtcaps->vht_capabilities_info = host_to_le32(ssid->vht_capa); in wpa_supplicant_apply_vht_overrides()
4769 vhtcaps_mask->vht_capabilities_info = host_to_le32(ssid->vht_capa_mask); in wpa_supplicant_apply_vht_overrides()
4772 if (ssid->disable_sgi) { in wpa_supplicant_apply_vht_overrides()
4783 if (ssid->vht_capa_mask & VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MAX) { in wpa_supplicant_apply_vht_overrides()
4786 max_ampdu = (ssid->vht_capa & in wpa_supplicant_apply_vht_overrides()
4799 if (ssid->vht_tx_mcs_nss_ ##i >= 0) { \ in wpa_supplicant_apply_vht_overrides()
4803 host_to_le16(ssid->vht_tx_mcs_nss_ ##i << \ in wpa_supplicant_apply_vht_overrides()
4806 if (ssid->vht_rx_mcs_nss_ ##i >= 0) { \ in wpa_supplicant_apply_vht_overrides()
4810 host_to_le16(ssid->vht_rx_mcs_nss_ ##i << \ in wpa_supplicant_apply_vht_overrides()
6135 struct wpa_ssid *ssid; in wpa_supplicant_add_iface() local
6177 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) in wpa_supplicant_add_iface()
6178 wpas_notify_network_added(wpa_s, ssid); in wpa_supplicant_add_iface()
6671 os_memcmp(bss->ssid, cbss->ssid, bss->ssid_len) == 0 && in get_bss_freqs_in_ess()
6802 struct wpa_ssid *ssid = wpa_s->current_ssid; in fils_connection_failure() local
6807 if (!ssid || !ssid->eap.erp || !wpa_key_mgmt_fils(ssid->key_mgmt) || in fils_connection_failure()
6808 eapol_sm_get_erp_info(wpa_s->eapol, &ssid->eap, in fils_connection_failure()
6837 struct wpa_ssid *ssid, in wpa_supplicant_ctrl_iface_ctrl_rsp_handle() argument
6849 return wpa_supplicant_ctrl_rsp_handle(wpa_s, ssid, rtype, value, strlen(value)); in wpa_supplicant_ctrl_iface_ctrl_rsp_handle()
6857 struct wpa_ssid *ssid, in wpa_supplicant_ctrl_rsp_handle() argument
6862 struct eap_peer_config *eap = &ssid->eap; in wpa_supplicant_ctrl_rsp_handle()
6889 if (ssid == wpa_s->current_ssid) in wpa_supplicant_ctrl_rsp_handle()
6897 if (ssid == wpa_s->current_ssid) in wpa_supplicant_ctrl_rsp_handle()
6905 if (ssid == wpa_s->current_ssid) in wpa_supplicant_ctrl_rsp_handle()
6912 if (ssid == wpa_s->current_ssid) in wpa_supplicant_ctrl_rsp_handle()
6927 if (ssid == wpa_s->current_ssid) in wpa_supplicant_ctrl_rsp_handle()
6936 if (wpa_config_set(ssid, "psk", value, 0) < 0) in wpa_supplicant_ctrl_rsp_handle()
6938 ssid->mem_only_psk = 1; in wpa_supplicant_ctrl_rsp_handle()
6939 if (ssid->passphrase) in wpa_supplicant_ctrl_rsp_handle()
6940 wpa_config_update_psk(ssid); in wpa_supplicant_ctrl_rsp_handle()
6968 int wpas_network_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid) in wpas_network_disabled() argument
6976 if (ssid == NULL) in wpas_network_disabled()
6979 if (ssid->disabled) in wpas_network_disabled()
6988 size_t len = ssid->wep_key_len[i]; in wpas_network_disabled()
7000 if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt) && !ssid->psk_set && in wpas_network_disabled()
7001 (!ssid->passphrase || ssid->ssid_len != 0) && !ssid->ext_psk && in wpas_network_disabled()
7002 !(wpa_key_mgmt_sae(ssid->key_mgmt) && ssid->sae_password) && in wpas_network_disabled()
7003 !ssid->mem_only_psk) in wpas_network_disabled()
7010 int wpas_get_ssid_pmf(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid) in wpas_get_ssid_pmf() argument
7013 if (ssid == NULL || ssid->ieee80211w == MGMT_FRAME_PROTECTION_DEFAULT) { in wpas_get_ssid_pmf()
7024 if (ssid && in wpas_get_ssid_pmf()
7025 (ssid->key_mgmt & in wpas_get_ssid_pmf()
7040 return ssid->ieee80211w; in wpas_get_ssid_pmf()
7059 struct wpa_ssid *ssid = wpa_s->current_ssid; in wpas_auth_failed() local
7063 if (ssid == NULL) { in wpas_auth_failed()
7069 if (ssid->key_mgmt == WPA_KEY_MGMT_WPS) in wpas_auth_failed()
7072 ssid->auth_failures++; in wpas_auth_failed()
7075 if (ssid->p2p_group && in wpas_auth_failed()
7085 if (ssid->auth_failures > 50) in wpas_auth_failed()
7087 else if (ssid->auth_failures > 10) in wpas_auth_failed()
7089 else if (ssid->auth_failures > 5) in wpas_auth_failed()
7091 else if (ssid->auth_failures > 3) in wpas_auth_failed()
7093 else if (ssid->auth_failures > 2) in wpas_auth_failed()
7095 else if (ssid->auth_failures > 1) in wpas_auth_failed()
7100 if (ssid->auth_failures > 1 && in wpas_auth_failed()
7101 wpa_key_mgmt_wpa_ieee8021x(ssid->key_mgmt)) in wpas_auth_failed()
7102 dur += os_random() % (ssid->auth_failures * 10); in wpas_auth_failed()
7105 if (now.sec + dur <= ssid->disabled_until.sec) in wpas_auth_failed()
7108 ssid->disabled_until.sec = now.sec + dur; in wpas_auth_failed()
7112 ssid->id, wpa_ssid_txt(ssid->ssid, ssid->ssid_len), in wpas_auth_failed()
7113 ssid->auth_failures, dur, reason); in wpas_auth_failed()
7118 struct wpa_ssid *ssid, int clear_failures) in wpas_clear_temp_disabled() argument
7120 if (ssid == NULL) in wpas_clear_temp_disabled()
7123 if (ssid->disabled_until.sec) { in wpas_clear_temp_disabled()
7126 ssid->id, wpa_ssid_txt(ssid->ssid, ssid->ssid_len)); in wpas_clear_temp_disabled()
7128 ssid->disabled_until.sec = 0; in wpas_clear_temp_disabled()
7129 ssid->disabled_until.usec = 0; in wpas_clear_temp_disabled()
7131 ssid->auth_failures = 0; in wpas_clear_temp_disabled()
7152 int disallowed_ssid(struct wpa_supplicant *wpa_s, const u8 *ssid, in disallowed_ssid() argument
7157 if (wpa_s->disallow_aps_ssid == NULL || ssid == NULL) in disallowed_ssid()
7163 os_memcmp(ssid, s->ssid, ssid_len) == 0) in disallowed_ssid()