diff options
Diffstat (limited to 'include/net/cfg80211.h')
| -rwxr-xr-x[-rw-r--r--] | include/net/cfg80211.h | 88 | 
1 files changed, 86 insertions, 2 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 26b5b692c22..03cbb70b24b 100644..100755 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -611,6 +611,30 @@ struct cfg80211_ap_settings {  };  /** + * struct cfg80211_csa_settings - channel switch settings + * + * Used for channel switch + * + * @chandef: defines the channel to use after the switch + * @beacon_csa: beacon data while performing the switch + * @counter_offset_beacon: offset for the counter within the beacon (tail) + * @counter_offset_presp: offset for the counter within the probe response + * @beacon_after: beacon data to be used on the new channel + * @radar_required: whether radar detection is required on the new channel + * @block_tx: whether transmissions should be blocked while changing + * @count: number of beacons until switch + */ +struct cfg80211_csa_settings { +	struct cfg80211_chan_def chandef; +	struct cfg80211_beacon_data beacon_csa; +	u16 counter_offset_beacon, counter_offset_presp; +	struct cfg80211_beacon_data beacon_after; +	bool radar_required; +	bool block_tx; +	u8 count; +}; + +/**   * enum station_parameters_apply_mask - station parameter values to apply   * @STATION_PARAM_APPLY_UAPSD: apply new uAPSD parameters (uapsd_queues, max_sp)   * @STATION_PARAM_APPLY_CAPABILITY: apply new capability @@ -1241,6 +1265,9 @@ struct cfg80211_ssid {   * @scan_start: time (in jiffies) when the scan started   * @wdev: the wireless device to scan for   * @aborted: (internal) scan request was notified as aborted + * @min_dwell: minimum time to wait on each channel for active scans + * @max_dwell: maximum time to wait on each channel for active scans + * @num_probe: number of probe requests to transmit on each active scan channel   * @no_cck: used to send probe requests at non CCK rate in 2GHz band   */  struct cfg80211_scan_request { @@ -1261,6 +1288,10 @@ struct cfg80211_scan_request {  	bool aborted;  	bool no_cck; +	u32 min_dwell; +	u32 max_dwell; +	u8 num_probe; +  	/* keep last */  	struct ieee80211_channel *channels[0];  }; @@ -1280,7 +1311,10 @@ struct cfg80211_match_set {   * @ssids: SSIDs to scan for (passed in the probe_reqs in active scans)   * @n_ssids: number of SSIDs   * @n_channels: total number of channels to scan - * @interval: interval between each scheduled scan cycle + * @long_interval: interval between each long scheduled scan cycle + * @short_interval: interval between each short scheduled scan cycle + * @n_short_intevals: number of short intervals scheduled scan cycles before + *      switching to the long interval   * @ie: optional information element(s) to add into Probe Request or %NULL   * @ie_len: length of ie in octets   * @flags: bit field of flags controlling operation @@ -1299,7 +1333,9 @@ struct cfg80211_sched_scan_request {  	struct cfg80211_ssid *ssids;  	int n_ssids;  	u32 n_channels; -	u32 interval; +	u32 long_interval; +	u32 short_interval; +	u8 n_short_intervals;  	const u8 *ie;  	size_t ie_len;  	u32 flags; @@ -1875,6 +1911,7 @@ struct cfg80211_update_ft_ies_params {   *	the driver, and will be valid until passed to cfg80211_scan_done().   *	For scan results, call cfg80211_inform_bss(); you can call this outside   *	the scan/scan_done bracket too. + * @scan_cancel: Stop currently running scan (both sw and hw).   *   * @auth: Request to authenticate with the specified peer   * @assoc: Request to (re)associate with the specified peer @@ -2008,6 +2045,9 @@ struct cfg80211_update_ft_ies_params {   *	driver can take the most appropriate actions.   * @crit_proto_stop: Indicates critical protocol no longer needs increased link   *	reliability. This operation can not fail. + * @set_coalesce: Set coalesce parameters. + * + * @channel_switch: initiate channel-switch procedure (with CSA)   */  struct cfg80211_ops {  	int	(*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); @@ -2098,6 +2138,7 @@ struct cfg80211_ops {  	int	(*scan)(struct wiphy *wiphy,  			struct cfg80211_scan_request *request); +	void    (*scan_cancel)(struct wiphy *wiphy, struct net_device *dev);  	int	(*auth)(struct wiphy *wiphy, struct net_device *dev,  			struct cfg80211_auth_request *req); @@ -2243,6 +2284,10 @@ struct cfg80211_ops {  				    u16 duration);  	void	(*crit_proto_stop)(struct wiphy *wiphy,  				   struct wireless_dev *wdev); + +	int	(*channel_switch)(struct wiphy *wiphy, +				  struct net_device *dev, +				  struct cfg80211_csa_settings *params);  };  /* @@ -2307,6 +2352,9 @@ struct cfg80211_ops {   *	responds to probe-requests in hardware.   * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX.   * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call. + * @WIPHY_FLAG_SUPPORTS_5_10_MHZ: Device supports 5 MHz and 10 MHz channels. + * @WIPHY_FLAG_HAS_CHANNEL_SWITCH: Device supports channel switch in + *	beaconing mode (AP, IBSS, Mesh, ...).   */  enum wiphy_flags {  	WIPHY_FLAG_CUSTOM_REGULATORY		= BIT(0), @@ -2330,6 +2378,8 @@ enum wiphy_flags {  	WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD	= BIT(19),  	WIPHY_FLAG_OFFCHAN_TX			= BIT(20),  	WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL	= BIT(21), +	WIPHY_FLAG_SUPPORTS_5_10_MHZ		= BIT(22), +	WIPHY_FLAG_HAS_CHANNEL_SWITCH		= BIT(23),  };  /** @@ -3299,6 +3349,30 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy);  void cfg80211_sched_scan_stopped(struct wiphy *wiphy);  /** + * cfg80211_current_sched_scan_request - get current cached + * sched scan request + * + * @wiphy: the wiphy on which the scheduled scan is active + * + * The driver can call this function to get a reference of + * the current active scheduled scan request parameters. + * + * Return: A referenced struct, or NULL if request is no loner available. + */ +struct cfg80211_sched_scan_request * +cfg80211_current_sched_scan_request(struct wiphy *wiphy); + +/** + * cfg80211_send_intermediate_result - inform userspace about new + * scan result. + * + * @dev: network device + * @cbss: bss info to report. + */ +void cfg80211_send_intermediate_result(struct net_device *dev, +				       struct cfg80211_bss *cbss); + +/**   * cfg80211_inform_bss_frame - inform cfg80211 of a received BSS frame   *   * @wiphy: the wiphy reporting the BSS @@ -3937,6 +4011,16 @@ void cfg80211_cqm_txe_notify(struct net_device *dev, const u8 *peer,  			     u32 num_packets, u32 rate, u32 intvl, gfp_t gfp);  /** + * cfg80211_roaming_status - notify userspace about changes in the driver + * ability to support roaming + * @dev: network device + * @enabled: indicates whether roaming is supported at the current time + * @gfp: allocation flags + */ +void cfg80211_roaming_status(struct net_device *dev, +			     bool enabled, gfp_t gfp); + +/**   * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying   * @dev: network device   * @bssid: BSSID of AP (to avoid races)  |