mac80211: reply only once to each PS-poll
commitdeeaee197b0fa694ba6c8f02cdb57b3be7115b4f
authorJohannes Berg <johannes.berg@intel.com>
Thu, 29 Sep 2011 14:04:35 +0000 (29 16:04 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 30 Sep 2011 19:57:18 +0000 (30 15:57 -0400)
tree9cdd2ce5786ceb60c68327da441913b56de9726c
parentce662b44ce22e3e8886104d5feb2a451d7ba560f
mac80211: reply only once to each PS-poll

If a PS-poll frame is retried (but was received)
there is no way to detect that since it has no
sequence number. As a consequence, the standard
asks us to not react to PS-poll frames until the
response to one made it out (was ACKed or lost).

Implement this by using the WLAN_STA_SP flags to
also indicate a PS-Poll "service period" and the
IEEE80211_TX_STATUS_EOSP flag for the response
packet to indicate the end of the "SP" as usual.

We could use separate flags, but that will most
likely completely confuse drivers, and while the
standard doesn't exclude simultaneously polling
using uAPSD and PS-Poll, doing that seems quite
problematic.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
include/net/mac80211.h
net/mac80211/rx.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h