diff mbox series

[12/24] mac80211: ignore NullFunc frames in the duplicate detection

Message ID 20181215090325.31604-13-luca@coelho.fi (mailing list archive)
State Not Applicable
Delegated to: Johannes Berg
Headers show
Series cfg80211/mac80211 patches from our internal tree 2018-12-15 | expand

Commit Message

Luca Coelho Dec. 15, 2018, 9:03 a.m. UTC
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

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

CC: <stable@vger.kernel.org>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/rx.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Emmanuel Grumbach Dec. 15, 2018, 5:31 p.m. UTC | #1
On Sat, Dec 15, 2018 at 11:20 AM Luca Coelho <luca@coelho.fi> wrote:
>
> From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
>
> 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
>

This has already been sent, it is in net.git already :)
Luca Coelho Dec. 18, 2018, 12:55 a.m. UTC | #2
On Sat, 2018-12-15 at 19:31 +0200, Emmanuel Grumbach wrote:
> On Sat, Dec 15, 2018 at 11:20 AM Luca Coelho <luca@coelho.fi> wrote:
> > From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
> > 
> > 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
> > 
> 
> This has already been sent, it is in net.git already :)

Oops, sorry, my bad.  I obviously forgot to look it up before sending.

--
Cheers,
Luca.
diff mbox series

Patch

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 2394008f82b9..60d179bf2585 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1404,6 +1404,7 @@  ieee80211_rx_h_check_dup(struct ieee80211_rx_data *rx)
 		return RX_CONTINUE;
 
 	if (ieee80211_is_ctl(hdr->frame_control) ||
+	    ieee80211_is_nullfunc(hdr->frame_control) ||
 	    ieee80211_is_qos_nullfunc(hdr->frame_control) ||
 	    is_multicast_ether_addr(hdr->addr1))
 		return RX_CONTINUE;