• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/net/mac80211/

Lines Matching defs:ifsta

69 				   struct ieee80211_if_sta *ifsta);
74 struct ieee80211_if_sta *ifsta);
226 struct ieee80211_if_sta *ifsta,
238 if (count == ifsta->wmm_last_param_set)
240 ifsta->wmm_last_param_set = count;
304 struct ieee80211_if_sta *ifsta)
311 if (!ifsta->assocreq_ies && !ifsta->assocresp_ies)
314 buf = kmalloc(50 + 2 * (ifsta->assocreq_ies_len +
315 ifsta->assocresp_ies_len), GFP_ATOMIC);
320 if (ifsta->assocreq_ies) {
322 for (i = 0; i < ifsta->assocreq_ies_len; i++) {
324 ifsta->assocreq_ies[i]);
327 if (ifsta->assocresp_ies) {
328 if (ifsta->assocreq_ies)
331 for (i = 0; i < ifsta->assocresp_ies_len; i++) {
333 ifsta->assocresp_ies[i]);
340 for (i = 0; i < ifsta->assocresp_ies_len; i++) {
342 ifsta->assocresp_ies[i]);
355 struct ieee80211_if_sta *ifsta, int assoc)
359 if (ifsta->associated == assoc)
362 ifsta->associated = assoc;
370 ifsta->prev_bssid_set = 1;
371 memcpy(ifsta->prev_bssid, sdata->u.sta.bssid, ETH_ALEN);
373 ieee80211_sta_send_associnfo(dev, ifsta);
380 ifsta->last_probe = jiffies;
384 struct ieee80211_if_sta *ifsta, int deauth)
387 ifsta->auth_tries = 0;
388 ifsta->assoc_tries = 0;
389 ieee80211_set_associated(dev, ifsta, 0);
415 struct ieee80211_if_sta *ifsta,
438 memcpy(mgmt->da, ifsta->bssid, ETH_ALEN);
440 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
441 mgmt->u.auth.auth_alg = cpu_to_le16(ifsta->auth_alg);
443 ifsta->auth_transaction = transaction + 1;
453 struct ieee80211_if_sta *ifsta)
455 ifsta->auth_tries++;
456 if (ifsta->auth_tries > IEEE80211_AUTH_MAX_TRIES) {
459 dev->name, MAC_ARG(ifsta->bssid));
460 ifsta->state = IEEE80211_DISABLED;
464 ifsta->state = IEEE80211_AUTHENTICATE;
466 dev->name, MAC_ARG(ifsta->bssid));
468 ieee80211_send_auth(dev, ifsta, 1, NULL, 0, 0);
470 mod_timer(&ifsta->timer, jiffies + IEEE80211_AUTH_TIMEOUT);
475 struct ieee80211_if_sta *ifsta)
488 sizeof(*mgmt) + 200 + ifsta->extra_ie_len +
489 ifsta->ssid_len);
498 capab = ifsta->capab;
503 bss = ieee80211_rx_bss_get(dev, ifsta->bssid);
515 memcpy(mgmt->da, ifsta->bssid, ETH_ALEN);
517 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
519 if (ifsta->prev_bssid_set) {
525 memcpy(mgmt->u.reassoc_req.current_ap, ifsta->prev_bssid,
536 ies = pos = skb_put(skb, 2 + ifsta->ssid_len);
538 *pos++ = ifsta->ssid_len;
539 memcpy(pos, ifsta->ssid, ifsta->ssid_len);
566 if (ifsta->extra_ie) {
567 pos = skb_put(skb, ifsta->extra_ie_len);
568 memcpy(pos, ifsta->extra_ie, ifsta->extra_ie_len);
571 if (wmm && ifsta->wmm_enabled) {
584 kfree(ifsta->assocreq_ies);
585 ifsta->assocreq_ies_len = (skb->data + skb->len) - ies;
586 ifsta->assocreq_ies = kmalloc(ifsta->assocreq_ies_len, GFP_ATOMIC);
587 if (ifsta->assocreq_ies)
588 memcpy(ifsta->assocreq_ies, ies, ifsta->assocreq_ies_len);
595 struct ieee80211_if_sta *ifsta, u16 reason)
611 memcpy(mgmt->da, ifsta->bssid, ETH_ALEN);
613 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
624 struct ieee80211_if_sta *ifsta, u16 reason)
640 memcpy(mgmt->da, ifsta->bssid, ETH_ALEN);
642 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
653 struct ieee80211_if_sta *ifsta)
658 if (!ifsta || ifsta->mixed_cell ||
659 ifsta->key_mgmt != IEEE80211_KEY_MGMT_NONE)
662 bss = ieee80211_rx_bss_get(dev, ifsta->bssid);
677 struct ieee80211_if_sta *ifsta)
679 ifsta->assoc_tries++;
680 if (ifsta->assoc_tries > IEEE80211_ASSOC_MAX_TRIES) {
683 dev->name, MAC_ARG(ifsta->bssid));
684 ifsta->state = IEEE80211_DISABLED;
688 ifsta->state = IEEE80211_ASSOCIATE;
690 dev->name, MAC_ARG(ifsta->bssid));
691 if (ieee80211_privacy_mismatch(dev, ifsta)) {
694 ifsta->state = IEEE80211_DISABLED;
698 ieee80211_send_assoc(dev, ifsta);
700 mod_timer(&ifsta->timer, jiffies + IEEE80211_ASSOC_TIMEOUT);
705 struct ieee80211_if_sta *ifsta)
716 ifsta->state = IEEE80211_ASSOCIATED;
718 sta = sta_info_get(local, ifsta->bssid);
721 dev->name, MAC_ARG(ifsta->bssid));
727 if (ifsta->probereq_poll) {
731 dev->name, MAC_ARG(ifsta->bssid));
734 ifsta->probereq_poll = 0;
736 ieee80211_send_probe_req(dev, ifsta->bssid,
739 ifsta->probereq_poll = 1;
742 ifsta->probereq_poll = 0;
743 if (time_after(jiffies, ifsta->last_probe +
745 ifsta->last_probe = jiffies;
746 ieee80211_send_probe_req(dev, ifsta->bssid,
747 ifsta->ssid,
748 ifsta->ssid_len);
758 mod_timer(&ifsta->timer, jiffies +
761 mod_timer(&ifsta->timer, jiffies +
843 struct ieee80211_if_sta *ifsta)
846 ifsta->authenticated = 1;
847 ieee80211_associate(dev, ifsta);
852 struct ieee80211_if_sta *ifsta,
872 ieee80211_send_auth(dev, ifsta, 3, elems.challenge - 2,
878 struct ieee80211_if_sta *ifsta,
885 if (ifsta->state != IEEE80211_AUTHENTICATE &&
901 memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) {
910 memcmp(ifsta->bssid, mgmt->bssid, ETH_ALEN) != 0) {
939 ieee80211_send_auth(dev, ifsta, 2, NULL, 0, 0);
942 if (auth_alg != ifsta->auth_alg ||
943 auth_transaction != ifsta->auth_transaction) {
952 "code=%d)\n", dev->name, ifsta->auth_alg, status_code);
958 if (ifsta->auth_algs & IEEE80211_AUTH_ALG_OPEN)
960 if (ifsta->auth_algs & IEEE80211_AUTH_ALG_SHARED_KEY)
962 if (ifsta->auth_algs & IEEE80211_AUTH_ALG_LEAP)
964 if (ifsta->auth_alg == WLAN_AUTH_OPEN)
966 else if (ifsta->auth_alg == WLAN_AUTH_SHARED_KEY)
974 if (algs[pos] == ifsta->auth_alg ||
980 ifsta->auth_alg = algs[pos];
983 dev->name, ifsta->auth_alg);
990 switch (ifsta->auth_alg) {
993 ieee80211_auth_completed(dev, ifsta);
996 if (ifsta->auth_transaction == 4)
997 ieee80211_auth_completed(dev, ifsta);
999 ieee80211_auth_challenge(dev, ifsta, mgmt, len);
1006 struct ieee80211_if_sta *ifsta,
1019 if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) {
1033 if (ifsta->authenticated) {
1037 if (ifsta->state == IEEE80211_AUTHENTICATE ||
1038 ifsta->state == IEEE80211_ASSOCIATE ||
1039 ifsta->state == IEEE80211_ASSOCIATED) {
1040 ifsta->state = IEEE80211_AUTHENTICATE;
1041 mod_timer(&ifsta->timer, jiffies +
1045 ieee80211_set_disassoc(dev, ifsta, 1);
1046 ifsta->authenticated = 0;
1051 struct ieee80211_if_sta *ifsta,
1064 if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) {
1078 if (ifsta->associated)
1081 if (ifsta->state == IEEE80211_ASSOCIATED) {
1082 ifsta->state = IEEE80211_ASSOCIATE;
1083 mod_timer(&ifsta->timer, jiffies +
1087 ieee80211_set_disassoc(dev, ifsta, 0);
1092 struct ieee80211_if_sta *ifsta,
1109 if (ifsta->state != IEEE80211_ASSOCIATE) {
1123 if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) {
1148 ifsta->prev_bssid_set = 0;
1167 ifsta->aid = aid;
1168 ifsta->ap_capab = capab_info;
1170 kfree(ifsta->assocresp_ies);
1171 ifsta->assocresp_ies_len = len - (pos - (u8 *) mgmt);
1172 ifsta->assocresp_ies = kmalloc(ifsta->assocresp_ies_len, GFP_ATOMIC);
1173 if (ifsta->assocresp_ies)
1174 memcpy(ifsta->assocresp_ies, pos, ifsta->assocresp_ies_len);
1176 ieee80211_set_associated(dev, ifsta, 1);
1179 sta = sta_info_get(local, ifsta->bssid);
1182 sta = sta_info_add(local, dev, ifsta->bssid, GFP_ATOMIC);
1188 bss = ieee80211_rx_bss_get(dev, ifsta->bssid);
1223 if (elems.wmm_param && ifsta->wmm_enabled) {
1225 ieee80211_sta_wmm_params(dev, ifsta, elems.wmm_param,
1232 ieee80211_associated(dev, ifsta);
1594 struct ieee80211_if_sta *ifsta;
1604 ifsta = &sdata->u.sta;
1606 if (!ifsta->associated ||
1607 memcmp(ifsta->bssid, mgmt->bssid, ETH_ALEN) != 0)
1625 if (use_protection != !!ifsta->use_protection) {
1631 MAC_ARG(ifsta->bssid));
1633 ifsta->use_protection = use_protection ? 1 : 0;
1637 if (elems.wmm_param && ifsta->wmm_enabled) {
1638 ieee80211_sta_wmm_params(dev, ifsta, elems.wmm_param,
1645 struct ieee80211_if_sta *ifsta,
1658 ifsta->state != IEEE80211_IBSS_JOINED ||
1659 len < 24 + 2 || !ifsta->probe_resp)
1677 if (memcmp(mgmt->bssid, ifsta->bssid, ETH_ALEN) != 0 &&
1693 (pos[1] != ifsta->ssid_len ||
1694 memcmp(pos + 2, ifsta->ssid, ifsta->ssid_len) != 0)) {
1700 skb = skb_copy(ifsta->probe_resp, GFP_ATOMIC);
1719 struct ieee80211_if_sta *ifsta;
1727 ifsta = &sdata->u.sta;
1742 skb_queue_tail(&ifsta->skb_queue, skb);
1743 queue_work(local->hw.workqueue, &ifsta->work);
1762 struct ieee80211_if_sta *ifsta;
1767 ifsta = &sdata->u.sta;
1775 ieee80211_rx_mgmt_probe_req(dev, ifsta, mgmt, skb->len,
1785 ieee80211_rx_mgmt_auth(dev, ifsta, mgmt, skb->len);
1788 ieee80211_rx_mgmt_assoc_resp(dev, ifsta, mgmt, skb->len, 0);
1791 ieee80211_rx_mgmt_assoc_resp(dev, ifsta, mgmt, skb->len, 1);
1794 ieee80211_rx_mgmt_deauth(dev, ifsta, mgmt, skb->len);
1797 ieee80211_rx_mgmt_disassoc(dev, ifsta, mgmt, skb->len);
1872 struct ieee80211_if_sta *ifsta)
1874 mod_timer(&ifsta->timer, jiffies + IEEE80211_IBSS_MERGE_INTERVAL);
1882 ieee80211_sta_req_scan(dev, ifsta->ssid, ifsta->ssid_len);
1890 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
1893 set_bit(IEEE80211_STA_REQ_RUN, &ifsta->request);
1894 queue_work(local->hw.workqueue, &ifsta->work);
1904 struct ieee80211_if_sta *ifsta;
1919 ifsta = &sdata->u.sta;
1921 while ((skb = skb_dequeue(&ifsta->skb_queue)))
1924 if (ifsta->state != IEEE80211_AUTHENTICATE &&
1925 ifsta->state != IEEE80211_ASSOCIATE &&
1926 test_and_clear_bit(IEEE80211_STA_REQ_SCAN, &ifsta->request)) {
1931 if (test_and_clear_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request)) {
1932 if (ieee80211_sta_config_auth(dev, ifsta))
1934 clear_bit(IEEE80211_STA_REQ_RUN, &ifsta->request);
1935 } else if (!test_and_clear_bit(IEEE80211_STA_REQ_RUN, &ifsta->request))
1938 switch (ifsta->state) {
1942 ieee80211_authenticate(dev, ifsta);
1945 ieee80211_associate(dev, ifsta);
1948 ieee80211_associated(dev, ifsta);
1951 ieee80211_sta_find_ibss(dev, ifsta);
1954 ieee80211_sta_merge_ibss(dev, ifsta);
1958 ifsta->state);
1962 if (ieee80211_privacy_mismatch(dev, ifsta)) {
1966 ieee80211_send_disassoc(dev, ifsta, WLAN_REASON_UNSPECIFIED);
1967 ieee80211_set_disassoc(dev, ifsta, 0);
1973 struct ieee80211_if_sta *ifsta)
1982 ifsta->wmm_last_param_set = -1; /* allow any WMM update */
1985 if (ifsta->auth_algs & IEEE80211_AUTH_ALG_OPEN)
1986 ifsta->auth_alg = WLAN_AUTH_OPEN;
1987 else if (ifsta->auth_algs & IEEE80211_AUTH_ALG_SHARED_KEY)
1988 ifsta->auth_alg = WLAN_AUTH_SHARED_KEY;
1989 else if (ifsta->auth_algs & IEEE80211_AUTH_ALG_LEAP)
1990 ifsta->auth_alg = WLAN_AUTH_LEAP;
1992 ifsta->auth_alg = WLAN_AUTH_OPEN;
1994 ifsta->auth_alg);
1995 ifsta->auth_transaction = -1;
1996 ifsta->associated = ifsta->auth_tries = ifsta->assoc_tries = 0;
2002 struct ieee80211_if_sta *ifsta)
2010 if ((ifsta->bssid_set || ifsta->auto_bssid_sel) &&
2011 (ifsta->ssid_set || ifsta->auto_ssid_sel)) {
2012 set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request);
2013 queue_work(local->hw.workqueue, &ifsta->work);
2017 static int ieee80211_sta_match_ssid(struct ieee80211_if_sta *ifsta,
2022 if (!memcmp(ifsta->ssid, ssid, ssid_len))
2025 if (ifsta->auto_bssid_sel)
2037 if (hidden_ssid && ifsta->ssid_len == ssid_len)
2047 struct ieee80211_if_sta *ifsta)
2056 if (!ifsta->auto_channel_sel && !ifsta->auto_bssid_sel &&
2057 !ifsta->auto_ssid_sel) {
2058 ifsta->state = IEEE80211_AUTHENTICATE;
2060 ieee80211_sta_reset_auth(dev, ifsta);
2074 if (!ifsta->auto_channel_sel && bss->freq != freq)
2077 if (!ifsta->auto_bssid_sel &&
2078 memcmp(bss->bssid, ifsta->bssid, ETH_ALEN))
2081 if (!ifsta->auto_ssid_sel &&
2082 !ieee80211_sta_match_ssid(ifsta, bss->ssid, bss->ssid_len))
2096 if (!ifsta->ssid_set)
2101 ifsta->state = IEEE80211_AUTHENTICATE;
2103 ieee80211_sta_reset_auth(dev, ifsta);
2106 if (ifsta->state != IEEE80211_AUTHENTICATE) {
2108 ifsta->state = IEEE80211_AUTHENTICATE;
2109 set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request);
2111 ifsta->state = IEEE80211_DISABLED;
2118 struct ieee80211_if_sta *ifsta,
2139 memcpy(ifsta->bssid, bss->bssid, ETH_ALEN);
2174 memcpy(mgmt->bssid, ifsta->bssid, ETH_ALEN);
2179 pos = skb_put(skb, 2 + ifsta->ssid_len);
2181 *pos++ = ifsta->ssid_len;
2182 memcpy(pos, ifsta->ssid, ifsta->ssid_len);
2229 ifsta->probe_resp = skb_copy(skb, GFP_ATOMIC);
2230 if (ifsta->probe_resp) {
2232 ifsta->probe_resp->data;
2259 ifsta->supp_rates_bits = rates;
2268 ifsta->state = IEEE80211_IBSS_JOINED;
2269 mod_timer(&ifsta->timer, jiffies + IEEE80211_IBSS_MERGE_INTERVAL);
2278 struct ieee80211_if_sta *ifsta)
2327 return ieee80211_sta_join_ibss(dev, ifsta, bss);
2332 struct ieee80211_if_sta *ifsta)
2340 if (ifsta->ssid_len == 0)
2350 if (ifsta->ssid_len != bss->ssid_len ||
2351 memcmp(ifsta->ssid, bss->ssid, bss->ssid_len) != 0
2360 if (active_ibss || memcmp(bssid, ifsta->bssid, ETH_ALEN) != 0)
2367 MAC_FMT "\n", MAC_ARG(bssid), MAC_ARG(ifsta->bssid));
2369 if (found && memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0 &&
2374 return ieee80211_sta_join_ibss(dev, ifsta, bss);
2381 if (ifsta->state == IEEE80211_IBSS_JOINED &&
2383 mod_timer(&ifsta->timer, jiffies +
2389 return ieee80211_sta_req_scan(dev, ifsta->ssid,
2390 ifsta->ssid_len);
2391 } else if (ifsta->state != IEEE80211_IBSS_JOINED) {
2394 if (time_after(jiffies, ifsta->ibss_join_req +
2396 if (ifsta->create_ibss &&
2398 return ieee80211_sta_create_ibss(dev, ifsta);
2399 if (ifsta->create_ibss) {
2411 ifsta->state = IEEE80211_IBSS_SEARCH;
2412 mod_timer(&ifsta->timer, jiffies + interval);
2423 struct ieee80211_if_sta *ifsta;
2457 ifsta = &sdata->u.sta;
2459 if (ifsta->ssid_len != len || memcmp(ifsta->ssid, ssid, len) != 0)
2460 ifsta->prev_bssid_set = 0;
2461 memcpy(ifsta->ssid, ssid, len);
2462 memset(ifsta->ssid + len, 0, IEEE80211_MAX_SSID_LEN - len);
2463 ifsta->ssid_len = len;
2465 ifsta->ssid_set = len ? 1 : 0;
2466 if (sdata->type == IEEE80211_IF_TYPE_IBSS && !ifsta->bssid_set) {
2467 ifsta->ibss_join_req = jiffies;
2468 ifsta->state = IEEE80211_IBSS_SEARCH;
2469 return ieee80211_sta_find_ibss(dev, ifsta);
2478 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
2479 memcpy(ssid, ifsta->ssid, ifsta->ssid_len);
2480 *len = ifsta->ssid_len;
2488 struct ieee80211_if_sta *ifsta;
2492 ifsta = &sdata->u.sta;
2494 if (memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0) {
2495 memcpy(ifsta->bssid, bssid, ETH_ALEN);
2505 ifsta->bssid_set = 0;
2507 ifsta->bssid_set = 1;
2585 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
2586 if (!ifsta->bssid_set ||
2587 (!ifsta->state == IEEE80211_IBSS_JOINED &&
2589 ieee80211_sta_find_ibss(dev, ifsta);
2757 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
2769 set_bit(IEEE80211_STA_REQ_SCAN, &ifsta->request);
2770 queue_work(local->hw.workqueue, &ifsta->work);
2957 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
2958 kfree(ifsta->extra_ie);
2960 ifsta->extra_ie = NULL;
2961 ifsta->extra_ie_len = 0;
2964 ifsta->extra_ie = kmalloc(len, GFP_KERNEL);
2965 if (!ifsta->extra_ie) {
2966 ifsta->extra_ie_len = 0;
2969 memcpy(ifsta->extra_ie, ie, len);
2970 ifsta->extra_ie_len = len;
3011 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
3020 ieee80211_send_deauth(dev, ifsta, reason);
3021 ieee80211_set_disassoc(dev, ifsta, 1);
3029 struct ieee80211_if_sta *ifsta = &sdata->u.sta;
3037 if (!ifsta->associated)
3040 ieee80211_send_disassoc(dev, ifsta, reason);
3041 ieee80211_set_disassoc(dev, ifsta, 0);