linux/net/mac80211
Emmanuel Grumbach 536d35b48d mac80211: ignore NullFunc frames in the duplicate detection
commit 990d71846a upstream.

NullFunc packets should never be duplicate just like
QoS-NullFunc packets.

We saw a client that enters / exits power save with
NullFunc frames (and not with QoS-NullFunc) despite the
fact that the association supports HT.
This specific client also re-uses a non-zero sequence number
for different NullFunc frames.
At some point, the client had to send a retransmission of
the NullFunc frame and we dropped it, leading to a
misalignment in the power save state.
Fix this by never consider a NullFunc frame as duplicate,
just like we do for QoS NullFunc frames.

This fixes https://bugzilla.kernel.org/show_bug.cgi?id=201449

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
[bwh: Backported to 3.16: The condition for "should we check for duplication"
 is in ieee80211_rx_h_check() and is not inverted]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2019-02-11 17:54:20 +00:00
..
aes_ccm.c mac80211: Fix regression that triggers a kernel BUG with CCMP 2014-12-01 10:02:12 +00:00
aes_ccm.h mac80211: port CCMP to cryptoapi's CCM driver 2013-10-11 15:38:20 +02:00
aes_cmac.c mac80211: fix checkpatch errors 2013-12-18 10:33:06 +01:00
aes_cmac.h mac80211: fix checkpatch errors 2013-12-18 10:33:06 +01:00
agg-rx.c mac80211: fix use of uninitialised values in RX aggregation 2016-03-24 10:01:07 +00:00
agg-tx.c mac80211: send {ADD,DEL}BA on AC_VO like other mgmt frames, as per spec 2014-02-04 21:48:28 +01:00
cfg.c mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys 2018-12-16 22:09:31 +00:00
cfg.h mac80211: make cfg80211 ops and privid const 2014-02-04 21:48:21 +01:00
chan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-05-22 13:58:36 -04:00
debug.h mac80211: process the CSA frame for mesh accordingly 2013-10-28 15:05:28 +01:00
debugfs.c mac80211: use RCU_INIT_POINTER 2014-04-09 10:55:30 +02:00
debugfs.h mac80211: fix some missing includes 2014-04-09 14:49:43 +02:00
debugfs_key.c mac80211: move sdata debugfs dir to vif 2013-03-18 20:10:04 +01:00
debugfs_key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_netdev.c mac80211: clear subdir_stations when removing debugfs 2015-08-11 09:57:34 +01:00
debugfs_netdev.h mac80211: fix some missing includes 2014-04-09 14:49:43 +02:00
debugfs_sta.c mac80211: fix agg_status debugfs file write 2014-02-04 21:48:19 +01:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
driver-ops.h mac80211: add a single-transaction driver op to switch contexts 2014-05-26 11:04:41 +02:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c mac80211: Allow HT capa override to add 40 MHz intolerant 2014-04-22 17:23:19 +02:00
ibss.c mac80211: Requeue work after scan complete for all VIF types. 2016-02-25 00:18:36 +00:00
ieee80211_i.h mac80211: don't use napi_gro_receive() outside NAPI context 2015-06-03 13:27:20 +01:00
iface.c mac80211: Clear beacon_int in ieee80211_do_stop 2019-02-11 17:53:56 +00:00
Kconfig mac80211: process the CSA frame for mesh accordingly 2013-10-28 15:05:28 +01:00
key.c mac80211: don't compare TKIP TX MIC key in reinstall prevention 2017-11-26 13:50:39 +00:00
key.h mac80211: free all AP/VLAN keys at once 2013-12-16 11:29:48 +01:00
led.c mac80211: use oneshot blink API for LED triggers 2013-08-01 10:48:49 +02:00
led.h mac80211: use oneshot blink API for LED triggers 2013-08-01 10:48:49 +02:00
main.c mac80211: prevent possible crypto tx tailroom corruption 2015-07-15 10:01:22 +01:00
Makefile mac80211: move TDLS code to another file 2014-05-05 15:56:15 +02:00
mesh.c mac80211: Fix adding of mesh vendor IEs 2017-03-16 02:27:09 +00:00
mesh.h mac80211: Requeue work after scan complete for all VIF types. 2016-02-25 00:18:36 +00:00
mesh_hwmp.c mac80211: mesh: always use the latest target_sn 2014-04-22 17:24:50 +02:00
mesh_pathtbl.c mac80211: mesh: fix call_rcu() usage 2016-01-05 11:22:19 +00:00
mesh_plink.c mac80211: enable WME for peer mesh STA 2014-01-06 17:43:06 +01:00
mesh_ps.c mac80211: clear sequence/fragment number in QoS-null frames 2014-03-05 15:49:54 +01:00
mesh_sync.c mac80211: remove BUG_ON usage 2014-04-29 17:59:27 +02:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: fix some missing includes 2014-04-09 14:49:43 +02:00
mlme.c cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts 2017-03-16 02:26:32 +00:00
offchannel.c mac80211: fix on-channel remain-on-channel 2014-05-14 15:48:38 +02:00
pm.c mac80211: flush delayed work when entering suspend 2017-06-05 21:17:17 +01:00
rate.c mac80211: fix typo in starting baserate for rts_cts_rate_idx 2014-11-13 11:48:30 +00:00
rate.h mac80211: make rate control ops const 2014-02-04 21:48:21 +01:00
rc80211_minstrel.c mac80211: export the expected throughput 2014-05-21 09:15:16 +02:00
rc80211_minstrel.h mac80211: make rate control ops const 2014-02-04 21:48:21 +01:00
rc80211_minstrel_debugfs.c mac80211: cosmetics for minstrel_debugfs 2013-04-17 17:08:23 +02:00
rc80211_minstrel_ht.c mac80211: minstrel_ht: set default tx aggregation timeout to 0 2016-03-24 10:01:08 +00:00
rc80211_minstrel_ht.h mac80211/minstrel_ht: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: minstrel_ht: replace some occurences of MCS_GROUP_RATES 2013-11-25 20:52:07 +01:00
rc80211_pid.h Fix common misspellings 2011-03-31 11:26:23 -03:00
rc80211_pid_algo.c mac80211: make rate control ops const 2014-02-04 21:48:21 +01:00
rc80211_pid_debugfs.c mac80211: fix some snprintf misuses 2013-10-01 12:16:51 +02:00
rx.c mac80211: ignore NullFunc frames in the duplicate detection 2019-02-11 17:54:20 +00:00
scan.c mac80211: Requeue work after scan complete for all VIF types. 2016-02-25 00:18:36 +00:00
spectmgmt.c mac80211: use secondary channel offset IE also beacons during CSA 2014-11-20 12:01:51 +00:00
sta_info.c mac80211: fix memory leak 2016-05-01 00:05:50 +02:00
sta_info.h mac80211: fix RX A-MPDU session reorder timer deletion 2015-04-13 16:48:59 +01:00
status.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-05-29 12:55:38 -04:00
tdls.c cfg80211: constify MAC addresses in cfg80211 ops 2014-05-19 17:34:42 +02:00
tkip.c mac80211: fix checkpatch errors 2013-12-18 10:33:06 +01: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: allow null chandef in tracing 2015-12-13 17:49:04 +00:00
tx.c mac80211: fix reordering of buffered broadcast packets 2019-02-11 17:54:20 +00:00
util.c mac80211: fix divide by zero when NOA update 2015-12-13 17:49:04 +00:00
vht.c mac80211: allow VHT with peers not capable of 40MHz 2014-05-09 09:56:53 +02:00
wep.c mac80211: move WEP tailroom size check 2015-06-02 12:08:12 +01:00
wep.h mac80211: move RX WEP weak IV counting 2012-03-13 14:54:16 -04:00
wme.c mac80211: send control port protocol frames to the VO queue 2014-02-12 11:26:43 +01:00
wme.h mac80211: save wmm_acm per sdata 2012-06-20 17:35:22 +02:00
wpa.c mac80211/wpa: use constant time memory comparison for MACs 2017-09-15 18:30:10 +01:00
wpa.h mac80211: add generic cipher scheme support 2013-11-25 20:50:52 +01:00