Lines Matching refs:vap

64 null_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k,
67 if (!(&vap->iv_nw_keys[0] <= k &&
68 k < &vap->iv_nw_keys[IEEE80211_WEP_NKID])) {
83 *keyix = ieee80211_crypto_get_key_wepidx(vap, k);
89 null_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k)
94 null_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k)
98 static void null_key_update(struct ieee80211vap *vap) {}
110 cipher_attach(struct ieee80211vap *vap, struct ieee80211_key *key)
112 return key->wk_cipher->ic_attach(vap, key);
119 dev_key_alloc(struct ieee80211vap *vap,
123 return vap->iv_key_alloc(vap, key, keyix, rxkeyix);
127 dev_key_delete(struct ieee80211vap *vap,
130 return vap->iv_key_delete(vap, key);
134 dev_key_set(struct ieee80211vap *vap, const struct ieee80211_key *key)
136 return vap->iv_key_set(vap, key);
158 * Setup crypto support for a vap.
161 ieee80211_crypto_vattach(struct ieee80211vap *vap)
166 vap->iv_max_keyix = IEEE80211_WEP_NKID;
167 vap->iv_def_txkey = IEEE80211_KEYIX_NONE;
169 ieee80211_crypto_resetkey(vap, &vap->iv_nw_keys[i],
175 vap->iv_key_alloc = null_key_alloc;
176 vap->iv_key_set = null_key_set;
177 vap->iv_key_delete = null_key_delete;
178 vap->iv_key_update_begin = null_key_update;
179 vap->iv_key_update_end = null_key_update;
183 * Teardown crypto support for a vap.
186 ieee80211_crypto_vdetach(struct ieee80211vap *vap)
188 ieee80211_crypto_delglobalkeys(vap);
260 * ieee80211_key_update_begin(vap);
261 * ieee80211_key_update_end(vap);
264 ieee80211_crypto_newkey(struct ieee80211vap *vap,
267 struct ieee80211com *ic = vap->iv_ic;
273 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
281 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
283 vap->iv_stats.is_crypto_badcipher++;
294 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
305 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
308 vap->iv_stats.is_crypto_nocipher++;
322 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
334 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
354 keyctx = cip->ic_attach(vap, key);
356 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
360 vap->iv_stats.is_crypto_attachfail++;
377 if (!dev_key_alloc(vap, key, &keyix, &rxkeyix)) {
381 vap->iv_stats.is_crypto_keyfail++;
382 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
394 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
398 keyctx = cip->ic_attach(vap, key);
400 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
405 vap->iv_stats.is_crypto_attachfail++;
423 _ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key)
427 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
439 if (!dev_key_delete(vap, key)) {
440 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
443 vap->iv_stats.is_crypto_delkey++;
449 ieee80211_crypto_resetkey(vap, key, IEEE80211_KEYIX_NONE);
457 ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key)
461 ieee80211_key_update_begin(vap);
462 status = _ieee80211_crypto_delkey(vap, key);
463 ieee80211_key_update_end(vap);
471 ieee80211_crypto_delglobalkeys(struct ieee80211vap *vap)
475 ieee80211_key_update_begin(vap);
477 (void) _ieee80211_crypto_delkey(vap, &vap->iv_nw_keys[i]);
478 ieee80211_key_update_end(vap);
485 * ieee80211_key_update_begin(vap);
486 * ieee80211_key_update_end(vap);
489 ieee80211_crypto_setkey(struct ieee80211vap *vap, struct ieee80211_key *key)
495 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
504 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
507 vap->iv_stats.is_crypto_setkey_nokey++;
515 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO,
519 vap->iv_stats.is_crypto_setkey_cipher++;
522 return dev_key_set(vap, key);
532 ieee80211_crypto_get_key_wepidx(const struct ieee80211vap *vap,
536 if (k >= &vap->iv_nw_keys[0] &&
537 k < &vap->iv_nw_keys[IEEE80211_WEP_NKID])
538 return (k - vap->iv_nw_keys);
546 ieee80211_crypto_get_keyid(struct ieee80211vap *vap, struct ieee80211_key *k)
548 if (k >= &vap->iv_nw_keys[0] &&
549 k < &vap->iv_nw_keys[IEEE80211_WEP_NKID])
550 return (k - vap->iv_nw_keys);
558 struct ieee80211vap *vap = ni->ni_vap;
570 if (vap->iv_def_txkey == IEEE80211_KEYIX_NONE) {
571 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO,
574 __func__, vap->iv_def_txkey);
575 vap->iv_stats.is_tx_nodefkey++;
578 return &vap->iv_nw_keys[vap->iv_def_txkey];
613 struct ieee80211vap *vap = ni->ni_vap;
642 IEEE80211_DPRINTF(vap, IEEE80211_MSG_ANY,
645 vap->iv_stats.is_rx_tooshort++; /* XXX need unique stat? */
660 k = &vap->iv_nw_keys[keyid >> 6];
670 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr2,
673 vap->iv_stats.is_rx_tooshort++;
701 ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k,
724 ieee80211_notify_michael_failure(vap, wh, -1);
753 struct ieee80211vap *vap = ni->ni_vap;
756 if (vap->iv_state != IEEE80211_S_RUN)
760 dev_key_set(vap, k);
771 struct ieee80211vap *vap;
775 * Keys in the global key table of each vap.
778 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
779 if (vap->iv_state != IEEE80211_S_RUN)
782 const struct ieee80211_key *k = &vap->iv_nw_keys[i];
784 dev_key_set(vap, k);
800 ieee80211_crypto_set_deftxkey(struct ieee80211vap *vap, ieee80211_keyix kid)
805 vap->iv_update_deftxkey(vap, kid);