diff options
author | Ilan Peer <ilan.peer@intel.com> | 2018-04-20 13:49:25 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2018-05-23 11:06:10 +0200 |
commit | d4e36e5554eb92f3ec7fedad3efb602570584df4 (patch) | |
tree | aeae9acd7293f9fd07778f1a68ac39d8b000e33b /include | |
parent | dd8070bff204a67fcb6585f18047841a895b68d7 (diff) | |
download | op-kernel-dev-d4e36e5554eb92f3ec7fedad3efb602570584df4.zip op-kernel-dev-d4e36e5554eb92f3ec7fedad3efb602570584df4.tar.gz |
mac80211: Support adding duration for prepare_tx() callback
There are specific cases, such as SAE authentication exchange, that
might require long duration to complete. For such cases, add support
for indicating to the driver the required duration of the prepare_tx()
operation, so the driver would still be able to complete the frame
exchange.
Currently, indicate the duration only for SAE authentication exchange,
as SAE authentication can take up to 2000 msec (as defined in IEEE
P802.11-REVmd D1.0 p. 3504).
As the patch modified the prepare_tx() callback API, also modify
the relevant code in iwlwifi.
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/mac80211.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 604d738..851a5e1 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -3378,6 +3378,8 @@ enum ieee80211_reconfig_type { * frame in case that no beacon was heard from the AP/P2P GO. * The callback will be called before each transmission and upon return * mac80211 will transmit the frame right away. + * If duration is greater than zero, mac80211 hints to the driver the + * duration for which the operation is requested. * The callback is optional and can (should!) sleep. * * @mgd_protect_tdls_discover: Protect a TDLS discovery session. After sending @@ -3697,7 +3699,8 @@ struct ieee80211_ops { u32 sset, u8 *data); void (*mgd_prepare_tx)(struct ieee80211_hw *hw, - struct ieee80211_vif *vif); + struct ieee80211_vif *vif, + u16 duration); void (*mgd_protect_tdls_discover)(struct ieee80211_hw *hw, struct ieee80211_vif *vif); |