aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorIgor Perminov <igor.perminov@inbox.ru>2009-08-04 08:48:51 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-08-04 16:44:35 -0400
commite3b90ca28412fb9dcc8c5ca38e179e78fec07eee (patch)
treefa17113d9d7c96edc076b3f46558e8c3fb78d673 /include
parente48e3a2f17f189deb086ff221e489e7fd8ec4302 (diff)
mac80211: FIF_PSPOLL filter flag
When an interface is configured in the AP mode, the mac80211 implementation doesn't inform the driver to receive PS Poll frames. It leads to inability to communicate with power-saving stations reliably. The FIF_CONTROL flag isn't passed by mac80211 to ieee80211_ops.configure_filter when an interface is in the AP mode. And it's ok, because we don't want to receive ACK frames and other control ones, but only PS Poll ones. This patch introduces the FIF_PSPOLL filter flag in addition to FIF_CONTROL, which means for the driver "pass PS Poll frames". This flag is passed to the driver: A) When an interface is configured in the AP mode. B) In all cases, when the FIF_CONTROL flag was passed earlier (in addition to it). Signed-off-by: Igor Perminov <igor.perminov@inbox.ru> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r--include/net/mac80211.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 5ed93f4406a8..e2fb5767e1fa 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1244,10 +1244,13 @@ ieee80211_get_alt_retry_rate(const struct ieee80211_hw *hw,
1244 * mac80211 needs to do and the amount of CPU wakeups, so you should 1244 * mac80211 needs to do and the amount of CPU wakeups, so you should
1245 * honour this flag if possible. 1245 * honour this flag if possible.
1246 * 1246 *
1247 * @FIF_CONTROL: pass control frames, if PROMISC_IN_BSS is not set then 1247 * @FIF_CONTROL: pass control frames (except for PS Poll), if PROMISC_IN_BSS
1248 * only those addressed to this station 1248 * is not set then only those addressed to this station.
1249 * 1249 *
1250 * @FIF_OTHER_BSS: pass frames destined to other BSSes 1250 * @FIF_OTHER_BSS: pass frames destined to other BSSes
1251 *
1252 * @FIF_PSPOLL: pass PS Poll frames, if PROMISC_IN_BSS is not set then only
1253 * those addressed to this station.
1251 */ 1254 */
1252enum ieee80211_filter_flags { 1255enum ieee80211_filter_flags {
1253 FIF_PROMISC_IN_BSS = 1<<0, 1256 FIF_PROMISC_IN_BSS = 1<<0,
@@ -1257,6 +1260,7 @@ enum ieee80211_filter_flags {
1257 FIF_BCN_PRBRESP_PROMISC = 1<<4, 1260 FIF_BCN_PRBRESP_PROMISC = 1<<4,
1258 FIF_CONTROL = 1<<5, 1261 FIF_CONTROL = 1<<5,
1259 FIF_OTHER_BSS = 1<<6, 1262 FIF_OTHER_BSS = 1<<6,
1263 FIF_PSPOLL = 1<<7,
1260}; 1264};
1261 1265
1262/** 1266/**