[PATCH 12/18] bgscan_simple: Verify if notified signal is above or below threshold

Jouni Malinen j at w1.fi
Sat Oct 1 01:22:25 PDT 2016

On Mon, Sep 05, 2016 at 05:33:05PM +0300, andrei.otcheretianski at intel.com wrote:
> When receiving signal change notification check if the reported
> signal is above or below the signal threshold.
> Although the event data includes this information, the threshold
> configured to the driver might have changed.

What would have changed the threshold in the driver? If there is some
other components changing this, I don't see how exactly the bgscan
mechanism in wpa_supplicant is going to be compatible with such changes.

> diff --git a/wpa_supplicant/bgscan_simple.c b/wpa_supplicant/bgscan_simple.c
> @@ -213,6 +213,14 @@ static void bgscan_simple_notify_signal_change(void *priv, int above,
> +	if ((current_signal > data->signal_threshold && !above) ||
> +	    (current_signal < data->signal_threshold && above)) {
> +		wpa_printf(MSG_DEBUG,
> +			   "bgscan simple: incorrect above value: above=%d current_signal=%d threshold=%d",
> +			   above, current_signal, data->signal_threshold);
> +		above = current_signal > data->signal_threshold;
> +	}

So this would be specific to bgscan_simple.c. What about other bgscan
implementations? Wouldn't bgscan_learn.c has the exact same issue?
bgscan_notify_signal_change() in bgscan.c could be a better place to do
this. Or maybe even better would be to "hide" this within
src/drivers/driver_nl80211{,_event}.c since this sounds like a driver
interface specific unexpected behavior to me and not something that a
bgscam module should need to be aware of.

Jouni Malinen                                            PGP id EFC895FA

More information about the Hostap mailing list