[802.11] Revamped probe, fully asynchronous association, better error handling, much...
authorJoshua Oreman <oremanj@xenon.get-linux.org>
Fri, 19 Jun 2009 09:13:00 +0000 (02:13 -0700)
committerJoshua Oreman <oremanj@xenon.get-linux.org>
Fri, 19 Jun 2009 09:13:00 +0000 (02:13 -0700)
commited9c48f52bea567b69411f63dd66cde71e251761
treedcfc4c1d63bc62a2935cd289bb7cefc202cbae54
parent602bad48f1410c1e733b56cdca433346aee15708
[802.11] Revamped probe, fully asynchronous association, better error handling, much cleanup

The probe process has been made asynchronous and split into three stages:
start (returning an opaque net80211_probe_ctx *), step (taking that context
pointer, processing new arrivals, and returning an indication of error or
completeness), and finish (extracting the desired network information and
freeing everything else). It is now also possible to use probe in a generalized
network-scanning mode.

Association has been cleaned up; the kludgy state of using half the net80211_wlan
structure for returning probe information and half for association scratch space
has been replaced by an association context structure similar to the probe context
one. All direct accesses to netdev->state have been replaced by calls to
netdev_link_*, including use of the new netdev link-up error mechanism.

gPXE is now a better 802.11 citizen: it sends a disassociation packet to the AP
just before closing its network interface. This is not required by the standard,
but it helps avoid stale associations on the AP.

Also fixed some things like a comment that referred to "scanning for all entworks".
src/include/gpxe/net80211.h
src/net/net80211.c