Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching defs:ssid

116 int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
121 if (ssid->wep_key_len[i] == 0)
126 i, i == ssid->wep_tx_keyidx, NULL, 0,
127 ssid->wep_key[i], ssid->wep_key_len[i]);
135 struct wpa_ssid *ssid)
146 if (ssid->mode != WPAS_MODE_IBSS) {
148 "IBSS/ad-hoc) for WPA-None", ssid->mode);
152 if (!ssid->psk_set) {
160 os_memcpy(key, ssid->psk, 16);
165 os_memcpy(key, ssid->psk, 16);
171 os_memcpy(key, ssid->psk, 16 + 8);
172 os_memcpy(key + 16 + 8, ssid->psk + 16, 8);
262 struct wpa_ssid *ssid = wpa_s->current_ssid;
265 if (ssid->mode == WPAS_MODE_IBSS &&
292 if (ssid->eapol_flags & EAPOL_FLAG_REQUIRE_KEY_UNICAST) {
295 if (ssid->eapol_flags & EAPOL_FLAG_REQUIRE_KEY_BROADCAST) {
304 eapol_conf.workaround = ssid->eap_workaround;
328 eapol_sm_notify_config(wpa_s->eapol, &ssid->eap, &eapol_conf);
330 ieee802_1x_alloc_kay_sm(wpa_s, ssid);
338 * @ssid: Configuration data for the network
345 struct wpa_ssid *ssid)
349 if (ssid->key_mgmt & WPA_KEY_MGMT_WPS)
351 else if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA)
363 if (ssid->wep_key_len[i] > 5) {
367 } else if (ssid->wep_key_len[i] > 0) {
438 struct wpa_ssid *ssid;
439 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
440 wpas_notify_network_removed(wpa_s, ssid);
788 struct wpa_ssid *ssid = wpa_s->current_ssid;
793 ssid ? ssid->id : -1,
794 ssid && ssid->id_str ? ssid->id_str : "");
796 wpas_clear_temp_disabled(wpa_s, ssid, 1);
1003 struct wpa_ssid *ssid,
1017 if (!(ie->group_cipher & ssid->group_cipher)) {
1020 ie->group_cipher, ssid->group_cipher);
1023 if (!(ie->pairwise_cipher & ssid->pairwise_cipher)) {
1026 ie->pairwise_cipher, ssid->pairwise_cipher);
1029 if (!(ie->key_mgmt & ssid->key_mgmt)) {
1032 ie->key_mgmt, ssid->key_mgmt);
1038 wpas_get_ssid_pmf(wpa_s, ssid) == MGMT_FRAME_PROTECTION_REQUIRED) {
1054 * @ssid: Configuration data for the selected network
1065 struct wpa_bss *bss, struct wpa_ssid *ssid,
1079 if (bss_rsn && (ssid->proto & WPA_PROTO_RSN) &&
1081 (ie.group_cipher & ssid->group_cipher) &&
1082 (ie.pairwise_cipher & ssid->pairwise_cipher) &&
1083 (ie.key_mgmt & ssid->key_mgmt)) {
1086 } else if (bss_wpa && (ssid->proto & WPA_PROTO_WPA) &&
1088 (ie.group_cipher & ssid->group_cipher) &&
1089 (ie.pairwise_cipher & ssid->pairwise_cipher) &&
1090 (ie.key_mgmt & ssid->key_mgmt)) {
1094 } else if (bss_osen && (ssid->proto & WPA_PROTO_OSEN)) {
1106 "WPA: ssid proto=0x%x pairwise_cipher=0x%x group_cipher=0x%x key_mgmt=0x%x",
1107 ssid->proto, ssid->pairwise_cipher, ssid->group_cipher,
1108 ssid->key_mgmt);
1109 wpa_dbg(wpa_s, MSG_DEBUG, "WPA: BSS " MACSTR " ssid='%s'%s%s%s",
1111 wpa_ssid_txt(bss->ssid, bss->ssid_len),
1141 if (ssid->proto & WPA_PROTO_OSEN)
1143 else if (ssid->proto & WPA_PROTO_RSN)
1147 if (wpa_supplicant_suites_from_ai(wpa_s, ssid, &ie) < 0) {
1149 ie.group_cipher = ssid->group_cipher;
1150 ie.pairwise_cipher = ssid->pairwise_cipher;
1151 ie.key_mgmt = ssid->key_mgmt;
1154 ssid->ieee80211w != NO_MGMT_FRAME_PROTECTION ?
1167 if (ssid->ieee80211w) {
1176 !!(ssid->proto & (WPA_PROTO_RSN | WPA_PROTO_OSEN)));
1190 sel = ie.group_cipher & ssid->group_cipher;
1200 sel = ie.pairwise_cipher & ssid->pairwise_cipher;
1211 sel = ie.key_mgmt & ssid->key_mgmt;
1282 if (wpas_get_ssid_pmf(wpa_s, ssid) == NO_MGMT_FRAME_PROTECTION ||
1308 wpas_get_ssid_pmf(wpa_s, ssid));
1316 if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt)) {
1319 if (ssid->psk_set) {
1320 wpa_sm_set_pmk(wpa_s->wpa, ssid->psk, PMK_LEN, NULL,
1325 if (bss && ssid->bssid_set && ssid->ssid_len == 0 &&
1326 ssid->passphrase) {
1328 pbkdf2_sha1(ssid->passphrase, bss->ssid, bss->ssid_len,
1338 if (ssid->ext_psk) {
1340 ssid->ext_psk);
1364 pbkdf2_sha1(pw_str, bss->ssid, bss->ssid_len,
1430 *pos |= 0x02; /* Bit 25 - SSID List */
1510 struct wpa_ssid *ssid;
1512 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
1513 if (ssid == test_ssid)
1623 * @ssid: Configuration data for the selected network
1628 struct wpa_bss *bss, struct wpa_ssid *ssid)
1642 if (ssid->mac_addr == -1)
1645 rand_style = ssid->mac_addr;
1651 if (wpa_s->last_ssid == ssid) {
1661 wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
1676 wpa_s->last_ssid = ssid;
1683 if (ssid->mode == WPAS_MODE_AP || ssid->mode == WPAS_MODE_P2P_GO ||
1684 ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION) {
1691 if (wpa_supplicant_create_ap(wpa_s, ssid) < 0) {
1693 if (ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION)
1705 if (ssid->mode == WPAS_MODE_MESH) {
1713 ssid->frequency = bss->freq;
1714 if (wpa_supplicant_join_mesh(wpa_s, ssid) < 0) {
1719 wpa_msg(wpa_s, MSG_INFO, MESH_GROUP_STARTED "ssid=\"%s\" id=%d",
1720 wpa_ssid_txt(ssid->ssid, ssid->ssid_len),
1721 ssid->id);
1736 ssid->mode == IEEE80211_MODE_INFRA) {
1737 sme_authenticate(wpa_s, bss, ssid);
1758 cwork->ssid = ssid;
1775 const struct wpa_ssid *ssid)
1783 if (ssid->disable_ht)
1787 hw_mode = ieee80211_freq_to_chan(ssid->frequency, &channel);
1805 const struct wpa_ssid *ssid,
1821 freq->freq = ssid->frequency;
1826 if (ssid->mode != WPAS_MODE_IBSS)
1830 if (ssid->fixed_freq)
1836 if (ssid->ssid_len == bss->ssid_len &&
1837 os_memcmp(ssid->ssid, bss->ssid, bss->ssid_len) == 0) {
1848 if (ssid->mode == WPAS_MODE_IBSS &&
1969 if (!drv_supports_vht(wpa_s, ssid))
1973 if (ssid->mode == WPAS_MODE_IBSS &&
2009 if (ssid->max_oper_chwidth == VHT_CHANWIDTH_80P80MHZ) {
2057 struct wpa_ssid *ssid = cwork->ssid;
2095 if (cwork->bss_removed || !wpas_valid_bss_ssid(wpa_s, bss, ssid) ||
2096 wpas_network_disabled(wpa_s, ssid)) {
2097 wpa_dbg(wpa_s, MSG_DEBUG, "BSS/SSID entry for association not valid anymore - drop connection attempt");
2112 " (SSID='%s' freq=%d MHz)", MAC2STR(bss->bssid),
2113 wpa_ssid_txt(bss->ssid, bss->ssid_len), bss->freq);
2130 } else if ((ssid->ssid == NULL || ssid->ssid_len == 0) &&
2132 (ssid->key_mgmt & WPA_KEY_MGMT_WPS)) {
2142 wpa_msg(wpa_s, MSG_INFO, "Trying to associate with SSID '%s'",
2143 wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
2156 if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) {
2157 if (ssid->leap) {
2158 if (ssid->non_leap == 0)
2166 if (ssid->auth_alg) {
2167 algs = ssid->auth_alg;
2174 wpa_key_mgmt_wpa(ssid->key_mgmt)) {
2176 try_opportunistic = (ssid->proactive_key_caching < 0 ?
2178 ssid->proactive_key_caching) &&
2179 (ssid->proto & WPA_PROTO_RSN);
2181 ssid, try_opportunistic) == 0)
2184 if (wpa_supplicant_set_suites(wpa_s, bss, ssid,
2191 } else if ((ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) && bss &&
2192 wpa_key_mgmt_wpa_ieee8021x(ssid->key_mgmt)) {
2198 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid);
2201 } else if (wpa_key_mgmt_wpa_any(ssid->key_mgmt)) {
2203 if (wpa_supplicant_set_suites(wpa_s, NULL, ssid,
2212 } else if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) {
2214 wps_ie = wps_build_assoc_req_ie(wpas_wps_get_req_type(ssid));
2221 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid);
2229 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid);
2242 ssid->p2p_group);
2306 if (is_hs20_network(wpa_s, ssid, bss)) {
2311 int pps_mo_id = hs20_get_pps_mo_id(wpa_s, ssid);
2369 if (wpa_set_wep_keys(wpa_s, ssid)) {
2379 if ((ssid->eapol_flags &
2395 wpa_supplicant_set_wpa_none_key(wpa_s, ssid);
2400 params.ssid = bss->ssid;
2402 if (!wpas_driver_bss_selection(wpa_s) || ssid->bssid_set) {
2407 ssid->bssid_set);
2415 params.ssid = ssid->ssid;
2416 params.ssid_len = ssid->ssid_len;
2417 params.pbss = ssid->pbss;
2420 if (ssid->mode == WPAS_MODE_IBSS && ssid->bssid_set &&
2422 params.bssid = ssid->bssid;
2427 if ((ssid->mode == WPAS_MODE_IBSS || ssid->mode == WPAS_MODE_MESH) &&
2428 ssid->frequency > 0 && params.freq.freq == 0)
2429 ibss_mesh_setup_freq(wpa_s, ssid, &params.freq);
2431 if (ssid->mode == WPAS_MODE_IBSS) {
2432 params.fixed_freq = ssid->fixed_freq;
2433 if (ssid->beacon_int)
2434 params.beacon_int = ssid->beacon_int;
2446 params.mode = ssid->mode;
2447 params.bg_scan_period = ssid->bg_scan_period;
2449 if (ssid->wep_key_len[i])
2450 params.wep_key[i] = ssid->wep_key[i];
2451 params.wep_key_len[i] = ssid->wep_key_len[i];
2453 params.wep_tx_keyidx = ssid->wep_tx_keyidx;
2458 params.passphrase = ssid->passphrase;
2459 if (ssid->psk_set)
2460 params.psk = ssid->psk;
2469 ssid->proactive_key_caching < 0 ?
2470 wpa_s->conf->okc : ssid->proactive_key_caching;
2477 ssid->psk_set)
2478 params.psk = ssid->psk;
2484 params.mgmt_frame_protection = wpas_get_ssid_pmf(wpa_s, ssid);
2499 params.p2p = ssid->p2p_group;
2511 wpa_supplicant_apply_ht_overrides(wpa_s, ssid, &params);
2518 wpa_supplicant_apply_vht_overrides(wpa_s, ssid, &params);
2535 wpa_s, params.freq.freq, ssid) < 0) {
2570 wpa_supplicant_set_wpa_none_key(wpa_s, ssid);
2576 } else if (ssid->mode == WPAS_MODE_IBSS &&
2591 timeout = ssid->mode == WPAS_MODE_IBSS ? 10 : 5;
2594 timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 10;
2602 wpa_set_wep_keys(wpa_s, ssid);
2605 if (wpa_s->current_ssid && wpa_s->current_ssid != ssid) {
2613 wpa_s->current_ssid = ssid;
2614 if (!wpas_driver_bss_selection(wpa_s) || ssid->bssid_set)
2703 struct wpa_ssid *ssid)
2705 if (!ssid || !ssid->disabled || ssid->disabled == 2)
2708 ssid->disabled = 0;
2709 wpas_clear_temp_disabled(wpa_s, ssid, 1);
2710 wpas_notify_network_enabled_changed(wpa_s, ssid);
2724 * @ssid: wpa_ssid structure for a configured network or %NULL
2729 struct wpa_ssid *ssid)
2731 if (ssid == NULL) {
2732 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
2733 wpa_supplicant_enable_one_network(wpa_s, ssid);
2735 wpa_supplicant_enable_one_network(wpa_s, ssid);
2758 * @ssid: wpa_ssid structure for a configured network or %NULL
2763 struct wpa_ssid *ssid)
2768 if (ssid == NULL) {
2772 for (other_ssid = wpa_s->conf->ssid; other_ssid;
2788 } else if (ssid->disabled != 2) {
2789 if (ssid == wpa_s->current_ssid)
2793 was_disabled = ssid->disabled;
2795 ssid->disabled = 1;
2797 if (was_disabled != ssid->disabled) {
2798 wpas_notify_network_enabled_changed(wpa_s, ssid);
2813 * @ssid: wpa_ssid structure for a configured network or %NULL for any network
2816 struct wpa_ssid *ssid)
2822 if (ssid && ssid != wpa_s->current_ssid && wpa_s->current_ssid) {
2830 if (ssid)
2831 wpas_clear_temp_disabled(wpa_s, ssid, 1);
2837 for (other_ssid = wpa_s->conf->ssid; other_ssid;
2843 other_ssid->disabled = ssid ? (ssid->id != other_ssid->id) : 0;
2851 if (ssid && ssid == wpa_s->current_ssid && wpa_s->current_ssid &&
2859 if (ssid) {
2860 wpa_s->current_ssid = ssid;
2863 (ssid->mode == WPAS_MODE_MESH) ? ssid : NULL;
2884 if (ssid)
2885 wpas_notify_network_selected(wpa_s, ssid);
3101 u8 ssid[SSID_MAX_LEN];
3107 res = wpa_drv_get_ssid(wpa_s, ssid);
3109 wpa_msg(wpa_s, MSG_WARNING, "Could not read SSID from "
3124 entry = wpa_s->conf->ssid;
3128 os_memcmp(ssid, entry->ssid, ssid_len) == 0) || wired) &&
3135 (entry->ssid == NULL || entry->ssid_len == 0) &&
3728 struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
3734 if (!ssid)
3737 params->disable_ht = ssid->disable_ht;
3743 wpa_set_htcap_mcs(wpa_s, htcaps, htcaps_mask, ssid->ht_mcs);
3745 ssid->disable_max_amsdu);
3746 wpa_set_ampdu_factor(wpa_s, htcaps, htcaps_mask, ssid->ampdu_factor);
3747 wpa_set_ampdu_density(wpa_s, htcaps, htcaps_mask, ssid->ampdu_density);
3748 wpa_set_disable_ht40(wpa_s, htcaps, htcaps_mask, ssid->disable_ht40);
3749 wpa_set_disable_sgi(wpa_s, htcaps, htcaps_mask, ssid->disable_sgi);
3750 wpa_set_disable_ldpc(wpa_s, htcaps, htcaps_mask, ssid->disable_ldpc);
3752 if (ssid->ht40_intolerant) {
3764 struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
3770 if (!ssid)
3773 params->disable_vht = ssid->disable_vht;
3781 vhtcaps->vht_capabilities_info = ssid->vht_capa;
3782 vhtcaps_mask->vht_capabilities_info = ssid->vht_capa_mask;
3786 if (ssid->vht_capa_mask & VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MAX) {
3789 max_ampdu = (ssid->vht_capa &
3802 if (ssid->vht_tx_mcs_nss_ ##i >= 0) { \
3806 ssid->vht_tx_mcs_nss_ ##i << 2 * (i - 1); \
3808 if (ssid->vht_rx_mcs_nss_ ##i >= 0) { \
3812 ssid->vht_rx_mcs_nss_ ##i << 2 * (i - 1); \
5013 struct wpa_ssid *ssid;
5053 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
5054 wpas_notify_network_added(wpa_s, ssid);
5536 os_memcmp(bss->ssid, cbss->ssid, bss->ssid_len) == 0 &&
5665 struct wpa_ssid *ssid,
5670 struct eap_peer_config *eap = &ssid->eap;
5682 if (ssid == wpa_s->current_ssid)
5690 if (ssid == wpa_s->current_ssid)
5698 if (ssid == wpa_s->current_ssid)
5705 if (ssid == wpa_s->current_ssid)
5720 if (ssid == wpa_s->current_ssid)
5728 if (wpa_config_set(ssid, "psk", value, 0) < 0)
5730 ssid->mem_only_psk = 1;
5731 if (ssid->passphrase)
5732 wpa_config_update_psk(ssid);
5760 int wpas_network_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
5768 if (ssid == NULL)
5771 if (ssid->disabled)
5780 size_t len = ssid->wep_key_len[i];
5792 if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt) && !ssid->psk_set &&
5793 (!ssid->passphrase || ssid->ssid_len != 0) && !ssid->ext_psk &&
5794 !ssid->mem_only_psk)
5801 int wpas_get_ssid_pmf(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
5804 if (ssid == NULL || ssid->ieee80211w == MGMT_FRAME_PROTECTION_DEFAULT) {
5818 return ssid->ieee80211w;
5837 struct wpa_ssid *ssid = wpa_s->current_ssid;
5841 if (ssid == NULL) {
5843 "SSID block");
5847 if (ssid->key_mgmt == WPA_KEY_MGMT_WPS)
5850 ssid->auth_failures++;
5853 if (ssid->p2p_group &&
5863 if (ssid
5865 else if (ssid->auth_failures > 10)
5867 else if (ssid->auth_failures > 5)
5869 else if (ssid->auth_failures > 3)
5871 else if (ssid->auth_failures > 2)
5873 else if (ssid->auth_failures > 1)
5878 if (ssid->auth_failures > 1 &&
5879 wpa_key_mgmt_wpa_ieee8021x(ssid->key_mgmt))
5880 dur += os_random() % (ssid->auth_failures * 10);
5883 if (now.sec + dur <= ssid->disabled_until.sec)
5886 ssid->disabled_until.sec = now.sec + dur;
5889 "id=%d ssid=\"%s\" auth_failures=%u duration=%d reason=%s",
5890 ssid->id, wpa_ssid_txt(ssid->ssid, ssid->ssid_len),
5891 ssid->auth_failures, dur, reason);
5896 struct wpa_ssid *ssid, int clear_failures)
5898 if (ssid == NULL)
5901 if (ssid->disabled_until.sec) {
5903 "id=%d ssid=\"%s\"",
5904 ssid->id, wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
5906 ssid->disabled_until.sec = 0;
5907 ssid->disabled_until.usec = 0;
5909 ssid->auth_failures = 0;
5930 int disallowed_ssid(struct wpa_supplicant *wpa_s, const u8 *ssid,
5935 if (wpa_s->disallow_aps_ssid == NULL || ssid == NULL)
5941 os_memcmp(ssid, s->ssid, ssid_len) == 0)
6158 * @ssid: if not null, this is sent in the request. Otherwise, no SSID IE
6173 const struct wpa_ssid *ssid,
6214 buf = wpabuf_alloc(3 + (ssid ? 2 + ssid->ssid_len : 0));
6222 (ssid ? wpa_ssid_txt(ssid->ssid, ssid->ssid_len) : ""),
6228 if (ssid) {
6230 wpabuf_put_u8(buf, ssid->ssid_len);
6231 wpabuf_put_data(buf, ssid->ssid, ssid->ssid_len);