[RFC v2 4/4] hostapd: Add Automatic Channel Selection (ACS) support

Michal Kazior michal.kazior
Tue Jul 30 05:21:26 PDT 2013


On 30 July 2013 08:35, Michal Kazior <michal.kazior at tieto.com> wrote:
> On 29 July 2013 11:19, Michal Kazior <michal.kazior at tieto.com> wrote:
>> This adds Automatic Channel Selection (ACS) support to hostapd
>> using the Survery based ACS algorithm [1]. You can enable this
>> with CONFIG_ACS and can use it by setting the channel to "0" or
>> "acs_survey". Other configurable parameters are:
>>
>>   * acs_chan_time_ms - 1..5000
>>
>> TODO:
>>
>> - The current algorithm is heavily based on the amount of time
>>   we are willing to spend offchannel configurable via acs_roc_duration_ms,
>>   and acs_num_req_surveys, this will work for the period of time we do
>>   the analysis, so if these values are too low you'd use an ideal channel
>>   only based on the short bursts of traffic on the channel. We can also take
>>   into consideration other data to help us further make a better analysis and
>>   speed out our decision:
>>
>>     * Use a frequency broker to collect other PHY RF interference:
>>       * BT devices, etc, assign interference value aggregates to these
>>
>> - An ideal result would continue surveying the channels and collect a
>>   histogram, the ideal channel then will remain ideal for most of the
>>   collected history.
>>
>> - Add wpa_supplicant support for ACS, ideal for P2P
>>
>> - Randomize channel study
>>
>> - Get more drivers / firmware to implement / export survey dump
>>
>> - Enable fallback to a BSS-based ACS for drivers that don't support
>>   survey dump. This should be fairly easy as ACS already uses scan.
>>
>> - Merge the ACS scan with Overlapping BSS scan
>>
>> - Any other OSes interested?
>>
>> [1] http://wireless.kernel.org/en/users/Documentation/acs#Survey_based_algorithm
>>
>> Signed-hostap: Michal Kazior <michal.kazior at tieto.com>
>> ---
>> v2:
>>  * switch from remain-on-channel to scan-based
>>    survey gathering
>>  * remove acs_relative_survey (ath10k get_survey
>>    was done inappropriately)
>>  * message clean up
>>  * scan is done only once (no multiple cycles)
>>  * use pow() instead of powl()
>>    I wasn't able to make it compile on OpenWRT
>>    with powl()
>>
>>  hostapd/Makefile      |    6 +
>>  hostapd/config_file.c |   24 +-
>>  hostapd/defconfig     |   25 ++
>>  hostapd/hostapd.conf  |   14 +
>>  src/ap/acs.c          |  675 +++++++++++++++++++++++++++++++++++++++++++++++++
>>  src/ap/acs.h          |   38 +++
>>  src/ap/ap_config.c    |    4 +
>>  src/ap/ap_config.h    |    4 +
>>  src/ap/hostapd.c      |    5 +
>>  src/ap/hw_features.c  |   50 +++-
>>  src/drivers/driver.h  |   10 +
>>  11 files changed, 850 insertions(+), 5 deletions(-)
>>  create mode 100644 src/ap/acs.c
>>  create mode 100644 src/ap/acs.h
>
> Apparently this message is too big and needs moderator approval.
>
> Any suggestions on how to proceed with this issue?

Here's the patch:

http://ix.io/6WL


Pozdrawiam / Best regards,
Micha? Kazior.



More information about the Hostap mailing list