|
@@ -9474,6 +9474,7 @@ nl80211_attr_cqm_policy[NL80211_ATTR_CQM_MAX + 1] = {
|
|
|
[NL80211_ATTR_CQM_TXE_RATE] = { .type = NLA_U32 },
|
|
|
[NL80211_ATTR_CQM_TXE_PKTS] = { .type = NLA_U32 },
|
|
|
[NL80211_ATTR_CQM_TXE_INTVL] = { .type = NLA_U32 },
|
|
|
+ [NL80211_ATTR_CQM_RSSI_LEVEL] = { .type = NLA_S32 },
|
|
|
};
|
|
|
|
|
|
static int nl80211_set_cqm_txe(struct genl_info *info,
|
|
@@ -13959,11 +13960,11 @@ static void cfg80211_send_cqm(struct sk_buff *msg, gfp_t gfp)
|
|
|
|
|
|
void cfg80211_cqm_rssi_notify(struct net_device *dev,
|
|
|
enum nl80211_cqm_rssi_threshold_event rssi_event,
|
|
|
- gfp_t gfp)
|
|
|
+ s32 rssi_level, gfp_t gfp)
|
|
|
{
|
|
|
struct sk_buff *msg;
|
|
|
|
|
|
- trace_cfg80211_cqm_rssi_notify(dev, rssi_event);
|
|
|
+ trace_cfg80211_cqm_rssi_notify(dev, rssi_event, rssi_level);
|
|
|
|
|
|
if (WARN_ON(rssi_event != NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW &&
|
|
|
rssi_event != NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH))
|
|
@@ -13977,6 +13978,10 @@ void cfg80211_cqm_rssi_notify(struct net_device *dev,
|
|
|
rssi_event))
|
|
|
goto nla_put_failure;
|
|
|
|
|
|
+ if (rssi_level && nla_put_s32(msg, NL80211_ATTR_CQM_RSSI_LEVEL,
|
|
|
+ rssi_level))
|
|
|
+ goto nla_put_failure;
|
|
|
+
|
|
|
cfg80211_send_cqm(msg, gfp);
|
|
|
|
|
|
return;
|