From: Antonio Quartulli <antonio@meshcoding.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: devel@lists.open80211s.org, Felix Fietkau <nbd@openwrt.org>,
b.a.t.m.a.n@lists.open-mesh.org, linux-wireless@vger.kernel.org,
Antonio Quartulli <antonio@open-mesh.com>
Subject: [B.A.T.M.A.N.] [RFCv2 5/6] mac80211: minstrel_ht - implement get_expected_throughput() API
Date: Sun, 30 Mar 2014 22:35:03 +0200 [thread overview]
Message-ID: <1396211704-4677-6-git-send-email-antonio@meshcoding.com> (raw)
In-Reply-To: <1396211704-4677-1-git-send-email-antonio@meshcoding.com>
From: Antonio Quartulli <antonio@open-mesh.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
---
net/mac80211/rc80211_minstrel_ht.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index bccaf85..480f657 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -1031,6 +1031,24 @@ minstrel_ht_free(void *priv)
mac80211_minstrel.free(priv);
}
+static u32
+minstrel_ht_get_expected_throughput(void *priv, void *priv_sta,
+ struct ieee80211_supported_band *sband)
+{
+ 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, priv_sta,
+ sband);
+
+ i = mi->max_tp_rate / MCS_GROUP_RATES;
+ j = mi->max_tp_rate % MCS_GROUP_RATES;
+
+ return mi->groups[i].rates[j].cur_tp;
+}
+
static const struct rate_control_ops mac80211_minstrel_ht = {
.name = "minstrel_ht",
.tx_status = minstrel_ht_tx_status,
@@ -1045,6 +1063,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.3.2
WARNING: multiple messages have this Message-ID (diff)
From: Antonio Quartulli <antonio@meshcoding.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: b.a.t.m.a.n@lists.open-mesh.org, linux-wireless@vger.kernel.org,
devel@lists.open80211s.org,
Antonio Quartulli <antonio@open-mesh.com>,
Felix Fietkau <nbd@openwrt.org>
Subject: [RFCv2 5/6] mac80211: minstrel_ht - implement get_expected_throughput() API
Date: Sun, 30 Mar 2014 22:35:03 +0200 [thread overview]
Message-ID: <1396211704-4677-6-git-send-email-antonio@meshcoding.com> (raw)
In-Reply-To: <1396211704-4677-1-git-send-email-antonio@meshcoding.com>
From: Antonio Quartulli <antonio@open-mesh.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
---
net/mac80211/rc80211_minstrel_ht.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index bccaf85..480f657 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -1031,6 +1031,24 @@ minstrel_ht_free(void *priv)
mac80211_minstrel.free(priv);
}
+static u32
+minstrel_ht_get_expected_throughput(void *priv, void *priv_sta,
+ struct ieee80211_supported_band *sband)
+{
+ 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, priv_sta,
+ sband);
+
+ i = mi->max_tp_rate / MCS_GROUP_RATES;
+ j = mi->max_tp_rate % MCS_GROUP_RATES;
+
+ return mi->groups[i].rates[j].cur_tp;
+}
+
static const struct rate_control_ops mac80211_minstrel_ht = {
.name = "minstrel_ht",
.tx_status = minstrel_ht_tx_status,
@@ -1045,6 +1063,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.3.2
next prev parent reply other threads:[~2014-03-30 20:35 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-30 20:34 [B.A.T.M.A.N.] [RFCv2 0/6] Export the expected throughput Antonio Quartulli
2014-03-30 20:34 ` Antonio Quartulli
2014-03-30 20:34 ` [B.A.T.M.A.N.] [RFCv2 1/6] cfg80211: export expected throughput through get_station() Antonio Quartulli
2014-03-30 20:34 ` Antonio Quartulli
2014-03-31 8:22 ` [B.A.T.M.A.N.] " Andrew Lunn
2014-03-31 8:22 ` Andrew Lunn
2014-03-31 8:46 ` Antonio Quartulli
2014-03-31 8:46 ` Antonio Quartulli
2014-04-08 10:03 ` Johannes Berg
2014-04-08 10:03 ` Johannes Berg
2014-04-10 16:22 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 16:22 ` Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 2/6] mac80211: add new RC API to retrieve expected throughput Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-04-08 10:03 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-08 10:03 ` Johannes Berg
2014-04-10 15:46 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 15:46 ` Antonio Quartulli
2014-04-10 17:13 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-10 17:13 ` Johannes Berg
2014-04-11 7:03 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-11 7:03 ` Antonio Quartulli
2014-04-08 10:04 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-08 10:04 ` Johannes Berg
2014-04-10 15:53 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 15:53 ` Antonio Quartulli
2014-04-10 17:14 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-10 17:14 ` Johannes Berg
2014-04-11 11:30 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-11 11:30 ` Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 3/6] mac80211: export expected throughput in set_sta_info() Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 4/6] mac80211: minstrel - implement get_expected_throughput() API Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-03-31 8:49 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-03-31 8:49 ` Antonio Quartulli
2014-04-08 10:05 ` Johannes Berg
2014-04-08 10:05 ` Johannes Berg
2014-04-10 15:54 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 15:54 ` Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli [this message]
2014-03-30 20:35 ` [RFCv2 5/6] mac80211: minstrel_ht " Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 6/6] cfg80211: implement cfg80211_get_station cfg80211 API Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-04-08 10:06 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-08 10:06 ` Johannes Berg
2014-04-10 16:02 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 16:02 ` Antonio Quartulli
2014-04-10 17:12 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-10 17:12 ` Johannes Berg
2014-04-11 7:04 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-11 7:04 ` Antonio Quartulli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1396211704-4677-6-git-send-email-antonio@meshcoding.com \
--to=antonio@meshcoding.com \
--cc=antonio@open-mesh.com \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
--cc=devel@lists.open80211s.org \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=nbd@openwrt.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.