aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 9e5542794b95..62a1c225b7cb 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -537,6 +537,21 @@ struct ieee80211_tx_info {
537 }; 537 };
538}; 538};
539 539
540/**
541 * ieee80211_sched_scan_ies - scheduled scan IEs
542 *
543 * This structure is used to pass the appropriate IEs to be used in scheduled
544 * scans for all bands. It contains both the IEs passed from the userspace
545 * and the ones generated by mac80211.
546 *
547 * @ie: array with the IEs for each supported band
548 * @len: array with the total length of the IEs for each band
549 */
550struct ieee80211_sched_scan_ies {
551 u8 *ie[IEEE80211_NUM_BANDS];
552 size_t len[IEEE80211_NUM_BANDS];
553};
554
540static inline struct ieee80211_tx_info *IEEE80211_SKB_CB(struct sk_buff *skb) 555static inline struct ieee80211_tx_info *IEEE80211_SKB_CB(struct sk_buff *skb)
541{ 556{
542 return (struct ieee80211_tx_info *)skb->cb; 557 return (struct ieee80211_tx_info *)skb->cb;
@@ -1693,6 +1708,13 @@ enum ieee80211_ampdu_mlme_action {
1693 * any error unless this callback returned a negative error code. 1708 * any error unless this callback returned a negative error code.
1694 * The callback can sleep. 1709 * The callback can sleep.
1695 * 1710 *
1711 * @sched_scan_start: Ask the hardware to start scanning repeatedly at
1712 * specific intervals. The driver must call the
1713 * ieee80211_sched_scan_results() function whenever it finds results.
1714 * This process will continue until sched_scan_stop is called.
1715 *
1716 * @sched_scan_stop: Tell the hardware to stop an ongoing scheduled scan.
1717 *
1696 * @sw_scan_start: Notifier function that is called just before a software scan 1718 * @sw_scan_start: Notifier function that is called just before a software scan
1697 * is started. Can be NULL, if the driver doesn't need this notification. 1719 * is started. Can be NULL, if the driver doesn't need this notification.
1698 * The callback can sleep. 1720 * The callback can sleep.
@@ -1877,6 +1899,12 @@ struct ieee80211_ops {
1877 u32 iv32, u16 *phase1key); 1899 u32 iv32, u16 *phase1key);
1878 int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 1900 int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1879 struct cfg80211_scan_request *req); 1901 struct cfg80211_scan_request *req);
1902 int (*sched_scan_start)(struct ieee80211_hw *hw,
1903 struct ieee80211_vif *vif,
1904 struct cfg80211_sched_scan_request *req,
1905 struct ieee80211_sched_scan_ies *ies);
1906 void (*sched_scan_stop)(struct ieee80211_hw *hw,
1907 struct ieee80211_vif *vif);
1880 void (*sw_scan_start)(struct ieee80211_hw *hw); 1908 void (*sw_scan_start)(struct ieee80211_hw *hw);
1881 void (*sw_scan_complete)(struct ieee80211_hw *hw); 1909 void (*sw_scan_complete)(struct ieee80211_hw *hw);
1882 int (*get_stats)(struct ieee80211_hw *hw, 1910 int (*get_stats)(struct ieee80211_hw *hw,
@@ -2594,6 +2622,28 @@ void ieee80211_wake_queues(struct ieee80211_hw *hw);
2594void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted); 2622void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted);
2595 2623
2596/** 2624/**
2625 * ieee80211_sched_scan_results - got results from scheduled scan
2626 *
2627 * When a scheduled scan is running, this function needs to be called by the
2628 * driver whenever there are new scan results available.
2629 *
2630 * @hw: the hardware that is performing scheduled scans
2631 */
2632void ieee80211_sched_scan_results(struct ieee80211_hw *hw);
2633
2634/**
2635 * ieee80211_sched_scan_stopped - inform that the scheduled scan has stopped
2636 *
2637 * When a scheduled scan is running, this function can be called by
2638 * the driver if it needs to stop the scan to perform another task.
2639 * Usual scenarios are drivers that cannot continue the scheduled scan
2640 * while associating, for instance.
2641 *
2642 * @hw: the hardware that is performing scheduled scans
2643 */
2644void ieee80211_sched_scan_stopped(struct ieee80211_hw *hw);
2645
2646/**
2597 * ieee80211_iterate_active_interfaces - iterate active interfaces 2647 * ieee80211_iterate_active_interfaces - iterate active interfaces
2598 * 2648 *
2599 * This function iterates over the interfaces associated with a given 2649 * This function iterates over the interfaces associated with a given