[RFC PATCH 0/4] ACS: better channel selection for 40/80/160 MHz

Nicolas Escande nico.escande at gmail.com
Thu Mar 24 07:19:16 PDT 2022

From: Nicolas Escande <nico.escande at gmail.com >

This is a proposal to make better channel selection when using large
bandwidth and not limiting itself to the first channel of a segment.
This enables us to operate on a less crowded primary channel.

This builds upon the previous work of at least Markov Mikhail
<markov.mikhail at itmh.ru> & Janusz Dziedzic <janusz.dziedzic at tieto.com>
I'm sure others took a swing at it too.

I saw two ways to implement this:
  - iterating over each channels, and as we compute the interference
    factor of that channel, also take into account the factor of the
    other channels of the same segment (may they be before or after)
  - iterating over each segment, and within that segment, iterate on the
    following channels to take into account their interference
In both case, we need to later on:
  - adjust the secondary_channel which may not be the following channel
  - adjust the center channel which cannot be deduced arithmatically

The current code already iterates over each channels, skipping
channels that are not the first of their segment (thus iterating over
each segment).

I only added a way to promote one of the sub channels as the main
channel if it had better interference factor.
I also added some tables describing each segments available in 40/80/160
(start/ frequencies & center channel) and use them:
  - to identify which channels are the first of their segment,
  - to deduce the correct secondary channel from the selected one
  - to find out the right center channel for any channel

Note that this code is only enabled for 5/6GHz as 2.4GHz has channel
overlapping, is limited to 40MHz max and we have a working ACS for that.

Nicolas Escande (4):
  ACS: extract bw40/80/160 freqs out of acs_usable_bwXXX_chan
  ACS: introduce acs_get_bwXXX_center_chan
  ACS: introduce acs_adjust_secondary
  ACS: allow selecting a better channel when using 40/80/160MHz

 src/ap/acs.c | 193 +++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 163 insertions(+), 30 deletions(-)


More information about the Hostap mailing list