summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/net80211/ieee80211_node.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-11-06 16:20:21 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-11-11 10:08:08 +0100
commit66659ff1ad6831b0ea7425fa6ecd8a8687523658 (patch)
tree48e22b475fa8854128e0861a33fed6f78c8094b5 /freebsd/sys/net80211/ieee80211_node.c
parentDefine __GLOBL1() and __GLOBL() (diff)
downloadrtems-libbsd-66659ff1ad6831b0ea7425fa6ecd8a8687523658.tar.bz2
Update to FreeBSD 9.2
Diffstat (limited to 'freebsd/sys/net80211/ieee80211_node.c')
-rw-r--r--freebsd/sys/net80211/ieee80211_node.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/freebsd/sys/net80211/ieee80211_node.c b/freebsd/sys/net80211/ieee80211_node.c
index e1166707..5bf33549 100644
--- a/freebsd/sys/net80211/ieee80211_node.c
+++ b/freebsd/sys/net80211/ieee80211_node.c
@@ -287,10 +287,7 @@ ieee80211_node_set_chan(struct ieee80211_node *ni,
mode = ieee80211_chan2mode(chan);
if (IEEE80211_IS_CHAN_HT(chan)) {
/*
- * XXX Gotta be careful here; the rate set returned by
- * ieee80211_get_suprates is actually any HT rate
- * set so blindly copying it will be bad. We must
- * install the legacy rate est in ni_rates and the
+ * We must install the legacy rate est in ni_rates and the
* HT rate set in ni_htrates.
*/
ni->ni_htrates = *ieee80211_get_suphtrates(ic, chan);
@@ -1090,7 +1087,26 @@ static void
node_getmimoinfo(const struct ieee80211_node *ni,
struct ieee80211_mimo_info *info)
{
- /* XXX zero data? */
+ int i;
+ uint32_t avgrssi;
+ int32_t rssi;
+
+ bzero(info, sizeof(*info));
+
+ for (i = 0; i < ni->ni_mimo_chains; i++) {
+ avgrssi = ni->ni_mimo_rssi_ctl[i];
+ if (avgrssi == IEEE80211_RSSI_DUMMY_MARKER) {
+ info->rssi[i] = 0;
+ } else {
+ rssi = IEEE80211_RSSI_GET(avgrssi);
+ info->rssi[i] = rssi < 0 ? 0 : rssi > 127 ? 127 : rssi;
+ }
+ info->noise[i] = ni->ni_mimo_noise_ctl[i];
+ }
+
+ /* XXX ext radios? */
+
+ /* XXX EVM? */
}
struct ieee80211_node *