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) |