Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Jun 2009 23:30:25 +0000 (UTC)
From:      Sam Leffler <sam@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r193413 - head/sys/net80211
Message-ID:  <200906032330.n53NUQFb070418@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sam
Date: Wed Jun  3 23:30:25 2009
New Revision: 193413
URL: http://svn.freebsd.org/changeset/base/193413

Log:
  After a channel switch mark associated stations so they will immediately
  be probed as inactive; this more quickly weeds out stations that don't
  follow to the new channel.

Modified:
  head/sys/net80211/ieee80211_hostap.c

Modified: head/sys/net80211/ieee80211_hostap.c
==============================================================================
--- head/sys/net80211/ieee80211_hostap.c	Wed Jun  3 23:28:22 2009	(r193412)
+++ head/sys/net80211/ieee80211_hostap.c	Wed Jun  3 23:30:25 2009	(r193413)
@@ -114,6 +114,19 @@ sta_disassoc(void *arg, struct ieee80211
 	}
 }
 
+static void
+sta_csa(void *arg, struct ieee80211_node *ni)
+{
+	struct ieee80211vap *vap = arg;
+
+	if (ni->ni_vap == vap && ni->ni_associd != 0)
+		if (ni->ni_inact > vap->iv_inact_init) {
+			ni->ni_inact = vap->iv_inact_init;
+			IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni,
+			    "%s: inact %u", __func__, ni->ni_inact);
+		}
+}
+
 /*
  * IEEE80211_M_HOSTAP vap state machine handler.
  */
@@ -249,6 +262,11 @@ hostap_newstate(struct ieee80211vap *vap
 			/* fall thru... */
 		case IEEE80211_S_CSA:
 			/*
+			 * Shorten inactivity timer of associated stations
+			 * to weed out sta's that don't follow a CSA.
+			 */
+			ieee80211_iterate_nodes(&ic->ic_sta, sta_csa, vap);
+			/*
 			 * Update bss node channel to reflect where
 			 * we landed after CSA.
 			 */



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