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