diff options
author | adrian <adrian@FreeBSD.org> | 2011-04-08 09:20:45 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2011-04-08 09:20:45 +0000 |
commit | 04a664ee1baf82bf5944c99c19b983121b136b2b (patch) | |
tree | f9e05b144f48a3d203c359da6d5d69c1a7c22daa /sys/net80211/_ieee80211.h | |
parent | 416bdcba5e6296557c941806cd8ce943d47a90ff (diff) | |
download | FreeBSD-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.h | 12 |
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_ */ |