|
@@ -1281,7 +1281,8 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
|
|
|
*
|
|
|
* @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the
|
|
|
* driver to indicate that it requires IV generation for this
|
|
|
- * particular key.
|
|
|
+ * particular key. Setting this flag does not necessarily mean that SKBs
|
|
|
+ * will have sufficient tailroom for ICV or MIC.
|
|
|
* @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
|
|
|
* the driver for a TKIP key if it requires Michael MIC
|
|
|
* generation in software.
|
|
@@ -1293,7 +1294,9 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
|
|
|
* @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver
|
|
|
* if space should be prepared for the IV, but the IV
|
|
|
* itself should not be generated. Do not set together with
|
|
|
- * @IEEE80211_KEY_FLAG_GENERATE_IV on the same key.
|
|
|
+ * @IEEE80211_KEY_FLAG_GENERATE_IV on the same key. Setting this flag does
|
|
|
+ * not necessarily mean that SKBs will have sufficient tailroom for ICV or
|
|
|
+ * MIC.
|
|
|
* @IEEE80211_KEY_FLAG_RX_MGMT: This key will be used to decrypt received
|
|
|
* management frames. The flag can help drivers that have a hardware
|
|
|
* crypto implementation that doesn't deal with management frames
|
|
@@ -1304,6 +1307,9 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
|
|
|
* @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).
|
|
|
+ * @IEEE80211_KEY_FLAG_RESERVE_TAILROOM: This flag should be set by the
|
|
|
+ * driver for a key to indicate that sufficient tailroom must always
|
|
|
+ * be reserved for ICV or MIC, even when HW encryption is enabled.
|
|
|
*/
|
|
|
enum ieee80211_key_flags {
|
|
|
IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = BIT(0),
|
|
@@ -1313,6 +1319,7 @@ enum ieee80211_key_flags {
|
|
|
IEEE80211_KEY_FLAG_SW_MGMT_TX = BIT(4),
|
|
|
IEEE80211_KEY_FLAG_PUT_IV_SPACE = BIT(5),
|
|
|
IEEE80211_KEY_FLAG_RX_MGMT = BIT(6),
|
|
|
+ IEEE80211_KEY_FLAG_RESERVE_TAILROOM = BIT(7),
|
|
|
};
|
|
|
|
|
|
/**
|