Re: [PATCH] RFC: Universal scan proposal
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2017-01-05 11:46:06
If we go with approach to use parameters and let FW or MAC80211 layer to decide what type of scan to do,
At that point though, is it even meaningful to ask "what type of scan is this"? Or put another way - what does "scan type" even mean?
then in general the only difference between different types of scan is what to do with result: - Normal scan: ssid list, channel list, dwell params, etc... - Sched scan: ssid list, channel list, interval - BSSID scan: bssid list, channel list, interval Action: Report when suitable results are found (in case of Normal scan it will be at the end of scan) - Roaming / Autojoin: ssid list, channel list, interval Action: Connect when suitable results are found - History scan: bssid list, channel list, interval Action: Report when buffer is full / almost full
Exactly. But the type of action is something set by the entity that triggered the scan, right? normal and roam would be equivalent anyway, no? wpa_supplicant would make a decision to connect - after the results are coming in. Oh, then again, maybe you're thinking of full-MAC devices - does a roam/autojoin scan really already *imply* a new connection? And if so, do we have to do it that way, or can we remove that type of action and make a connection decision in higher layers, so it's really the same as "report when suitable results are found"?
So we can literally distinguish scan types by final action.
Actually I think I'm just misinterpreting your wording - you mean that we can use the different final actions for the different scan types, not that we should actually say - in driver/firmware/... - "this is a history scan because the action is to report buffer full", right?
And for History scan we need new get_scan_results() command. Does it sound reasonable?
I think it does.
There's a bit more complication wrt. the level of detail in results
though - sometimes the result may include all IEs (normal/sched scan),
sometimes it may not ("history scan") - are we sure we really only need
one new get_scan_results()?
johannes