aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorIlan Peer <ilan.peer@intel.com>2013-02-12 02:34:13 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-03-06 10:35:49 -0500
commitd339d5ca8eee34f3c70386cf2545edc53e546a13 (patch)
tree30587aa1e41343adcf10b0716e54964410d86edf /include/net
parentf62fab735e99af2190eba03f565adaca5c002882 (diff)
mac80211: Allow drivers to differentiate between ROC types
Some devices can handle remain on channel requests differently based on the request type/priority. Add support to differentiate between different ROC types, i.e., indicate that the ROC is required for sending managment frames. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index f7eba1300d82..9b0d342c0675 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2135,6 +2135,24 @@ enum ieee80211_rate_control_changed {
2135}; 2135};
2136 2136
2137/** 2137/**
2138 * enum ieee80211_roc_type - remain on channel type
2139 *
2140 * With the support for multi channel contexts and multi channel operations,
2141 * remain on channel operations might be limited/deferred/aborted by other
2142 * flows/operations which have higher priority (and vise versa).
2143 * Specifying the ROC type can be used by devices to prioritize the ROC
2144 * operations compared to other operations/flows.
2145 *
2146 * @IEEE80211_ROC_TYPE_NORMAL: There are no special requirements for this ROC.
2147 * @IEEE80211_ROC_TYPE_MGMT_TX: The remain on channel request is required
2148 * for sending managment frames offchannel.
2149 */
2150enum ieee80211_roc_type {
2151 IEEE80211_ROC_TYPE_NORMAL = 0,
2152 IEEE80211_ROC_TYPE_MGMT_TX,
2153};
2154
2155/**
2138 * struct ieee80211_ops - callbacks from mac80211 to the driver 2156 * struct ieee80211_ops - callbacks from mac80211 to the driver
2139 * 2157 *
2140 * This structure contains various callbacks that the driver may 2158 * This structure contains various callbacks that the driver may
@@ -2687,7 +2705,8 @@ struct ieee80211_ops {
2687 int (*remain_on_channel)(struct ieee80211_hw *hw, 2705 int (*remain_on_channel)(struct ieee80211_hw *hw,
2688 struct ieee80211_vif *vif, 2706 struct ieee80211_vif *vif,
2689 struct ieee80211_channel *chan, 2707 struct ieee80211_channel *chan,
2690 int duration); 2708 int duration,
2709 enum ieee80211_roc_type type);
2691 int (*cancel_remain_on_channel)(struct ieee80211_hw *hw); 2710 int (*cancel_remain_on_channel)(struct ieee80211_hw *hw);
2692 int (*set_ringparam)(struct ieee80211_hw *hw, u32 tx, u32 rx); 2711 int (*set_ringparam)(struct ieee80211_hw *hw, u32 tx, u32 rx);
2693 void (*get_ringparam)(struct ieee80211_hw *hw, 2712 void (*get_ringparam)(struct ieee80211_hw *hw,