IEEE80211_BMISS(9) FreeBSD Kernel Developer's Manual IEEE80211_BMISS(9)


ieee80211_bmiss802.11 beacon miss support


#include < net80211/ieee80211_var.h>

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 FreeBSD