aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2010-10-01 11:12:36 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-10-01 11:12:36 -0400
commit41f4a6f71fe33faa7971c173c263fb431fe987fe (patch)
treefdc3e603162e3ad63f6ae4160f68eb803bb78d58 /include
parent94d57c4cfaa43e29ca5fa5ff874048cfc67276f5 (diff)
parent1728943d83e9fd919e454332fe344944123b3c3a (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.h47
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 */
325enum mac80211_tx_control_flags { 328enum 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 */
572enum mac80211_rx_flags { 585enum 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 */
606struct ieee80211_rx_status { 619struct 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 */
2436struct ieee80211_sta *ieee80211_find_sta_by_hw(struct ieee80211_hw *hw, 2452struct 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