PERFORCE change 141938 for review
Sam Leffler
sam at FreeBSD.org
Tue May 20 23:15:31 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=141938
Change 141938 by sam at sam_ebb on 2008/05/20 23:15:16
Ignore sw beacon miss events when scanning. This is kind of a hack
but it is insufficient to manipulate the vap's timer on scan start/end
as there may be multiple sta vap's present when a scan is done.
Affected files ...
.. //depot/projects/vap/sys/net80211/ieee80211_proto.c#31 edit
Differences ...
==== //depot/projects/vap/sys/net80211/ieee80211_proto.c#31 (text+ko) ====
@@ -1323,8 +1323,23 @@
ieee80211_swbmiss(void *arg)
{
struct ieee80211vap *vap = arg;
+ struct ieee80211com *ic = vap->iv_ic;
+
+ /* XXX sleep state? */
+ KASSERT(vap->iv_state == IEEE80211_S_RUN,
+ ("wrong state %d", vap->iv_state));
- if (vap->iv_swbmiss_count == 0) {
+ if (ic->ic_flags & IEEE80211_F_SCAN) {
+ /*
+ * If scanning just ignore and reset state. It's awkward
+ * to reset the swbmiss timer on scan start/end so instead
+ * we do this. If get a bmiss after coming out of scan
+ * because we haven't had time to receive a beacon then
+ * we should probe the AP before posting a real bmiss
+ * (unless iv_bmiss_max has been artifiically lowered).
+ */
+ vap->iv_swbmiss_count = 0;
+ } else if (vap->iv_swbmiss_count == 0) {
if (vap->iv_bmiss != NULL)
vap->iv_bmiss(vap);
if (vap->iv_bmiss_count == 0) /* don't re-arm timer */
More information about the p4-projects
mailing list