Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jan 2015 20:46:12 -0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>
Subject:   [rft] net80211 scan overhaul, pass 1
Message-ID:  <CAJ-Vmo=jfx2Y-ndjOojA-n8dJ=qrbYct5LsDKEqE8uuEiShzvw@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
hi all,

I've started overhauling the net80211 scan infrastructure so it can
support fully-offloaded scan firmware (like the intel iwn(4) NICs, and
the upcoming 7260 driver I'm hacking on.)

I'd like this patch tested:

https://people.freebsd.org/~adrian/net80211/20150103-net80211-scan-overhaul-1.diff

This splits the scan code into two halves - the generic bits that
drive when and what to do about scanning, and the bits that implement
the software scanner.

The software scanner is the bit that schedules channel changes,
listens for probe response frames, adds them to the scan cache, aborts
and goes back to the original channel when needed. It also tells the
drivers that scanning is about to happen, so the driver can prepare to
go off-channel for a bit.

For the intel NICs (and other things, i'm sure) that do full scan
offload, we just say "Hey, scan these channels, here's the SSIDs to
actively probe for, tell me when you're done" and you get back probe
response frames or scan command results with all the relevant
information. The wireless stack doesn't have to control the process so
fine-grained - as far as the stack and network interface is concerned,
it's still associated and traffic is still queued as per normal. The
NIC firmware itself takes care of scheduling the off-channel scan
bits, sending the sleep frames as it goes off-channel temporarily,
etc. It's supposed to be very transparent. We don't even have to send
probe request frames during scanning - the firmware will do that for
us.

This work doesn't do all work required - it's just going to refactor
out the scan bits. I still have to turn it into methods that intel and
such can be overridden. I still have to go through and plumb the VAP
power save state work so we don't actually send sleep/wakeup frames.
All of that is done for us in the firmware.

So I'd appreciate this getting some testing by FreeBSD-HEAD wifi
users. If you see any issues then please let me know. I'm going to
commit it in a couple of days so I can continue along the path of
refactoring out this stuff and turning it into methods that the iwn
and future drivers can override to implement their own scanning
module.

Thanks!



-adrian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=jfx2Y-ndjOojA-n8dJ=qrbYct5LsDKEqE8uuEiShzvw>