diff options
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 49 |
1 files changed, 15 insertions, 34 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index fcb7e3f9c669..9137579c12a4 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -240,6 +240,8 @@ struct ieee80211_rx_status { | |||
240 | #define RX_FLAG_MMIC_ERROR (1<<0) | 240 | #define RX_FLAG_MMIC_ERROR (1<<0) |
241 | #define RX_FLAG_DECRYPTED (1<<1) | 241 | #define RX_FLAG_DECRYPTED (1<<1) |
242 | #define RX_FLAG_RADIOTAP (1<<2) | 242 | #define RX_FLAG_RADIOTAP (1<<2) |
243 | #define RX_FLAG_MMIC_STRIPPED (1<<3) | ||
244 | #define RX_FLAG_IV_STRIPPED (1<<4) | ||
243 | int flag; | 245 | int flag; |
244 | }; | 246 | }; |
245 | 247 | ||
@@ -402,6 +404,16 @@ typedef enum { | |||
402 | * that situation it should reject that key. | 404 | * that situation it should reject that key. |
403 | */ | 405 | */ |
404 | #define IEEE80211_KEY_FLAG_WMM_STA (1<<0) | 406 | #define IEEE80211_KEY_FLAG_WMM_STA (1<<0) |
407 | /* | ||
408 | * This flag should be set by the driver if it requires | ||
409 | * IV generation in software for this key. | ||
410 | */ | ||
411 | #define IEEE80211_KEY_FLAG_GENERATE_IV (1<<1) | ||
412 | /* | ||
413 | * This flag should be set by the driver if it requires | ||
414 | * MMIC generation in software for this key. | ||
415 | */ | ||
416 | #define IEEE80211_KEY_FLAG_GENERATE_MMIC (1<<2) | ||
405 | 417 | ||
406 | struct ieee80211_key_conf { | 418 | struct ieee80211_key_conf { |
407 | /* | 419 | /* |
@@ -465,17 +477,7 @@ struct ieee80211_hw { | |||
465 | */ | 477 | */ |
466 | #define IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE (1<<1) | 478 | #define IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE (1<<1) |
467 | 479 | ||
468 | /* | 480 | /* hole at 2 */ |
469 | * Some devices handle decryption internally and do not | ||
470 | * indicate whether the frame was encrypted (unencrypted frames | ||
471 | * will be dropped by the hardware, unless specifically allowed | ||
472 | * through.) | ||
473 | * It is permissible to not handle all encrypted frames and fall | ||
474 | * back to software encryption; however, if this flag is set | ||
475 | * unencrypted frames must be dropped unless the driver is told | ||
476 | * otherwise via the set_ieee8021x() callback. | ||
477 | */ | ||
478 | #define IEEE80211_HW_DEVICE_HIDES_WEP (1<<2) | ||
479 | 481 | ||
480 | /* Whether RX frames passed to ieee80211_rx() include FCS in the end */ | 482 | /* Whether RX frames passed to ieee80211_rx() include FCS in the end */ |
481 | #define IEEE80211_HW_RX_INCLUDES_FCS (1<<3) | 483 | #define IEEE80211_HW_RX_INCLUDES_FCS (1<<3) |
@@ -488,32 +490,13 @@ struct ieee80211_hw { | |||
488 | * can fetch them with ieee80211_get_buffered_bc(). */ | 490 | * can fetch them with ieee80211_get_buffered_bc(). */ |
489 | #define IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING (1<<4) | 491 | #define IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING (1<<4) |
490 | 492 | ||
491 | /* | 493 | /* hole at 5 */ |
492 | * This flag is only relevant if hardware encryption is used. | ||
493 | * If set, it has two meanings: | ||
494 | * 1) the IV and ICV are present in received frames that have | ||
495 | * been decrypted (unless IEEE80211_HW_DEVICE_HIDES_WEP is | ||
496 | * also set) | ||
497 | * 2) on transmission, the IV should be generated in software. | ||
498 | * | ||
499 | * Please let us know if you *don't* use this flag, the stack would | ||
500 | * really like to be able to get the IV to keep key statistics | ||
501 | * accurate. | ||
502 | */ | ||
503 | #define IEEE80211_HW_WEP_INCLUDE_IV (1<<5) | ||
504 | 494 | ||
505 | /* hole at 6 */ | 495 | /* hole at 6 */ |
506 | 496 | ||
507 | /* hole at 7 */ | 497 | /* hole at 7 */ |
508 | 498 | ||
509 | /* | 499 | /* hole at 8 */ |
510 | * Some devices handle Michael MIC internally and do not include MIC in | ||
511 | * the received packets passed up. This flag must be set for such | ||
512 | * devices. The 'encryption' frame control bit is expected to be still | ||
513 | * set in the IEEE 802.11 header with this option unlike with the | ||
514 | * IEEE80211_HW_DEVICE_HIDES_WEP flag. | ||
515 | */ | ||
516 | #define IEEE80211_HW_DEVICE_STRIPS_MIC (1<<8) | ||
517 | 500 | ||
518 | /* Device is capable of performing full monitor mode even during | 501 | /* Device is capable of performing full monitor mode even during |
519 | * normal operation. */ | 502 | * normal operation. */ |
@@ -527,8 +510,6 @@ struct ieee80211_hw { | |||
527 | * specified in the device's EEPROM */ | 510 | * specified in the device's EEPROM */ |
528 | #define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11) | 511 | #define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11) |
529 | 512 | ||
530 | /* calculate Michael MIC for an MSDU when doing hwcrypto */ | ||
531 | #define IEEE80211_HW_TKIP_INCLUDE_MMIC (1<<12) | ||
532 | /* Do TKIP phase1 key mixing in stack to support cards only do | 513 | /* Do TKIP phase1 key mixing in stack to support cards only do |
533 | * phase2 key mixing when doing hwcrypto */ | 514 | * phase2 key mixing when doing hwcrypto */ |
534 | #define IEEE80211_HW_TKIP_REQ_PHASE1_KEY (1<<13) | 515 | #define IEEE80211_HW_TKIP_REQ_PHASE1_KEY (1<<13) |