aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-11-04 06:18:12 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-11-09 16:05:49 -0500
commit28946da763e8b8d8ffd01ab861b684a4afb4bc3b (patch)
treec4e1cd440702b81c2192a164356da4ba769a29a6 /include
parent665c93a93e35cafcd8c84073824f1ef1b19f0a7d (diff)
nl80211: allow subscribing to unexpected class3 frames
To implement AP mode without monitor interfaces we need to be able to send a deauth to stations that send frames without being associated. Enable this by adding a new nl80211 event for such frames that an application can subscribe to. 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.h12
-rw-r--r--include/net/cfg80211.h17
2 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index 8049bf77d79..9107adc73e0 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -509,6 +509,16 @@
509 * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). 509 * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
510 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. 510 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.
511 * 511 *
512 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
513 * (or GO) interface (i.e. hostapd) to ask for unexpected frames to
514 * implement sending deauth to stations that send unexpected class 3
515 * frames. Also used as the event sent by the kernel when such a frame
516 * is received.
517 * For the event, the %NL80211_ATTR_MAC attribute carries the TA and
518 * other attributes like the interface index are present.
519 * If used as the command it must have an interface index and you can
520 * only unsubscribe from the event by closing the socket.
521 *
512 * @NL80211_CMD_MAX: highest used command number 522 * @NL80211_CMD_MAX: highest used command number
513 * @__NL80211_CMD_AFTER_LAST: internal use 523 * @__NL80211_CMD_AFTER_LAST: internal use
514 */ 524 */
@@ -638,6 +648,8 @@ enum nl80211_commands {
638 NL80211_CMD_TDLS_OPER, 648 NL80211_CMD_TDLS_OPER,
639 NL80211_CMD_TDLS_MGMT, 649 NL80211_CMD_TDLS_MGMT,
640 650
651 NL80211_CMD_UNEXPECTED_FRAME,
652
641 /* add new commands above here */ 653 /* add new commands above here */
642 654
643 /* used to define NL80211_CMD_MAX below */ 655 /* used to define NL80211_CMD_MAX below */
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 0c71d4a30cd..ef118e45258 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -2183,6 +2183,8 @@ struct wireless_dev {
2183 2183
2184 int beacon_interval; 2184 int beacon_interval;
2185 2185
2186 u32 ap_unexpected_nlpid;
2187
2186#ifdef CONFIG_CFG80211_WEXT 2188#ifdef CONFIG_CFG80211_WEXT
2187 /* wext data */ 2189 /* wext data */
2188 struct { 2190 struct {
@@ -3193,6 +3195,21 @@ void cfg80211_gtk_rekey_notify(struct net_device *dev, const u8 *bssid,
3193void cfg80211_pmksa_candidate_notify(struct net_device *dev, int index, 3195void cfg80211_pmksa_candidate_notify(struct net_device *dev, int index,
3194 const u8 *bssid, bool preauth, gfp_t gfp); 3196 const u8 *bssid, bool preauth, gfp_t gfp);
3195 3197
3198/**
3199 * cfg80211_rx_spurious_frame - inform userspace about a spurious frame
3200 * @dev: The device the frame matched to
3201 * @addr: the transmitter address
3202 * @gfp: context flags
3203 *
3204 * This function is used in AP mode (only!) to inform userspace that
3205 * a spurious class 3 frame was received, to be able to deauth the
3206 * sender.
3207 * Returns %true if the frame was passed to userspace (or this failed
3208 * for a reason other than not having a subscription.)
3209 */
3210bool cfg80211_rx_spurious_frame(struct net_device *dev,
3211 const u8 *addr, gfp_t gfp);
3212
3196/* Logging, debugging and troubleshooting/diagnostic helpers. */ 3213/* Logging, debugging and troubleshooting/diagnostic helpers. */
3197 3214
3198/* wiphy_printk helpers, similar to dev_printk */ 3215/* wiphy_printk helpers, similar to dev_printk */