summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/mac80211.h5
-rw-r--r--net/mac80211/agg-tx.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 5afe341b4010..d6b0045788ce 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1154,6 +1154,10 @@ enum ieee80211_hw_flags {
* This is only relevant if the device has restrictions on the
* number of subframes, if it relies on mac80211 to do reordering
* it shouldn't be set.
+ *
+ * @max_tx_aggregation_subframes: maximum number of subframes in an
+ * aggregate an HT driver will transmit, used by the peer as a
+ * hint to size its reorder buffer.
*/
struct ieee80211_hw {
struct ieee80211_conf conf;
@@ -1173,6 +1177,7 @@ struct ieee80211_hw {
u8 max_report_rates;
u8 max_rate_tries;
u8 max_rx_aggregation_subframes;
+ u8 max_tx_aggregation_subframes;
};
/**
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 42f7c9007331..63d852cb4ca2 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -342,7 +342,8 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid)
/* send AddBA request */
ieee80211_send_addba_request(sdata, sta->sta.addr, tid,
tid_tx->dialog_token, start_seq_num,
- 0x40, tid_tx->timeout);
+ local->hw.max_tx_aggregation_subframes,
+ tid_tx->timeout);
}
int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid,