[RFC PATCH 0/4] ACS: better channel selection for 40/80/160 MHz
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
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