aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-12-09 13:58:59 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-13 15:23:28 -0500
commitdbd2fd656f2060abfd3a16257f8b51ec60f6d2ed (patch)
tree71e61430bd8593f2ad8f1c741b5a8a8be4a9d690 /drivers/net
parent897bed8b4320774e56f282cdc1cceb4d77442797 (diff)
cfg80211/nl80211: separate unicast/multicast default TX keys
Allow userspace to specify that a given key is default only for unicast and/or multicast transmissions. Only WEP keys are for both, WPA/RSN keys set here are GTKs for multicast only. For more future flexibility, allow to specify all combiations. Wireless extensions can only set both so use nl80211; WEP keys (connect keys) must be set as default for both (but 802.1X WEP is still possible). Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/iwmc3200wifi/cfg80211.c3
-rw-r--r--drivers/net/wireless/libertas/cfg.c3
-rw-r--r--drivers/net/wireless/rndis_wlan.c4
3 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/cfg80211.c b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
index c6c0eff9b5ed..5a4982271e96 100644
--- a/drivers/net/wireless/iwmc3200wifi/cfg80211.c
+++ b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
@@ -225,7 +225,8 @@ static int iwm_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
225 225
226static int iwm_cfg80211_set_default_key(struct wiphy *wiphy, 226static int iwm_cfg80211_set_default_key(struct wiphy *wiphy,
227 struct net_device *ndev, 227 struct net_device *ndev,
228 u8 key_index) 228 u8 key_index, bool unicast,
229 bool multicast)
229{ 230{
230 struct iwm_priv *iwm = ndev_to_iwm(ndev); 231 struct iwm_priv *iwm = ndev_to_iwm(ndev);
231 232
diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
index dee32d3681a5..300be1931826 100644
--- a/drivers/net/wireless/libertas/cfg.c
+++ b/drivers/net/wireless/libertas/cfg.c
@@ -1422,7 +1422,8 @@ static int lbs_cfg_disconnect(struct wiphy *wiphy, struct net_device *dev,
1422 1422
1423static int lbs_cfg_set_default_key(struct wiphy *wiphy, 1423static int lbs_cfg_set_default_key(struct wiphy *wiphy,
1424 struct net_device *netdev, 1424 struct net_device *netdev,
1425 u8 key_index) 1425 u8 key_index, bool unicast,
1426 bool multicast)
1426{ 1427{
1427 struct lbs_private *priv = wiphy_priv(wiphy); 1428 struct lbs_private *priv = wiphy_priv(wiphy);
1428 1429
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 19f3d568f700..4a4f00591447 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -554,7 +554,7 @@ static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev,
554 u8 key_index, bool pairwise, const u8 *mac_addr); 554 u8 key_index, bool pairwise, const u8 *mac_addr);
555 555
556static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev, 556static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
557 u8 key_index); 557 u8 key_index, bool unicast, bool multicast);
558 558
559static int rndis_get_station(struct wiphy *wiphy, struct net_device *dev, 559static int rndis_get_station(struct wiphy *wiphy, struct net_device *dev,
560 u8 *mac, struct station_info *sinfo); 560 u8 *mac, struct station_info *sinfo);
@@ -2381,7 +2381,7 @@ static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev,
2381} 2381}
2382 2382
2383static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev, 2383static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
2384 u8 key_index) 2384 u8 key_index, bool unicast, bool multicast)
2385{ 2385{
2386 struct rndis_wlan_private *priv = wiphy_priv(wiphy); 2386 struct rndis_wlan_private *priv = wiphy_priv(wiphy);
2387 struct usbnet *usbdev = priv->usbdev; 2387 struct usbnet *usbdev = priv->usbdev;