From: Antonio Quartulli <[email protected]>

Cc: Felix Fietkau <[email protected]>
Signed-off-by: Antonio Quartulli <[email protected]>
---
 net/mac80211/rc80211_minstrel_ht.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/net/mac80211/rc80211_minstrel_ht.c 
b/net/mac80211/rc80211_minstrel_ht.c
index bccaf85..949fb01 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -1031,6 +1031,22 @@ minstrel_ht_free(void *priv)
        mac80211_minstrel.free(priv);
 }
 
+static u32 minstrel_ht_get_expected_throughput(void *priv_sta)
+{
+       struct minstrel_ht_sta_priv *msp = priv_sta;
+       struct minstrel_ht_sta *mi = &msp->ht;
+       int i, j;
+
+       if (!msp->is_ht)
+               return mac80211_minstrel.get_expected_throughput(priv_sta);
+
+       i = mi->max_tp_rate / MCS_GROUP_RATES;
+       j = mi->max_tp_rate % MCS_GROUP_RATES;
+
+       /* convert cur_tp from pkt per second in kbps */
+       return mi->groups[i].rates[j].cur_tp * AVG_PKT_SIZE * 8 / 1024;
+}
+
 static const struct rate_control_ops mac80211_minstrel_ht = {
        .name = "minstrel_ht",
        .tx_status = minstrel_ht_tx_status,
@@ -1045,6 +1061,7 @@ static const struct rate_control_ops mac80211_minstrel_ht 
= {
        .add_sta_debugfs = minstrel_ht_add_sta_debugfs,
        .remove_sta_debugfs = minstrel_ht_remove_sta_debugfs,
 #endif
+       .get_expected_throughput = minstrel_ht_get_expected_throughput,
 };
 
 
-- 
1.8.5.5

Reply via email to