mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 01:50:53 +07:00
mac80211: add option to generate CCMP IVs only for mgmt frames
Some chips can encrypt managment frames in HW, but require generated IV in the frame. Add a key flag that allows us to achieve this. Signed-off-by: Marek Kwaczynski <marek.kwaczynski@tieto.com> [use BIT(0) to fill that spot, fix indentation] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
c0166da9fe
commit
17d38fa8c2
@ -1202,14 +1202,18 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
|
||||
* fall back to software crypto. Note that this flag deals only with
|
||||
* RX, if your crypto engine can't deal with TX you can also set the
|
||||
* %IEEE80211_KEY_FLAG_SW_MGMT_TX flag to encrypt such frames in SW.
|
||||
* @IEEE80211_KEY_FLAG_GENERATE_IV_MGMT: This flag should be set by the
|
||||
* driver for a CCMP key to indicate that is requires IV generation
|
||||
* only for managment frames (MFP).
|
||||
*/
|
||||
enum ieee80211_key_flags {
|
||||
IEEE80211_KEY_FLAG_GENERATE_IV = 1<<1,
|
||||
IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2,
|
||||
IEEE80211_KEY_FLAG_PAIRWISE = 1<<3,
|
||||
IEEE80211_KEY_FLAG_SW_MGMT_TX = 1<<4,
|
||||
IEEE80211_KEY_FLAG_PUT_IV_SPACE = 1<<5,
|
||||
IEEE80211_KEY_FLAG_RX_MGMT = 1<<6,
|
||||
IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = BIT(0),
|
||||
IEEE80211_KEY_FLAG_GENERATE_IV = BIT(1),
|
||||
IEEE80211_KEY_FLAG_GENERATE_MMIC = BIT(2),
|
||||
IEEE80211_KEY_FLAG_PAIRWISE = BIT(3),
|
||||
IEEE80211_KEY_FLAG_SW_MGMT_TX = BIT(4),
|
||||
IEEE80211_KEY_FLAG_PUT_IV_SPACE = BIT(5),
|
||||
IEEE80211_KEY_FLAG_RX_MGMT = BIT(6),
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -406,7 +406,10 @@ static int ccmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
|
||||
|
||||
if (info->control.hw_key &&
|
||||
!(info->control.hw_key->flags & IEEE80211_KEY_FLAG_GENERATE_IV) &&
|
||||
!(info->control.hw_key->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)) {
|
||||
!(info->control.hw_key->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) &&
|
||||
!((info->control.hw_key->flags &
|
||||
IEEE80211_KEY_FLAG_GENERATE_IV_MGMT) &&
|
||||
ieee80211_is_mgmt(hdr->frame_control))) {
|
||||
/*
|
||||
* hwaccel has no need for preallocated room for CCMP
|
||||
* header or MIC fields
|
||||
|
Loading…
Reference in New Issue
Block a user