Commit a76b1942 authored by Johannes Berg's avatar Johannes Berg

cfg80211: add nl80211 beacon-only statistics

Add these two values:
 * BEACON_RX: number of beacons received from this peer
 * BEACON_SIGNAL_AVG: signal strength average for beacons only

These can then be used for Android Lollipop's statistics request.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 319090bf
...@@ -987,6 +987,9 @@ struct sta_bss_parameters { ...@@ -987,6 +987,9 @@ struct sta_bss_parameters {
* @nonpeer_pm: non-peer mesh STA power save mode * @nonpeer_pm: non-peer mesh STA power save mode
* @expected_throughput: expected throughput in kbps (including 802.11 headers) * @expected_throughput: expected throughput in kbps (including 802.11 headers)
* towards this station. * towards this station.
* @rx_beacon: number of beacons received from this peer
* @rx_beacon_signal_avg: signal strength average (in dBm) for beacons received
* from this peer
*/ */
struct station_info { struct station_info {
u32 filled; u32 filled;
...@@ -1026,6 +1029,9 @@ struct station_info { ...@@ -1026,6 +1029,9 @@ struct station_info {
enum nl80211_mesh_power_mode nonpeer_pm; enum nl80211_mesh_power_mode nonpeer_pm;
u32 expected_throughput; u32 expected_throughput;
u64 rx_beacon;
u8 rx_beacon_signal_avg;
}; };
/** /**
......
...@@ -2375,6 +2375,9 @@ enum nl80211_sta_bss_param { ...@@ -2375,6 +2375,9 @@ enum nl80211_sta_bss_param {
* 802.11 header (u32, kbps) * 802.11 header (u32, kbps)
* @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons * @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons
* (u64) * (u64)
* @NL80211_STA_INFO_BEACON_RX: number of beacons received from this peer (u64)
* @NL80211_STA_INFO_BEACON_SIGNAL_AVG: signal strength average
* for beacons only (u8, dBm)
* @__NL80211_STA_INFO_AFTER_LAST: internal * @__NL80211_STA_INFO_AFTER_LAST: internal
* @NL80211_STA_INFO_MAX: highest possible station info attribute * @NL80211_STA_INFO_MAX: highest possible station info attribute
*/ */
...@@ -2408,6 +2411,8 @@ enum nl80211_sta_info { ...@@ -2408,6 +2411,8 @@ enum nl80211_sta_info {
NL80211_STA_INFO_CHAIN_SIGNAL_AVG, NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
NL80211_STA_INFO_EXPECTED_THROUGHPUT, NL80211_STA_INFO_EXPECTED_THROUGHPUT,
NL80211_STA_INFO_RX_DROP_MISC, NL80211_STA_INFO_RX_DROP_MISC,
NL80211_STA_INFO_BEACON_RX,
NL80211_STA_INFO_BEACON_SIGNAL_AVG,
/* keep last */ /* keep last */
__NL80211_STA_INFO_AFTER_LAST, __NL80211_STA_INFO_AFTER_LAST,
......
...@@ -3768,6 +3768,8 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid, ...@@ -3768,6 +3768,8 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
PUT_SINFO(T_OFFSET, t_offset, u64); PUT_SINFO(T_OFFSET, t_offset, u64);
PUT_SINFO(RX_DROP_MISC, rx_dropped_misc, u64); PUT_SINFO(RX_DROP_MISC, rx_dropped_misc, u64);
PUT_SINFO(BEACON_RX, rx_beacon, u64);
PUT_SINFO(BEACON_SIGNAL_AVG, rx_beacon_signal_avg, u8);
#undef PUT_SINFO #undef PUT_SINFO
nla_nest_end(msg, sinfoattr); nla_nest_end(msg, sinfoattr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment