diff options
Diffstat (limited to 'package/kernel/mac80211/patches/308-mac80211-minstrel_ht-fix-rounding-issue-in-MCS-durat.patch')
-rw-r--r-- | package/kernel/mac80211/patches/308-mac80211-minstrel_ht-fix-rounding-issue-in-MCS-durat.patch | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/package/kernel/mac80211/patches/308-mac80211-minstrel_ht-fix-rounding-issue-in-MCS-durat.patch b/package/kernel/mac80211/patches/308-mac80211-minstrel_ht-fix-rounding-issue-in-MCS-durat.patch deleted file mode 100644 index d13263655e..0000000000 --- a/package/kernel/mac80211/patches/308-mac80211-minstrel_ht-fix-rounding-issue-in-MCS-durat.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Felix Fietkau <nbd@openwrt.org> -Date: Fri, 13 Mar 2015 10:49:40 +0100 -Subject: [PATCH] mac80211: minstrel_ht: fix rounding issue in MCS duration - calculation - -On very high MCS bitrates, the calculated duration of rates that are -next to each other can be very imprecise, due to the small packet size -used as reference (1200 bytes). -This is most visible in VHT80 nss=2 MCS8/9, for which minstrel shows the -same throughput when the probability is also the same. This leads to a -bad rate selection for such rates. - -Fix this issue by introducing an average A-MPDU size factor into the -calculation. - -Signed-off-by: Felix Fietkau <nbd@openwrt.org> ---- - ---- a/net/mac80211/rc80211_minstrel_ht.c -+++ b/net/mac80211/rc80211_minstrel_ht.c -@@ -17,10 +17,11 @@ - #include "rc80211_minstrel.h" - #include "rc80211_minstrel_ht.h" - -+#define AVG_AMPDU_SIZE 16 - #define AVG_PKT_SIZE 1200 - - /* Number of bits for an average sized packet */ --#define MCS_NBITS (AVG_PKT_SIZE << 3) -+#define MCS_NBITS ((AVG_PKT_SIZE * AVG_AMPDU_SIZE) << 3) - - /* Number of symbols for a packet with (bps) bits per symbol */ - #define MCS_NSYMS(bps) DIV_ROUND_UP(MCS_NBITS, (bps)) -@@ -33,7 +34,8 @@ - ) - - /* Transmit duration for the raw data part of an average sized packet */ --#define MCS_DURATION(streams, sgi, bps) MCS_SYMBOL_TIME(sgi, MCS_NSYMS((streams) * (bps))) -+#define MCS_DURATION(streams, sgi, bps) \ -+ (MCS_SYMBOL_TIME(sgi, MCS_NSYMS((streams) * (bps))) / AVG_AMPDU_SIZE) - - #define BW_20 0 - #define BW_40 1 |