linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: John Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Subject: [PATCH v2 06/16] mac80211: clear more-data bit on filtered frames
Date: Thu, 29 Sep 2011 16:04:31 +0200	[thread overview]
Message-ID: <20110929140500.078257800@sipsolutions.net> (raw)
In-Reply-To: 20110929140425.390322480@sipsolutions.net

From: Johannes Berg <johannes.berg@intel.com>

It doesn't seem likely, but maybe possible, that the
more-data bit needs to be recomputed due to changes
in the queued frames. Clear it for filtered frames
to ensure that we never send it incorrectly. It'll
be set again as necessary when we retransmit this
frame.

The more likely case is maybe where the station woke
up after the filtered frame in which case more-data
should be clear when the frame is transmitted to the
station since it is now awake.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/mac80211/status.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

--- a/net/mac80211/status.c	2011-09-28 19:10:13.000000000 +0200
+++ b/net/mac80211/status.c	2011-09-28 19:10:15.000000000 +0200
@@ -65,6 +65,16 @@ static void ieee80211_handle_filtered_fr
 
 	sta->tx_filtered_count++;
 
+	/*
+	 * Clear more-data bit on filtered frames, it might be set
+	 * but later frames might time out so it might have to be
+	 * clear again ... It's all rather unlikely (this frame
+	 * should time out first, right?) but let's not confuse
+	 * peers unnecessarily.
+	 */
+	if (hdr->frame_control & cpu_to_le16(IEEE80211_FCTL_MOREDATA))
+		hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_MOREDATA);
+
 	if (ieee80211_is_data_qos(hdr->frame_control)) {
 		int tid = *ieee80211_get_qos_ctl(hdr) &
 					IEEE80211_QOS_CTL_TID_MASK;



  parent reply	other threads:[~2011-09-29 14:06 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-29 14:04 [PATCH v2 00/16] mac80211 uAPSD support Johannes Berg
2011-09-29 14:04 ` [PATCH v2 01/16] mac80211: let drivers inform it about per TID buffered frames Johannes Berg
2011-09-29 14:04 ` [PATCH v2 02/16] mac80211: unify TIM bit handling Johannes Berg
2011-09-29 14:04 ` [PATCH v2 03/16] mac80211: also expire filtered frames Johannes Berg
2011-09-29 14:04 ` [PATCH v2 04/16] mac80211: split PS buffers into ACs Johannes Berg
2011-09-29 14:04 ` [PATCH v2 05/16] mac80211: remove return value from add_pending_skbs Johannes Berg
2011-09-29 14:04 ` Johannes Berg [this message]
2011-09-29 14:04 ` [PATCH v2 07/16] mac80211: allow releasing driver-buffered frames Johannes Berg
2011-09-29 14:04 ` [PATCH v2 08/16] mac80211: implement uAPSD Johannes Berg
2011-09-29 14:04 ` [PATCH v2 09/16] mac80211: send (QoS) Null if no buffered frames Johannes Berg
2011-09-29 14:04 ` [PATCH v2 10/16] mac80211: reply only once to each PS-poll Johannes Berg
2011-09-29 14:04 ` [PATCH v2 11/16] mac80211: optimise station flags Johannes Berg
2011-09-29 14:04 ` [PATCH v2 12/16] mac80211: add missing station flags to debugfs Johannes Berg
2011-09-29 14:04 ` [PATCH v2 13/16] mac80211: explicitly notify drivers of frame release Johannes Berg
2011-09-29 14:04 ` [PATCH v2 14/16] mac80211: allow out-of-band EOSP notification Johannes Berg
2011-09-29 14:04 ` [PATCH v2 15/16] mac80211: document client powersave Johannes Berg
2011-09-29 14:04 ` [PATCH v2 16/16] mac80211: dont assign seqno to or aggregate QoS Null frames Johannes Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110929140500.078257800@sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).