diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-07-13 04:48:55 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-15 13:38:28 -0400 |
commit | 77dbbb138986b26cb99f868d4b6410577ef4c040 (patch) | |
tree | e3f4f9a2bb6b36938e3b221f4f0ee2e74d1ab238 /include | |
parent | 95acac61ba66c4abd40e038dae8c1ed2e176c7b1 (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.h | 19 | ||||
-rw-r--r-- | include/net/cfg80211.h | 24 |
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 | */ |
1150 | struct cfg80211_wowlan { | 1154 | struct 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 | */ |
1677 | enum wiphy_wowlan_support_flags { | 1688 | enum 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 | /** |