Add AVG_RSSI report in signal_poll

Add AVG_RSSI report to the signal_poll command if it is reported by
the kernel.

Signed-hostap: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-hostap: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
Andrei Otcheretianski 2013-06-22 11:59:29 +03:00 committed by Jouni Malinen
parent 2cc8d8f4e8
commit 9578329874
3 changed files with 16 additions and 0 deletions

View file

@ -1108,6 +1108,7 @@ struct wpa_signal_info {
u32 frequency;
int above_threshold;
int current_signal;
int avg_signal;
int current_noise;
int current_txrate;
enum chan_width chanwidth;

View file

@ -1880,6 +1880,7 @@ static int get_link_signal(struct nl_msg *msg, void *arg)
struct nlattr *sinfo[NL80211_STA_INFO_MAX + 1];
static struct nla_policy policy[NL80211_STA_INFO_MAX + 1] = {
[NL80211_STA_INFO_SIGNAL] = { .type = NLA_U8 },
[NL80211_STA_INFO_SIGNAL_AVG] = { .type = NLA_U8 },
};
struct nlattr *rinfo[NL80211_RATE_INFO_MAX + 1];
static struct nla_policy rate_policy[NL80211_RATE_INFO_MAX + 1] = {
@ -1902,6 +1903,12 @@ static int get_link_signal(struct nl_msg *msg, void *arg)
sig_change->current_signal =
(s8) nla_get_u8(sinfo[NL80211_STA_INFO_SIGNAL]);
if (sinfo[NL80211_STA_INFO_SIGNAL_AVG])
sig_change->avg_signal =
(s8) nla_get_u8(sinfo[NL80211_STA_INFO_SIGNAL_AVG]);
else
sig_change->avg_signal = 0;
if (sinfo[NL80211_STA_INFO_TX_BITRATE]) {
if (nla_parse_nested(rinfo, NL80211_RATE_INFO_MAX,
sinfo[NL80211_STA_INFO_TX_BITRATE],

View file

@ -5060,6 +5060,14 @@ static int wpa_supplicant_signal_poll(struct wpa_supplicant *wpa_s, char *buf,
pos += ret;
}
if (si.avg_signal) {
ret = os_snprintf(pos, end - pos,
"AVG_RSSI=%d\n", si.avg_signal);
if (ret < 0 || ret >= end - pos)
return -1;
pos += ret;
}
return pos - buf;
}