diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-12-09 13:58:59 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-13 15:23:28 -0500 |
commit | dbd2fd656f2060abfd3a16257f8b51ec60f6d2ed (patch) | |
tree | 71e61430bd8593f2ad8f1c741b5a8a8be4a9d690 /include/net/cfg80211.h | |
parent | 897bed8b4320774e56f282cdc1cceb4d77442797 (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 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 4d5acb013636..22be7c625b70 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -1211,7 +1211,7 @@ struct cfg80211_ops { | |||
1211 | u8 key_index, bool pairwise, const u8 *mac_addr); | 1211 | u8 key_index, bool pairwise, const u8 *mac_addr); |
1212 | int (*set_default_key)(struct wiphy *wiphy, | 1212 | int (*set_default_key)(struct wiphy *wiphy, |
1213 | struct net_device *netdev, | 1213 | struct net_device *netdev, |
1214 | u8 key_index); | 1214 | u8 key_index, bool unicast, bool multicast); |
1215 | int (*set_default_mgmt_key)(struct wiphy *wiphy, | 1215 | int (*set_default_mgmt_key)(struct wiphy *wiphy, |
1216 | struct net_device *netdev, | 1216 | struct net_device *netdev, |
1217 | u8 key_index); | 1217 | u8 key_index); |
@@ -1393,6 +1393,8 @@ struct cfg80211_ops { | |||
1393 | * control port protocol ethertype. The device also honours the | 1393 | * control port protocol ethertype. The device also honours the |
1394 | * control_port_no_encrypt flag. | 1394 | * control_port_no_encrypt flag. |
1395 | * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN. | 1395 | * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN. |
1396 | * @WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS: The device supports separate | ||
1397 | * unicast and multicast TX keys. | ||
1396 | */ | 1398 | */ |
1397 | enum wiphy_flags { | 1399 | enum wiphy_flags { |
1398 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), | 1400 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), |
@@ -1404,6 +1406,7 @@ enum wiphy_flags { | |||
1404 | WIPHY_FLAG_4ADDR_STATION = BIT(6), | 1406 | WIPHY_FLAG_4ADDR_STATION = BIT(6), |
1405 | WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7), | 1407 | WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7), |
1406 | WIPHY_FLAG_IBSS_RSN = BIT(8), | 1408 | WIPHY_FLAG_IBSS_RSN = BIT(8), |
1409 | WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS= BIT(9), | ||
1407 | }; | 1410 | }; |
1408 | 1411 | ||
1409 | struct mac_address { | 1412 | struct mac_address { |