aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/sta_info.h
diff options
context:
space:
mode:
authorNikolay Martynov <mar.kolya@gmail.com>2011-11-22 21:50:28 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-28 14:43:49 -0500
commit285fa6958c1d56469ec8a0e879ae7487a4e62840 (patch)
treec0c335499809c2b90ef145576e726543c508e67c /net/mac80211/sta_info.h
parent94c2fb82bd7c9055bec8e410c387befce33d1299 (diff)
mac80211: timeout tx agg sessions in way similar to rx agg sessions
Currently tx aggregation is not being timed out even if timeout is specified when aggregation is opened. Tx tid stays active until delba arrives from recipient (i.e. recipient times out tid when it is inactive). The problem with this approach is that delba can get lost in the air and tx tid will stay perpetually opened on the originator while closed on recipient thus all data sent via this tid will be lost. This patch implements tx tid timeouting in way very similar to rx tid timeouting. Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/sta_info.h')
-rw-r--r--net/mac80211/sta_info.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index 6280e8bca49d..ccd34e926542 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -88,6 +88,7 @@ enum ieee80211_sta_info_flags {
88 * struct tid_ampdu_tx - TID aggregation information (Tx). 88 * struct tid_ampdu_tx - TID aggregation information (Tx).
89 * 89 *
90 * @rcu_head: rcu head for freeing structure 90 * @rcu_head: rcu head for freeing structure
91 * @session_timer: check if we keep Tx-ing on the TID (by timeout value)
91 * @addba_resp_timer: timer for peer's response to addba request 92 * @addba_resp_timer: timer for peer's response to addba request
92 * @pending: pending frames queue -- use sta's spinlock to protect 93 * @pending: pending frames queue -- use sta's spinlock to protect
93 * @dialog_token: dialog token for aggregation session 94 * @dialog_token: dialog token for aggregation session
@@ -110,6 +111,7 @@ enum ieee80211_sta_info_flags {
110 */ 111 */
111struct tid_ampdu_tx { 112struct tid_ampdu_tx {
112 struct rcu_head rcu_head; 113 struct rcu_head rcu_head;
114 struct timer_list session_timer;
113 struct timer_list addba_resp_timer; 115 struct timer_list addba_resp_timer;
114 struct sk_buff_head pending; 116 struct sk_buff_head pending;
115 unsigned long state; 117 unsigned long state;