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. v2: - refactor the bw_xxx arrays into a unique common array describing all segments for each bandwidth - make the arrays static to the acs.c file - refactor acs_usable_bwXXX_chan into a signle function - refactor acs_get_bwXXX_center_chan into a single function Nicolas Escande (4): ACS: extract bw40/80/160 freqs out of acs_usable_bwXXX_chan ACS: introduce acs_get_bw_center_chan ACS: introduce acs_adjust_secondary ACS: allow selecting a better channel when using 40/80/160MHz src/ap/acs.c | 191 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 143 insertions(+), 48 deletions(-) -- 2.36.0 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap