|
@@ -1700,6 +1700,12 @@ enum ieee80211_ampdu_mlme_action {
|
|
* which set IEEE80211_KEY_FLAG_TKIP_REQ_RX_P1_KEY.
|
|
* which set IEEE80211_KEY_FLAG_TKIP_REQ_RX_P1_KEY.
|
|
* The callback must be atomic.
|
|
* The callback must be atomic.
|
|
*
|
|
*
|
|
|
|
+ * @set_rekey_data: If the device supports GTK rekeying, for example while the
|
|
|
|
+ * host is suspended, it can assign this callback to retrieve the data
|
|
|
|
+ * necessary to do GTK rekeying, this is the KEK, KCK and replay counter.
|
|
|
|
+ * After rekeying was done it should (for example during resume) notify
|
|
|
|
+ * userspace of the new replay counter using ieee80211_gtk_rekey_notify().
|
|
|
|
+ *
|
|
* @hw_scan: Ask the hardware to service the scan request, no need to start
|
|
* @hw_scan: Ask the hardware to service the scan request, no need to start
|
|
* the scan state machine in stack. The scan must honour the channel
|
|
* the scan state machine in stack. The scan must honour the channel
|
|
* configuration done by the regulatory agent in the wiphy's
|
|
* configuration done by the regulatory agent in the wiphy's
|
|
@@ -1912,6 +1918,9 @@ struct ieee80211_ops {
|
|
struct ieee80211_key_conf *conf,
|
|
struct ieee80211_key_conf *conf,
|
|
struct ieee80211_sta *sta,
|
|
struct ieee80211_sta *sta,
|
|
u32 iv32, u16 *phase1key);
|
|
u32 iv32, u16 *phase1key);
|
|
|
|
+ void (*set_rekey_data)(struct ieee80211_hw *hw,
|
|
|
|
+ struct ieee80211_vif *vif,
|
|
|
|
+ struct cfg80211_gtk_rekey_data *data);
|
|
int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
|
int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
|
struct cfg80211_scan_request *req);
|
|
struct cfg80211_scan_request *req);
|
|
void (*cancel_hw_scan)(struct ieee80211_hw *hw,
|
|
void (*cancel_hw_scan)(struct ieee80211_hw *hw,
|
|
@@ -2585,6 +2594,17 @@ ieee80211_get_buffered_bc(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
|
|
void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf,
|
|
void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf,
|
|
struct sk_buff *skb,
|
|
struct sk_buff *skb,
|
|
enum ieee80211_tkip_key_type type, u8 *key);
|
|
enum ieee80211_tkip_key_type type, u8 *key);
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * ieee80211_gtk_rekey_notify - notify userspace supplicant of rekeying
|
|
|
|
+ * @vif: virtual interface the rekeying was done on
|
|
|
|
+ * @bssid: The BSSID of the AP, for checking association
|
|
|
|
+ * @replay_ctr: the new replay counter after GTK rekeying
|
|
|
|
+ * @gfp: allocation flags
|
|
|
|
+ */
|
|
|
|
+void ieee80211_gtk_rekey_notify(struct ieee80211_vif *vif, const u8 *bssid,
|
|
|
|
+ const u8 *replay_ctr, gfp_t gfp);
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* ieee80211_wake_queue - wake specific queue
|
|
* ieee80211_wake_queue - wake specific queue
|
|
* @hw: pointer as obtained from ieee80211_alloc_hw().
|
|
* @hw: pointer as obtained from ieee80211_alloc_hw().
|