mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 17:01:14 +00:00
dd4b8a24a1
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)
33 lines
1.0 KiB
Diff
33 lines
1.0 KiB
Diff
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
|
|
|