ath9k: fix dynack in IBSS mode
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 5 Nov 2018 10:31:12 +0000 (11:31 +0100)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 16:48:10 +0000 (17:48 +0100)
commit5fe788b6e8c1c9ffe82b4780520be3a0d8900873
tree11819961d547bc6c7ebe0237ae1ab38d2041229e
parent78558c0f4816b91d8749dc976ae10baf07e647c5
ath9k: fix dynack in IBSS mode

Currently, dynack was only tested upstream using AP/STA mode.
Testing it on IBSS, showed that late-ack detection was broken.

This is caused due to dynack using Association Request/Response
frames for late-ack detection, which IBSS does not use.
Also allowing Authentication frames here solves this.

A second issue also got fixed, which was also seen AP/STA mode:

When a station was added, the estimated value would be exponentially averaged
using 0 as a starting point.

This means that on larger distances, the ack timeout was still not high
enough before synchronizing would run out of late-ack's for estimation.

Fix this by using the initial estimated value as a baseline
and only start averaging in the following estimation rounds.

Test setup:
- 2x identical devices:  RB912UAG-5HPnD + 19dB sector
- IBSS
- 2x2 802.11an (ar9340), HT20, long GI
- RSSI's  -70 / -71
- Real distance: 23910 meter

Results (60s iperf runs):

Fixed coverage class 54 (up to 24300m):
* 21.5 Mbits/sec

Dynack:
* 28.9 Mbits/sec

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
(backported from 5ac34818f9c3ad46febc260f8ae348e05b9c8f00)
package/kernel/mac80211/patches/ath/553-ath9k-dynack-use-authentication-messages-for-late-ac.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/554-ath9k-dynack-move-debug-log-after-buffer-increments.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/555-ath9k-dynack-check-da-enabled-first-in-sampling-rout.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/556-ath9k-dynack-make-ewma-estimation-faster.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/557-ath9k-dynack-remove-experimental-tag.patch [new file with mode: 0644]