[PATCH] ACS: always discard DFS channels when DFS isn't allowed

Nicolas Escande nico.escande at gmail.com
Tue Apr 19 02:18:06 PDT 2022


On Sun Apr 17, 2022 at 11:18 AM CEST, Jouni Malinen wrote:
> Why is this removing the use of WPA_DRIVER_FLAGS_DFS_OFFLOAD completely
> here? I'm not completely sure I understood what kind of a case could
> have allowed ACS to select a DFS channel incorrectly. Maybe that is
> something that should be addressed in the ACS implementation instead?
>
> Please note that the DFS offload cases might use different style for
> configuring the DFS operations, so it is not clear whether the
> ieee80211h parameter is really applicable in all such cases and this
> type of a change could result in breaking something that is already
> deployed.

So this code fetches the channels supported by the hardware and applies
flags on it depending on whether or not we can use them and under what
conditions. So for a regular driver (one that does not sets the
WPA_DRIVER_FLAGS_DFS_OFFLOAD flag), when DFS is disabled by hostapd conf,
any DFS channel will be flagged as disabled. This gets bypassed when the
driver sets WPA_DRIVER_FLAGS_DFS_OFFLOAD.

>From what I understood, the DFS offload flag means that the driver
itself should react to DFS events and handle things like CAC wait times.
It shouldn't imply anything for the rest of the code, it shouldn't hide
the fact that this channel shouldn't be used for example.

This is problematic when doing ACS because we usually do not take into
account any channel that is flagged as disabled. So this applies to DFS
channels when the conf doesn't allow them.

This lead me to cases where a conf that explicitely doesn't allow DFS
channel (ieee80211h=0) to be used with ACS still enabled, still selected
a DFS channel because the driver handles DFS itself with
WPA_DRIVER_FLAGS_DFS_OFFLOAD flag, but doesn't bypass our ACS
implementation with WPA_DRIVER_FLAGS_ACS_OFFLOAD.

I understand that this could have implications but for me the "right"
behaviour should be :
- non usable channels should be flagged as such (so when conf doesn't
  allow them exclude them)
- hostapd's ACS implem should select a "usable" channels from the list
  (unless ACS is offloaded with WPA_DRIVER_FLAGS_ACS_OFFLOAD in which
  case all bets are off)

What do you think ?	 

> -- 
> Jouni Malinen                                            PGP id EFC895FA




More information about the Hostap mailing list