Search Linux Wireless

Re: [PATCH] nl80211: fix scheduled scan RSSI matchset attribute confusion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 24, 2014 at 2:20 PM, Johannes Berg
<johannes@xxxxxxxxxxxxxxxx> wrote:
> From: Johannes Berg <johannes.berg@xxxxxxxxx>
>
> The scheduled scan matchsets were intended to be a list of filters,
> with the found BSS having to pass at least one of them to be passed
> to the host. When the RSSI attribute was added, however, this was
> broken and currently wpa_supplicant adds that attribute in its own
> matchset; however, it doesn't intend that to mean that anything
> that passes the RSSI filter should be passed to the host, instead
> it wants it to mean that everything needs to also have higher RSSI.
>
> This is semantically problematic because we have a list of filters
> like [ SSID1, SSID2, SSID3, RSSI ] with no real indication which
> one should be OR'ed and which one AND'ed.
>
> To fix this, move the RSSI filter attribute into each matchset. As
> we need to stay backward compatible, treat a matchset with only the
> RSSI attribute as a "default RSSI filter" for all other matchsets,
> but only if there are other matchsets (an RSSI-only matchset by
> itself is still desirable.)
>
> To make driver implementation easier, keep a global min_rssi_thold
> for the entire request as well. The only affected driver is ath6kl.
>
> I found this when I looked into the code after Raja Mani submitted
> a patch fixing the n_match_sets calculation to disregard the RSSI,
> but that patch didn't address the semantic issue.
>
> Reported-by: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
> Acked-by: Luciano Coelho <luciano.coelho@xxxxxxxxx>
> Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
> ---
[...]

> +
> +       /* However, if there's no other matchset, add the RSSI one */
> +       if (!n_match_sets && default_match_rssi != NL80211_SCAN_RSSI_THOLD_OFF)
> +               n_match_sets = 1;
>

this means that min-rssi-only sched scan request will be seen as
req->n_match_sets = 1 with empty SSID?
i don't think that's desirable (at least the current documentation
assumes n_match_sets=0 for this case).

Eliad.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux