nl80211: allow multiple active scheduled scan requests

This patch implements the idea to have multiple scheduled scan requests
running concurrently. It mainly illustrates how to deal with the incoming
request from user-space in terms of backward compatibility. In order to
use multiple scheduled scans user-space needs to provide a flag attribute
NL80211_ATTR_SCHED_SCAN_MULTI to indicate support. If not the request is
treated as a legacy scan.

Drivers currently supporting scheduled scan are now indicating they support
a single scheduled scan request. This obsoletes WIPHY_FLAG_SUPPORTS_SCHED_SCAN.

Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: Franky Lin <franky.lin@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
[clean up netlink destroy path to avoid allocations, code cleanups]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Arend Van Spriel 2017-04-21 13:05:00 +01:00 committed by Johannes Berg
parent ab81007a7b
commit ca986ad9bc
13 changed files with 205 additions and 64 deletions

View file

@ -1610,20 +1610,26 @@ DEFINE_EVENT(tx_rx_evt, rdev_set_antenna,
TP_ARGS(wiphy, rx, tx)
);
TRACE_EVENT(rdev_sched_scan_start,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
struct cfg80211_sched_scan_request *request),
TP_ARGS(wiphy, netdev, request),
DECLARE_EVENT_CLASS(wiphy_netdev_id_evt,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
TP_ARGS(wiphy, netdev, id),
TP_STRUCT__entry(
WIPHY_ENTRY
NETDEV_ENTRY
__field(u64, id)
),
TP_fast_assign(
WIPHY_ASSIGN;
NETDEV_ASSIGN;
__entry->id = id;
),
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT,
WIPHY_PR_ARG, NETDEV_PR_ARG)
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu",
WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id)
);
DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start,
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id),
TP_ARGS(wiphy, netdev, id)
);
TRACE_EVENT(rdev_tdls_mgmt,