mac80211: A-MPDU Tx change tx_status to support Block Ack data
authorRon Rindjunsky <ron.rindjunsky@intel.com>
Mon, 28 Jan 2008 12:07:21 +0000 (14:07 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 29 Feb 2008 20:19:18 +0000 (15:19 -0500)
This patch adds fields to ieee80211_tx_status in order to allow block ack
information exchange between low-level driver,mac80211 and rate scaling
module.

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
include/net/mac80211.h

index 0ce2e94dc844067567d32b45154f1d355a8e90f3..277488176a445c7150425c9f04d0d2eecec68ee3 100644 (file)
@@ -445,12 +445,14 @@ struct ieee80211_rx_status {
  *
  * @IEEE80211_TX_STATUS_TX_FILTERED: The frame was not transmitted
  *     because the destination STA was in powersave mode.
- *
  * @IEEE80211_TX_STATUS_ACK: Frame was acknowledged
+ * @IEEE80211_TX_STATUS_AMPDU: The frame was aggregated, so status
+ *     is for the whole aggregation.
  */
 enum ieee80211_tx_status_flags {
        IEEE80211_TX_STATUS_TX_FILTERED = 1<<0,
        IEEE80211_TX_STATUS_ACK         = 1<<1,
+       IEEE80211_TX_STATUS_AMPDU       = 1<<2,
 };
 
 /**
@@ -461,24 +463,25 @@ enum ieee80211_tx_status_flags {
  *
  * @control: a copy of the &struct ieee80211_tx_control passed to the driver
  *     in the tx() callback.
- *
  * @flags: transmit status flags, defined above
- *
- * @ack_signal: signal strength of the ACK frame
- *
+ * @retry_count: number of retries
  * @excessive_retries: set to 1 if the frame was retried many times
  *     but not acknowledged
- *
- * @retry_count: number of retries
- *
+ * @ampdu_ack_len: number of aggregated frames.
+ *     relevant only if IEEE80211_TX_STATUS_AMPDU was set.
+ * @ampdu_ack_map: block ack bit map for the aggregation.
+ *     relevant only if IEEE80211_TX_STATUS_AMPDU was set.
+ * @ack_signal: signal strength of the ACK frame
  * @queue_length: ?? REMOVE
  * @queue_number: ?? REMOVE
  */
 struct ieee80211_tx_status {
        struct ieee80211_tx_control control;
        u8 flags;
-       bool excessive_retries;
        u8 retry_count;
+       bool excessive_retries;
+       u8 ampdu_ack_len;
+       u64 ampdu_ack_map;
        int ack_signal;
        int queue_length;
        int queue_number;