|
@@ -356,6 +356,7 @@ static const struct nla_policy nl80211_policy[NL80211_ATTR_MAX+1] = {
|
|
|
[NL80211_ATTR_USER_REG_HINT_TYPE] = { .type = NLA_U32 },
|
|
|
[NL80211_ATTR_SAE_DATA] = { .type = NLA_BINARY, },
|
|
|
[NL80211_ATTR_VHT_CAPABILITY] = { .len = NL80211_VHT_CAPABILITY_LEN },
|
|
|
+ [NL80211_ATTR_SCAN_FLAGS] = { .type = NLA_U32 },
|
|
|
};
|
|
|
|
|
|
/* policy for the key attributes */
|
|
@@ -4367,6 +4368,10 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (info->attrs[NL80211_ATTR_SCAN_FLAGS])
|
|
|
+ request->flags = nla_get_u32(
|
|
|
+ info->attrs[NL80211_ATTR_SCAN_FLAGS]);
|
|
|
+
|
|
|
request->no_cck =
|
|
|
nla_get_flag(info->attrs[NL80211_ATTR_TX_NO_CCK_RATE]);
|
|
|
|
|
@@ -4598,6 +4603,10 @@ static int nl80211_start_sched_scan(struct sk_buff *skb,
|
|
|
request->ie_len);
|
|
|
}
|
|
|
|
|
|
+ if (info->attrs[NL80211_ATTR_SCAN_FLAGS])
|
|
|
+ request->flags = nla_get_u32(
|
|
|
+ info->attrs[NL80211_ATTR_SCAN_FLAGS]);
|
|
|
+
|
|
|
request->dev = dev;
|
|
|
request->wiphy = &rdev->wiphy;
|
|
|
request->interval = interval;
|
|
@@ -7663,6 +7672,9 @@ static int nl80211_add_scan_req(struct sk_buff *msg,
|
|
|
nla_put(msg, NL80211_ATTR_IE, req->ie_len, req->ie))
|
|
|
goto nla_put_failure;
|
|
|
|
|
|
+ if (req->flags)
|
|
|
+ nla_put_u32(msg, NL80211_ATTR_SCAN_FLAGS, req->flags);
|
|
|
+
|
|
|
return 0;
|
|
|
nla_put_failure:
|
|
|
return -ENOBUFS;
|