mac80211: allow AP_VLAN operation on crypto controlled devices
In the current implementation, mac80211 advertises the support of AP_VLANs based on the driver's support for AP mode; it also blocks encrypted AP_VLAN operation on devices advertising SW_CRYPTO_CONTROL. The implementation seems weird in it's current form and could be often confusing, this is because there can be drivers advertising both SW_CRYPTO_CONTROL and AP mode support (ex: ath10k) in which case AP_VLAN will still be supported but only in open BSS and not in secured BSS. When SW_CRYPTO_CONTROL is enabled, it makes more sense if the decision to support AP_VLANs is left to the driver. Mac80211 can then allow AP_VLAN operations depending on the driver support. Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
19d3577e35
commit
db3bdcb9c3
@@ -930,8 +930,12 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
||||
IEEE80211_HT_CAP_SM_PS_SHIFT;
|
||||
}
|
||||
|
||||
/* if low-level driver supports AP, we also support VLAN */
|
||||
if (local->hw.wiphy->interface_modes & BIT(NL80211_IFTYPE_AP)) {
|
||||
/* if low-level driver supports AP, we also support VLAN.
|
||||
* drivers advertising SW_CRYPTO_CONTROL should enable AP_VLAN
|
||||
* based on their support to transmit SW encrypted packets.
|
||||
*/
|
||||
if (local->hw.wiphy->interface_modes & BIT(NL80211_IFTYPE_AP) &&
|
||||
!ieee80211_hw_check(&local->hw, SW_CRYPTO_CONTROL)) {
|
||||
hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_AP_VLAN);
|
||||
hw->wiphy->software_iftypes |= BIT(NL80211_IFTYPE_AP_VLAN);
|
||||
}
|
||||
|
Reference in New Issue
Block a user