Main index | Section 9 | Options |
#include <net80211/ieee80211_var.h>
struct mbuf *
ieee80211_beacon_alloc(struct ieee80211_node *, struct ieee80211_beacon_offsets *);
int
ieee80211_beacon_update(struct ieee80211_node *, struct ieee80211_beacon_offsets *, struct mbuf *, int mcast);
void
ieee80211_beacon_notify(struct ieee80211vap *, int what);
Update calls should only be done when something changes that affects the contents of the beacon frame. When this happens the iv_update_beacon method is invoked and a driver-supplied routine must do the right thing. For devices that involve the host to transmit each beacon frame this work may be as simple as marking a bit in the ieee80211_beacon_offsets structure:
static void ath_beacon_update(struct ieee80211vap *vap, int item) { struct ieee80211_beacon_offsets *bo = &ATH_VAP(vap)->av_boff; setbit(bo->bo_flags, item); }
with the ieee80211_beacon_update() call done before the next beacon is to be sent.
Devices that off-load beacon generation may instead choose to use this callback to push updates immediately to the device. Exactly how that is accomplished is unspecified. One possibility is to update the beacon frame contents and extract the appropriate information element, but other scenarios are possible.
IEEE80211_BEACON (9) | August 4, 2009 |
Main index | Section 9 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.