diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-07-05 16:35:40 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-06 15:05:42 -0400 |
commit | e5497d766adb92bcbd1fa4a147e188f84f34b20a (patch) | |
tree | f5d41f4272b78b8c61a80c22389f6d4b24e65b34 /net/wireless/mlme.c | |
parent | 830af02f24fbc087999b757b8eca51829c67fa6f (diff) | |
download | linux-3.10-e5497d766adb92bcbd1fa4a147e188f84f34b20a.tar.gz linux-3.10-e5497d766adb92bcbd1fa4a147e188f84f34b20a.tar.bz2 linux-3.10-e5497d766adb92bcbd1fa4a147e188f84f34b20a.zip |
cfg80211/nl80211: support GTK rekey offload
In certain circumstances, like WoWLAN scenarios,
devices may implement (partial) GTK rekeying on
the device to avoid waking up the host for it.
In order to successfully go through GTK rekeying,
the KEK, KCK and the replay counter are required.
Add API to let the supplicant hand the parameters
to the driver which may store it for future GTK
rekey operations.
Note that, of course, if GTK rekeying is done by
the device, the EAP frame must not be passed up
to userspace, instead a rekey event needs to be
sent to let userspace update its replay counter.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/mlme.c')
-rw-r--r-- | net/wireless/mlme.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index 3633ab6af18..832f6574e4e 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c @@ -1084,3 +1084,14 @@ void cfg80211_cqm_pktloss_notify(struct net_device *dev, nl80211_send_cqm_pktloss_notify(rdev, dev, peer, num_packets, gfp); } EXPORT_SYMBOL(cfg80211_cqm_pktloss_notify); + +void cfg80211_gtk_rekey_notify(struct net_device *dev, const u8 *bssid, + const u8 *replay_ctr, gfp_t gfp) +{ + struct wireless_dev *wdev = dev->ieee80211_ptr; + struct wiphy *wiphy = wdev->wiphy; + struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); + + nl80211_gtk_rekey_notify(rdev, dev, bssid, replay_ctr, gfp); +} +EXPORT_SYMBOL(cfg80211_gtk_rekey_notify); |