All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/3] mesh power save - hardware doze
@ 2013-01-23 10:19 ` Marco Porsch
  0 siblings, 0 replies; 21+ messages in thread
From: Marco Porsch @ 2013-01-23 10:19 UTC (permalink / raw)
  To: mcgrof, jouni, vthiagar, senthilb, johannes
  Cc: linux-wireless, devel, ath9k-devel, Marco Porsch

Commits #2 and #3 implement the actual power saving mechanism
for mesh.

When the current peer link states allow doze state, the HW is
configured accordingly.
STA wake up from doze state for
1) sending their own beacon and tailing awake window
2) receiving beacons of peers they are in light sleep towards
In these two situations a Mesh Peer Service Period may be
initiated to extend the awake phase to transmit/receive
frames.

Design goal was to implement all PS routines in mac80211 to
keep maintainability high and allow simple driver adaption.
Since mesh PS requires waiting for beacon/multicasts (CAB) per
STA, these routines are re-implemented in mac80211.

The implementation should be capable of managing multiple
concurrent mesh vif, although this has rarely been tested, yet.

(For more info see https://github.com/cozybit/open80211s/wiki
/Mesh-Powersave-Implementation-Notes.)

On some test devices (WNDR3700/3800 with openwrt r35284) I
experience frequent crashes ("Data bus error"). Adding udelay
to ath9k_hw_set_power_awake and ath9k_set_power_network_sleep as
described in https://dev.openwrt.org/ticket/9107 seems to help.
I am unsure if I just stumble over a bug or cause it myself
here.

Marco Porsch (3):
  mac80211: move mesh sync beacon handler into neighbour_update
  mac80211: mesh power save doze scheduling
  ath9k: mesh powersave support

 drivers/net/wireless/ath/ath9k/ath9k.h |    1 +
 drivers/net/wireless/ath/ath9k/main.c  |   46 +++-
 include/net/mac80211.h                 |   34 +++
 net/mac80211/ieee80211_i.h             |   19 +-
 net/mac80211/mesh.c                    |   25 ++-
 net/mac80211/mesh.h                    |   22 +-
 net/mac80211/mesh_plink.c              |   17 +-
 net/mac80211/mesh_ps.c                 |  357 ++++++++++++++++++++++++++++++++
 net/mac80211/mesh_sync.c               |   47 ++---
 net/mac80211/sta_info.c                |    4 +
 net/mac80211/sta_info.h                |   13 ++
 net/mac80211/tx.c                      |    2 +
 12 files changed, 536 insertions(+), 51 deletions(-)

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-02-02 17:53 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-23 10:19 [RFC 0/3] mesh power save - hardware doze Marco Porsch
2013-01-23 10:19 ` [ath9k-devel] " Marco Porsch
2013-01-23 10:19 ` [RFC 1/3] mac80211: move mesh sync beacon handler into neighbour_update Marco Porsch
2013-01-23 10:19   ` [ath9k-devel] " Marco Porsch
2013-01-31 13:43   ` Johannes Berg
2013-01-31 13:43     ` [ath9k-devel] " Johannes Berg
2013-01-31 15:28     ` Marco Porsch
2013-01-31 15:28       ` [ath9k-devel] " Marco Porsch
2013-02-02 17:53       ` Sam Leffler
2013-01-23 10:19 ` [RFC 2/3] mac80211: mesh power save doze scheduling Marco Porsch
2013-01-23 10:19   ` [ath9k-devel] " Marco Porsch
2013-01-23 19:16   ` Thomas Pedersen
2013-01-23 19:16     ` [ath9k-devel] " Thomas Pedersen
2013-01-31 13:51   ` Johannes Berg
2013-01-31 13:51     ` [ath9k-devel] " Johannes Berg
2013-01-31 15:23     ` Marco Porsch
2013-01-31 15:23       ` [ath9k-devel] " Marco Porsch
2013-01-31 15:34       ` Johannes Berg
2013-01-31 15:34         ` [ath9k-devel] " Johannes Berg
2013-01-23 10:19 ` [RFC 3/3] ath9k: mesh powersave support Marco Porsch
2013-01-23 10:19   ` [ath9k-devel] " Marco Porsch

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.