History

{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.

Marco Porsch committed 13 years ago

Commit 3b1c5a51 parent 9bdbf044 files · +113 −1Browse files

Showing the changes to include/uapi/linux (1 of 4 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+47−0
@@ -1310,6 +1310,9 @@ enum nl80211_commands { · 1309 unmodified lines
1310 * if not given in START_AP 0 is assumed, if not given in SET_BSS1310 * 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 defined1316 * @NL80211_ATTR_MAX: highest attribute number currently defined
1314 * @__NL80211_ATTR_AFTER_LAST: internal use1317 * @__NL80211_ATTR_AFTER_LAST: internal use
1315 */1318 */
@@ -1580,6 +1583,8 @@ enum nl80211_attrs { · 264 unmodified lines
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 { · 252 unmodified lines
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: internal1850 * @__NL80211_STA_INFO_AFTER_LAST: internal
1842 * @NL80211_STA_INFO_MAX: highest possible station info attribute1851 * @NL80211_STA_INFO_MAX: highest possible station info attribute
1843 */1852 */
@@ -1862,6 +1871,9 @@ enum nl80211_sta_info { · 18 unmodified lines
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,
@@ -2252,6 +2264,34 @@ enum nl80211_mntr_flags { · 384 unmodified lines
2252 NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 12264 NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
2253};2265};
2254 2266
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
2255/**2295/**
2256 * enum nl80211_meshconf_params - mesh configuration parameters2296 * enum nl80211_meshconf_params - mesh configuration parameters
2257 *2297 *
@@ -2346,6 +2386,11 @@ enum nl80211_mntr_flags { · 88 unmodified lines
2346 * (in TUs) during which a mesh STA can send only one Action frame2386 * (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 use2394 * @__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 { · 23 unmodified lines
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,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t