aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rc80211_minstrel.c
diff options
context:
space:
mode:
authorThomas Huehn <thomas@net.t-labs.tu-berlin.de>2013-03-04 17:30:06 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-03-06 10:36:09 -0500
commitdb8c5ee6924cda3823fac83ee8c4115d1a8248c8 (patch)
tree3041ab2e837a66792dec17505e1741c5b7fb3127 /net/mac80211/rc80211_minstrel.c
parentf744bf81f7501d03f45ba23f9cf947abc3b422c9 (diff)
mac80211: treat minstrel success probabilities below 10% as implausible
Based on minstrel_ht this patch treats success probabilities below 10% as implausible values for throughput calculation in minstrel's statistics. Current throughput per rate with such a low success probability is reset to 0 MBit/s. Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/rc80211_minstrel.c')
-rw-r--r--net/mac80211/rc80211_minstrel.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c
index 5c0f5327c77f..f8d99a54798f 100644
--- a/net/mac80211/rc80211_minstrel.c
+++ b/net/mac80211/rc80211_minstrel.c
@@ -92,7 +92,6 @@ minstrel_update_stats(struct minstrel_priv *mp, struct minstrel_sta_info *mi)
92 mr->probability = minstrel_ewma(mr->probability, 92 mr->probability = minstrel_ewma(mr->probability,
93 mr->cur_prob, 93 mr->cur_prob,
94 EWMA_LEVEL); 94 EWMA_LEVEL);
95 mr->cur_tp = mr->probability * (1000000 / usecs);
96 } else 95 } else
97 mr->sample_skipped++; 96 mr->sample_skipped++;
98 97
@@ -101,6 +100,12 @@ minstrel_update_stats(struct minstrel_priv *mp, struct minstrel_sta_info *mi)
101 mr->success = 0; 100 mr->success = 0;
102 mr->attempts = 0; 101 mr->attempts = 0;
103 102
103 /* Update throughput per rate, reset thr. below 10% success */
104 if (mr->probability < MINSTREL_FRAC(10, 100))
105 mr->cur_tp = 0;
106 else
107 mr->cur_tp = mr->probability * (1000000 / usecs);
108
104 /* Sample less often below the 10% chance of success. 109 /* Sample less often below the 10% chance of success.
105 * Sample less often above the 95% chance of success. */ 110 * Sample less often above the 95% chance of success. */
106 if (mr->probability > MINSTREL_FRAC(95, 100) || 111 if (mr->probability > MINSTREL_FRAC(95, 100) ||