aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2014-09-10 07:07:34 -0400
committerJohannes Berg <johannes.berg@intel.com>2014-09-11 07:37:02 -0400
commit18998c381b19bfc3c285361ff6200ded7444aa2c (patch)
tree077799dd26b28f6f54eae9a2c734ef71ff19b072 /include/uapi/linux
parent59cd85cbcf2ecca9736652dc0cfd2ec600d7ef2a (diff)
cfg80211: allow requesting SMPS mode on ap start
Add feature bits to indicate device support for static-smps and dynamic-smps modes. Add a new NL80211_ATTR_SMPS_MODE attribue to allow configuring the smps mode to be used by the ap (e.g. configuring to ap to dynamic smps mode will reduce power consumption while having minor effect on throughput) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/nl80211.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index e5b8caf5e466..4b28dc07bcb1 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -1635,6 +1635,9 @@ enum nl80211_commands {
1635 * @NL80211_ATTR_ADMITTED_TIME: admitted time in units of 32 microseconds 1635 * @NL80211_ATTR_ADMITTED_TIME: admitted time in units of 32 microseconds
1636 * (per second) (u16 attribute) 1636 * (per second) (u16 attribute)
1637 * 1637 *
1638 * @NL80211_ATTR_SMPS_MODE: SMPS mode to use (ap mode). see
1639 * &enum nl80211_smps_mode.
1640 *
1638 * @NL80211_ATTR_MAX: highest attribute number currently defined 1641 * @NL80211_ATTR_MAX: highest attribute number currently defined
1639 * @__NL80211_ATTR_AFTER_LAST: internal use 1642 * @__NL80211_ATTR_AFTER_LAST: internal use
1640 */ 1643 */
@@ -1985,6 +1988,8 @@ enum nl80211_attrs {
1985 NL80211_ATTR_USER_PRIO, 1988 NL80211_ATTR_USER_PRIO,
1986 NL80211_ATTR_ADMITTED_TIME, 1989 NL80211_ATTR_ADMITTED_TIME,
1987 1990
1991 NL80211_ATTR_SMPS_MODE,
1992
1988 /* add attributes here, update the policy in nl80211.c */ 1993 /* add attributes here, update the policy in nl80211.c */
1989 1994
1990 __NL80211_ATTR_AFTER_LAST, 1995 __NL80211_ATTR_AFTER_LAST,
@@ -4030,6 +4035,13 @@ enum nl80211_ap_sme_features {
4030 * @NL80211_FEATURE_ACKTO_ESTIMATION: This driver supports dynamic ACK timeout 4035 * @NL80211_FEATURE_ACKTO_ESTIMATION: This driver supports dynamic ACK timeout
4031 * estimation (dynack). %NL80211_ATTR_WIPHY_DYN_ACK flag attribute is used 4036 * estimation (dynack). %NL80211_ATTR_WIPHY_DYN_ACK flag attribute is used
4032 * to enable dynack. 4037 * to enable dynack.
4038 * @NL80211_FEATURE_STATIC_SMPS: Device supports static spatial
4039 * multiplexing powersave, ie. can turn off all but one chain
4040 * even on HT connections that should be using more chains.
4041 * @NL80211_FEATURE_DYNAMIC_SMPS: Device supports dynamic spatial
4042 * multiplexing powersave, ie. can turn off all but one chain
4043 * and then wake the rest up as required after, for example,
4044 * rts/cts handshake.
4033 */ 4045 */
4034enum nl80211_feature_flags { 4046enum nl80211_feature_flags {
4035 NL80211_FEATURE_SK_TX_STATUS = 1 << 0, 4047 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -4056,6 +4068,8 @@ enum nl80211_feature_flags {
4056 NL80211_FEATURE_QUIET = 1 << 21, 4068 NL80211_FEATURE_QUIET = 1 << 21,
4057 NL80211_FEATURE_TX_POWER_INSERTION = 1 << 22, 4069 NL80211_FEATURE_TX_POWER_INSERTION = 1 << 22,
4058 NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23, 4070 NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23,
4071 NL80211_FEATURE_STATIC_SMPS = 1 << 24,
4072 NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25,
4059}; 4073};
4060 4074
4061/** 4075/**
@@ -4130,6 +4144,25 @@ enum nl80211_acl_policy {
4130}; 4144};
4131 4145
4132/** 4146/**
4147 * enum nl80211_smps_mode - SMPS mode
4148 *
4149 * Requested SMPS mode (for AP mode)
4150 *
4151 * @NL80211_SMPS_OFF: SMPS off (use all antennas).
4152 * @NL80211_SMPS_STATIC: static SMPS (use a single antenna)
4153 * @NL80211_SMPS_DYNAMIC: dynamic smps (start with a single antenna and
4154 * turn on other antennas after CTS/RTS).
4155 */
4156enum nl80211_smps_mode {
4157 NL80211_SMPS_OFF,
4158 NL80211_SMPS_STATIC,
4159 NL80211_SMPS_DYNAMIC,
4160
4161 __NL80211_SMPS_AFTER_LAST,
4162 NL80211_SMPS_MAX = __NL80211_SMPS_AFTER_LAST - 1
4163};
4164
4165/**
4133 * enum nl80211_radar_event - type of radar event for DFS operation 4166 * enum nl80211_radar_event - type of radar event for DFS operation
4134 * 4167 *
4135 * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace 4168 * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace