aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorSimon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de>2013-07-11 10:09:05 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-08-01 12:30:28 -0400
commit16ef1fe272332b2f7fd99236017b891db48d9cd6 (patch)
tree95b7a750ade214349282f1858ac44640890fce9c /include/net/cfg80211.h
parent7cf1f14ecf1f5025abb0e30e22e8f7ad219fa32e (diff)
nl80211/cfg80211: add channel switch command
To allow channel switch announcements within beacons, add the channel switch command to nl80211/cfg80211. This is implementation is intended for AP and (later) IBSS mode. Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index aeaf6dff6e05..b7495c72061c 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -666,6 +666,30 @@ struct cfg80211_ap_settings {
666}; 666};
667 667
668/** 668/**
669 * struct cfg80211_csa_settings - channel switch settings
670 *
671 * Used for channel switch
672 *
673 * @chandef: defines the channel to use after the switch
674 * @beacon_csa: beacon data while performing the switch
675 * @counter_offset_beacon: offset for the counter within the beacon (tail)
676 * @counter_offset_presp: offset for the counter within the probe response
677 * @beacon_after: beacon data to be used on the new channel
678 * @radar_required: whether radar detection is required on the new channel
679 * @block_tx: whether transmissions should be blocked while changing
680 * @count: number of beacons until switch
681 */
682struct cfg80211_csa_settings {
683 struct cfg80211_chan_def chandef;
684 struct cfg80211_beacon_data beacon_csa;
685 u16 counter_offset_beacon, counter_offset_presp;
686 struct cfg80211_beacon_data beacon_after;
687 bool radar_required;
688 bool block_tx;
689 u8 count;
690};
691
692/**
669 * enum station_parameters_apply_mask - station parameter values to apply 693 * enum station_parameters_apply_mask - station parameter values to apply
670 * @STATION_PARAM_APPLY_UAPSD: apply new uAPSD parameters (uapsd_queues, max_sp) 694 * @STATION_PARAM_APPLY_UAPSD: apply new uAPSD parameters (uapsd_queues, max_sp)
671 * @STATION_PARAM_APPLY_CAPABILITY: apply new capability 695 * @STATION_PARAM_APPLY_CAPABILITY: apply new capability
@@ -2139,6 +2163,8 @@ struct cfg80211_update_ft_ies_params {
2139 * @crit_proto_stop: Indicates critical protocol no longer needs increased link 2163 * @crit_proto_stop: Indicates critical protocol no longer needs increased link
2140 * reliability. This operation can not fail. 2164 * reliability. This operation can not fail.
2141 * @set_coalesce: Set coalesce parameters. 2165 * @set_coalesce: Set coalesce parameters.
2166 *
2167 * @channel_switch: initiate channel-switch procedure (with CSA)
2142 */ 2168 */
2143struct cfg80211_ops { 2169struct cfg80211_ops {
2144 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); 2170 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
@@ -2376,6 +2402,10 @@ struct cfg80211_ops {
2376 struct wireless_dev *wdev); 2402 struct wireless_dev *wdev);
2377 int (*set_coalesce)(struct wiphy *wiphy, 2403 int (*set_coalesce)(struct wiphy *wiphy,
2378 struct cfg80211_coalesce *coalesce); 2404 struct cfg80211_coalesce *coalesce);
2405
2406 int (*channel_switch)(struct wiphy *wiphy,
2407 struct net_device *dev,
2408 struct cfg80211_csa_settings *params);
2379}; 2409};
2380 2410
2381/* 2411/*
@@ -2441,6 +2471,8 @@ struct cfg80211_ops {
2441 * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX. 2471 * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX.
2442 * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call. 2472 * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call.
2443 * @WIPHY_FLAG_SUPPORTS_5_10_MHZ: Device supports 5 MHz and 10 MHz channels. 2473 * @WIPHY_FLAG_SUPPORTS_5_10_MHZ: Device supports 5 MHz and 10 MHz channels.
2474 * @WIPHY_FLAG_HAS_CHANNEL_SWITCH: Device supports channel switch in
2475 * beaconing mode (AP, IBSS, Mesh, ...).
2444 */ 2476 */
2445enum wiphy_flags { 2477enum wiphy_flags {
2446 WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), 2478 WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0),
@@ -2465,6 +2497,7 @@ enum wiphy_flags {
2465 WIPHY_FLAG_OFFCHAN_TX = BIT(20), 2497 WIPHY_FLAG_OFFCHAN_TX = BIT(20),
2466 WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = BIT(21), 2498 WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = BIT(21),
2467 WIPHY_FLAG_SUPPORTS_5_10_MHZ = BIT(22), 2499 WIPHY_FLAG_SUPPORTS_5_10_MHZ = BIT(22),
2500 WIPHY_FLAG_HAS_CHANNEL_SWITCH = BIT(23),
2468}; 2501};
2469 2502
2470/** 2503/**