Search Linux Wireless

Re: [RFT] ar9170: AP broadcast buffering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 07 December 2009 21:08:32 Kalle Valo wrote:
> Christian Lamparter <chunkeey@xxxxxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux