Lines Matching refs:ni

58  * Send an EAPOL-Key frame to node `ni'.  If MIC or encryption is required,
63 struct ieee80211_node *ni, const struct ieee80211_ptk *ptk)
78 IEEE80211_ADDR_COPY(eh->ether_dhost, ni->ni_macaddr);
83 key->desc = (ni->ni_rsnprotos == IEEE80211_PROTO_RSN) ?
88 if (ieee80211_is_sha256_akm(ni->ni_rsnakms))
91 else if (ni->ni_rsncipher == IEEE80211_CIPHER_CCMP ||
92 ni->ni_rsngroupcipher == IEEE80211_CIPHER_CCMP)
104 if (ni->ni_rsnprotos == IEEE80211_PROTO_WPA) {
124 timeout_add_msec(&ni->ni_eapol_to, 100);
141 struct ieee80211_node *ni = arg;
142 struct ieee80211com *ic = ni->ni_ic;
146 ether_sprintf(ni->ni_macaddr), ni->ni_rsn_state));
150 switch (ni->ni_rsn_state) {
153 (void)ieee80211_send_4way_msg1(ic, ni);
156 (void)ieee80211_send_4way_msg3(ic, ni);
160 switch (ni->ni_rsn_gstate) {
162 (void)ieee80211_send_group_msg1(ic, ni);
173 ieee80211_add_gtk_kde(u_int8_t *frm, struct ieee80211_node *ni,
187 if (ni->ni_rsncipher == IEEE80211_CIPHER_USEGROUP)
256 ieee80211_send_4way_msg1(struct ieee80211com *ic, struct ieee80211_node *ni)
263 ni->ni_rsn_state = RSNA_PTKSTART;
264 if (++ni->ni_rsn_retries > 3) {
265 IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_DEAUTH,
267 ieee80211_node_leave(ic, ni);
271 (ni->ni_rsnprotos == IEEE80211_PROTO_RSN) ? 2 + 20 : 0);
281 memcpy(key->nonce, ni->ni_nonce, EAPOL_KEY_NONCE_LEN);
283 keylen = ieee80211_cipher_keylen(ni->ni_rsncipher);
288 if (ni->ni_rsnprotos == IEEE80211_PROTO_RSN &&
289 ieee80211_is_8021x_akm(ni->ni_rsnakms))
290 frm = ieee80211_add_pmkid_kde(frm, ni->ni_pmkid);
297 ether_sprintf(ni->ni_macaddr));
299 ni->ni_replaycnt++;
300 BE_WRITE_8(key->replaycnt, ni->ni_replaycnt);
302 return ieee80211_send_eapol_key(ic, m, ni, NULL);
310 ieee80211_send_4way_msg2(struct ieee80211com *ic, struct ieee80211_node *ni,
318 ni->ni_rsn_supp_state = RSNA_SUPP_PTKNEGOTIATING;
320 (ni->ni_rsnprotos == IEEE80211_PROTO_WPA) ?
339 if (ni->ni_rsnprotos == IEEE80211_PROTO_WPA) {
341 frm = ieee80211_add_wpa(frm, ic, ni);
343 keylen = ieee80211_cipher_keylen(ni->ni_rsncipher);
346 frm = ieee80211_add_rsn(frm, ic, ni);
353 ether_sprintf(ni->ni_macaddr));
355 return ieee80211_send_eapol_key(ic, m, ni, tptk);
363 ieee80211_send_4way_msg3(struct ieee80211com *ic, struct ieee80211_node *ni)
371 ni->ni_rsn_state = RSNA_PTKINITNEGOTIATING;
372 if (++ni->ni_rsn_retries > 3) {
373 IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_DEAUTH,
375 ieee80211_node_leave(ic, ni);
378 if (ni->ni_rsnprotos == IEEE80211_PROTO_RSN) {
382 ((ni->ni_flags & IEEE80211_NODE_MFP) ? 2 + 28 : 0));
386 ((ni->ni_flags & IEEE80211_NODE_MFP) ? 2 + 28 : 0));
394 if (ni->ni_rsncipher != IEEE80211_CIPHER_USEGROUP)
398 memcpy(key->nonce, ni->ni_nonce, EAPOL_KEY_NONCE_LEN);
400 ni->ni_replaycnt++;
401 BE_WRITE_8(key->replaycnt, ni->ni_replaycnt);
403 keylen = ieee80211_cipher_keylen(ni->ni_rsncipher);
408 if (ni->ni_rsnprotos == IEEE80211_PROTO_RSN) {
411 frm = ieee80211_add_gtk_kde(frm, ni, k);
414 if (ni->ni_flags & IEEE80211_NODE_MFP) {
431 ether_sprintf(ni->ni_macaddr));
433 return ieee80211_send_eapol_key(ic, m, ni, &ni->ni_ptk);
441 ieee80211_send_4way_msg4(struct ieee80211com *ic, struct ieee80211_node *ni)
447 ni->ni_rsn_supp_state = RSNA_SUPP_PTKDONE;
457 BE_WRITE_8(key->replaycnt, ni->ni_replaycnt);
459 if (ni->ni_rsnprotos == IEEE80211_PROTO_WPA) {
462 keylen = ieee80211_cipher_keylen(ni->ni_rsncipher);
476 ether_sprintf(ni->ni_macaddr));
478 return ieee80211_send_eapol_key(ic, m, ni, &ni->ni_ptk);
486 ieee80211_send_group_msg1(struct ieee80211com *ic, struct ieee80211_node *ni)
495 ni->ni_rsn_gstate = RSNA_REKEYNEGOTIATING;
496 if (++ni->ni_rsn_retries > 3) {
497 IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_DEAUTH,
499 ieee80211_node_leave(ic, ni);
502 if (ni->ni_flags & IEEE80211_NODE_REKEY)
509 ((ni->ni_rsnprotos == IEEE80211_PROTO_WPA) ?
511 ((ni->ni_flags & IEEE80211_NODE_MFP) ? 2 + 28 : 0) +
521 ni->ni_replaycnt++;
522 BE_WRITE_8(key->replaycnt, ni->ni_replaycnt);
525 if (ni->ni_rsnprotos == IEEE80211_PROTO_WPA) {
531 if (ni->ni_rsncipher == IEEE80211_CIPHER_USEGROUP)
534 frm = ieee80211_add_gtk_kde(frm, ni, k);
535 if (ni->ni_flags & IEEE80211_NODE_MFP) {
536 if (ni->ni_flags & IEEE80211_NODE_REKEY)
555 ether_sprintf(ni->ni_macaddr));
557 return ieee80211_send_eapol_key(ic, m, ni, &ni->ni_ptk);
565 ieee80211_send_group_msg2(struct ieee80211com *ic, struct ieee80211_node *ni,
581 BE_WRITE_8(key->replaycnt, ni->ni_replaycnt);
583 if (ni->ni_rsnprotos == IEEE80211_PROTO_WPA) {
598 ether_sprintf(ni->ni_macaddr));
600 return ieee80211_send_eapol_key(ic, m, ni, &ni->ni_ptk);
610 struct ieee80211_node *ni, u_int16_t info, u_int64_t tsc)
629 BE_WRITE_8(key->replaycnt, ni->ni_reqreplaycnt);
630 ni->ni_reqreplaycnt++;
637 ic->ic_if.if_xname, ether_sprintf(ni->ni_macaddr));
639 return ieee80211_send_eapol_key(ic, m, ni, &ni->ni_ptk);