diff options
| author | Marco Porsch <marco@cozybit.com> | 2013-01-07 10:04:52 -0500 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2013-01-16 16:48:04 -0500 |
| commit | 3b1c5a5307fb5277f395efdcf330c064d79df07d (patch) | |
| tree | 9aca9007c05a70a0bce2c18c3c60fcfda1b7923d /include/uapi | |
| parent | 9bdbf04db099c11bbbaea9dcea7465c508531fb8 (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')
| -rw-r--r-- | include/uapi/linux/nl80211.h | 47 |
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 | |||
| 2285 | enum 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 | */ |
| 2351 | enum nl80211_meshconf_params { | 2396 | enum 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, |
