openwrtv4/package/kernel
Koen Vandeputte 8b42a260ed mac80211: Expose support for ath9k Dynack
Enables support for Dynack feature.

When a remote station is far away, we need to compensate for the distance
by allowing more time for an ACK to arrive back before issueing a retransmission.
Currently, it needs to be set fixed to indicate the maximum distance the remote
station will ever be.

While this mostly works for static antennae, it introduces 2 issues:
- If the actual distance is less, speed is reduced due to a lot of wates wait-time
- If the distance becomes greater, retries start to occur and comms can get lost.

Allowing to set it dynamically using dynack ensures the best possible tradeoff
between speed vs distance.

This feature is currently only supported in ath9k.
it is also disabled by default.

Enabling it can be done in 2 ways:
- issue cmd:  iw phy0 set distance auto
- sending the NL80211_ATTR_WIPHY_DYN_ACK flag to mac80211 driver using netlink

Disabling it can be done by providing a valid fixed value.

To give an idea of a practical example:

In my usecase, we have mesh wifi device installed on ships/platforms.
Currently, the coverage class is set at 12000m fixed.

When a vessel moved closer (ex. 1500m), the measured link capacity was a lot
lower compared to setting the coverage class fixed to 1500m

Dynack completely solved this, nearly providing double the bandwidth at closer range
compared to the fixed setting of 12000m being used.

Also when a vessel sailed to a distance greater than the fixed setting,
communication was lost as the ACK's never arrived within the max allowed timeframe.

Actual distance: 6010m
iperf 60s run avg

Fixed 12150m:  31 Mbit/s
Dynack:        58 Mbit/s

Fixed 6300m:   51 Mbit/s
Dynack:        59 Mbit/s

Fixed 3000m:   13 Mbit/s  (lots of retries)
Dynack:        58 Mbit/s

Actual distance: 1504m
iperf 60s run avg

Fixed 12150m:  31 Mbit/s
Dynack:        86 Mbit/s

Fixed 6300m:   55 Mbit/s
Dynack:        87 Mbit/s

Fixed 3000m:   67 Mbit/s
Dynack:        87 Mbit/s

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2018-07-11 16:23:51 +02:00
..
acx-mac80211 acx-mac80211: fix build on kernel 4.9 2017-11-22 08:21:53 +01:00
ar7-atm ar7-atm: fix function signatures with expected ones 2017-10-29 23:41:00 +01:00
ath10k-ct ath10k-ct: search DT for BDF variant info 2018-07-07 18:33:57 +02:00
avila-wdt build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
brcm2708-gpu-fw brcm2708: Update brcm2708-gpu-fw package 2018-06-07 09:00:13 +02:00
broadcom-wl broadcom-wl: fix compilation with 4.14 2018-02-11 23:15:05 +01:00
button-hotplug build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
dtc/patches package: kernel: dtc: Add DTO support 2017-11-06 16:39:41 +01:00
gpio-button-hotplug build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
gpio-nct5104d gpio-nct5104d: Add support for new chip ID 2018-02-16 14:46:03 +01:00
hwmon-gsc build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
i2c-gpio-custom build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
kmod-sched-cake kmod-sched-cake: bump to latest 20180706 2018-07-07 11:10:59 +01:00
lantiq ltq-vdsl-fw: fix ltq-vdsl-vr9-vectoring-fw-installer package install 2018-06-21 12:00:12 +02:00
leds-apu2 leds-apu2: add newer board names 2018-04-03 23:26:45 +02:00
linux linux: update license tag to use correct SPDX tag 2018-07-07 16:12:03 +02:00
mac80211 mac80211: Expose support for ath9k Dynack 2018-07-11 16:23:51 +02:00
mt76 mt76: update to the latest version 2018-06-21 11:19:05 +02:00
mwlwifi mwlwifi: update to version 10.3.8.0-20180615 2018-06-19 14:32:47 +02:00
om-watchdog treewide: use the generic board_name function 2017-07-15 23:13:34 +02:00
rotary-gpio-custom build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
rtc-rv5c386a build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
spi-gpio-custom build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00
trelay build: add KERNEL_MAKE and KERNEL_MAKE_FLAGS variables and move to kernel.mk 2017-06-07 18:31:10 +02:00
w1-gpio-custom build: use KERNEL_MAKE_FLAGS for kernel file compilations 2017-10-29 16:17:05 +01:00