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:

committed by
Johannes Berg

parent
5d29050b40
commit
3e47bf1ca4
@@ -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
|
||||
|
Reference in New Issue
Block a user