svn commit: r195547 - projects/mesh11s/sys/net80211

Rui Paulo rpaulo at FreeBSD.org
Fri Jul 10 11:25:05 UTC 2009


Author: rpaulo
Date: Fri Jul 10 11:25:04 2009
New Revision: 195547
URL: http://svn.freebsd.org/changeset/base/195547

Log:
  Implement get_mesh_rssi().
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/mesh11s/sys/net80211/ieee80211_node.c

Modified: projects/mesh11s/sys/net80211/ieee80211_node.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_node.c	Fri Jul 10 11:17:41 2009	(r195546)
+++ projects/mesh11s/sys/net80211/ieee80211_node.c	Fri Jul 10 11:25:04 2009	(r195547)
@@ -2553,6 +2553,26 @@ get_adhoc_rssi(void *arg, struct ieee802
 	}
 }
 
+static void
+get_mesh_rssi(void *arg, struct ieee80211_node *ni)
+{
+	struct rssiinfo *info = arg;
+	struct ieee80211vap *vap = ni->ni_vap;
+	int8_t rssi;
+
+	if (info->vap != vap)
+		return;
+	/* only neighbors that peered successfully */
+	if (ni->ni_mlstate != IEEE80211_NODE_MESH_ESTABLISHED)
+		return;
+	rssi = vap->iv_ic->ic_node_getrssi(ni);
+	if (rssi != 0) {
+		info->rssi_samples++;
+		info->rssi_total += rssi;
+	}
+}
+
+
 int8_t
 ieee80211_getrssi(struct ieee80211vap *vap)
 {
@@ -2572,7 +2592,7 @@ ieee80211_getrssi(struct ieee80211vap *v
 		ieee80211_iterate_nodes(&ic->ic_sta, get_hostap_rssi, &info);
 		break;
 	case IEEE80211_M_MBSS:		/* average of all mesh neighbors */
-		/* XXX ieee80211_iterate_nodes(&ic->ic_sta, get_mesh_rssi, &info);*/
+		ieee80211_iterate_nodes(&ic->ic_sta, get_mesh_rssi, &info);
 		break;
 	case IEEE80211_M_MONITOR:	/* XXX */
 	case IEEE80211_M_STA:		/* use stats from associated ap */


More information about the svn-src-projects mailing list