ieee80211_bmiss
—
802.11 beacon miss support
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.