From: Christian Lamparter <chunkeey@googlemail.com>
To: Kalle Valo <kalle.valo@iki.fi>
Cc: Jan Kiszka <jan.kiszka@web.de>, linux-wireless@vger.kernel.org
Subject: Re: [RFT] ar9170: AP broadcast buffering
Date: Mon, 7 Dec 2009 22:31:32 +0100 [thread overview]
Message-ID: <200912072231.32798.chunkeey@googlemail.com> (raw)
In-Reply-To: <87aaxu4ke7.fsf@purkki.valot.fi>
On Monday 07 December 2009 21:08:32 Kalle Valo wrote:
> Christian Lamparter <chunkeey@googlemail.com> writes:
>
> > Now the problem is that under traffic the BC/MC frames might
> > be delayed in the tx_pending queues and don't make it in time.
>
> I don't know what time constraints you refer to here, but clients
> should stay awake until they have received a multicast/broadcast
> message with the moredata bit disabled. So, in theory, it doesn't
> matter even if the frames are transmitted even 20 ms after the beacon.
> (In practise some hardware might have timers for this, I think at
> least wl1251 had one.)
> Of course the downside is the increased power consumption. But it's
> still better than to not receive the multicast/broadcast frames at all :)
That's the thing: 802.11-2007 11.2.1.5 f) says:
"*Immediately* after every DTIM, the AP shall
transmit all buffered broadcast/multicast MSDUs...".
And I cannot rule out that some Devs took this quite literally. ;-)
Anyway, here is a case that I've witnessed:
During testing, I caught samples where MC/BC frames were delayed for
more up to 115ms. (b_interval = 102.4ms and dtim_period = 3)
and this is where another paragraph in 11.2.1.5 f) kicks in:
"If the AP is unable to transmit all of the buffered broadcast/multicast MSDUs
before the TBTT following the DTIM, the AP shall indicate that it will
continue to deliver the broadcast/multicast MSDUs by setting the bit for AID 0
(zero) in the bit map control field of the TIM element of every Beacon frame,
until all buffered broadcast/multicast frames have been transmitted."
And if you look at the mac80211 code: ieee80211_beacon_add_tim, you can see why
this is a problem:
if (bss->dtim_count == 0 && !skb_queue_empty(&bss->ps_bc_buf))
aid0 = 1;
The BC/MC bit is only set for DTIM beacons, but the MC/BC traffic _arrived_
116ms after the DTIM beacon had aired and worse: even after the normal beacon,
without the BC/MC flag...
Note:
* Unfortunately it is not unusual for ar9170 to *forget* tx_status
reports and then we have to wait for the _janitor_ work to _retire_
old frames.
* the beacon (delta) data is uploaded through the command interface
and therefore the beacon is always right on time.
Regards,
Chr
next prev parent reply other threads:[~2009-12-07 21:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-29 1:06 [RFT] ar9170: AP broadcast buffering Christian Lamparter
2009-12-06 18:23 ` Jan Kiszka
2009-12-07 16:36 ` Christian Lamparter
2009-12-07 20:08 ` Kalle Valo
2009-12-07 21:31 ` Christian Lamparter [this message]
2009-12-08 7:23 ` Kalle Valo
2009-12-08 21:51 ` Jan Kiszka
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=200912072231.32798.chunkeey@googlemail.com \
--to=chunkeey@googlemail.com \
--cc=jan.kiszka@web.de \
--cc=kalle.valo@iki.fi \
--cc=linux-wireless@vger.kernel.org \
/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).