Skip to content

Commit 914eac2

Browse files
sara-sjmberg-intel
authored andcommitted
mac80211: use timeout from the AddBA response instead of the request
2016 spec, section 10.24.2 specifies that the block ack timeout in the ADD BA request is advisory. That means we should check the value in the response and act upon it (same as buffer size). Signed-off-by: Sara Sharon <[email protected]> Signed-off-by: Luca Coelho <[email protected]> Signed-off-by: Johannes Berg <[email protected]>
1 parent 407879b commit 914eac2

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

net/mac80211/agg-tx.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* Copyright 2007, Michael Wu <[email protected]>
99
* Copyright 2007-2010, Intel Corporation
1010
* Copyright(c) 2015-2017 Intel Deutschland GmbH
11+
* Copyright (C) 2018 Intel Corporation
1112
*
1213
* This program is free software; you can redistribute it and/or modify
1314
* it under the terms of the GNU General Public License version 2 as
@@ -970,6 +971,9 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
970971

971972
sta->ampdu_mlme.addba_req_num[tid] = 0;
972973

974+
tid_tx->timeout =
975+
le16_to_cpu(mgmt->u.action.u.addba_resp.timeout);
976+
973977
if (tid_tx->timeout) {
974978
mod_timer(&tid_tx->session_timer,
975979
TU_TO_EXP_TIME(tid_tx->timeout));

net/mac80211/tx.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* Copyright 2006-2007 Jiri Benc <[email protected]>
55
* Copyright 2007 Johannes Berg <[email protected]>
66
* Copyright 2013-2014 Intel Mobile Communications GmbH
7+
* Copyright (C) 2018 Intel Corporation
78
*
89
* This program is free software; you can redistribute it and/or modify
910
* it under the terms of the GNU General Public License version 2 as
@@ -1135,7 +1136,7 @@ static bool ieee80211_tx_prep_agg(struct ieee80211_tx_data *tx,
11351136
}
11361137

11371138
/* reset session timer */
1138-
if (reset_agg_timer && tid_tx->timeout)
1139+
if (reset_agg_timer)
11391140
tid_tx->last_tx = jiffies;
11401141

11411142
return queued;

0 commit comments

Comments
 (0)