diff options
Diffstat (limited to 'package/network/utils/iw/patches/010-dynack.patch')
-rw-r--r-- | package/network/utils/iw/patches/010-dynack.patch | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/package/network/utils/iw/patches/010-dynack.patch b/package/network/utils/iw/patches/010-dynack.patch deleted file mode 100644 index 00e4bf2..0000000 --- a/package/network/utils/iw/patches/010-dynack.patch +++ /dev/null @@ -1,94 +0,0 @@ - - -Add auto parameter to set distance command in order to enable ACK timeout -estimation algorithm (dynack). Dynack is automatically disabled setting valid -value for coverage class. Currently dynack is supported just by ath9k - -This patch is based on "configure dynack through mac80211/cfg80211 stack" -patchset sent on linux-wireless - -Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> ---- - info.c | 2 ++ - nl80211.h | 12 ++++++++++++ - phy.c | 43 +++++++++++++++++++++++++------------------ - 3 files changed, 39 insertions(+), 18 deletions(-) - ---- a/info.c -+++ b/info.c -@@ -551,6 +551,8 @@ broken_combination: - printf("\tDevice supports scan flush.\n"); - if (features & NL80211_FEATURE_AP_SCAN) - printf("\tDevice supports AP scan.\n"); -+ if (features & NL80211_FEATURE_ACKTO_ESTIMATION) -+ printf("\tDevice supports ACK timeout estimation.\n"); - } - - if (tb_msg[NL80211_ATTR_TDLS_SUPPORT]) ---- a/phy.c -+++ b/phy.c -@@ -362,39 +362,46 @@ static int handle_distance(struct nl8021 - int argc, char **argv, - enum id_input id) - { -- char *end; -- unsigned int distance, coverage; -- - if (argc != 1) - return 1; - - if (!*argv[0]) - return 1; - -- distance = strtoul(argv[0], &end, 10); -+ if (strcmp("auto", argv[0]) == 0) { -+ NLA_PUT_FLAG(msg, NL80211_ATTR_WIPHY_DYN_ACK); -+ } else { -+ char *end; -+ unsigned int distance, coverage; - -- if (*end) -- return 1; -+ distance = strtoul(argv[0], &end, 10); - -- /* -- * Divide double the distance by the speed of light in m/usec (300) to -- * get round-trip time in microseconds and then divide the result by -- * three to get coverage class as specified in IEEE 802.11-2007 table -- * 7-27. Values are rounded upwards. -- */ -- coverage = (distance + 449) / 450; -- if (coverage > 255) -- return 1; -+ if (*end) -+ return 1; -+ -+ /* -+ * Divide double the distance by the speed of light -+ * in m/usec (300) to get round-trip time in microseconds -+ * and then divide the result by three to get coverage class -+ * as specified in IEEE 802.11-2007 table 7-27. -+ * Values are rounded upwards. -+ */ -+ coverage = (distance + 449) / 450; -+ if (coverage > 255) -+ return 1; - -- NLA_PUT_U8(msg, NL80211_ATTR_WIPHY_COVERAGE_CLASS, coverage); -+ NLA_PUT_U8(msg, NL80211_ATTR_WIPHY_COVERAGE_CLASS, coverage); -+ } - - return 0; - nla_put_failure: - return -ENOBUFS; - } --COMMAND(set, distance, "<distance>", -+COMMAND(set, distance, "<auto|distance>", - NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_distance, -- "Set appropriate coverage class for given link distance in meters.\n" -+ "Enable ACK timeout estimation algorithm (dynack) or set appropriate\n" -+ "coverage class for given link distance in meters.\n" -+ "To disable dynack set valid value for coverage class.\n" - "Valid values: 0 - 114750"); - - static int handle_txpower(struct nl80211_state *state, |