ath9k: fix dynack in IBSS mode
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 5 Nov 2018 10:31:12 +0000 (11:31 +0100)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Tue, 6 Nov 2018 10:49:27 +0000 (11:49 +0100)
commit5ac34818f9c3ad46febc260f8ae348e05b9c8f00
tree8f5b8dbb1f3532d9c3d525ebcbd3bcf97fcd5f0d
parent860de2e1aa9deac7dce76b7f85cb5fcfbba00468
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>
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]