linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Antonio Quartulli <antonio@open-mesh.com>
To: "Thomas Hühn" <thomas@net.t-labs.tu-berlin.de>,
	thomas@net.t-labs.tu-berlin.de
Cc: Johannes Berg <johannes@sipsolutions.net>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	The list for a Better Approach To Mobile Ad-hoc Networking
	<b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [RFC 0/5] Export Minstrel best API information via get_station()
Date: Tue, 21 Jan 2014 16:28:16 +0100	[thread overview]
Message-ID: <52DE9210.10105@open-mesh.com> (raw)
In-Reply-To: <28926A5E-E0FA-4677-BC0C-68E5E11C188F@net.t-labs.tu-berlin.de>

[-- Attachment #1: Type: text/plain, Size: 4687 bytes --]

Hi Thomas,

[added batman-adv mailing list to the CC]

On 21/01/14 14:52, Thomas Hühn wrote:
> Hi Antonio,
> 
> I like you idea of making use of information from different layers to try to enhance wireless communication. 
> It seems reasonable for me to start exporting and further using/experimenting with that rate, where minstrel estimates the maximum throughput.
> But on closer inspection, it might also be of certain interest (maybe not batman in particular) to use the most robust rate, which both Minstrels version do also have an estimate.
> So what do you think about exporting the whole sorted rate table structure (struct ieee80211_sta_rates) instead of extracting the single max thr. rate ?
> 

Thank you very much for your feedback!

I like your idea about opening this change a bit more and allow other
modules to use the same information.

However the ieee80211_sta_rates structure you mentioned is mac80211
private and it does not carry any data about the probability of success
(which is a Minstrel specific value and for this reason it is not
present in this ieee80211 generic structure).


Assuming that we want to keep the new exported data Minstrel specific
(we really want this), we could extend the station_info to carry a *set*
of "cfg80211_minstrel_rate_info" objects (new struct introduced within
this patchset) which could represent the sorted rate table.

However I am not sure how this table can be used once exported, since
the only thing having a meaning is the order. Other than that I don't
see what a module could do with it (other than choosing the first entry).


Instead of exporting the whole rate table, should we only report those
rates that have a particular meaning for Minstrel?
I think Minstrel is the only component having enough information about
which rate is meaningful and which not. What do you think?


This could be done by exporting several cfg80211_minstrel_rate_info, e.g.
- max_throughput_rate
- most_robust_rate
- ...

(I used random names here)


Cheers,

> Greetings Thomas
> 
> 
> On 21.01.2014, at 12:09, Antonio Quartulli <antonio@meshcoding.com> wrote:
> 
>> Hello list,
>>
>> we (as batman-adv developers) are currently working on a new version of the
>> our routing protocol which is going to use some Minstrel internal information
>> to compute the metric.
>> In particular I am interested in the currently selected bitrate (which Minstrel
>> selected because it "maximises the throughput") and it's probability of success.
>>
>> To achieve so I am proposing here a change to the get_station API.
>> This change is supposed to export the needed information only if the current
>> driver is using the Minstrel (or Minstrel HT) RC algorithm.
>>
>> Patch 1 introduced the change in get_station()
>> Patch 2 add a new rate_control API used to query the RC algorithm and retrieve
>>        the information. Then it fills the sinfo object.
>> Patch 3 and 4 are implementing this rate_control API in minstrel and minstrel_ht
>> Patch 5 exports the get_station API in order to allow other modules to use it.
>>
>>
>> I already had a discussion with Johannes about this patch being not generic
>> enough and really focussed on Minstrel only.
>>
>> However this change will just
>> introduce a new exported capability in the station_info object: if the driver
>> does not support it (e.g. it does not use Minstrel) then we simply won't have
>> this information (like we already do with other capabilities).
>>
>>
>> Cheers,
>>
>> p.s. I may need to add some more kerneldoc
>>
>>
>> Antonio Quartulli (5):
>>  cfg80211: export minstrel best rate information through get_station()
>>  mac80211: export minstrel best rate information in set_sta_info()
>>  mac80211: minstrel - implement get_minstrel_best_rate() API
>>  mac80211: minstrel_ht - implement get_minstrel_best_rate() API
>>  cfg80211: implement cfg80211_get_station
>>
>> include/net/cfg80211.h             | 28 ++++++++++++++++++++++++++++
>> include/net/mac80211.h             | 15 +++++++++++++++
>> net/mac80211/cfg.c                 | 15 +++++++++++++++
>> net/mac80211/rc80211_minstrel.c    | 12 ++++++++++++
>> net/mac80211/rc80211_minstrel_ht.c | 30 ++++++++++++++++++++++++++++++
>> net/wireless/nl80211.c             | 22 ++++++++++++++++++++++
>> 6 files changed, 122 insertions(+)
>>
>> -- 
>> 1.8.5.3
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
Antonio Quartulli


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

      reply	other threads:[~2014-01-21 15:37 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-21 11:09 [RFC 0/5] Export Minstrel best API information via get_station() Antonio Quartulli
2014-01-21 11:09 ` [RFC 1/5] cfg80211: export minstrel best rate information through get_station() Antonio Quartulli
2014-01-21 16:00   ` Johannes Berg
2014-01-21 16:09     ` Antonio Quartulli
2014-01-21 16:18       ` Johannes Berg
2014-01-21 16:32         ` Antonio Quartulli
2014-01-22 14:41           ` Antonio Quartulli
2014-01-22 14:43             ` Johannes Berg
2014-01-22 18:32               ` Thomas Hühn
2014-01-22 18:44                 ` Antonio Quartulli
2014-01-21 11:09 ` [RFC 2/5] mac80211: export minstrel best rate information in set_sta_info() Antonio Quartulli
2014-01-21 16:01   ` Johannes Berg
2014-01-21 11:09 ` [RFC 3/5] mac80211: minstrel - implement get_minstrel_best_rate() API Antonio Quartulli
2014-01-21 11:09 ` [RFC 4/5] mac80211: minstrel_ht " Antonio Quartulli
2014-01-21 11:09 ` [RFC 5/5] cfg80211: implement cfg80211_get_station Antonio Quartulli
2014-01-21 16:03   ` Johannes Berg
2014-01-21 16:07     ` Antonio Quartulli
2014-01-21 13:52 ` [RFC 0/5] Export Minstrel best API information via get_station() Thomas Hühn
2014-01-21 15:28   ` Antonio Quartulli [this message]

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=52DE9210.10105@open-mesh.com \
    --to=antonio@open-mesh.com \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=thomas@net.t-labs.tu-berlin.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).