Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 May 2008 23:15:30 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 141938 for review
Message-ID:  <200805202315.m4KNFUZF089774@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=141938

Change 141938 by sam@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 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805202315.m4KNFUZF089774>