Lines Matching refs:ni

184 sta_authretry(struct ieee80211vap *vap, struct ieee80211_node *ni, int reason)  in sta_authretry()  argument
194 IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_AUTH, 1); in sta_authretry()
230 struct ieee80211_node *ni; in sta_newstate() local
243 ni = vap->iv_bss; /* NB: no reference held */ in sta_newstate()
253 IEEE80211_SEND_MGMT(ni, in sta_newstate()
256 ieee80211_sta_leave(ni); in sta_newstate()
259 IEEE80211_SEND_MGMT(ni, in sta_newstate()
329 ieee80211_sta_leave(ni); in sta_newstate()
341 IEEE80211_SEND_MGMT(ni, in sta_newstate()
349 IEEE80211_SEND_MGMT(ni, in sta_newstate()
353 sta_authretry(vap, ni, arg>>8); in sta_newstate()
361 IEEE80211_SEND_MGMT(ni, in sta_newstate()
366 ieee80211_sta_leave(ni); in sta_newstate()
369 IEEE80211_SEND_MGMT(ni, in sta_newstate()
383 IEEE80211_SEND_MGMT(ni, in sta_newstate()
388 ieee80211_sta_leave(ni); in sta_newstate()
390 IEEE80211_SEND_MGMT(ni, arg ? in sta_newstate()
414 ether_sprintf(ni->ni_bssid)); in sta_newstate()
416 ni->ni_esslen); in sta_newstate()
419 ieee80211_node_get_txrate_kbit(ni) / 1000); in sta_newstate()
422 ieee80211_scan_assoc_success(vap, ni->ni_macaddr); in sta_newstate()
423 ieee80211_notify_node_join(ni, in sta_newstate()
440 if (ni->ni_authmode != IEEE80211_AUTH_8021X) in sta_newstate()
441 ieee80211_node_authorize(ni); in sta_newstate()
532 sta_input(struct ieee80211_node *ni, struct mbuf *m, in sta_input() argument
535 struct ieee80211vap *vap = ni->ni_vap; in sta_input()
536 struct ieee80211com *ic = ni->ni_ic; in sta_input()
547 KASSERT(ni != NULL, ("%s: null node, mbuf %p", __func__, m)); in sta_input()
562 ni->ni_macaddr, NULL, in sta_input()
569 ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x", in sta_input()
599 ni->ni_inact = ni->ni_inact_reload; in sta_input()
613 if (!IEEE80211_ADDR_EQ(bssid, ni->ni_bssid)) { in sta_input()
644 IEEE80211_RSSI_LPF(ni->ni_avgrssi, rssi); in sta_input()
645 ni->ni_noise = nf; in sta_input()
652 if (! ieee80211_check_rxseq(ni, wh, bssid, rxs)) in sta_input()
663 ni->ni_macaddr, NULL, in sta_input()
677 ieee80211_ampdu_reorder(ni, m, rxs) != 0) { in sta_input()
769 IEEE80211_NODE_STAT(ni, rx_noprivacy); in sta_input()
772 if (ieee80211_crypto_decap(ni, m, hdrspace, &key) == 0) { in sta_input()
774 IEEE80211_NODE_STAT(ni, rx_wepfail); in sta_input()
797 m = ieee80211_defrag(ni, m, hdrspace, has_decrypted); in sta_input()
815 ni->ni_macaddr, "data", "%s", "demic error"); in sta_input()
817 IEEE80211_NODE_STAT(ni, rx_demicfail); in sta_input()
837 ni->ni_macaddr, "data", "%s", "decap error"); in sta_input()
839 IEEE80211_NODE_STAT(ni, rx_decap); in sta_input()
846 if (!ieee80211_node_is_authorized(ni)) { in sta_input()
858 ni->ni_macaddr, "data", "unauthorized or " in sta_input()
863 IEEE80211_NODE_STAT(ni, rx_unauth); in sta_input()
880 IEEE80211_NODE_STAT(ni, rx_unencrypted); in sta_input()
886 m = ieee80211_decap_amsdu(ni, m); in sta_input()
891 m = ieee80211_decap_fastframe(vap, ni, m); in sta_input()
896 ieee80211_deliver_data(vap, ni, m); in sta_input()
901 IEEE80211_NODE_STAT(ni, rx_mgmt); in sta_input()
910 ni->ni_macaddr, "mgt", "too short: len %u", in sta_input()
961 if (ieee80211_crypto_decap(ni, m, hdrspace, &key) == 0) { in sta_input()
969 vap->iv_recv_mgmt(ni, m, subtype, rxs, rssi, nf); in sta_input()
974 IEEE80211_NODE_STAT(ni, rx_ctrl); in sta_input()
975 if (ieee80211_is_ctl_frame_for_vap(ni, m)) in sta_input()
976 vap->iv_recv_ctl(ni, m, subtype); in sta_input()
997 sta_auth_open(struct ieee80211_node *ni, struct ieee80211_frame *wh, in sta_auth_open() argument
1000 struct ieee80211vap *vap = ni->ni_vap; in sta_auth_open()
1002 if (ni->ni_authmode == IEEE80211_AUTH_SHARED) { in sta_auth_open()
1004 ni->ni_macaddr, "open auth", in sta_auth_open()
1005 "bad sta auth mode %u", ni->ni_authmode); in sta_auth_open()
1016 ni, "open auth failed (reason %d)", status); in sta_auth_open()
1026 sta_auth_shared(struct ieee80211_node *ni, struct ieee80211_frame *wh, in sta_auth_shared() argument
1030 struct ieee80211vap *vap = ni->ni_vap; in sta_auth_shared()
1043 ni->ni_macaddr, "shared key auth", in sta_auth_shared()
1052 if (ni->ni_authmode != IEEE80211_AUTH_AUTO && in sta_auth_shared()
1053 ni->ni_authmode != IEEE80211_AUTH_SHARED) { in sta_auth_shared()
1055 ni->ni_macaddr, "shared key auth", in sta_auth_shared()
1056 "bad sta auth mode %u", ni->ni_authmode); in sta_auth_shared()
1065 ni->ni_macaddr, "shared key auth", in sta_auth_shared()
1080 ni->ni_macaddr, "shared key auth", in sta_auth_shared()
1087 ni->ni_macaddr, "shared key auth", in sta_auth_shared()
1099 if (ni->ni_challenge != NULL) { in sta_auth_shared()
1100 IEEE80211_FREE(ni->ni_challenge, M_80211_NODE); in sta_auth_shared()
1101 ni->ni_challenge = NULL; in sta_auth_shared()
1114 if (!ieee80211_alloc_challenge(ni)) in sta_auth_shared()
1117 memcpy(ni->ni_challenge, &challenge[2], challenge[1]); in sta_auth_shared()
1118 IEEE80211_SEND_MGMT(ni, in sta_auth_shared()
1146 struct ieee80211_node *ni) in ieee80211_parse_wmeie() argument
1150 ni->ni_uapsd = 0; in ieee80211_parse_wmeie()
1153 IEEE80211_DISCARD_IE(ni->ni_vap, in ieee80211_parse_wmeie()
1159 ni->ni_uapsd = frm[WME_CAPINFO_IE_OFFSET]; in ieee80211_parse_wmeie()
1161 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_POWER | IEEE80211_MSG_ASSOC, in ieee80211_parse_wmeie()
1162 ni, "U-APSD settings from STA: 0x%02x", ni->ni_uapsd); in ieee80211_parse_wmeie()
1392 sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, in sta_recv_mgmt() argument
1397 struct ieee80211vap *vap = ni->ni_vap; in sta_recv_mgmt()
1398 struct ieee80211com *ic = ni->ni_ic; in sta_recv_mgmt()
1423 if (!((ic->ic_flags & IEEE80211_F_SCAN) || ni->ni_associd)) { in sta_recv_mgmt()
1436 if (ieee80211_parse_beacon(ni, m0, rxchan, &scan) != 0) { in sta_recv_mgmt()
1447 IEEE80211_NODE_STAT(ni, rx_beacons); in sta_recv_mgmt()
1449 IEEE80211_NODE_STAT(ni, rx_proberesp); in sta_recv_mgmt()
1455 if (ni->ni_associd != 0 && in sta_recv_mgmt()
1457 IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_bssid))) { in sta_recv_mgmt()
1459 memcpy(ni->ni_tstamp.data, scan.tstamp, in sta_recv_mgmt()
1460 sizeof(ni->ni_tstamp)); in sta_recv_mgmt()
1464 if (ni->ni_erp != scan.erp) { in sta_recv_mgmt()
1468 ni->ni_erp, scan.erp); in sta_recv_mgmt()
1470 (ni->ni_erp & IEEE80211_ERP_USE_PROTECTION)) in sta_recv_mgmt()
1474 ni->ni_erp = scan.erp; in sta_recv_mgmt()
1479 if ((ni->ni_capinfo ^ scan.capinfo) & IEEE80211_CAPINFO_SHORT_SLOTTIME) { in sta_recv_mgmt()
1483 ni->ni_capinfo, scan.capinfo); in sta_recv_mgmt()
1491 ni->ni_capinfo = (ni->ni_capinfo &~ IEEE80211_CAPINFO_SHORT_SLOTTIME) in sta_recv_mgmt()
1496 (ni->ni_flags & IEEE80211_NODE_QOS)) { in sta_recv_mgmt()
1501 ni->ni_flags |= in sta_recv_mgmt()
1507 ni->ni_flags &= ~IEEE80211_NODE_UAPSD; in sta_recv_mgmt()
1510 ieee80211_parse_athparams(ni, scan.ath, wh); in sta_recv_mgmt()
1515 ieee80211_ht_updateparams(ni, in sta_recv_mgmt()
1522 ieee80211_vht_updateparams(ni, in sta_recv_mgmt()
1527 if (ieee80211_ht_updateparams_final(ni, in sta_recv_mgmt()
1541 ic->ic_set_quiet(ni, scan.quiet); in sta_recv_mgmt()
1542 ni->ni_quiet_ie_set = 1; in sta_recv_mgmt()
1543 memcpy(&ni->ni_quiet_ie, scan.quiet, in sta_recv_mgmt()
1546 if (ni->ni_quiet_ie_set == 1) in sta_recv_mgmt()
1547 ic->ic_set_quiet(ni, NULL); in sta_recv_mgmt()
1548 ni->ni_quiet_ie_set = 0; in sta_recv_mgmt()
1549 bzero(&ni->ni_quiet_ie, in sta_recv_mgmt()
1561 int aid = IEEE80211_AID(ni->ni_associd); in sta_recv_mgmt()
1616 ni->ni_dtim_count = tim->tim_count; in sta_recv_mgmt()
1617 ni->ni_dtim_period = tim->tim_period; in sta_recv_mgmt()
1722 ieee80211_send_error(ni, wh->i_addr2, in sta_recv_mgmt()
1729 sta_auth_shared(ni, wh, frm + 6, efrm, rssi, nf, in sta_recv_mgmt()
1732 sta_auth_open(ni, wh, rssi, nf, seq, status); in sta_recv_mgmt()
1764 ni = vap->iv_bss; in sta_recv_mgmt()
1828 rate = ieee80211_setup_rates(ni, rates, xrates, in sta_recv_mgmt()
1843 ni->ni_capinfo = capinfo; in sta_recv_mgmt()
1844 ni->ni_associd = associd; in sta_recv_mgmt()
1845 if (ni->ni_jointime == 0) in sta_recv_mgmt()
1846 ni->ni_jointime = time_uptime; in sta_recv_mgmt()
1849 ni->ni_flags |= IEEE80211_NODE_QOS; in sta_recv_mgmt()
1852 ni->ni_flags &= ~IEEE80211_NODE_QOS; in sta_recv_mgmt()
1862 ieee80211_ht_node_init(ni); in sta_recv_mgmt()
1863 ieee80211_ht_updateparams(ni, htcap, htinfo); in sta_recv_mgmt()
1871 if (IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) { in sta_recv_mgmt()
1874 __func__, ni->ni_macaddr, ":"); in sta_recv_mgmt()
1876 ieee80211_vht_node_init(ni); in sta_recv_mgmt()
1877 ieee80211_vht_updateparams(ni, vhtcap, vhtopmode); in sta_recv_mgmt()
1878 ieee80211_setup_vht_rates(ni); in sta_recv_mgmt()
1882 ieee80211_ht_updateparams_final(ni, htcap, htinfo); in sta_recv_mgmt()
1883 ieee80211_setup_htrates(ni, htcap, in sta_recv_mgmt()
1885 ieee80211_setup_basic_htrates(ni, htinfo); in sta_recv_mgmt()
1887 ieee80211_node_setuptxparms(ni); in sta_recv_mgmt()
1888 ieee80211_ratectl_node_init(ni); in sta_recv_mgmt()
1896 ieee80211_ff_node_init(ni); in sta_recv_mgmt()
1905 (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE)) { in sta_recv_mgmt()
1914 (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_SLOTTIME)); in sta_recv_mgmt()
1922 (ni->ni_erp & IEEE80211_ERP_USE_PROTECTION)) in sta_recv_mgmt()
1931 IEEE80211_NODE_AID(ni), in sta_recv_mgmt()
1935 ni->ni_flags & IEEE80211_NODE_QOS ? ", QoS" : "", in sta_recv_mgmt()
1936 ni->ni_flags & IEEE80211_NODE_HT ? in sta_recv_mgmt()
1937 (ni->ni_chw == IEEE80211_STA_RX_BW_40 ? ", HT40" : ", HT20") : "", in sta_recv_mgmt()
1938 ni->ni_flags & IEEE80211_NODE_AMPDU ? " (+AMPDU)" : "", in sta_recv_mgmt()
1939 ni->ni_flags & IEEE80211_NODE_AMSDU ? " (+AMSDU)" : "", in sta_recv_mgmt()
1940 ni->ni_flags & IEEE80211_NODE_MIMO_RTS ? " (+SMPS-DYN)" : in sta_recv_mgmt()
1941 ni->ni_flags & IEEE80211_NODE_MIMO_PS ? " (+SMPS)" : "", in sta_recv_mgmt()
1942 ni->ni_flags & IEEE80211_NODE_RIFS ? " (+RIFS)" : "", in sta_recv_mgmt()
1943 IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_FF) ? in sta_recv_mgmt()
1945 IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_TURBOP) ? in sta_recv_mgmt()
1974 IEEE80211_NODE_STAT(ni, rx_deauth); in sta_recv_mgmt()
1976 IEEE80211_NOTE(vap, IEEE80211_MSG_AUTH, ni, in sta_recv_mgmt()
2008 IEEE80211_NODE_STAT(ni, rx_disassoc); in sta_recv_mgmt()
2010 IEEE80211_NOTE(vap, IEEE80211_MSG_ASSOC, ni, in sta_recv_mgmt()
2030 if (ieee80211_parse_action(ni, m0) == 0) in sta_recv_mgmt()
2031 (void)ic->ic_recv_action(ni, wh, frm, efrm); in sta_recv_mgmt()
2055 sta_recv_ctl(struct ieee80211_node *ni, struct mbuf *m, int subtype) in sta_recv_ctl() argument
2060 ieee80211_recv_bar(ni, m); in sta_recv_ctl()