• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/mac80211/

Lines Matching refs:bss

67 				 struct ieee80211_sta_bss *bss);
484 struct ieee80211_sta_bss *bss;
503 bss = ieee80211_rx_bss_get(dev, ifsta->bssid);
504 if (bss) {
505 if (bss->capability & WLAN_CAPABILITY_PRIVACY)
507 if (bss->wmm_ie) {
510 ieee80211_rx_bss_put(dev, bss);
655 struct ieee80211_sta_bss *bss;
662 bss = ieee80211_rx_bss_get(dev, ifsta->bssid);
663 if (!bss)
667 !!(bss->capability & WLAN_CAPABILITY_PRIVACY))
670 ieee80211_rx_bss_put(dev, bss);
1181 struct ieee80211_sta_bss *bss;
1188 bss = ieee80211_rx_bss_get(dev, ifsta->bssid);
1189 if (bss) {
1190 sta->last_rssi = bss->rssi;
1191 sta->last_signal = bss->signal;
1192 sta->last_noise = bss->noise;
1193 ieee80211_rx_bss_put(dev, bss);
1238 struct ieee80211_sta_bss *bss)
1241 bss->hnext = local->sta_bss_hash[STA_HASH(bss->bssid)];
1242 local->sta_bss_hash[STA_HASH(bss->bssid)] = bss;
1248 struct ieee80211_sta_bss *bss)
1252 b = local->sta_bss_hash[STA_HASH(bss->bssid)];
1254 if (b == bss) {
1256 local->sta_bss_hash[STA_HASH(bss->bssid)] =
1257 bss->hnext;
1259 prev->hnext = bss->hnext;
1272 struct ieee80211_sta_bss *bss;
1274 bss = kmalloc(sizeof(*bss), GFP_ATOMIC);
1275 if (!bss)
1277 memset(bss, 0, sizeof(*bss));
1278 atomic_inc(&bss->users);
1279 atomic_inc(&bss->users);
1280 memcpy(bss->bssid, bssid, ETH_ALEN);
1284 list_add_tail(&bss->list, &local->sta_bss_list);
1285 __ieee80211_rx_bss_hash_add(dev, bss);
1287 return bss;
1295 struct ieee80211_sta_bss *bss;
1298 bss = local->sta_bss_hash[STA_HASH(bssid)];
1299 while (bss) {
1300 if (memcmp(bss->bssid, bssid, ETH_ALEN) == 0) {
1301 atomic_inc(&bss->users);
1304 bss = bss->hnext;
1307 return bss;
1311 static void ieee80211_rx_bss_free(struct ieee80211_sta_bss *bss)
1313 kfree(bss->wpa_ie);
1314 kfree(bss->rsn_ie);
1315 kfree(bss->wmm_ie);
1316 kfree(bss);
1321 struct ieee80211_sta_bss *bss)
1324 if (!atomic_dec_and_test(&bss->users))
1328 __ieee80211_rx_bss_hash_del(dev, bss);
1329 list_del(&bss->list);
1331 ieee80211_rx_bss_free(bss);
1346 struct ieee80211_sta_bss *bss, *tmp;
1348 list_for_each_entry_safe(bss, tmp, &local->sta_bss_list, list)
1349 ieee80211_rx_bss_put(dev, bss);
1363 struct ieee80211_sta_bss *bss;
1463 bss = ieee80211_rx_bss_get(dev, mgmt->bssid);
1464 if (!bss) {
1465 bss = ieee80211_rx_bss_add(dev, mgmt->bssid);
1466 if (!bss)
1471 if (bss->probe_resp && beacon) {
1473 ieee80211_rx_bss_put(dev, bss);
1477 bss->beacon_int = le16_to_cpu(mgmt->u.beacon.beacon_int);
1478 bss->capability = le16_to_cpu(mgmt->u.beacon.capab_info);
1480 memcpy(bss->ssid, elems.ssid, elems.ssid_len);
1481 bss->ssid_len = elems.ssid_len;
1484 bss->supp_rates_len = 0;
1486 clen = IEEE80211_MAX_SUPP_RATES - bss->supp_rates_len;
1489 memcpy(&bss->supp_rates[bss->supp_rates_len], elems.supp_rates,
1491 bss->supp_rates_len += clen;
1494 clen = IEEE80211_MAX_SUPP_RATES - bss->supp_rates_len;
1497 memcpy(&bss->supp_rates[bss->supp_rates_len],
1499 bss->supp_rates_len += clen;
1503 (!bss->wpa_ie || bss->wpa_ie_len != elems.wpa_len ||
1504 memcmp(bss->wpa_ie, elems.wpa, elems.wpa_len))) {
1505 kfree(bss->wpa_ie);
1506 bss->wpa_ie = kmalloc(elems.wpa_len + 2, GFP_ATOMIC);
1507 if (bss->wpa_ie) {
1508 memcpy(bss->wpa_ie, elems.wpa - 2, elems.wpa_len + 2);
1509 bss->wpa_ie_len = elems.wpa_len + 2;
1511 bss->wpa_ie_len = 0;
1512 } else if (!elems.wpa && bss->wpa_ie) {
1513 kfree(bss->wpa_ie);
1514 bss->wpa_ie = NULL;
1515 bss->wpa_ie_len = 0;
1519 (!bss->rsn_ie || bss->rsn_ie_len != elems.rsn_len ||
1520 memcmp(bss->rsn_ie, elems.rsn, elems.rsn_len))) {
1521 kfree(bss->rsn_ie);
1522 bss->rsn_ie = kmalloc(elems.rsn_len + 2, GFP_ATOMIC);
1523 if (bss->rsn_ie) {
1524 memcpy(bss->rsn_ie, elems.rsn - 2, elems.rsn_len + 2);
1525 bss->rsn_ie_len = elems.rsn_len + 2;
1527 bss->rsn_ie_len = 0;
1528 } else if (!elems.rsn && bss->rsn_ie) {
1529 kfree(bss->rsn_ie);
1530 bss->rsn_ie = NULL;
1531 bss->rsn_ie_len = 0;
1535 (!bss->wmm_ie || bss->wmm_ie_len != elems.wmm_param_len ||
1536 memcmp(bss->wmm_ie, elems.wmm_param, elems.wmm_param_len))) {
1537 kfree(bss->wmm_ie);
1538 bss->wmm_ie = kmalloc(elems.wmm_param_len + 2, GFP_ATOMIC);
1539 if (bss->wmm_ie) {
1540 memcpy(bss->wmm_ie, elems.wmm_param - 2,
1542 bss->wmm_ie_len = elems.wmm_param_len + 2;
1544 bss->wmm_ie_len = 0;
1545 } else if (!elems.wmm_param && bss->wmm_ie) {
1546 kfree(bss->wmm_ie);
1547 bss->wmm_ie = NULL;
1548 bss->wmm_ie_len = 0;
1552 bss->hw_mode = rx_status->phymode;
1553 bss->channel = channel;
1554 bss->freq = rx_status->freq;
1556 (bss->hw_mode == MODE_IEEE80211G ||
1557 bss->hw_mode == MODE_IEEE80211B) &&
1565 bss->freq = freq_list[channel - 1];
1567 bss->timestamp = timestamp;
1568 bss->last_update = jiffies;
1569 bss->rssi = rx_status->ssi;
1570 bss->signal = rx_status->signal;
1571 bss->noise = rx_status->noise;
1573 bss->probe_resp++;
1574 ieee80211_rx_bss_put(dev, bss);
2051 struct ieee80211_sta_bss *bss, *selected = NULL;
2066 list_for_each_entry(bss, &local->sta_bss_list, list) {
2067 if (!(bss->capability & WLAN_CAPABILITY_ESS))
2070 if (!!(bss->capability & WLAN_CAPABILITY_PRIVACY) ^
2074 if (!ifsta->auto_channel_sel && bss->freq != freq)
2078 memcmp(bss->bssid, ifsta->bssid, ETH_ALEN))
2082 !ieee80211_sta_match_ssid(ifsta, bss->ssid, bss->ssid_len))
2085 if (!selected || top_rssi < bss->rssi) {
2086 selected = bss;
2087 top_rssi = bss->rssi;
2119 struct ieee80211_sta_bss *bss)
2139 memcpy(ifsta->bssid, bss->bssid, ETH_ALEN);
2144 local->hw.conf.beacon_int = bss->beacon_int >= 10 ? bss->beacon_int : 10;
2147 sdata->drop_unencrypted = bss->capability &
2150 res = ieee80211_set_channel(local, -1, bss->freq);
2177 mgmt->u.beacon.capab_info = cpu_to_le16(bss->capability);
2184 rates = bss->supp_rates_len;
2190 memcpy(pos, bss->supp_rates, rates);
2195 *pos++ = bss->channel;
2204 if (bss->supp_rates_len > 8) {
2205 rates = bss->supp_rates_len - 8;
2209 memcpy(pos, &bss->supp_rates[8], rates);
2251 for (i = 0; i < bss->supp_rates_len; i++) {
2252 int bitrate = (bss->supp_rates[i] & 0x7f) * 5;
2271 ieee80211_rx_bss_put(dev, bss);
2281 struct ieee80211_sta_bss *bss;
2299 bss = ieee80211_rx_bss_add(dev, bssid);
2300 if (!bss)
2308 bss->beacon_int = local->hw.conf.beacon_int;
2309 bss->hw_mode = local->hw.conf.phymode;
2310 bss->channel = local->hw.conf.channel;
2311 bss->freq = local->hw.conf.freq;
2312 bss->last_update = jiffies;
2313 bss->capability = WLAN_CAPABILITY_IBSS;
2315 bss->capability |= WLAN_CAPABILITY_PRIVACY;
2318 bss->supp_rates_len = mode->num_rates;
2319 pos = bss->supp_rates;
2327 return ieee80211_sta_join_ibss(dev, ifsta, bss);
2335 struct ieee80211_sta_bss *bss;
2349 list_for_each_entry(bss, &local->sta_bss_list, list) {
2350 if (ifsta->ssid_len != bss->ssid_len ||
2351 memcmp(ifsta->ssid, bss->ssid, bss->ssid_len) != 0
2352 || !(bss->capability & WLAN_CAPABILITY_IBSS))
2356 MAC_ARG(bss->bssid));
2358 memcpy(bssid, bss->bssid, ETH_ALEN);
2370 (bss = ieee80211_rx_bss_get(dev, bssid))) {
2374 return ieee80211_sta_join_ibss(dev, ifsta, bss);
2776 struct ieee80211_sta_bss *bss,
2783 bss->last_update + IEEE80211_SCAN_RESULT_EXPIRE))
2786 if (!(local->enabled_modes & (1 << bss->hw_mode)))
2790 !bss->wpa_ie && !bss->rsn_ie)
2794 (local->scan_ssid_len != bss->ssid_len ||
2795 memcmp(local->scan_ssid, bss->ssid, bss->ssid_len) != 0))
2801 memcpy(iwe.u.ap_addr.sa_data, bss->bssid, ETH_ALEN);
2807 iwe.u.data.length = bss->ssid_len;
2810 bss->ssid);
2812 if (bss->capability & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS)) {
2815 if (bss->capability & WLAN_CAPABILITY_ESS)
2825 iwe.u.freq.m = bss->channel;
2829 iwe.u.freq.m = bss->freq * 100000;
2836 iwe.u.qual.qual = bss->signal;
2837 iwe.u.qual.level = bss->rssi;
2838 iwe.u.qual.noise = bss->noise;
2845 if (bss->capability & WLAN_CAPABILITY_PRIVACY)
2852 if (bss && bss->wpa_ie) {
2855 iwe.u.data.length = bss->wpa_ie_len;
2857 bss->wpa_ie);
2860 if (bss && bss->rsn_ie) {
2863 iwe.u.data.length = bss->rsn_ie_len;
2865 bss->rsn_ie);
2868 if (bss && bss->supp_rates_len > 0) {
2878 for (i = 0; i < bss->supp_rates_len; i++) {
2879 iwe.u.bitrate.value = ((bss->supp_rates[i] &
2887 if (bss) {
2893 sprintf(buf, "tsf=%016llx", (unsigned long long)(bss->timestamp));
2913 sprintf(buf, "bcn_int=%d", bss->beacon_int);
2920 sprintf(buf, "capab=0x%04x", bss->capability);
2938 struct ieee80211_sta_bss *bss;
2941 list_for_each_entry(bss, &local->sta_bss_list, list) {
2946 current_ev = ieee80211_sta_scan_result(dev, bss, current_ev,