mac80211: 802.11w - Add driver capability flag for MFP

This allows user space to determine whether a driver supports MFP and
behave properly without having to ask user to configure this in
MFP-optional mode.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Jouni Malinen 2009-01-08 13:32:11 +02:00 committed by John W. Linville
parent 1f7d77ab69
commit 4375d08350
2 changed files with 8 additions and 0 deletions

View File

@ -865,6 +865,9 @@ enum ieee80211_tkip_key_type {
*
* @IEEE80211_HW_SUPPORTS_DYNAMIC_PS:
* Hardware has support for dynamic PS.
*
* @IEEE80211_HW_MFP_CAPABLE:
* Hardware supports management frame protection (MFP, IEEE 802.11w).
*/
enum ieee80211_hw_flags {
IEEE80211_HW_RX_INCLUDES_FCS = 1<<1,
@ -880,6 +883,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_PS = 1<<11,
IEEE80211_HW_PS_NULLFUNC_STACK = 1<<12,
IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 1<<13,
IEEE80211_HW_MFP_CAPABLE = 1<<14,
};
/**

View File

@ -976,6 +976,10 @@ static int ieee80211_ioctl_siwauth(struct net_device *dev,
ret = -EOPNOTSUPP;
break;
case IW_AUTH_MFP:
if (!(sdata->local->hw.flags & IEEE80211_HW_MFP_CAPABLE)) {
ret = -EOPNOTSUPP;
break;
}
if (sdata->vif.type == NL80211_IFTYPE_STATION ||
sdata->vif.type == NL80211_IFTYPE_ADHOC)
sdata->u.sta.mfp = data->value;