On Thu, May 12, 2011 at 07:20:01PM +0300, Luciano Coelho wrote: > > > The idea is that the hardware can perform scan automatically and filter on > > > desired results without waking up the host unnecessarily. > > > > Can you elaborate more about this? > > Some devices require very low power consumption, like mobile phones and > other mobile devices, as you know. ;) > > With this feature, we can offload the scanning entirely to the wireless > chip, when we're not connected but looking for APs to connect to, so the > host can keep sleeping and consuming very low power. > > Let's say you're looking for an AP with SSID "myap". You can keep your > device scanning for it, so that it's able to connect automatically when > it shows up without having to keep your device's main CPU awake and > consuming power. When "myap" shows in the scan results, the main CPU is > awoken and the device can connect to it. I see, thanks for the explanations. > > > Add NL80211_CMD_START_SCHED_SCAN and NL80211_CMD_STOP_SCHED_SCAN > > > commands to the nl80211 interface. When results are available they are > > > reported by NL80211_CMD_SCHED_SCAN_RESULTS events. The userspace is > > > informed when the scheduled scan has stopped with a > > > NL80211_CMD_SCHED_SCAN_STOPPED event, which can be triggered either by > > > the driver or by a call to NL80211_CMD_STOP_SCHED_SCAN. > > > > > > Signed-off-by: Luciano Coelho <coelho@xxxxxx> > > > --- > > > include/linux/nl80211.h | 25 +++++ > > > include/net/cfg80211.h | 57 +++++++++++ > > > net/wireless/core.c | 12 ++- > > > net/wireless/core.h | 7 ++ > > > net/wireless/nl80211.c | 250 +++++++++++++++++++++++++++++++++++++++++++++++ > > > net/wireless/nl80211.h | 4 + > > > net/wireless/scan.c | 70 +++++++++++++ > > > 7 files changed, 424 insertions(+), 1 deletions(-) > > > > And explain, why all of this is needed, instead of modify existing scan > > code and reuse existing infrastructure. This sched_scan does not seems to > > be something different than normal hardware scan we have already, or I'm > > wrong. > > It is something different. At first, I was thinking about modifying the > existing scan mechanism. But it turned out to be too complicated, I wonder if at least at user space we could have some consolidations, i.e. merge NL80211_CMD_START_SCHED_SCAN to NL80211_CMD_TRIGGER_SCAN, and create new command NL80211_CMD_CANCEL_SCAN like NL80211_CMD_STOP_SCHED_SCAN but worked also on normal scan. Anyway this probably does not matter now, since patches were applied, and we have that API now. > because the scheduled scan is a long-term operation and the normal scan > is done for a very short time (and the rest of the stack assumes it will > complete quickly enough as not to interfere with the connection. Hmm, is this drawback of implementation or can not be done technically (question to myself :-) ? I can image that in ideal case hardware scanning will not affect normal operation, no matter how long it will take. Software scan is much worse, since we have to change channels manually. We currently share code between software scan and hardware scan in mac80211. Perhaps separating hw and sw scan code, would be a good idea and allow to consolidate hw scan and sched scan. I planning to look at this more closely. Thanks Stanislaw -- 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