diff options
author | sam <sam@FreeBSD.org> | 2007-09-17 19:07:24 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-09-17 19:07:24 +0000 |
commit | d2e6b6eac7970920eccfe2d65f03d9ca3c6542ae (patch) | |
tree | dd53d98ae592f4e1d6caa3458fddec6956ad9dd5 /sys/net80211/ieee80211_proto.c | |
parent | b6c4c36f72b670e2821f1e630182572a7b96337c (diff) | |
download | FreeBSD-src-d2e6b6eac7970920eccfe2d65f03d9ca3c6542ae.zip FreeBSD-src-d2e6b6eac7970920eccfe2d65f03d9ca3c6542ae.tar.gz |
Update beacon handling to sync w/ vap code base:
o add driver callback to handle notification of beacon changes;
this is required for devices that manage beacon frames themselves
(devices must override the default handler which does nothing)
o move beacon update-related flags from ieee80211com to the beacon
offsets storage (or handle however a driver wants)
o expand beacon offsets structure with members needed for 11h/dfs
and appie's
o change calling convention for ieee80211_beacon_alloc and
ieee80211_beacon_update
o add overlapping bss support for 11g; requires driver to pass
beacon frames from overlapping bss up to net80211 which is not
presently done by any driver
o move HT beacon contents update to a routine in the HT code area
Reviewed by: avatar, thompsa, sephe
Approved by: re (blanket wireless)
Diffstat (limited to 'sys/net80211/ieee80211_proto.c')
-rw-r--r-- | sys/net80211/ieee80211_proto.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_proto.c b/sys/net80211/ieee80211_proto.c index dd7d478..6084516 100644 --- a/sys/net80211/ieee80211_proto.c +++ b/sys/net80211/ieee80211_proto.c @@ -93,6 +93,11 @@ const char *ieee80211_wme_acnames[] = { static int ieee80211_newstate(struct ieee80211com *, enum ieee80211_state, int); +static void +null_update_beacon(struct ieee80211com *ic, int item) +{ +} + void ieee80211_proto_attach(struct ieee80211com *ic) { @@ -118,6 +123,7 @@ ieee80211_proto_attach(struct ieee80211com *ic) /* protocol state change handler */ ic->ic_newstate = ieee80211_newstate; + ic->ic_update_beacon = null_update_beacon; /* initialize management frame handlers */ ic->ic_recv_mgmt = ieee80211_recv_mgmt; @@ -859,7 +865,7 @@ ieee80211_wme_updateparams_locked(struct ieee80211com *ic) */ wme->wme_bssChanParams.cap_info = (wme->wme_bssChanParams.cap_info+1) & WME_QOSINFO_COUNT; - ic->ic_flags |= IEEE80211_F_WMEUPDATE; + ieee80211_beacon_notify(ic, IEEE80211_BEACON_WME); } wme->wme_update(ic); |