Lines Matching refs:ni

69 static	int wds_input(struct ieee80211_node *ni, struct mbuf *m,
105 wds_flush(struct ieee80211_node *ni)
107 struct ieee80211com *ic = ni->ni_ic;
112 (void *)(uintptr_t) ieee80211_mac_hash(ic, ni->ni_macaddr));
116 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_WDS, ni,
118 ic->ic_node_getsignal(ni, &rssi, &nf);
122 ieee80211_input(ni, m, rssi, nf);
131 struct ieee80211_node *ni, *obss;
153 ni = ieee80211_find_node_locked(&ic->ic_sta, vap->iv_des_bssid);
154 if (ni == NULL) {
165 } else if (ni->ni_wdsvap != NULL) {
176 ni->ni_wdsvap->iv_ifp->if_xname);
183 vap->iv_bss = ni;
184 ni->ni_wdsvap = vap;
202 ni = ieee80211_node_create_wds(vap, vap->iv_des_bssid, chan);
203 if (ni != NULL) {
205 vap->iv_bss = ieee80211_ref_node(ni);
206 ni->ni_flags |= IEEE80211_NODE_AREF;
211 ic->ic_newassoc(ni, 1);
214 vap->iv_auth->ia_node_join(ni);
215 if (ni->ni_authmode != IEEE80211_AUTH_8021X)
216 ieee80211_node_authorize(ni);
218 ieee80211_notify_node_join(ni, 1 /*newassoc*/);
226 if (ni != NULL)
227 wds_flush(ni);
228 return (ni == NULL ? ENOENT : 0);
240 struct ieee80211_node *ni;
268 ni = ieee80211_find_txnode(vap, eh->ether_dhost);
269 if (ni == NULL) {
276 if (ieee80211_classify(ni, mcopy)) {
284 ieee80211_free_node(ni);
294 mcopy = ieee80211_encap(vap, ni, mcopy);
298 ieee80211_free_node(ni);
302 mcopy->m_pkthdr.rcvif = (void *) ni;
323 ieee80211_dwds_discover(struct ieee80211_node *ni, struct mbuf *m)
325 struct ieee80211com *ic = ni->ni_ic;
336 ieee80211_mac_hash(ic, ni->ni_macaddr);
338 ((ni->ni_intval * ic->ic_lintval) << 2) / 1024);
339 ieee80211_notify_wds_discover(ni);
411 wds_input(struct ieee80211_node *ni, struct mbuf *m,
414 struct ieee80211vap *vap = ni->ni_vap;
415 struct ieee80211com *ic = ni->ni_ic;
450 KASSERT(ni != NULL, ("null node"));
456 ni->ni_macaddr, NULL,
470 ni->ni_inact = ni->ni_inact_reload;
475 ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x",
488 IEEE80211_MSG_ANY, ni->ni_macaddr, NULL,
502 IEEE80211_RSSI_LPF(ni->ni_avgrssi, rssi);
503 ni->ni_noise = nf;
509 if (! ieee80211_check_rxseq(ni, wh, wh->i_addr1, rxs))
518 ni->ni_macaddr, NULL,
545 ieee80211_ampdu_reorder(ni, m, rxs) != 0) {
567 IEEE80211_NODE_STAT(ni, rx_noprivacy);
570 if (ieee80211_crypto_decap(ni, m, hdrspace, &key) == 0) {
572 IEEE80211_NODE_STAT(ni, rx_wepfail);
595 m = ieee80211_defrag(ni, m, hdrspace);
608 ni->ni_macaddr, "data", "%s", "demic error");
610 IEEE80211_NODE_STAT(ni, rx_demicfail);
630 ni->ni_macaddr, "data", "%s", "decap error");
632 IEEE80211_NODE_STAT(ni, rx_decap);
636 if (!ieee80211_node_is_authorized(ni)) {
651 IEEE80211_NODE_STAT(ni, rx_unauth);
667 IEEE80211_NODE_STAT(ni, rx_unencrypted);
673 m = ieee80211_decap_amsdu(ni, m);
678 m = ieee80211_decap_fastframe(vap, ni, m);
683 ieee80211_deliver_data(vap, ni, m);
688 IEEE80211_NODE_STAT(ni, rx_mgmt);
697 ni->ni_macaddr, "mgt", "too short: len %u",
715 vap->iv_recv_mgmt(ni, m, subtype, rxs, rssi, nf);
720 IEEE80211_NODE_STAT(ni, rx_ctrl);
741 wds_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype,
744 struct ieee80211vap *vap = ni->ni_vap;
745 struct ieee80211com *ic = ni->ni_ic;
755 if (ni == vap->iv_bss) {
770 if (ieee80211_parse_action(ni, m0) == 0)
771 (void)ic->ic_recv_action(ni, wh, frm, efrm);