freebsd-skq/sys
adrian ab03e99258 Refactor and split out the net80211 software scan engine from the rest
of the scan API.

The eventual aim is to have 'ieee80211_scan.c' have the net80211 and
driver facing scan API to start, finish and continue doing scanning
while 'ieee80211_swscan.c' implements the software scanner that
runs the scan task, handles probe request/reply bits, configures
the VAP off-channel, changes channel and does the scanning bits.

For NICs that do no scanning at all, the existing code is needed.
ath(4) and most of the other NICs (dumb USB ones in particular)
do little to no scan offload - it's all done in software.

Some NICs may do single channel at a time scanning; I haven't really
checked them out in detail.

iwn(4), the upcoming 7260 driver stuff, the new Qualcomm Atheros
11ac chipsets and the Atheros mobile/USB full-offload chips all
have complete scan engines in firmware.  We don't have to drive
any of it at all - the firmware just needs to be told what to scan,
when to scan, how long to scan.  It'll take care of going off
channel, pausing TX/RX appropriately, sending sleep notification
to the AP, sending probe requests and handling probe responses.
It'll do passive/active scan itself.  It's almost completely
transparent to the network stack - all we see are scan notifications
when it finishes scanning each channel and beacons/probe responses
when it does its thing.  Once it's done we get a final notification
that the scan is complete, with some scan results in the message.
The iwn(4) NICs handle doing active scanning too as an option
and will handle waiting appropriately on 5GHz passive channels
before active scanning.

There's some more refactoring, tidying up and lock assertions to
sprinkle around to tidy this whole thing up before I turn swscan.c
into another set of ic methods to override by the driver or
alternate scan module.  So in theory this is all one big no-op
commit.  In theory.

Tested:

* iwn(4) 5200, STA mode
* ath(4) 6205, STA mode
* ath(4) - various NICs, AP mode
2015-01-06 02:08:45 +00:00
..
amd64 On some Intel CPUs with a P-state but not C-state invariant TSC the TSC 2015-01-05 20:44:44 +00:00
arm Add 64-bit DMA support in the XHCI controller driver. 2015-01-05 20:22:18 +00:00
boot Missed change in r276688. Apologies for build breakage. 2015-01-05 16:52:25 +00:00
bsm
cam Hide block device VPD pages for non-block devices. 2014-12-23 15:18:28 +00:00
cddl Correct zpool list displaying invalid EXPANDSZ for unavailable pool vdevs 2014-12-31 04:54:48 +00:00
compat Regen for r276654 (__getcwd()). 2015-01-04 10:40:23 +00:00
conf Refactor and split out the net80211 software scan engine from the rest 2015-01-06 02:08:45 +00:00
contrib Use the same 6000 series g2{a,b} firmware versions when embedding these 2014-12-27 17:10:35 +00:00
crypto Add some new modes to OpenCrypto. These modes are AES-ICM (can be used 2014-12-12 19:56:36 +00:00
ddb ddb: ANSI-fy function declarations. 2014-10-12 18:01:52 +00:00
dev cxgbe/tom: use vmem(9) as the DDP page pod allocator. 2015-01-06 01:30:32 +00:00
fs Convert nullfs hash lock from a mutex to an rwlock. 2014-12-30 21:41:35 +00:00
gdb Add support for gdb's memory searching capabilities to our in-kernel gdb 2014-09-05 16:40:47 +00:00
geom Remove support for FreeBSD 7 and really old FreeBSD 8. The classifiers 2014-12-20 00:04:01 +00:00
gnu reiserfs: Use signed i_nlink 2014-09-25 19:10:32 +00:00
i386 On some Intel CPUs with a P-state but not C-state invariant TSC the TSC 2015-01-05 20:44:44 +00:00
isa
kern Use crcopysafe(9) to make a copy of a process' credential struct. crcopy(9) 2015-01-05 23:07:22 +00:00
kgssapi Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
libkern Add some new modes to OpenCrypto. These modes are AES-ICM (can be used 2014-12-12 19:56:36 +00:00
mips Add 64-bit DMA support in the XHCI controller driver. 2015-01-05 20:22:18 +00:00
modules Refactor and split out the net80211 software scan engine from the rest 2015-01-06 02:08:45 +00:00
net Extern declarations in C files loses compile-time checking that 2014-12-25 21:32:37 +00:00
net80211 Refactor and split out the net80211 software scan engine from the rest 2015-01-06 02:08:45 +00:00
netgraph In preparation of merging projects/sendfile, transform bare access to 2014-11-12 09:57:15 +00:00
netinet To ease changes to underlying mbuf structure and the mbuf allocator, reduce 2015-01-05 09:58:32 +00:00
netinet6 To ease changes to underlying mbuf structure and the mbuf allocator, reduce 2015-01-05 09:58:32 +00:00
netipsec Fix VIMAGE build. 2014-12-25 13:38:51 +00:00
netnatm
netpfil pf(4) needs to have a correct checksum during its processing. 2014-11-19 13:31:08 +00:00
netsmb
nfs Remove the old NFS client and server from head, 2014-12-23 00:47:46 +00:00
nfsclient Remove the old NFS client and server from head, 2014-12-23 00:47:46 +00:00
nfsserver Remove the old NFS client and server from head, 2014-12-23 00:47:46 +00:00
nlm Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
ofed Make sure callbacks being freed are not pending when the 2014-12-11 10:47:50 +00:00
opencrypto Add some new modes to OpenCrypto. These modes are AES-ICM (can be used 2014-12-12 19:56:36 +00:00
pc98 This configuration file removes several debugging options, including 2014-12-02 19:55:43 +00:00
powerpc Restore use of ofw_bus_intr_to_rl() in the pseries vdevice driver after fixing 2015-01-05 21:39:35 +00:00
rpc Add facility to stop all userspace processes. The supposed use of the 2014-12-13 16:18:29 +00:00
security Adjust printf format specifiers for dev_t and ino_t in kernel. 2014-12-17 07:27:19 +00:00
sparc64 This configuration file removes several debugging options, including 2014-12-02 19:55:43 +00:00
sys On some Intel CPUs with a P-state but not C-state invariant TSC the TSC 2015-01-05 20:44:44 +00:00
teken mdoc: improvements to SEE ALSO. 2014-12-27 07:07:37 +00:00
tools Allow the make_dtb script to work outside of a "make buildkernel" context 2014-08-30 22:39:15 +00:00
ufs Handle MAKEENTRY cnp flag in the VOP_CREATE(). Curiously, some 2014-12-21 13:29:33 +00:00
vm Merge ^/head r274961 through r276475. 2014-12-31 18:16:50 +00:00
x86 On some Intel CPUs with a P-state but not C-state invariant TSC the TSC 2015-01-05 20:44:44 +00:00
xdr
xen xen: convert the Grant-table code to a NewBus device 2014-12-10 11:35:41 +00:00
Makefile Remove "pci" from CSCOPEDIRS. 2014-09-23 06:32:19 +00:00