[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