mirror of https://github.com/aredn/aredn.git
55 lines
1.9 KiB
Diff
55 lines
1.9 KiB
Diff
|
Index: openwrt/package/kernel/mac80211/patches/569-dynack-aredn-long-dist-defaults.patch
|
||
|
===================================================================
|
||
|
--- /dev/null
|
||
|
+++ openwrt/package/kernel/mac80211/patches/569-dynack-aredn-long-dist-defaults.patch
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
||
|
++++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
||
|
+@@ -21,7 +21,8 @@
|
||
|
+ #define COMPUTE_TO (5 * HZ)
|
||
|
+ #define LATEACK_DELAY (10 * HZ)
|
||
|
+ #define LATEACK_TO 256
|
||
|
+-#define MAX_DELAY 300
|
||
|
++/* AREDN max distance set to 150km */
|
||
|
++#define MAX_DELAY 1054
|
||
|
+ #define EWMA_LEVEL 96
|
||
|
+ #define EWMA_DIV 128
|
||
|
+
|
||
|
+@@ -293,7 +294,8 @@
|
||
|
+ void ath_dynack_node_init(struct ath_hw *ah, struct ath_node *an)
|
||
|
+ {
|
||
|
+ /* ackto = slottime + sifs + air delay */
|
||
|
+- u32 ackto = 9 + 16 + 64;
|
||
|
++ /* AREDN starting point is 20km */
|
||
|
++ u32 ackto = 9 + 16 + 171;
|
||
|
+ struct ath_dynack *da = &ah->dynack;
|
||
|
+
|
||
|
+ an->ackto = ackto;
|
||
|
+@@ -328,7 +330,8 @@
|
||
|
+ void ath_dynack_reset(struct ath_hw *ah)
|
||
|
+ {
|
||
|
+ /* ackto = slottime + sifs + air delay */
|
||
|
+- u32 ackto = 9 + 16 + 64;
|
||
|
++ /* AREDN starting point is 20km */
|
||
|
++ u32 ackto = 9 + 16 + 171;
|
||
|
+ struct ath_dynack *da = &ah->dynack;
|
||
|
+
|
||
|
+ da->lto = jiffies;
|
||
|
Index: openwrt/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||
|
===================================================================
|
||
|
--- openwrt.orig/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||
|
+++ openwrt/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
|
||
|
@@ -788,7 +788,11 @@ drv_mac80211_setup() {
|
||
|
|
||
|
iw phy "$phy" set antenna $txantenna $rxantenna >/dev/null 2>&1
|
||
|
iw phy "$phy" set antenna_gain $antenna_gain
|
||
|
- iw phy "$phy" set distance "$distance"
|
||
|
+ if [ $distance -eq 0 -a -d /sys/kernel/debug/ieee80211/$phy/ath9k ]; then
|
||
|
+ iw phy "$phy" set distance auto
|
||
|
+ else
|
||
|
+ iw phy "$phy" set distance "$distance"
|
||
|
+ fi
|
||
|
|
||
|
[ -n "$frag" ] && iw phy "$phy" set frag "${frag%%.*}"
|
||
|
[ -n "$rts" ] && iw phy "$phy" set rts "${rts%%.*}"
|