[RFC AP: ACS: select primary channel for 5G-band based on interference factor
Jouni Malinen
j at w1.fi
Sat Feb 27 11:19:11 EST 2021
On Mon, Oct 26, 2020 at 12:31:59PM +0000, Марков Михаил Александрович wrote:
> Make ACS algorithm select the best channel within a bandwidth as primary
> channel instead of just picking the first one.
>
> The reason i had to add acs_adjust_sec_chan is because even if i use VHT80
> ieee80211n_allowed_ht40_channel_pair -> allowed_ht40_channel_pair
> check fails and i get fallback to 20 MHz.
Can you please share hostapd debug logs for a case with and without this
patch highlighting why this is needed?
> diff --git a/src/ap/acs.c b/src/ap/acs.c
> +static void acs_adjust_sec_chan(struct hostapd_config *conf)
> +{
> + const int ht40_plus_channels[] = { 36, 44, 52, 60, 100, 108, 116, 124, 132, 140,
> + 149, 157, 165, 184, 192 };
> + int i, sec_chan = -1;
> +
> + for (i = 0; i < ARRAY_SIZE(ht40_plus_channels); i++) {
> + if (conf->channel == ht40_plus_channels[i]) {
> + sec_chan = 1;
> + break;
> + }
> + }
> +
> + conf->secondary_channel = sec_chan;
> }
So this function would force conf->secondary_channel to be != 0.
> @@ -961,8 +985,10 @@ static void acs_study(struct hostapd_iface *iface)
> - if (iface->conf->ieee80211ac || iface->conf->ieee80211ax)
> + if (iface->conf->ieee80211ac || iface->conf->ieee80211ax) {
> acs_adjust_center_freq(iface);
> + acs_adjust_sec_chan(iface->conf);
> + }
And it would be called unconditionally for VHT and HE.. Is that really
correct? What if the configuration is requesting 20 MHz channel
bandwidth to be used?
--
Jouni Malinen PGP id EFC895FA
More information about the Hostap
mailing list