IEEE80211_BMISS(9) | Kernel Developer's Manual | IEEE80211_BMISS(9) |
ieee80211_bmiss
—
802.11 beacon miss support
#include
<net80211/ieee80211_var.h>
void
ieee80211_beacon_miss
(struct
ieee80211com *);
The net80211
software layer provides a
support framework for drivers that includes handling beacon miss events in
station mode. Drivers can dispatch beacon miss events that are recognized in
hardware or net80211
can detect beacon miss if the
driver dispatches received beacon frames through the normal receive path.
Software beacon miss support is especially useful when multiple vaps are
operating and any hardware beacon miss support is not available (e.g.
operating as an access point together with one or more station mode
vaps).
Drivers should dispatch beacon miss
events recognized in the driver with
ieee80211_beacon_miss
().
This causes some number of ProbeRequest frames to be sent to the access
point to check if the association is still alive. If no response is received
and roaming mode is set to IEEE80211_ROAMING_AUTO
then net80211
will try to re-associate and if that
fails trigger a scan to look for the access point or another suitable AP.
When the net80211
state machine is being operated
manually, e.g. by wpa_supplicant(8), then applications are
notified of the state change and are responsible for handling the work of
scanning for a new access point. The number of beacon miss events (without a
ProbeResponse) is user settable with the
IEEE80211_IOC_BMISSTHRESHOLD
request.
Software beacon miss detection is enabled per-vap by setting the
IEEE80211_FEXT_SWBMISS
flag. Typically this is done
when a vap is setup when the
IEEE80211_CLONE_NOBEACONS
option is supplied to the
clone operation. But drivers may also force this when they know they need
help detecting beacon miss. When beacon miss is detected in software the
event is dispatched without driver involvement. Note that software beacon
miss handling is not limited to station mode; it can be used in any
operating mode where beacons from a peer station are received.
August 4, 2009 | Debian |