• Sven Eckelmann's avatar
    mac80211: minstrel: Change expected throughput unit back to Kbps · 60ca0012
    Sven Eckelmann authored
    [ Upstream commit 212c5a5e ]
    
    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.
    
    Cc: stable@vger.kernel.org
    Fixes: 6a27b2c4 ("mac80211: restructure per-rate throughput calculation into function")
    Signed-off-by: default avatarSven Eckelmann <sven@open-mesh.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    60ca0012
rc80211_minstrel_ht.c 37.3 KB