linux/drivers/net/wireless/intel/iwlwifi/mld/key.h
Miri Korenblit 205a7309cc wifi: iwlwifi: mld/mvm: set beacon protection capability in wowlan config
Although the FW knows if a BIGTK was installed and can conclude from
that the beacon protection capability, the specific component
of the FW that is responsible for rekeying while in wowlan, doesn't know
what keys were installed.
So we need to tell that the FW when we go to wowlan, otherwise it will
ignore the BIGTK rekey, if such occurs.
Set this bit when needed.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250821204455.d3968487865e.I784f564ab85f618f26d3f082197a384bb219e07c@changeid
2025-08-26 18:39:44 +03:00

47 lines
1.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/*
* Copyright (C) 2024 Intel Corporation
*/
#ifndef __iwl_mld_key_h__
#define __iwl_mld_key_h__
#include "mld.h"
#include <net/mac80211.h>
#include "fw/api/sta.h"
void iwl_mld_remove_key(struct iwl_mld *mld,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key);
int iwl_mld_add_key(struct iwl_mld *mld,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key);
void iwl_mld_remove_ap_keys(struct iwl_mld *mld,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
unsigned int link_id);
int iwl_mld_update_sta_keys(struct iwl_mld *mld,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
u32 old_sta_mask,
u32 new_sta_mask);
static inline void
iwl_mld_cleanup_keys_iter(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key, void *data)
{
key->hw_key_idx = STA_KEY_IDX_INVALID;
}
void iwl_mld_track_bigtk(struct iwl_mld *mld,
struct ieee80211_vif *vif,
struct ieee80211_key_conf *key, bool add);
bool iwl_mld_beacon_protection_enabled(struct iwl_mld *mld,
struct ieee80211_bss_conf *link);
#endif /* __iwl_mld_key_h__ */