aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/wext.c
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2008-12-23 11:00:50 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 15:58:47 -0500
commiteb46936b9f2b639f4edeeaf9154d49476fc30fe5 (patch)
tree07c5ba68d5a49c722c019e401d8f8abf53c60e20 /net/mac80211/wext.c
parent9ee677c2276bfcbcf68042ec2718a504af0c5fd7 (diff)
mac80211: Scale down to non-HT association with TKIP/WEP as pairwise cipher
As TKIP is not updated to new security needs which arise when TKIP is used to encrypt A-MPDU aggregated data frames, IEEE802.11n does not allow any cipher other than CCMP (Which has new extensions defined) as pairwise cipher between HT peers. When such configuration (TKIP/WEP in HT) is forced, we still associate in non-HT mode (11a/b/g). Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/wext.c')
-rw-r--r--net/mac80211/wext.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index 7162d5816f39..011592fd4528 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -903,12 +903,22 @@ static int ieee80211_ioctl_siwauth(struct net_device *dev,
903 903
904 switch (data->flags & IW_AUTH_INDEX) { 904 switch (data->flags & IW_AUTH_INDEX) {
905 case IW_AUTH_WPA_VERSION: 905 case IW_AUTH_WPA_VERSION:
906 case IW_AUTH_CIPHER_PAIRWISE:
907 case IW_AUTH_CIPHER_GROUP: 906 case IW_AUTH_CIPHER_GROUP:
908 case IW_AUTH_WPA_ENABLED: 907 case IW_AUTH_WPA_ENABLED:
909 case IW_AUTH_RX_UNENCRYPTED_EAPOL: 908 case IW_AUTH_RX_UNENCRYPTED_EAPOL:
910 case IW_AUTH_KEY_MGMT: 909 case IW_AUTH_KEY_MGMT:
911 break; 910 break;
911 case IW_AUTH_CIPHER_PAIRWISE:
912 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
913 if (data->value & (IW_AUTH_CIPHER_WEP40 |
914 IW_AUTH_CIPHER_WEP104 | IW_AUTH_CIPHER_TKIP))
915 sdata->u.sta.flags |=
916 IEEE80211_STA_TKIP_WEP_USED;
917 else
918 sdata->u.sta.flags &=
919 ~IEEE80211_STA_TKIP_WEP_USED;
920 }
921 break;
912 case IW_AUTH_DROP_UNENCRYPTED: 922 case IW_AUTH_DROP_UNENCRYPTED:
913 sdata->drop_unencrypted = !!data->value; 923 sdata->drop_unencrypted = !!data->value;
914 break; 924 break;