mac80211: TDLS: correctly configure SMPS state
authorArik Nemtsov <arik@wizery.com>
Sun, 14 Jun 2015 13:53:46 +0000 (16:53 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 17 Jul 2015 13:38:18 +0000 (15:38 +0200)
commitd51c2ea3704be07f030c78d57641d6b972e301ee
treeecaa23ed4251a33e7b7ba1629f23c9b2a82673b9
parent3633ebebab2bbe88124388b7620442315c968e8f
mac80211: TDLS: correctly configure SMPS state

The IEEE802.11-2012 specification is vague regarding SMPS operation during
TDLS. It does not define a clear way to transition between SMPS states.

To avoid interop issues, set SMPS to off when TDLS peers are connected.
Accomplish this by extending the definition of the AUTOMATIC state. If the
driver forces a state other than OFF, disconnect all TDLS peers.

While at it, avoid changing the SMPS state of the peer STA. We have no
way to control it, so try and behave correctly towards it.

Move the TDLS peer-teardown function to where the rest of the TDLS code
resides.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c
net/mac80211/tdls.c