summaryrefslogtreecommitdiffstats
path: root/sys/net80211/_ieee80211.h
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-04-08 09:20:45 +0000
committeradrian <adrian@FreeBSD.org>2011-04-08 09:20:45 +0000
commit04a664ee1baf82bf5944c99c19b983121b136b2b (patch)
treef9e05b144f48a3d203c359da6d5d69c1a7c22daa /sys/net80211/_ieee80211.h
parent416bdcba5e6296557c941806cd8ce943d47a90ff (diff)
downloadFreeBSD-src-04a664ee1baf82bf5944c99c19b983121b136b2b.zip
FreeBSD-src-04a664ee1baf82bf5944c99c19b983121b136b2b.tar.gz
Add initial support for MIMO statistics to net80211.
This introduces struct ieee80211_rx_stats - which stores the various kinds of RX statistics which a MIMO and non-MIMO 802.11 device can export. It also fleshes out the mimo export to userland (node_getmimoinfo()). It assumes that MIMO radios (for now) export both ctl and ext channels. Non-11n MIMO radios are possible (and I believe Atheros made at least one), so if that chipset support is added, extra flags to the struct ieee80211_rx_stats can be added to extend this support. Two new input functions have been added - ieee80211_input_mimo() and ieee80211_input_mimo_all() - which MIMO-aware devices can call with MIMO specific statistics. 802.11 devices calling the non-MIMO input functions will still function.
Diffstat (limited to 'sys/net80211/_ieee80211.h')
-rw-r--r--sys/net80211/_ieee80211.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/net80211/_ieee80211.h b/sys/net80211/_ieee80211.h
index 08267d7..5714868 100644
--- a/sys/net80211/_ieee80211.h
+++ b/sys/net80211/_ieee80211.h
@@ -387,10 +387,16 @@ struct ieee80211_regdomain {
/*
* MIMO antenna/radio state.
*/
+
+#define IEEE80211_MAX_CHAINS 3
+#define IEEE80211_MAX_EVM_PILOTS 6
+
+/*
+ * XXX This doesn't yet export both ctl/ext chain details
+ */
struct ieee80211_mimo_info {
- int8_t rssi[3]; /* per-antenna rssi */
- int8_t noise[3]; /* per-antenna noise floor */
- uint8_t pad[2];
+ int8_t rssi[IEEE80211_MAX_CHAINS]; /* per-antenna rssi */
+ int8_t noise[IEEE80211_MAX_CHAINS]; /* per-antenna noise floor */
uint32_t evm[3]; /* EVM data */
};
#endif /* _NET80211__IEEE80211_H_ */
OpenPOWER on IntegriCloud