Lines Matching refs:vap

62 null_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k,
65 if (!(&vap->iv_nw_keys[0] <= k &&
66 k < &vap->iv_nw_keys[IEEE80211_WEP_NKID])) {
81 *keyix = k - vap->iv_nw_keys;
87 null_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k)
92 null_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k)
96 static void null_key_update(struct ieee80211vap *vap) {}
108 cipher_attach(struct ieee80211vap *vap, struct ieee80211_key *key)
110 return key->wk_cipher->ic_attach(vap, key);
117 dev_key_alloc(struct ieee80211vap *vap,
121 return vap->iv_key_alloc(vap, key, keyix, rxkeyix);
125 dev_key_delete(struct ieee80211vap *vap,
128 return vap->iv_key_delete(vap, key);
132 dev_key_set(struct ieee80211vap *vap, const struct ieee80211_key *key)
134 return vap->iv_key_set(vap, key);
156 * Setup crypto support for a vap.
159 ieee80211_crypto_vattach(struct ieee80211vap *vap)
164 vap->iv_max_keyix = IEEE80211_WEP_NKID;
165 vap->iv_def_txkey = IEEE80211_KEYIX_NONE;
167 ieee80211_crypto_resetkey(vap, &vap->iv_nw_keys[i],
173 vap->iv_key_alloc = null_key_alloc;
174 vap->iv_key_set = null_key_set;
175 vap->iv_key_delete = null_key_delete;
176 vap->iv_key_update_begin = null_key_update;
177 vap->iv_key_update_end = null_key_update;
181 * Teardown crypto support for a vap.
184 ieee80211_crypto_vdetach(struct ieee80211vap *vap)
186 ieee80211_crypto_delglobalkeys(vap);
258 * ieee80211_key_update_begin(vap);
259 * ieee80211_key_update_end(vap);
262 ieee80211_crypto_newkey(struct ieee80211vap *vap,
265 struct ieee80211com *ic = vap->iv_ic;
271 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
279 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
281 vap->iv_stats.is_crypto_badcipher++;
292 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
303 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
306 vap->iv_stats.is_crypto_nocipher++;
320 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
332 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
352 keyctx = cip->ic_attach(vap, key);
354 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
358 vap->iv_stats.is_crypto_attachfail++;
375 if (!dev_key_alloc(vap, key, &keyix, &rxkeyix)) {
379 vap->iv_stats.is_crypto_keyfail++;
380 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
392 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
396 keyctx = cip->ic_attach(vap, key);
398 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
403 vap->iv_stats.is_crypto_attachfail++;
421 _ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key)
425 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
437 if (!dev_key_delete(vap, key)) {
438 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
441 vap->iv_stats.is_crypto_delkey++;
447 ieee80211_crypto_resetkey(vap, key, IEEE80211_KEYIX_NONE);
455 ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key)
459 ieee80211_key_update_begin(vap);
460 status = _ieee80211_crypto_delkey(vap, key);
461 ieee80211_key_update_end(vap);
469 ieee80211_crypto_delglobalkeys(struct ieee80211vap *vap)
473 ieee80211_key_update_begin(vap);
475 (void) _ieee80211_crypto_delkey(vap, &vap->iv_nw_keys[i]);
476 ieee80211_key_update_end(vap);
483 * ieee80211_key_update_begin(vap);
484 * ieee80211_key_update_end(vap);
487 ieee80211_crypto_setkey(struct ieee80211vap *vap, struct ieee80211_key *key)
493 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
502 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
505 vap->iv_stats.is_crypto_setkey_nokey++;
513 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
517 vap->iv_stats.is_crypto_setkey_cipher++;
520 return dev_key_set(vap, key);
524 ieee80211_crypto_get_keyid(struct ieee80211vap *vap, struct ieee80211_key *k)
526 if (k >= &vap->iv_nw_keys[0] &&
527 k < &vap->iv_nw_keys[IEEE80211_WEP_NKID])
528 return (k - vap->iv_nw_keys);
536 struct ieee80211vap *vap = ni->ni_vap;
548 if (vap->iv_def_txkey == IEEE80211_KEYIX_NONE) {
549 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO,
552 __func__, vap->iv_def_txkey);
553 vap->iv_stats.is_tx_nodefkey++;
556 return &vap->iv_nw_keys[vap->iv_def_txkey];
590 struct ieee80211vap *vap = ni->ni_vap;
598 IEEE80211_DPRINTF(vap, IEEE80211_MSG_ANY,
601 vap->iv_stats.is_rx_tooshort++; /* XXX need unique stat? */
615 k = &vap->iv_nw_keys[keyid >> 6];
625 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr2,
628 vap->iv_stats.is_rx_tooshort++;
640 struct ieee80211vap *vap = ni->ni_vap;
643 if (vap->iv_state != IEEE80211_S_RUN)
647 dev_key_set(vap, k);
658 struct ieee80211vap *vap;
662 * Keys in the global key table of each vap.
665 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
666 if (vap->iv_state != IEEE80211_S_RUN)
669 const struct ieee80211_key *k = &vap->iv_nw_keys[i];
671 dev_key_set(vap, k);