diff options
author | Koen Vandeputte <koen.vandeputte@ncentric.com> | 2019-08-28 12:12:41 +0200 |
---|---|---|
committer | Koen Vandeputte <koen.vandeputte@ncentric.com> | 2019-08-28 13:09:41 +0200 |
commit | dd4b8a24a15ab86b68ad11295d5d1220ef7c0d06 (patch) | |
tree | 471a9a78842b549d452ee5bed941407a009f7370 /package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch | |
parent | 9e837873e72f5949417a7ced10609e2ea55212ff (diff) | |
download | upstream-dd4b8a24a15ab86b68ad11295d5d1220ef7c0d06.tar.gz upstream-dd4b8a24a15ab86b68ad11295d5d1220ef7c0d06.tar.bz2 upstream-dd4b8a24a15ab86b68ad11295d5d1220ef7c0d06.zip |
ath9k: backport dynack improvements
Close cooperation with Lorenzo Bianconi resulted
in these patches which fix all remaining seen issues
when using dynack.
Fix link losses when:
- Late Ack's are not seen or not present
- switching from too low static coverage class to dynack on a live link
These are fixed by setting the Ack Timeout/Slottime to
the max possible value for the currently used channel width when
a new station has been discovered.
When traffic flows, dynack is able to adjust to optimal values
within a few packets received (typically < 1 second)
These changes have been thoroughly tested on ~60 offshore devices
all interconnected using mesh over IBSS and dynack enabled on all.
Distances between devices varied from <100m up to ~35km
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
(cherry picked from commit f6e8ba0238fe349b7529357793e2fb18635819ed)
Diffstat (limited to 'package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch')
-rw-r--r-- | package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch b/package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch new file mode 100644 index 0000000000..9504af1419 --- /dev/null +++ b/package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch @@ -0,0 +1,32 @@ +From e5b56ce50eab31d24df6a70cf025db3acc4aa3ac Mon Sep 17 00:00:00 2001 +From: Lorenzo Bianconi <lorenzo@kernel.org> +Date: Tue, 20 Aug 2019 18:20:20 +0200 +Subject: [PATCH 2/4] ath9k: dynack: properly set last timeout timestamp in + ath_dynack_reset + +Add compute timeout to last computation timestamp in +ath_dynack_reset in order to not run ath_dynack_compute_ackto +immediately + +Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> +Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> +--- + drivers/net/wireless/ath/ath9k/dynack.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/ath/ath9k/dynack.c b/drivers/net/wireless/ath/ath9k/dynack.c +index 38dbe25919f7..398ea872751f 100644 +--- a/drivers/net/wireless/ath/ath9k/dynack.c ++++ b/drivers/net/wireless/ath/ath9k/dynack.c +@@ -338,7 +338,7 @@ void ath_dynack_reset(struct ath_hw *ah) + u32 ackto = 9 + 16 + 64; + struct ath_dynack *da = &ah->dynack; + +- da->lto = jiffies; ++ da->lto = jiffies + COMPUTE_TO; + da->ackto = ackto; + + da->st_rbf.t_rb = 0; +-- +2.17.1 + |