2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-30 16:13:54 +08:00
linux-next/net/mac80211
Marco Porsch 3f52b7e328 mac80211: mesh power save basics
Add routines to
- maintain a PS mode for each peer and a non-peer PS mode
- indicate own PS mode in transmitted frames
- track neighbor STAs power modes
- buffer frames when neighbors are in PS mode
- add TIM and Awake Window IE to beacons
- release frames in Mesh Peer Service Periods

Add local_pm to sta_info to represent the link-specific power
mode at this station towards the remote station. When a peer
link is established, use the default power mode stored in mesh
config. Update the PS status if the peering status of a neighbor
changes.
Maintain a mesh power mode for non-peer mesh STAs. Set the
non-peer power mode to active mode during peering. Authenticated
mesh peering is currently not working when either node is
configured to be in power save mode.

Indicate the current power mode in transmitted frames. Use QoS
Nulls to indicate mesh power mode transitions.
For performance reasons, calls to the function setting the frame
flags are placed in HWMP routing routines, as there the STA
pointer is already available.

Add peer_pm to sta_info to represent the peer's link-specific
power mode towards the local station. Add nonpeer_pm to
represent the peer's power mode towards all non-peer stations.
Track power modes based on received frames.

Add the ps_data structure to ieee80211_if_mesh (for TIM map, PS
neighbor counter and group-addressed frame buffer).

Set WLAN_STA_PS flag for STA in PS mode to use the unicast frame
buffering routines in the tx path. Update num_sta_ps to buffer
and release group-addressed frames after DTIM beacons.

Announce the awake window duration in beacons if in light or
deep sleep mode towards any peer or non-peer. Create a TIM IE
similarly to AP mode and add it to mesh beacons. Parse received
Awake Window IEs and check TIM IEs for buffered frames.

Release frames towards peers in mesh Peer Service Periods. Use
the corresponding trigger frames and monitor the MPSP status.
Append a QoS Null as trigger frame if neccessary to properly end
the MPSP. Currently, in HT channels MPSPs behave imperfectly and
show large delay spikes and frame losses.

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>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-02-04 18:57:47 +01:00
..
aes_ccm.c mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_ccm.h mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_cmac.c mac80211: include export.h in aes_cmac 2012-11-07 18:01:54 +01:00
aes_cmac.h mac80211: fix CMAC races 2011-07-08 11:11:20 -04:00
agg-rx.c mac80211: improve aggregation debug messages 2013-01-18 21:55:15 +01:00
agg-tx.c mac80211: fix aggregation state with current drivers 2013-01-24 15:43:51 +01:00
cfg.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
cfg.h
chan.c mac80211: fix channel context iteration 2013-01-03 13:01:35 +01:00
debug.h mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_key.c mac80211: add debug file for mic failure 2012-12-05 09:44:41 +01:00
debugfs_key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_netdev.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_netdev.h
debugfs_sta.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_sta.h
debugfs.c mac80211: inform the driver about update of dtim_period 2013-01-31 14:05:38 +01:00
debugfs.h mac80211: use __printf attribute in debugfs 2012-10-18 09:01:57 +02:00
driver-ops.h mac80211: support mesh rate updates 2013-01-24 16:03:52 +01:00
event.c
ht.c mac80211: unset peer's HT 40 MHz support if not usable 2013-01-03 13:01:45 +01:00
ibss.c mac80211: start auth/assoc timeout on frame status 2013-01-31 14:28:43 +01:00
ieee80211_i.h mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
iface.c mac80211: remove ARP filter enable/disable logic 2013-01-18 21:20:34 +01:00
Kconfig mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
key.c mac80211: add op to configure default key id 2013-01-18 13:30:21 +01:00
key.h mac80211: add debug file for mic failure 2012-12-05 09:44:41 +01:00
led.c leds: Rename led_brightness_set() to led_set_brightness() 2012-07-24 07:52:34 +08:00
led.h mac80211: selective throughput LED trigger active 2010-12-22 14:33:37 -05:00
main.c mac80211: allow drivers to access IPv6 information 2013-01-18 21:55:38 +01:00
Makefile mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_hwmp.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_pathtbl.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_plink.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_ps.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_sync.c mac80211: fix for mesh sync to indicate TBTT adjustment 2012-11-30 12:41:46 +01:00
mesh.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh.h mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
michael.c
michael.h
mlme.c mac80211: send deauth if connection was lost during suspend 2013-02-04 18:57:44 +01:00
offchannel.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2013-01-28 13:54:03 -05:00
pm.c cfg80211/mac80211: support reporting wakeup reason 2013-01-31 14:00:21 +01:00
rate.c mac80211: convert to channel definition struct 2012-11-26 12:42:59 +01:00
rate.h mac80211: convert to channel definition struct 2012-11-26 12:42:59 +01:00
rc80211_minstrel_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_minstrel_ht_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_minstrel_ht.c mac80211: simplify loop in minstrel_ht 2012-11-30 13:45:38 +01:00
rc80211_minstrel_ht.h minstrel_ht: move minstrel_mcs_groups declaration to header file 2010-06-24 15:42:18 -04:00
rc80211_minstrel.c minstrel: update stats after processing status 2012-12-10 22:51:50 +01:00
rc80211_minstrel.h minstrel_ht: fixed rate mode through debugfs 2011-06-01 15:12:29 -04:00
rc80211_pid_algo.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
rc80211_pid_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_pid.h Fix common misspellings 2011-03-31 11:26:23 -03:00
rx.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
scan.c mac80211: improve latency and throughput while software scanning 2013-01-31 16:45:05 +01:00
spectmgmt.c mac80211: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
sta_info.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
sta_info.h mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
status.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
tkip.c mac80211: remove TKIP debug 2012-06-22 11:26:58 +02:00
tkip.h mac80211: fix TKIP races, make API easier to use 2011-07-08 11:11:19 -04:00
trace.c mac80211: trace debug messages 2012-06-24 11:33:18 +02:00
trace.h mac80211: provide the vif in rssi_callback 2013-01-24 15:41:29 +01:00
tx.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
util.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
vht.c mac80211: VHT peer STA caps 2012-10-17 11:02:14 +02:00
wep.c mac80211: fix network header location when adding encryption headers 2012-05-16 12:47:43 -04:00
wep.h mac80211: move RX WEP weak IV counting 2012-03-13 14:54:16 -04:00
wme.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
wme.h mac80211: save wmm_acm per sdata 2012-06-20 17:35:22 +02:00
wpa.c mac80211: add debug file for mic failure 2012-12-05 09:44:41 +01:00
wpa.h mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00