| From a764efbef07c65a3b712dc1c5d619c3f22bd6433 Mon Sep 17 00:00:00 2001 |
| From: Michael-CY Lee <michael-cy.lee@mediatek.com> |
| Date: Mon, 18 Mar 2024 17:06:58 +0800 |
| Subject: [PATCH 003/116] mtk: wifi: mt76: mt7996: let upper layer handle MGMT |
| frame protection |
| |
| The firmware support for management frame protection has limitations: |
| - do not support cipher BIP-GMAC-128 and BIP-GMAC-256 |
| - support cipher BIP-CMAC-128 and BIP-CMAC-256, except action frame with |
| action type 'not robust'. |
| |
| Therefore, to simplify the logic, do not set the IGTK to firmware and |
| let the encryption of management frames be handled by upper layer. |
| |
| CR-Id: WCNCR00289305 |
| Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com> |
| Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> |
| --- |
| mt7996/main.c | 9 +++++---- |
| 1 file changed, 5 insertions(+), 4 deletions(-) |
| |
| diff --git a/mt7996/main.c b/mt7996/main.c |
| index 16115c279..a65a1efca 100644 |
| --- a/mt7996/main.c |
| +++ b/mt7996/main.c |
| @@ -352,10 +352,6 @@ static int mt7996_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, |
| |
| /* fall back to sw encryption for unsupported ciphers */ |
| switch (key->cipher) { |
| - case WLAN_CIPHER_SUITE_AES_CMAC: |
| - wcid_keyidx = &wcid->hw_key_idx2; |
| - key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIE; |
| - break; |
| case WLAN_CIPHER_SUITE_TKIP: |
| case WLAN_CIPHER_SUITE_CCMP: |
| case WLAN_CIPHER_SUITE_CCMP_256: |
| @@ -363,6 +359,11 @@ static int mt7996_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, |
| case WLAN_CIPHER_SUITE_GCMP_256: |
| case WLAN_CIPHER_SUITE_SMS4: |
| break; |
| + case WLAN_CIPHER_SUITE_AES_CMAC: |
| + wcid_keyidx = &wcid->hw_key_idx2; |
| + key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIE; |
| + fallthrough; |
| + case WLAN_CIPHER_SUITE_BIP_CMAC_256: |
| case WLAN_CIPHER_SUITE_BIP_GMAC_128: |
| case WLAN_CIPHER_SUITE_BIP_GMAC_256: |
| if (key->keyidx == 6 || key->keyidx == 7) |
| -- |
| 2.39.2 |
| |