aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/nl80211.h
diff options
context:
space:
mode:
authorMarco Porsch <marco@cozybit.com>2013-01-07 10:04:52 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-01-16 16:48:04 -0500
commit3b1c5a5307fb5277f395efdcf330c064d79df07d (patch)
tree9aca9007c05a70a0bce2c18c3c60fcfda1b7923d /include/uapi/linux/nl80211.h
parent9bdbf04db099c11bbbaea9dcea7465c508531fb8 (diff)
{cfg,nl}80211: mesh power mode primitives and userspace access
Add the nl80211_mesh_power_mode enumeration which holds possible values for the mesh power mode. These modes are unknown, active, light sleep and deep sleep. Add power_mode entry to the mesh config structure to hold the user-configured default mesh power mode. This value will be used for new peer links. Add the dot11MeshAwakeWindowDuration value to the mesh config. The awake window is a duration in TU describing how long the STA will stay awake after transmitting its beacon in PS mode. Add access routines to: - get/set local link-specific power mode (STA) - get remote STA's link-specific power mode (STA) - get remote STA's non-peer power mode (STA) - get/set default mesh power mode (mesh config) - get/set mesh awake window duration (mesh config) All config changes may be done at mesh runtime and take effect immediately. Signed-off-by: Marco Porsch <marco@cozybit.com> Signed-off-by: Ivan Bezyazychnyy <ivan.bezyazychnyy@gmail.com> Signed-off-by: Mike Krinkin <krinkin.m.u@gmail.com> [fix commit message line length, error handling in set station] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/uapi/linux/nl80211.h')
-rw-r--r--include/uapi/linux/nl80211.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 547017100a30..6c4f703ae890 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -1310,6 +1310,9 @@ enum nl80211_commands {
1310 * if not given in START_AP 0 is assumed, if not given in SET_BSS 1310 * if not given in START_AP 0 is assumed, if not given in SET_BSS
1311 * no change is made. 1311 * no change is made.
1312 * 1312 *
1313 * @NL80211_ATTR_LOCAL_MESH_POWER_MODE: local mesh STA link-specific power mode
1314 * defined in &enum nl80211_mesh_power_mode.
1315 *
1313 * @NL80211_ATTR_MAX: highest attribute number currently defined 1316 * @NL80211_ATTR_MAX: highest attribute number currently defined
1314 * @__NL80211_ATTR_AFTER_LAST: internal use 1317 * @__NL80211_ATTR_AFTER_LAST: internal use
1315 */ 1318 */
@@ -1580,6 +1583,8 @@ enum nl80211_attrs {
1580 NL80211_ATTR_P2P_CTWINDOW, 1583 NL80211_ATTR_P2P_CTWINDOW,
1581 NL80211_ATTR_P2P_OPPPS, 1584 NL80211_ATTR_P2P_OPPPS,
1582 1585
1586 NL80211_ATTR_LOCAL_MESH_POWER_MODE,
1587
1583 /* add attributes here, update the policy in nl80211.c */ 1588 /* add attributes here, update the policy in nl80211.c */
1584 1589
1585 __NL80211_ATTR_AFTER_LAST, 1590 __NL80211_ATTR_AFTER_LAST,
@@ -1838,6 +1843,10 @@ enum nl80211_sta_bss_param {
1838 * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. 1843 * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update.
1839 * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) 1844 * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32)
1840 * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64) 1845 * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64)
1846 * @NL80211_STA_INFO_LOCAL_PM: local mesh STA link-specific power mode
1847 * @NL80211_STA_INFO_PEER_PM: peer mesh STA link-specific power mode
1848 * @NL80211_STA_INFO_NONPEER_PM: neighbor mesh STA power save mode towards
1849 * non-peer STA
1841 * @__NL80211_STA_INFO_AFTER_LAST: internal 1850 * @__NL80211_STA_INFO_AFTER_LAST: internal
1842 * @NL80211_STA_INFO_MAX: highest possible station info attribute 1851 * @NL80211_STA_INFO_MAX: highest possible station info attribute
1843 */ 1852 */
@@ -1862,6 +1871,9 @@ enum nl80211_sta_info {
1862 NL80211_STA_INFO_STA_FLAGS, 1871 NL80211_STA_INFO_STA_FLAGS,
1863 NL80211_STA_INFO_BEACON_LOSS, 1872 NL80211_STA_INFO_BEACON_LOSS,
1864 NL80211_STA_INFO_T_OFFSET, 1873 NL80211_STA_INFO_T_OFFSET,
1874 NL80211_STA_INFO_LOCAL_PM,
1875 NL80211_STA_INFO_PEER_PM,
1876 NL80211_STA_INFO_NONPEER_PM,
1865 1877
1866 /* keep last */ 1878 /* keep last */
1867 __NL80211_STA_INFO_AFTER_LAST, 1879 __NL80211_STA_INFO_AFTER_LAST,
@@ -2253,6 +2265,34 @@ enum nl80211_mntr_flags {
2253}; 2265};
2254 2266
2255/** 2267/**
2268 * enum nl80211_mesh_power_mode - mesh power save modes
2269 *
2270 * @NL80211_MESH_POWER_UNKNOWN: The mesh power mode of the mesh STA is
2271 * not known or has not been set yet.
2272 * @NL80211_MESH_POWER_ACTIVE: Active mesh power mode. The mesh STA is
2273 * in Awake state all the time.
2274 * @NL80211_MESH_POWER_LIGHT_SLEEP: Light sleep mode. The mesh STA will
2275 * alternate between Active and Doze states, but will wake up for
2276 * neighbor's beacons.
2277 * @NL80211_MESH_POWER_DEEP_SLEEP: Deep sleep mode. The mesh STA will
2278 * alternate between Active and Doze states, but may not wake up
2279 * for neighbor's beacons.
2280 *
2281 * @__NL80211_MESH_POWER_AFTER_LAST - internal use
2282 * @NL80211_MESH_POWER_MAX - highest possible power save level
2283 */
2284
2285enum nl80211_mesh_power_mode {
2286 NL80211_MESH_POWER_UNKNOWN,
2287 NL80211_MESH_POWER_ACTIVE,
2288 NL80211_MESH_POWER_LIGHT_SLEEP,
2289 NL80211_MESH_POWER_DEEP_SLEEP,
2290
2291 __NL80211_MESH_POWER_AFTER_LAST,
2292 NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1
2293};
2294
2295/**
2256 * enum nl80211_meshconf_params - mesh configuration parameters 2296 * enum nl80211_meshconf_params - mesh configuration parameters
2257 * 2297 *
2258 * Mesh configuration parameters. These can be changed while the mesh is 2298 * Mesh configuration parameters. These can be changed while the mesh is
@@ -2346,6 +2386,11 @@ enum nl80211_mntr_flags {
2346 * (in TUs) during which a mesh STA can send only one Action frame 2386 * (in TUs) during which a mesh STA can send only one Action frame
2347 * containing a PREQ element for root path confirmation. 2387 * containing a PREQ element for root path confirmation.
2348 * 2388 *
2389 * @NL80211_MESHCONF_POWER_MODE: Default mesh power mode for new peer links.
2390 * type &enum nl80211_mesh_power_mode (u32)
2391 *
2392 * @NL80211_MESHCONF_AWAKE_WINDOW: awake window duration (in TUs)
2393 *
2349 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use 2394 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
2350 */ 2395 */
2351enum nl80211_meshconf_params { 2396enum nl80211_meshconf_params {
@@ -2375,6 +2420,8 @@ enum nl80211_meshconf_params {
2375 NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, 2420 NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT,
2376 NL80211_MESHCONF_HWMP_ROOT_INTERVAL, 2421 NL80211_MESHCONF_HWMP_ROOT_INTERVAL,
2377 NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, 2422 NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL,
2423 NL80211_MESHCONF_POWER_MODE,
2424 NL80211_MESHCONF_AWAKE_WINDOW,
2378 2425
2379 /* keep last */ 2426 /* keep last */
2380 __NL80211_MESHCONF_ATTR_AFTER_LAST, 2427 __NL80211_MESHCONF_ATTR_AFTER_LAST,