aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rc80211_minstrel.h
diff options
context:
space:
mode:
authorThomas Huehn <thomas@net.t-labs.tu-berlin.de>2013-03-04 17:30:01 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-03-06 10:36:06 -0500
commita512d4b543ea20ec84f712f90a5229ab88a9709c (patch)
treed3c3f6354f371fff701a4b365964b155873ee544 /net/mac80211/rc80211_minstrel.h
parent52c00a37a323ded691b23538ef1181155f51aef3 (diff)
mac80211: merge EWMA calculation of minstrel_ht and minstrel
Both rate control algorithms (minstrel and minstrel_ht) calculate averages based on EWMA. Shift function minstrel_ewma() into rc80211_minstrel.h and make use of it in both minstrel version. Also shift the default EWMA level (75%) definition to the header file and clean up variable usage. 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.h')
-rw-r--r--net/mac80211/rc80211_minstrel.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/net/mac80211/rc80211_minstrel.h b/net/mac80211/rc80211_minstrel.h
index 5ecf757817f2..98db93f96add 100644
--- a/net/mac80211/rc80211_minstrel.h
+++ b/net/mac80211/rc80211_minstrel.h
@@ -9,6 +9,18 @@
9#ifndef __RC_MINSTREL_H 9#ifndef __RC_MINSTREL_H
10#define __RC_MINSTREL_H 10#define __RC_MINSTREL_H
11 11
12#define EWMA_LEVEL 75 /* ewma weighting factor [%] */
13
14/*
15 * Perform EWMA (Exponentially Weighted Moving Average) calculation
16 */
17static inline int
18minstrel_ewma(int old, int new, int weight)
19{
20 return (new * (100 - weight) + old * weight) / 100;
21}
22
23
12struct minstrel_rate { 24struct minstrel_rate {
13 int bitrate; 25 int bitrate;
14 int rix; 26 int rix;
@@ -73,7 +85,6 @@ struct minstrel_priv {
73 unsigned int cw_min; 85 unsigned int cw_min;
74 unsigned int cw_max; 86 unsigned int cw_max;
75 unsigned int max_retry; 87 unsigned int max_retry;
76 unsigned int ewma_level;
77 unsigned int segment_size; 88 unsigned int segment_size;
78 unsigned int update_interval; 89 unsigned int update_interval;
79 unsigned int lookaround_rate; 90 unsigned int lookaround_rate;