diff options
author | Thomas Huehn <thomas@net.t-labs.tu-berlin.de> | 2013-03-04 17:30:01 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-03-06 10:36:06 -0500 |
commit | a512d4b543ea20ec84f712f90a5229ab88a9709c (patch) | |
tree | d3c3f6354f371fff701a4b365964b155873ee544 /net/mac80211/rc80211_minstrel.h | |
parent | 52c00a37a323ded691b23538ef1181155f51aef3 (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.h | 13 |
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 | */ | ||
17 | static inline int | ||
18 | minstrel_ewma(int old, int new, int weight) | ||
19 | { | ||
20 | return (new * (100 - weight) + old * weight) / 100; | ||
21 | } | ||
22 | |||
23 | |||
12 | struct minstrel_rate { | 24 | struct 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; |