aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/nl80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-10-26 11:53:44 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-01-03 07:01:40 -0500
commitd582cffbcd04eae0bd8a83b05648bfd54bfd21c9 (patch)
treed6832e35977669df448c196db95ecf6b4e399c2b /include/uapi/linux/nl80211.h
parentdfa674da1807bc8fb782fc38a7d48c8ea3168eb7 (diff)
nl80211/mac80211: support full station state in AP mode
Today, stations are added already associated. That is inefficient if, for example, the driver has no room for stations any more because then the station will go through the entire auth/assoc handshake, only to be kicked out afterwards. To address this a bit better, at least with drivers using the new station state callback, allow hostapd to add stations in unauthenticated mode, just after receiving the AUTH frame, before even replying. Thus if there's no more space at that point, it can send a negative auth frame back. It still needs to handle later state transition errors though, of course. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/uapi/linux/nl80211.h')
-rw-r--r--include/uapi/linux/nl80211.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index e3e19f8b16f2..547017100a30 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -1697,6 +1697,9 @@ enum nl80211_iftype {
1697 * flag can't be changed, it is only valid while adding a station, and 1697 * flag can't be changed, it is only valid while adding a station, and
1698 * attempts to change it will silently be ignored (rather than rejected 1698 * attempts to change it will silently be ignored (rather than rejected
1699 * as errors.) 1699 * as errors.)
1700 * @NL80211_STA_FLAG_ASSOCIATED: station is associated; used with drivers
1701 * that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a
1702 * previously added station into associated state
1700 * @NL80211_STA_FLAG_MAX: highest station flag number currently defined 1703 * @NL80211_STA_FLAG_MAX: highest station flag number currently defined
1701 * @__NL80211_STA_FLAG_AFTER_LAST: internal use 1704 * @__NL80211_STA_FLAG_AFTER_LAST: internal use
1702 */ 1705 */
@@ -1708,6 +1711,7 @@ enum nl80211_sta_flags {
1708 NL80211_STA_FLAG_MFP, 1711 NL80211_STA_FLAG_MFP,
1709 NL80211_STA_FLAG_AUTHENTICATED, 1712 NL80211_STA_FLAG_AUTHENTICATED,
1710 NL80211_STA_FLAG_TDLS_PEER, 1713 NL80211_STA_FLAG_TDLS_PEER,
1714 NL80211_STA_FLAG_ASSOCIATED,
1711 1715
1712 /* keep last */ 1716 /* keep last */
1713 __NL80211_STA_FLAG_AFTER_LAST, 1717 __NL80211_STA_FLAG_AFTER_LAST,
@@ -3140,6 +3144,17 @@ enum nl80211_ap_sme_features {
3140 * setting 3144 * setting
3141 * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic 3145 * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic
3142 * powersave 3146 * powersave
3147 * @NL80211_FEATURE_FULL_AP_CLIENT_STATE: The driver supports full state
3148 * transitions for AP clients. Without this flag (and if the driver
3149 * doesn't have the AP SME in the device) the driver supports adding
3150 * stations only when they're associated and adds them in associated
3151 * state (to later be transitioned into authorized), with this flag
3152 * they should be added before even sending the authentication reply
3153 * and then transitioned into authenticated, associated and authorized
3154 * states using station flags.
3155 * Note that even for drivers that support this, the default is to add
3156 * stations in authenticated/associated state, so to add unauthenticated
3157 * stations the authenticated/associated bits have to be set in the mask.
3143 */ 3158 */
3144enum nl80211_feature_flags { 3159enum nl80211_feature_flags {
3145 NL80211_FEATURE_SK_TX_STATUS = 1 << 0, 3160 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -3155,6 +3170,7 @@ enum nl80211_feature_flags {
3155 NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10, 3170 NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10,
3156 NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11, 3171 NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11,
3157 NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12, 3172 NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12,
3173 NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 13,
3158}; 3174};
3159 3175
3160/** 3176/**