AUTO Channel selection with specified channels list gives error

I am running Openwrt 23.05.0-rc2 on Archer A7v5

I live in a apartment where there are 5ghz and 2.4ghz wifi above and below me. And some of them keeps changing there channels every week or so (i guess they must have set their routers channel to auto).
Due to this, i also have to keep changing my wireless channels to select the least crowded available.

So i set the channel to "auto" in Openwrt.
My country is India, and here channel 102-142 are in DFS range.
But my router will sometimes select these DFS channels in auto and try to set them but fail due to them being in DFS range (although i am pretty sure there's no radar around me, but i have read that DFS can be finnicky). After this the 5ghz wifi will just fail to come online forever until i restart wifi and it select another channel or i set the channel from the non-DFS range manually.
I was previously running 22.03.2 and i am pretty sure i didnt had this DFS issue back then. (around 6-7 months ago)

Now, there's a option in wireless config to specify a channel list for auto selection. So i just specified non DFS channel via that list. This used to work perfectly in 22.03.2. But now in 23.05.0-rc2 version, i get this error whenever i specify a channel list for auto selection:

daemon.notice hostapd: ACS: Survey for freq 5260 is missing noise floor
daemon.notice hostapd: ACS: Survey for freq 5260 is missing channel time
daemon.notice hostapd: ACS: Survey for freq 5260 is missing RX and busy time (at least one is required)

This just keeps repeating for all the channels i specified in list. (also for 2.4ghz)
But after these errors, ACS completes successfully, and channel is selected. But my understanding is that, now it's selecting the lowest available channel without any ACS logic.

I don't have the above error if i dont specify a channel list for auto. But then it gets stuck sometimes on DFS channels.

Also, YES i have set my current country in both radio config as "IN".

Also have these in kernel log,

kern.debug kernel: [   44.455151] ath: EEPROM indicates we should expect a country code
kern.debug kernel: [   44.461494] ath: doing EEPROM country->regdmn map search
kern.debug kernel: [   44.466989] ath: country maps to regdmn code: 0x5b
kern.debug kernel: [   44.471932] ath: Country alpha2 being used: IN
kern.debug kernel: [   44.476517] ath: Regpair used: 0x5b
kern.debug kernel: [   44.480122] ath: regdomain 0x8164 dynamically updated by user
kern.debug kernel: [   44.486130] ath: EEPROM regdomain: 0x8164
kern.debug kernel: [   44.490290] ath: EEPROM indicates we should expect a country code
kern.debug kernel: [   44.496591] ath: doing EEPROM country->regdmn map search
kern.debug kernel: [   44.502073] ath: country maps to regdmn code: 0x5b
kern.debug kernel: [   44.507029] ath: Country alpha2 being used: IN
kern.debug kernel: [   44.511614] ath: Regpair used: 0x5b
kern.debug kernel: [   44.515215] ath: regdomain 0x8164 dynamically updated by user
kern.warn kernel: [   44.521163] ath10k_pci 0000:00:00.0: DFS region 0x0 not supported, will trigger radar for every pulse
daemon.notice netifd: radio0 (2220): command failed: Not supported (-122)

Any solutions?

set list channels (for 5GHz):
edit /etc/config/wireless
option channel '36 52 149'

view:

That should be "channels" (as the plain "channel" option is the normal main channel)

1 Like

yes (Excuse me)

option channels '36 52 149'

or

Yes, i get that. But if you read my post above,
My issue is,
WHEN i specify channels like you mentioned,
i get this error in system log:

daemon.notice hostapd: ACS: Survey for freq 5260 is missing noise floor
daemon.notice hostapd: ACS: Survey for freq 5260 is missing channel time
daemon.notice hostapd: ACS: Survey for freq 5260 is missing RX and busy time (at least one is required)

for every channel specified.
In the end ACS just always selects lowest available channel without taking into account the interference and doing any calculations since, from the error above, ACS can't obtain either the noise floor, channel time or RX and busy time for the specific channel.

But if i don't specify the channels to pick from for auto selection, there's no such error and ACS pick the channel with least interference in the surrounding. But now it has a chance of selecting DFS channels also, which it does sometimes and the wifi never comes back online.

https://www.google.com/search?q=openwrt+acs_exclude_dfs