diff options
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 57 |
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 | */ | ||
838 | struct 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 | */ |
1526 | enum wiphy_flags { | 1564 | enum 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 | ||
1539 | struct mac_address { | 1578 | struct mac_address { |
@@ -2355,6 +2394,24 @@ int cfg80211_wext_siwpmksa(struct net_device *dev, | |||
2355 | void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted); | 2394 | void 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 | */ | ||
2401 | void 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 | */ | ||
2412 | void 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 |