mac80211: Simplify Extended Key ID API

1) Drop IEEE80211_HW_EXT_KEY_ID_NATIVE and let drivers directly set
   the NL80211_EXT_FEATURE_EXT_KEY_ID flag.

2) Drop IEEE80211_HW_NO_AMPDU_KEYBORDER_SUPPORT and simply assume all
   drivers are unable to handle A-MPDU key borders.

The new Extended Key ID API now requires all mac80211 drivers to set
NL80211_EXT_FEATURE_EXT_KEY_ID when they implement set_key() and can
handle Extended Key ID. For drivers not providing set_key() mac80211
itself enables Extended Key ID support, using the internal SW crypto
services.

Signed-off-by: Alexander Wetzel <alexander@wetzel-home.de>
Link: https://lore.kernel.org/r/20190629195015.19680-2-alexander@wetzel-home.de
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Alexander Wetzel
2019-06-29 21:50:13 +02:00
committed by Johannes Berg
parent 5d29050b40
commit 3e47bf1ca4
4 changed files with 14 additions and 32 deletions

View File

@@ -1048,21 +1048,15 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
}
}
/* Enable Extended Key IDs when driver allowed it, or when it
* supports neither HW crypto nor A-MPDUs
/* Mac80211 and therefore all drivers using SW crypto only
* are able to handle PTK rekeys and Extended Key ID.
*/
if ((!local->ops->set_key &&
!ieee80211_hw_check(hw, AMPDU_AGGREGATION)) ||
ieee80211_hw_check(&local->hw, EXT_KEY_ID_NATIVE))
wiphy_ext_feature_set(local->hw.wiphy,
NL80211_EXT_FEATURE_EXT_KEY_ID);
/* Mac80211 and therefore all cards only using SW crypto are able to
* handle PTK rekeys correctly
*/
if (!local->ops->set_key)
if (!local->ops->set_key) {
wiphy_ext_feature_set(local->hw.wiphy,
NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);
wiphy_ext_feature_set(local->hw.wiphy,
NL80211_EXT_FEATURE_EXT_KEY_ID);
}
/*
* Calculate scan IE length -- we need this to alloc