]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mac80211: add generic MMIE struct defines
authorChien Wong <m@xv97.com>
Thu, 13 Nov 2025 14:05:08 +0000 (22:05 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 20 Nov 2025 10:56:19 +0000 (11:56 +0100)
The added struct is needed when writing generic handler for both CMAC-128
and CMAC-256.

Signed-off-by: Chien Wong <m@xv97.com>
Link: https://patch.msgid.link/20251113140511.48658-3-m@xv97.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/linux/ieee80211.h

index 6d4bc80caf96cd6fc7a2c6b6efd105f43bf7fa3a..d55d8ea3a8be40985e5c6fe63a0094be36631428 100644 (file)
@@ -1207,7 +1207,7 @@ struct ieee80211_mgmt {
 #define IEEE80211_MIN_ACTION_SIZE offsetof(struct ieee80211_mgmt, u.action.u)
 
 
-/* Management MIC information element (IEEE 802.11w) */
+/* Management MIC information element (IEEE 802.11w) for CMAC */
 struct ieee80211_mmie {
        u8 element_id;
        u8 length;
@@ -1225,6 +1225,15 @@ struct ieee80211_mmie_16 {
        u8 mic[16];
 } __packed;
 
+/* Management MIC information element (IEEE 802.11w) for all variants */
+struct ieee80211_mmie_var {
+       u8 element_id;
+       u8 length;
+       __le16 key_id;
+       u8 sequence_number[6];
+       u8 mic[]; /* 8 or 16 bytes */
+} __packed;
+
 struct ieee80211_vendor_ie {
        u8 element_id;
        u8 len;
@@ -1889,6 +1898,9 @@ enum ieee80211_radio_measurement_actioncode {
 #define IEEE80211_GCMP_HDR_LEN         8
 #define IEEE80211_GCMP_MIC_LEN         16
 #define IEEE80211_GCMP_PN_LEN          6
+#define IEEE80211_CMAC_128_MIC_LEN     8
+#define IEEE80211_CMAC_256_MIC_LEN     16
+#define IEEE80211_GMAC_MIC_LEN         16
 
 #define FILS_NONCE_LEN                 16
 #define FILS_MAX_KEK_LEN               64