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

Michal Kazior michal.kazior at tieto.com
Tue Jul 30 02:35:36 EDT 2013


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?


Pozdrawiam / Best regards,
Michal Kazior.


More information about the HostAP mailing list