Re: [PATCH 13/15] station: check vendor quirk for BSS TM request candidate list

Marcel Holtmann <[email protected]> Sat, 23 Aug 2025 16:48:20 +0200
Newsgroups dev.linux.lists.iwd
Message-ID <[email protected]>
Hi James,

> If the AP vendor has known issues with the preferred candidate list
> ignore it and jump directly to requesting a neighbor report.
> ---
> src/station.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/station.c b/src/station.c
> index 4919f89e..3424964d 100644
> --- a/src/station.c
> +++ b/src/station.c
> @@ -64,6 +64,7 @@
> #include "src/eap-tls-common.h"
> #include "src/storage.h"
> #include "src/pmksa.h"
> +#include "src/vendor_quirks.h"
> 
> #define STATION_RECENT_NETWORK_LIMIT 5
> #define STATION_RECENT_FREQS_LIMIT 5
> @@ -3378,7 +3379,9 @@ static void station_ap_directed_roam(struct station *station,
> l_timeout_remove(station->roam_trigger_timeout);
> station->roam_trigger_timeout = NULL;
> 
> - if (req_mode & WNM_REQUEST_MODE_PREFERRED_CANDIDATE_LIST) {
> + if ((req_mode & WNM_REQUEST_MODE_PREFERRED_CANDIDATE_LIST) &&
> + !(station->connected_bss->vendor_quirks &
> + VENDOR_QUIRK_BAD_BSS_TM_CANDIDATE_LIST)) {

this is unreadable in the long term. I would either add a variable or add a helper for the quirks.

As a side note, you might want to actually somewhere print the quirks which are active. Otherwise your debugging in the future will become a nightmare.

Regards

Marcel