IEEE80211_BMISS(9)

πŸ’– IEEE80211_BMISS πŸ’–

okay bestie, so this is ieee80211_bmiss from the Kernel Developer's Manual β€” yes the whole "802.11 beacon miss support" situation β€” and I'm gonna walk you through it like we're texting at 2am, because honestly that's the energy it deserves. ✨


🌸 SYNOPSIS 🌸

like, the vibe check first, always:

#include <net80211/ieee80211_var.h>

void
ieee80211_beacon_miss(struct ieee80211com *);

that's it, that's the whole incantation. short, iconic, no notes. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so the net80211 software layer is out here providing a whole support framework for drivers, and part of that is handling beacon miss events in station mode. 🫢

here's the tea: drivers can dispatch beacon miss events that were recognized in hardware, or net80211 can detect a beacon miss itself β€” but only 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 just… not available. (like when you're operating as an access point together with one or more station mode vaps. multitasking queen behavior, we love her. πŸ‘‘)

so drivers should dispatch beacon miss events recognized in the driver using ieee80211_beacon_miss(). what does that do, you ask? it causes some number of ProbeRequest frames to be sent to the access point, just to check if the association is still alive. πŸ‘€

then it's giving branching plotline:

  • 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, it triggers a scan to look for the access point or another suitable AP.
  • but 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. no auto-pilot, you're driving. πŸš—

the number of beacon miss events (without a ProbeResponse) is user settable with the IEEE80211_IOC_BMISSTHRESHOLD request. so like, you have agency. ✨


πŸŽ€ software beacon miss, per-vap πŸŽ€

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. (asking for help is valid, actually. πŸ₯Ί)

when beacon miss is detected in software, the event is dispatched without driver involvement β€” net80211 handles it, you just vibe. πŸ’«

πŸ“Œ 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. flexible, versatile, main character energy. 🌈

πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page, bestie β€” go forth and detect those missing beacons. πŸ’–

Debian Β· August 4, 2009 Β· IEEE80211_BMISS(9) πŸŽ€ β€” mwah, ily, read your man pages, periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from