linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: Christian Lamparter <chunkeey@googlemail.com>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [RFT] ar9170: AP broadcast buffering
Date: Tue, 08 Dec 2009 22:51:49 +0100	[thread overview]
Message-ID: <4B1ECA75.3070403@web.de> (raw)
In-Reply-To: <200912071736.40929.chunkeey@googlemail.com>

[-- Attachment #1: Type: text/plain, Size: 3182 bytes --]

Christian Lamparter wrote:
> On Sunday 06 December 2009 19:23:09 Jan Kiszka wrote:
>> Christian Lamparter wrote:
>>> This patch should fix "broadcast traffic before DTIM beacon",
>>> But there is a downside: the broadcast (e.g arp) frames
>>> might get delayed and won't make it in time.
>>>
>>> let me know, if this patch does any good, or not...
>> Mmm, how is this supposed to work?
> The driver sets the PRETBTT interval and the HW will trigger
> the PRETBTT event. Which will tell the driver to update the beacon,
> which _in turn_ triggers the BCN_CFG event and the buffered
> BC frames are _released_ into the queues.

When is that PRETBTT signaled, on every beacon or only on DTIM beacons?
If on the former, I do not see yet where the code filters for the latter.

> 
> 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 think it's the right long-term solution to let such
time-critical jobs be done by the host as long as the controller is
capable of handling it more accurately.

> 
>> I still haven't started hacking on this as well, but I read a bit
>> about DTIM.
>> One thing I think to have understood is that the DTIM interval is typically
>> larger than the beacon interval. There is even some interrupt on ar9170
>> indicating this event, it's just not enabled yet.
> Na, I _think_ that BIT is meant for the PS/station mode and
> is used to say to the fw/driver to stay alert for incoming
> broadcast/multicast data.

Likely. But maybe it also signals the that this period has started so
that the controller can send out the corresponding frames. Otherwise it
had to process every beacon interrupt to filter for DTIM.

> 
> If this really is the case, then I'm afraid to say:
> the bit is probably for little use in this situation. 
>> Moreover, I do not yet understand how deferring multicast frames works
>> in this patch. How are they filtered out from normal frames and queued
>> until the beacon event? (But that misunderstanding might be due to the
>> fact that I haven't read the whole driver code yet.)
> ar9170 does not have a "Content After Beacon" queue like p54 or ath5k/ath9k.
> But luckily the mac80211 stack provides the necessary queuing mechanism.
> And all the driver needs to do: 
>  - set IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING
>  - grab the buffered BC/MC frames and push them to the device.
> 

Ah, I see.

> Note:
> 
> That's the current situation. But maybe you'll be in for a big surprise.
> There is a special firmware & driver: "carl9170", which will add several
> useful features:
>  * accurate tx status feedback
>  * _CAB_ queuing in firmware
>   => this should be enough to finally enable NL80211_IFTYPE_AP / MESH.
> 
>  * multirate retry support (minstrel)
>   => improve performance in suboptimal environments.
> 
>  * Real Hardware QoS support.
>    (But unfortunately with a catch)
> 
> I hope it will be ready for Christmas ;-)

Sounds interesting. Is it derived from ar9170-fw or written from
scratch? In any case, I'm looking forward to those improvements.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

      parent reply	other threads:[~2009-12-08 21:51 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
2009-12-08  7:23         ` Kalle Valo
2009-12-08 21:51     ` Jan Kiszka [this message]

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=4B1ECA75.3070403@web.de \
    --to=jan.kiszka@web.de \
    --cc=chunkeey@googlemail.com \
    --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).