From: Ben Greear <greearb@xxxxxxxxxxxxxxx> User-space can then decode the flags to determine associated, scanning, and other states. Signed-off-by: Ben Greear <greearb@xxxxxxxxxxxxxxx> --- :100644 100644 e6827ee... 43d485f... M include/linux/wireless.h :100644 100644 f355b8c... b807430... M include/net/cfg80211.h :100644 100644 c981604... 4fded2e... M net/mac80211/cfg.c :100644 100644 7e5c3a4... 504a5d6... M net/wireless/wext-compat.c include/linux/wireless.h | 4 ++-- include/net/cfg80211.h | 2 ++ net/mac80211/cfg.c | 4 ++++ net/wireless/wext-compat.c | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/linux/wireless.h b/include/linux/wireless.h index e6827ee..43d485f 100644 --- a/include/linux/wireless.h +++ b/include/linux/wireless.h @@ -898,8 +898,8 @@ struct iw_pmkid_cand */ struct iw_statistics { - __u16 status; /* Status - * - device dependent for now */ + __u16 status; /* Status: ieee80211_sta_info_flags + * plus: (1<<15): Scanning */ struct iw_quality qual; /* Quality of the link * (instant/mean/max) */ diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index f355b8c..b807430 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -457,6 +457,7 @@ struct rate_info { * @plid: mesh peer link id * @plink_state: mesh peer link state * @signal: signal strength of last received packet in dBm + * @status: ieee80211_sta_info_flags plus: (1<<15) Scanning. * @txrate: current unicast bitrate to this station * @rx_packets: packets received from this station * @tx_packets: packets transmitted to this station @@ -474,6 +475,7 @@ struct station_info { u16 plid; u8 plink_state; s8 signal; + u16 status; struct rate_info txrate; u32 rx_packets; u32 tx_packets; diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index c981604..4fded2e 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -327,6 +327,10 @@ static void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo) sinfo->plink_state = sta->plink_state; #endif } + + sinfo->status = sta->flags; + if (sdata->local->scanning) + sinfo->status |= (1<<15); } diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c index 7e5c3a4..504a5d6 100644 --- a/net/wireless/wext-compat.c +++ b/net/wireless/wext-compat.c @@ -1355,6 +1355,8 @@ struct iw_statistics *cfg80211_wireless_stats(struct net_device *dev) wstats.qual.updated |= IW_QUAL_NOISE_INVALID; + wstats.status = sinfo.status; + return &wstats; } EXPORT_SYMBOL_GPL(cfg80211_wireless_stats); -- 1.7.2.2 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html