Patch "mac80211: minstrel: Change expected throughput unit back to Kbps" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
mac80211: minstrel: Change expected throughput unit back to Kbps
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mac80211-minstrel-change-expected-throughput-unit-back-to-kbps.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
212c5a5e6ba61678be6b5fee576e38bccb50b613Mon Sep 17 00:00:00 2001
From: Sven Eckelmann <[email protected]>
Date: Tue, 2 Feb 2016 08:12:26 +0100
Subject: mac80211: minstrel: Change expected throughput unit back to Kbps
From: Sven Eckelmann <[email protected]>
commit 212c5a5e6ba61678be6b5fee576e38bccb50b613 upstream.
The change from cur_tp to the function minstrel_get_tp_avg/minstrel_ht_get_tp_avg changed the unit used for the current throughput. For example in minstrel_ht the correct conversion between them would be:
mrs->cur_tp / 10 == minstrel_ht_get_tp_avg(..).
This factor 10 must also be included in the calculation of minstrel_get_expected_throughput and minstrel_ht_get_expected_throughput to return values with the unit [Kbps] instead of [10Kbps]. Otherwise routing algorithms like B.A.T.M.A.N. V will make incorrect decision based on these values. Its kernel based implementation expects expected_throughput always to have the unit [Kbps] and not sometimes [10Kbps] and sometimes [Kbps].
The same requirement has iw or olsrdv2's nl80211 based statistics module which retrieve the same data via NL80211_STA_INFO_TX_BITRATE.
--- net/mac80211/rc80211_minstrel.c | 2 +- net/mac80211/rc80211_minstrel_ht.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-)
net/mac80211/rc80211_minstrel.c +1 -1
@@ -711,7 +711,7 @@ static u32 minstrel_get_expected_through* computing cur_tp */ tmp_mrs = &mi->r[idx].stats; - tmp_cur_tp =minstrel_get_tp_avg (&mi->r[idx], tmp_mrs->prob_ewma); + tmp_cur_tp =minstrel_get_tp_avg (&mi->r[idx], tmp_mrs->prob_ewma) *10 ; tmp_cur_tp = tmp_cur_tp *1200 *8 /1024 ;return tmp_cur_tp;
net/mac80211/rc80211_minstrel_ht.c +2 -1
@@ -1334,7 +1334,8 @@ static u32 minstrel_ht_get_expected_thro prob = mi->groups[i].rates[j].prob_ewma;/* convert tp_avg from pkt per second in kbps */ - tp_avg =minstrel_ht_get_tp_avg (mi, i, j, prob) *AVG_PKT_SIZE *8 /1024 ; + tp_avg =minstrel_ht_get_tp_avg (mi, i, j, prob) *10 ; + tp_avg = tp_avg *AVG_PKT_SIZE *8 /1024 ;return tp_avg; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/mac80211-minstrel-change-expected-throughput-unit-back-to-kbps.patch