aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 4b0d035be64f..e214c85b74d2 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -824,6 +824,33 @@ struct cfg80211_scan_request {
824}; 824};
825 825
826/** 826/**
827 * struct cfg80211_sched_scan_request - scheduled scan request description
828 *
829 * @ssids: SSIDs to scan for (passed in the probe_reqs in active scans)
830 * @n_ssids: number of SSIDs
831 * @n_channels: total number of channels to scan
832 * @ie: optional information element(s) to add into Probe Request or %NULL
833 * @ie_len: length of ie in octets
834 * @wiphy: the wiphy this was for
835 * @dev: the interface
836 * @channels: channels to scan
837 */
838struct cfg80211_sched_scan_request {
839 struct cfg80211_ssid *ssids;
840 int n_ssids;
841 u32 n_channels;
842 const u8 *ie;
843 size_t ie_len;
844
845 /* internal */
846 struct wiphy *wiphy;
847 struct net_device *dev;
848
849 /* keep last */
850 struct ieee80211_channel *channels[0];
851};
852
853/**
827 * enum cfg80211_signal_type - signal type 854 * enum cfg80211_signal_type - signal type
828 * 855 *
829 * @CFG80211_SIGNAL_TYPE_NONE: no signal strength information available 856 * @CFG80211_SIGNAL_TYPE_NONE: no signal strength information available
@@ -1292,6 +1319,10 @@ struct cfg80211_wowlan {
1292 * @set_power_mgmt: Configure WLAN power management. A timeout value of -1 1319 * @set_power_mgmt: Configure WLAN power management. A timeout value of -1
1293 * allows the driver to adjust the dynamic ps timeout value. 1320 * allows the driver to adjust the dynamic ps timeout value.
1294 * @set_cqm_rssi_config: Configure connection quality monitor RSSI threshold. 1321 * @set_cqm_rssi_config: Configure connection quality monitor RSSI threshold.
1322 * @sched_scan_start: Tell the driver to start a scheduled scan.
1323 * @sched_scan_stop: Tell the driver to stop an ongoing scheduled
1324 * scan. The driver_initiated flag specifies whether the driver
1325 * itself has informed that the scan has stopped.
1295 * 1326 *
1296 * @mgmt_frame_register: Notify driver that a management frame type was 1327 * @mgmt_frame_register: Notify driver that a management frame type was
1297 * registered. Note that this callback may not sleep, and cannot run 1328 * registered. Note that this callback may not sleep, and cannot run
@@ -1478,6 +1509,12 @@ struct cfg80211_ops {
1478 int (*set_ringparam)(struct wiphy *wiphy, u32 tx, u32 rx); 1509 int (*set_ringparam)(struct wiphy *wiphy, u32 tx, u32 rx);
1479 void (*get_ringparam)(struct wiphy *wiphy, 1510 void (*get_ringparam)(struct wiphy *wiphy,
1480 u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max); 1511 u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max);
1512
1513 int (*sched_scan_start)(struct wiphy *wiphy,
1514 struct net_device *dev,
1515 struct cfg80211_sched_scan_request *request);
1516 int (*sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev,
1517 bool driver_initiated);
1481}; 1518};
1482 1519
1483/* 1520/*
@@ -1522,6 +1559,7 @@ struct cfg80211_ops {
1522 * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN. 1559 * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN.
1523 * @WIPHY_FLAG_MESH_AUTH: The device supports mesh authentication by routing 1560 * @WIPHY_FLAG_MESH_AUTH: The device supports mesh authentication by routing
1524 * auth frames to userspace. See @NL80211_MESH_SETUP_USERSPACE_AUTH. 1561 * auth frames to userspace. See @NL80211_MESH_SETUP_USERSPACE_AUTH.
1562 * @WIPHY_FLAG_SCHED_SCAN: The device supports scheduled scans.
1525 */ 1563 */
1526enum wiphy_flags { 1564enum wiphy_flags {
1527 WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), 1565 WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0),
@@ -1534,6 +1572,7 @@ enum wiphy_flags {
1534 WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7), 1572 WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7),
1535 WIPHY_FLAG_IBSS_RSN = BIT(8), 1573 WIPHY_FLAG_IBSS_RSN = BIT(8),
1536 WIPHY_FLAG_MESH_AUTH = BIT(10), 1574 WIPHY_FLAG_MESH_AUTH = BIT(10),
1575 WIPHY_FLAG_SUPPORTS_SCHED_SCAN = BIT(11),
1537}; 1576};
1538 1577
1539struct mac_address { 1578struct mac_address {
@@ -2355,6 +2394,24 @@ int cfg80211_wext_siwpmksa(struct net_device *dev,
2355void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted); 2394void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted);
2356 2395
2357/** 2396/**
2397 * cfg80211_sched_scan_results - notify that new scan results are available
2398 *
2399 * @wiphy: the wiphy which got scheduled scan results
2400 */
2401void cfg80211_sched_scan_results(struct wiphy *wiphy);
2402
2403/**
2404 * cfg80211_sched_scan_stopped - notify that the scheduled scan has stopped
2405 *
2406 * @wiphy: the wiphy on which the scheduled scan stopped
2407 *
2408 * The driver can call this function to inform cfg80211 that the
2409 * scheduled scan had to be stopped, for whatever reason. The driver
2410 * is then called back via the sched_scan_stop operation when done.
2411 */
2412void cfg80211_sched_scan_stopped(struct wiphy *wiphy);
2413
2414/**
2358 * cfg80211_inform_bss_frame - inform cfg80211 of a received BSS frame 2415 * cfg80211_inform_bss_frame - inform cfg80211 of a received BSS frame
2359 * 2416 *
2360 * @wiphy: the wiphy reporting the BSS 2417 * @wiphy: the wiphy reporting the BSS