diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-10-01 11:12:36 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-10-01 11:12:36 -0400 |
commit | 41f4a6f71fe33faa7971c173c263fb431fe987fe (patch) | |
tree | fdc3e603162e3ad63f6ae4160f68eb803bb78d58 /include | |
parent | 94d57c4cfaa43e29ca5fa5ff874048cfc67276f5 (diff) | |
parent | 1728943d83e9fd919e454332fe344944123b3c3a (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Diffstat (limited to 'include')
-rw-r--r-- | include/net/mac80211.h | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 12a49f0ba32c..fe8b9dae4dee 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -321,6 +321,9 @@ struct ieee80211_bss_conf { | |||
321 | * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame | 321 | * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame |
322 | * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this | 322 | * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this |
323 | * frame and selects the maximum number of streams that it can use. | 323 | * frame and selects the maximum number of streams that it can use. |
324 | * | ||
325 | * Note: If you have to add new flags to the enumeration, then don't | ||
326 | * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary. | ||
324 | */ | 327 | */ |
325 | enum mac80211_tx_control_flags { | 328 | enum mac80211_tx_control_flags { |
326 | IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), | 329 | IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), |
@@ -350,6 +353,19 @@ enum mac80211_tx_control_flags { | |||
350 | 353 | ||
351 | #define IEEE80211_TX_CTL_STBC_SHIFT 23 | 354 | #define IEEE80211_TX_CTL_STBC_SHIFT 23 |
352 | 355 | ||
356 | /* | ||
357 | * This definition is used as a mask to clear all temporary flags, which are | ||
358 | * set by the tx handlers for each transmission attempt by the mac80211 stack. | ||
359 | */ | ||
360 | #define IEEE80211_TX_TEMPORARY_FLAGS (IEEE80211_TX_CTL_NO_ACK | \ | ||
361 | IEEE80211_TX_CTL_CLEAR_PS_FILT | IEEE80211_TX_CTL_FIRST_FRAGMENT | \ | ||
362 | IEEE80211_TX_CTL_SEND_AFTER_DTIM | IEEE80211_TX_CTL_AMPDU | \ | ||
363 | IEEE80211_TX_STAT_TX_FILTERED | IEEE80211_TX_STAT_ACK | \ | ||
364 | IEEE80211_TX_STAT_AMPDU | IEEE80211_TX_STAT_AMPDU_NO_BACK | \ | ||
365 | IEEE80211_TX_CTL_RATE_CTRL_PROBE | IEEE80211_TX_CTL_PSPOLL_RESPONSE | \ | ||
366 | IEEE80211_TX_CTL_MORE_FRAMES | IEEE80211_TX_CTL_LDPC | \ | ||
367 | IEEE80211_TX_CTL_STBC) | ||
368 | |||
353 | /** | 369 | /** |
354 | * enum mac80211_rate_control_flags - per-rate flags set by the | 370 | * enum mac80211_rate_control_flags - per-rate flags set by the |
355 | * Rate Control algorithm. | 371 | * Rate Control algorithm. |
@@ -565,9 +581,6 @@ ieee80211_tx_info_clear_status(struct ieee80211_tx_info *info) | |||
565 | * @RX_FLAG_HT: HT MCS was used and rate_idx is MCS index | 581 | * @RX_FLAG_HT: HT MCS was used and rate_idx is MCS index |
566 | * @RX_FLAG_40MHZ: HT40 (40 MHz) was used | 582 | * @RX_FLAG_40MHZ: HT40 (40 MHz) was used |
567 | * @RX_FLAG_SHORT_GI: Short guard interval was used | 583 | * @RX_FLAG_SHORT_GI: Short guard interval was used |
568 | * @RX_FLAG_INTERNAL_CMTR: set internally after frame was reported | ||
569 | * on cooked monitor to avoid double-reporting it for multiple | ||
570 | * virtual interfaces | ||
571 | */ | 584 | */ |
572 | enum mac80211_rx_flags { | 585 | enum mac80211_rx_flags { |
573 | RX_FLAG_MMIC_ERROR = 1<<0, | 586 | RX_FLAG_MMIC_ERROR = 1<<0, |
@@ -581,7 +594,6 @@ enum mac80211_rx_flags { | |||
581 | RX_FLAG_HT = 1<<9, | 594 | RX_FLAG_HT = 1<<9, |
582 | RX_FLAG_40MHZ = 1<<10, | 595 | RX_FLAG_40MHZ = 1<<10, |
583 | RX_FLAG_SHORT_GI = 1<<11, | 596 | RX_FLAG_SHORT_GI = 1<<11, |
584 | RX_FLAG_INTERNAL_CMTR = 1<<12, | ||
585 | }; | 597 | }; |
586 | 598 | ||
587 | /** | 599 | /** |
@@ -602,6 +614,7 @@ enum mac80211_rx_flags { | |||
602 | * @rate_idx: index of data rate into band's supported rates or MCS index if | 614 | * @rate_idx: index of data rate into band's supported rates or MCS index if |
603 | * HT rates are use (RX_FLAG_HT) | 615 | * HT rates are use (RX_FLAG_HT) |
604 | * @flag: %RX_FLAG_* | 616 | * @flag: %RX_FLAG_* |
617 | * @rx_flags: internal RX flags for mac80211 | ||
605 | */ | 618 | */ |
606 | struct ieee80211_rx_status { | 619 | struct ieee80211_rx_status { |
607 | u64 mactime; | 620 | u64 mactime; |
@@ -611,6 +624,7 @@ struct ieee80211_rx_status { | |||
611 | int antenna; | 624 | int antenna; |
612 | int rate_idx; | 625 | int rate_idx; |
613 | int flag; | 626 | int flag; |
627 | unsigned int rx_flags; | ||
614 | }; | 628 | }; |
615 | 629 | ||
616 | /** | 630 | /** |
@@ -2416,25 +2430,28 @@ struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *vif, | |||
2416 | const u8 *addr); | 2430 | const u8 *addr); |
2417 | 2431 | ||
2418 | /** | 2432 | /** |
2419 | * ieee80211_find_sta_by_hw - find a station on hardware | 2433 | * ieee80211_find_sta_by_ifaddr - find a station on hardware |
2420 | * | 2434 | * |
2421 | * @hw: pointer as obtained from ieee80211_alloc_hw() | 2435 | * @hw: pointer as obtained from ieee80211_alloc_hw() |
2422 | * @addr: station's address | 2436 | * @addr: remote station's address |
2437 | * @localaddr: local address (vif->sdata->vif.addr). Use NULL for 'any'. | ||
2423 | * | 2438 | * |
2424 | * This function must be called under RCU lock and the | 2439 | * This function must be called under RCU lock and the |
2425 | * resulting pointer is only valid under RCU lock as well. | 2440 | * resulting pointer is only valid under RCU lock as well. |
2426 | * | 2441 | * |
2427 | * NOTE: This function should not be used! When mac80211 is converted | 2442 | * NOTE: You may pass NULL for localaddr, but then you will just get |
2428 | * internally to properly keep track of stations on multiple | 2443 | * the first STA that matches the remote address 'addr'. |
2429 | * virtual interfaces, it will not always know which station to | 2444 | * We can have multiple STA associated with multiple |
2430 | * return here since a single address might be used by multiple | 2445 | * logical stations (e.g. consider a station connecting to another |
2431 | * logical stations (e.g. consider a station connecting to another | 2446 | * BSSID on the same AP hardware without disconnecting first). |
2432 | * BSSID on the same AP hardware without disconnecting first). | 2447 | * In this case, the result of this method with localaddr NULL |
2448 | * is not reliable. | ||
2433 | * | 2449 | * |
2434 | * DO NOT USE THIS FUNCTION. | 2450 | * DO NOT USE THIS FUNCTION with localaddr NULL if at all possible. |
2435 | */ | 2451 | */ |
2436 | struct ieee80211_sta *ieee80211_find_sta_by_hw(struct ieee80211_hw *hw, | 2452 | struct ieee80211_sta *ieee80211_find_sta_by_ifaddr(struct ieee80211_hw *hw, |
2437 | const u8 *addr); | 2453 | const u8 *addr, |
2454 | const u8 *localaddr); | ||
2438 | 2455 | ||
2439 | /** | 2456 | /** |
2440 | * ieee80211_sta_block_awake - block station from waking up | 2457 | * ieee80211_sta_block_awake - block station from waking up |