summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorVenkateswara Naralasetty <vnaralas@codeaurora.org>2018-02-13 11:03:06 +0530
committerJohannes Berg <johannes.berg@intel.com>2018-02-19 13:21:23 +0100
commitc4b50cd31d25c3d17886ffc47ca4a9a12c6dc9bf (patch)
treefd5985863672785726b836a8b7bf999cc0172044 /net
parent11b05ba34d89808ca99180d2656438a319670c56 (diff)
downloadlinux-stable-c4b50cd31d25c3d17886ffc47ca4a9a12c6dc9bf.tar.gz
linux-stable-c4b50cd31d25c3d17886ffc47ca4a9a12c6dc9bf.tar.bz2
linux-stable-c4b50cd31d25c3d17886ffc47ca4a9a12c6dc9bf.zip
cfg80211: send ack_signal to user in probe client response
This patch provides support to get ack signal in probe client response and in station info from user. Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org> [squash in compilation fixes] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/status.c2
-rw-r--r--net/wireless/nl80211.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index da7427a41529..d74d44e65bd7 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -486,7 +486,7 @@ static void ieee80211_report_ack_skb(struct ieee80211_local *local,
if (ieee80211_is_nullfunc(hdr->frame_control) ||
ieee80211_is_qos_nullfunc(hdr->frame_control))
cfg80211_probe_status(sdata->dev, hdr->addr1,
- cookie, acked,
+ cookie, acked, 0, false,
GFP_ATOMIC);
else
cfg80211_mgmt_tx_status(&sdata->wdev, cookie,
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index c6f256b29c73..050ff61b06a3 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -4486,6 +4486,7 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
PUT_SINFO_U64(RX_DROP_MISC, rx_dropped_misc);
PUT_SINFO_U64(BEACON_RX, rx_beacon);
PUT_SINFO(BEACON_SIGNAL_AVG, rx_beacon_signal_avg, u8);
+ PUT_SINFO(ACK_SIGNAL, ack_signal, u8);
#undef PUT_SINFO
#undef PUT_SINFO_U64
@@ -14984,7 +14985,8 @@ nla_put_failure:
EXPORT_SYMBOL(cfg80211_sta_opmode_change_notify);
void cfg80211_probe_status(struct net_device *dev, const u8 *addr,
- u64 cookie, bool acked, gfp_t gfp)
+ u64 cookie, bool acked, s32 ack_signal,
+ bool is_valid_ack_signal, gfp_t gfp)
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
@@ -15009,7 +15011,9 @@ void cfg80211_probe_status(struct net_device *dev, const u8 *addr,
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr) ||
nla_put_u64_64bit(msg, NL80211_ATTR_COOKIE, cookie,
NL80211_ATTR_PAD) ||
- (acked && nla_put_flag(msg, NL80211_ATTR_ACK)))
+ (acked && nla_put_flag(msg, NL80211_ATTR_ACK)) ||
+ (is_valid_ack_signal && nla_put_s32(msg, NL80211_ATTR_ACK_SIGNAL,
+ ack_signal)))
goto nla_put_failure;
genlmsg_end(msg, hdr);