Lines Matching defs:vap

62 null_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k,
66 if (!ieee80211_is_key_global(vap, k)) {
81 *keyix = ieee80211_crypto_get_key_wepidx(vap, k);
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);
224 * Setup crypto support for a vap.
227 ieee80211_crypto_vattach(struct ieee80211vap *vap)
232 vap->iv_max_keyix = IEEE80211_WEP_NKID;
233 vap->iv_def_txkey = IEEE80211_KEYIX_NONE;
235 ieee80211_crypto_resetkey(vap, &vap->iv_nw_keys[i],
241 vap->iv_key_alloc = null_key_alloc;
242 vap->iv_key_set = null_key_set;
243 vap->iv_key_delete = null_key_delete;
244 vap->iv_key_update_begin = null_key_update;
245 vap->iv_key_update_end = null_key_update;
249 * Teardown crypto support for a vap.
252 ieee80211_crypto_vdetach(struct ieee80211vap *vap)
254 ieee80211_crypto_delglobalkeys(vap);
333 * ieee80211_key_update_begin(vap);
334 * ieee80211_key_update_end(vap);
337 ieee80211_crypto_newkey(struct ieee80211vap *vap,
340 struct ieee80211com *ic = vap->iv_ic;
346 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
354 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
356 vap->iv_stats.is_crypto_badcipher++;
367 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
378 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
381 vap->iv_stats.is_crypto_nocipher++;
395 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
407 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
427 keyctx = cip->ic_attach(vap, key);
429 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
433 vap->iv_stats.is_crypto_attachfail++;
450 if (!dev_key_alloc(vap, key, &keyix, &rxkeyix)) {
454 vap->iv_stats.is_crypto_keyfail++;
455 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
467 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
471 keyctx = cip->ic_attach(vap, key);
473 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
478 vap->iv_stats.is_crypto_attachfail++;
496 _ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key)
500 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
512 if (!dev_key_delete(vap, key)) {
513 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
516 vap->iv_stats.is_crypto_delkey++;
522 ieee80211_crypto_resetkey(vap, key, IEEE80211_KEYIX_NONE);
530 ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key)
534 ieee80211_key_update_begin(vap);
535 status = _ieee80211_crypto_delkey(vap, key);
536 ieee80211_key_update_end(vap);
544 ieee80211_crypto_delglobalkeys(struct ieee80211vap *vap)
548 ieee80211_key_update_begin(vap);
550 (void) _ieee80211_crypto_delkey(vap, &vap->iv_nw_keys[i]);
551 ieee80211_key_update_end(vap);
558 * ieee80211_key_update_begin(vap);
559 * ieee80211_key_update_end(vap);
562 ieee80211_crypto_setkey(struct ieee80211vap *vap, struct ieee80211_key *key)
568 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
577 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
580 vap->iv_stats.is_crypto_setkey_nokey++;
588 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
592 vap->iv_stats.is_crypto_setkey_cipher++;
595 return dev_key_set(vap, key);
605 ieee80211_crypto_get_key_wepidx(const struct ieee80211vap *vap,
609 if (ieee80211_is_key_global(vap, k)) {
610 return (k - vap->iv_nw_keys);
619 ieee80211_crypto_get_keyid(struct ieee80211vap *vap, struct ieee80211_key *k)
621 if (ieee80211_is_key_global(vap, k)) {
622 return (k - vap->iv_nw_keys);
631 struct ieee80211vap *vap = ni->ni_vap;
647 if (vap->iv_def_txkey == IEEE80211_KEYIX_NONE) {
648 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO,
651 __func__, vap->iv_def_txkey);
652 vap->iv_stats.is_tx_nodefkey++;
655 return &vap->iv_nw_keys[vap->iv_def_txkey];
692 struct ieee80211vap *vap = ni->ni_vap;
721 IEEE80211_DPRINTF(vap, IEEE80211_MSG_ANY,
724 vap->iv_stats.is_rx_tooshort++; /* XXX need unique stat? */
739 k = &vap->iv_nw_keys[keyid >> 6];
749 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr2,
752 vap->iv_stats.is_rx_tooshort++;
780 ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k,
803 ieee80211_notify_michael_failure(vap, wh, -1);
832 struct ieee80211vap *vap = ni->ni_vap;
835 if (vap->iv_state != IEEE80211_S_RUN)
839 dev_key_set(vap, k);
850 struct ieee80211vap *vap;
854 * Keys in the global key table of each vap.
857 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
858 if (vap->iv_state != IEEE80211_S_RUN)
861 const struct ieee80211_key *k = &vap->iv_nw_keys[i];
863 dev_key_set(vap, k);
879 ieee80211_crypto_set_deftxkey(struct ieee80211vap *vap, ieee80211_keyix kid)
884 vap->iv_update_deftxkey(vap, kid);