mac80211: allow AMSDU size limitation per-TID
Some drivers may have AMSDU size limitation per TID, due to HW constrains. Add an option to set this limit. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
0eeb2b674f
commit
edba6bdad6
|
@ -1853,6 +1853,7 @@ struct ieee80211_sta_rates {
|
|||
* unlimited.
|
||||
* @support_p2p_ps: indicates whether the STA supports P2P PS mechanism or not.
|
||||
* @max_rc_amsdu_len: Maximum A-MSDU size in bytes recommended by rate control.
|
||||
* @max_tid_amsdu_len: Maximum A-MSDU size in bytes for this TID
|
||||
* @txq: per-TID data TX queues (if driver uses the TXQ abstraction); note that
|
||||
* the last entry (%IEEE80211_NUM_TIDS) is used for non-data frames
|
||||
*/
|
||||
|
@ -1894,6 +1895,7 @@ struct ieee80211_sta {
|
|||
u16 max_amsdu_len;
|
||||
bool support_p2p_ps;
|
||||
u16 max_rc_amsdu_len;
|
||||
u16 max_tid_amsdu_len[IEEE80211_NUM_TIDS];
|
||||
|
||||
struct ieee80211_txq *txq[IEEE80211_NUM_TIDS + 1];
|
||||
|
||||
|
|
|
@ -3225,6 +3225,10 @@ static bool ieee80211_amsdu_aggregate(struct ieee80211_sub_if_data *sdata,
|
|||
max_amsdu_len = min_t(int, max_amsdu_len,
|
||||
sta->sta.max_rc_amsdu_len);
|
||||
|
||||
if (sta->sta.max_tid_amsdu_len[tid])
|
||||
max_amsdu_len = min_t(int, max_amsdu_len,
|
||||
sta->sta.max_tid_amsdu_len[tid]);
|
||||
|
||||
spin_lock_bh(&fq->lock);
|
||||
|
||||
/* TODO: Ideally aggregation should be done on dequeue to remain
|
||||
|
|
Loading…
Reference in New Issue