Date: Fri, 10 Jul 2009 11:25:04 +0000 (UTC) From: Rui Paulo <rpaulo@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r195547 - projects/mesh11s/sys/net80211 Message-ID: <200907101125.n6ABP45W018609@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907101125.n6ABP45W018609>