From: Antonio Quartulli <antonio@meshcoding.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: devel@lists.open80211s.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 3/6] mac80211: export expected throughput in set_sta_info()
Date: Sun, 30 Mar 2014 22:35:01 +0200 [thread overview]
Message-ID: <1396211704-4677-4-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>
If the RC algorithm implements the get_expected_throughput()
API fill the related member in the station_info object when
dumping a station.
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
---
net/mac80211/cfg.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index aa39381..0e80e2c 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -472,9 +472,13 @@ static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo)
{
struct ieee80211_sub_if_data *sdata = sta->sdata;
struct ieee80211_local *local = sdata->local;
+ struct rate_control_ref *ref = local->rate_ctrl;
+ struct ieee80211_supported_band *sband;
+ enum ieee80211_band band;
struct timespec uptime;
u64 packets = 0;
int i, ac;
+ u32 thr;
sinfo->generation = sdata->local->sta_generation;
@@ -587,6 +591,19 @@ static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo)
sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_ASSOCIATED);
if (test_sta_flag(sta, WLAN_STA_TDLS_PEER))
sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER);
+
+ if (ref->ops->get_expected_throughput) {
+ band = ieee80211_get_sdata_band(sta->sdata);
+ sband = sta->local->hw.wiphy->bands[band];
+
+ thr = ref->ops->get_expected_throughput(ref->priv,
+ sta->rate_ctrl_priv,
+ sband);
+ if (thr != 0) {
+ sinfo->filled |= STATION_INFO_EXPECTED_THROUGHPUT;
+ sinfo->expected_throughput = thr;
+ }
+ }
}
static const char ieee80211_gstrings_sta_stats[][ETH_GSTRING_LEN] = {
--
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>
Subject: [RFCv2 3/6] mac80211: export expected throughput in set_sta_info()
Date: Sun, 30 Mar 2014 22:35:01 +0200 [thread overview]
Message-ID: <1396211704-4677-4-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>
If the RC algorithm implements the get_expected_throughput()
API fill the related member in the station_info object when
dumping a station.
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
---
net/mac80211/cfg.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index aa39381..0e80e2c 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -472,9 +472,13 @@ static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo)
{
struct ieee80211_sub_if_data *sdata = sta->sdata;
struct ieee80211_local *local = sdata->local;
+ struct rate_control_ref *ref = local->rate_ctrl;
+ struct ieee80211_supported_band *sband;
+ enum ieee80211_band band;
struct timespec uptime;
u64 packets = 0;
int i, ac;
+ u32 thr;
sinfo->generation = sdata->local->sta_generation;
@@ -587,6 +591,19 @@ static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo)
sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_ASSOCIATED);
if (test_sta_flag(sta, WLAN_STA_TDLS_PEER))
sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER);
+
+ if (ref->ops->get_expected_throughput) {
+ band = ieee80211_get_sdata_band(sta->sdata);
+ sband = sta->local->hw.wiphy->bands[band];
+
+ thr = ref->ops->get_expected_throughput(ref->priv,
+ sta->rate_ctrl_priv,
+ sband);
+ if (thr != 0) {
+ sinfo->filled |= STATION_INFO_EXPECTED_THROUGHPUT;
+ sinfo->expected_throughput = thr;
+ }
+ }
}
static const char ieee80211_gstrings_sta_stats[][ETH_GSTRING_LEN] = {
--
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 ` Antonio Quartulli [this message]
2014-03-30 20:35 ` [RFCv2 3/6] mac80211: export expected throughput in set_sta_info() 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 ` [B.A.T.M.A.N.] [RFCv2 5/6] mac80211: minstrel_ht " Antonio Quartulli
2014-03-30 20:35 ` 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-4-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 \
/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.