aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-07-13 04:48:55 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-07-15 13:38:28 -0400
commit77dbbb138986b26cb99f868d4b6410577ef4c040 (patch)
treee3f4f9a2bb6b36938e3b221f4f0ee2e74d1ab238 /include
parent95acac61ba66c4abd40e038dae8c1ed2e176c7b1 (diff)
nl80211: advertise GTK rekey support, new triggers
Since we now have the necessary API in place to support GTK rekeying, applications will need to know whether it is supported by a device. Add a pseudo-trigger that is used only to advertise that capability. Also, add some new triggers that match what iwlagn devices can do. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nl80211.h19
-rw-r--r--include/net/cfg80211.h24
2 files changed, 37 insertions, 6 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index 8cb025a00094..c5f577e9ee27 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -989,8 +989,8 @@ enum nl80211_commands {
989 * driving the peer link management state machine. 989 * driving the peer link management state machine.
990 * @NL80211_MESH_SETUP_USERSPACE_AMPE must be enabled. 990 * @NL80211_MESH_SETUP_USERSPACE_AMPE must be enabled.
991 * 991 *
992 * @NL80211_ATTR_WOWLAN_SUPPORTED: indicates, as part of the wiphy capabilities, 992 * @NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED: indicates, as part of the wiphy
993 * the supported WoWLAN triggers 993 * capabilities, the supported WoWLAN triggers
994 * @NL80211_ATTR_WOWLAN_TRIGGERS: used by %NL80211_CMD_SET_WOWLAN to 994 * @NL80211_ATTR_WOWLAN_TRIGGERS: used by %NL80211_CMD_SET_WOWLAN to
995 * indicate which WoW triggers should be enabled. This is also 995 * indicate which WoW triggers should be enabled. This is also
996 * used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN 996 * used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN
@@ -2255,6 +2255,16 @@ struct nl80211_wowlan_pattern_support {
2255 * 2255 *
2256 * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute 2256 * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute
2257 * carrying a &struct nl80211_wowlan_pattern_support. 2257 * carrying a &struct nl80211_wowlan_pattern_support.
2258 * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be
2259 * used when setting, used only to indicate that GTK rekeying is supported
2260 * by the device (flag)
2261 * @NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE: wake up on GTK rekey failure (if
2262 * done by the device) (flag)
2263 * @NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST: wake up on EAP Identity Request
2264 * packet (flag)
2265 * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag)
2266 * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released
2267 * (on devices that have rfkill in the device) (flag)
2258 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers 2268 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers
2259 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number 2269 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number
2260 */ 2270 */
@@ -2264,6 +2274,11 @@ enum nl80211_wowlan_triggers {
2264 NL80211_WOWLAN_TRIG_DISCONNECT, 2274 NL80211_WOWLAN_TRIG_DISCONNECT,
2265 NL80211_WOWLAN_TRIG_MAGIC_PKT, 2275 NL80211_WOWLAN_TRIG_MAGIC_PKT,
2266 NL80211_WOWLAN_TRIG_PKT_PATTERN, 2276 NL80211_WOWLAN_TRIG_PKT_PATTERN,
2277 NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED,
2278 NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE,
2279 NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST,
2280 NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE,
2281 NL80211_WOWLAN_TRIG_RFKILL_RELEASE,
2267 2282
2268 /* keep last */ 2283 /* keep last */
2269 NUM_NL80211_WOWLAN_TRIG, 2284 NUM_NL80211_WOWLAN_TRIG,
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 5390e3245a1a..83d5c387755d 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1146,9 +1146,15 @@ struct cfg80211_wowlan_trig_pkt_pattern {
1146 * @magic_pkt: wake up on receiving magic packet 1146 * @magic_pkt: wake up on receiving magic packet
1147 * @patterns: wake up on receiving packet matching a pattern 1147 * @patterns: wake up on receiving packet matching a pattern
1148 * @n_patterns: number of patterns 1148 * @n_patterns: number of patterns
1149 * @gtk_rekey_failure: wake up on GTK rekey failure
1150 * @eap_identity_req: wake up on EAP identity request packet
1151 * @four_way_handshake: wake up on 4-way handshake
1152 * @rfkill_release: wake up when rfkill is released
1149 */ 1153 */
1150struct cfg80211_wowlan { 1154struct cfg80211_wowlan {
1151 bool any, disconnect, magic_pkt; 1155 bool any, disconnect, magic_pkt, gtk_rekey_failure,
1156 eap_identity_req, four_way_handshake,
1157 rfkill_release;
1152 struct cfg80211_wowlan_trig_pkt_pattern *patterns; 1158 struct cfg80211_wowlan_trig_pkt_pattern *patterns;
1153 int n_patterns; 1159 int n_patterns;
1154}; 1160};
@@ -1673,11 +1679,21 @@ struct ieee80211_txrx_stypes {
1673 * @WIPHY_WOWLAN_MAGIC_PKT: supports wakeup on magic packet 1679 * @WIPHY_WOWLAN_MAGIC_PKT: supports wakeup on magic packet
1674 * (see nl80211.h) 1680 * (see nl80211.h)
1675 * @WIPHY_WOWLAN_DISCONNECT: supports wakeup on disconnect 1681 * @WIPHY_WOWLAN_DISCONNECT: supports wakeup on disconnect
1682 * @WIPHY_WOWLAN_SUPPORTS_GTK_REKEY: supports GTK rekeying while asleep
1683 * @WIPHY_WOWLAN_GTK_REKEY_FAILURE: supports wakeup on GTK rekey failure
1684 * @WIPHY_WOWLAN_EAP_IDENTITY_REQ: supports wakeup on EAP identity request
1685 * @WIPHY_WOWLAN_4WAY_HANDSHAKE: supports wakeup on 4-way handshake failure
1686 * @WIPHY_WOWLAN_RFKILL_RELEASE: supports wakeup on RF-kill release
1676 */ 1687 */
1677enum wiphy_wowlan_support_flags { 1688enum wiphy_wowlan_support_flags {
1678 WIPHY_WOWLAN_ANY = BIT(0), 1689 WIPHY_WOWLAN_ANY = BIT(0),
1679 WIPHY_WOWLAN_MAGIC_PKT = BIT(1), 1690 WIPHY_WOWLAN_MAGIC_PKT = BIT(1),
1680 WIPHY_WOWLAN_DISCONNECT = BIT(2), 1691 WIPHY_WOWLAN_DISCONNECT = BIT(2),
1692 WIPHY_WOWLAN_SUPPORTS_GTK_REKEY = BIT(3),
1693 WIPHY_WOWLAN_GTK_REKEY_FAILURE = BIT(4),
1694 WIPHY_WOWLAN_EAP_IDENTITY_REQ = BIT(5),
1695 WIPHY_WOWLAN_4WAY_HANDSHAKE = BIT(6),
1696 WIPHY_WOWLAN_RFKILL_RELEASE = BIT(7),
1681}; 1697};
1682 1698
1683/** 1699/**