Search Linux Wireless

Re: [RFC 0/5] Export Minstrel best API information via get_station()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
Antonio Quartulli

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux