Re: [RFT] mac80211: fix broadcast/multicast data drop on scan

Luis R. Rodriguez
2010-08-27T15:48:45Z

On Fri, Aug 27, 2010 at 8:43 AM, Johannes Berg
<johannes@sipsolutions.net> wrote:
> On Fri, 2010-08-27 at 08:40 -0700, Luis R. Rodriguez wrote:
>> On Fri, Aug 27, 2010 at 8:37 AM, Johannes Berg
>> <johannes@sipsolutions.net> wrote:
>> > On Fri, 2010-08-27 at 08:28 -0700, Luis R. Rodriguez wrote:
>> >
>> >> Indeed... I do not see where we keep track of the DTIM count and was
>> >> afraid this was not sufficient. I had not thought about the last
>> >> received multicast / broadcast frame, that will require some more
>> >> work. But I also noticed even ieee80211_recalc_ps() does not take this
>> >> into account when computing the max_sleep_period ieee80211_enable_ps()
>> >> for dynamic power save, it only considers the DTIM period. We send the
>> >> nullfunc frame for dynamic power save and it does not seem we take
>> >> into consideration the DTIM count and last RX's broadcast / multicast
>> >> data prior to sending the nullfunc to go into power save. So it seems
>> >> to me dynamic power save would also loses broadcast / multicast data
>> >> frames.
>> >
>> > No, the max sleep period is just a helper variable for device
>> > implementation of sleep -- the actual alignment of it with DTIM beacons
>> > etc. has to be done by the device. Therefore, it isn't so :-)
>>
>> I noticed the comment on the PS documentation that the reason for this
>> is that mac80211 is too slow, is that right?
>
> Well, there's no way we can reliably wake up exactly before a beacon by
> implementing that in software, hard real-time hasn't been achieved in
> Linux yet :-)

Keyword here is *exactly*. I don't want to wake up *exactly* at DTIM,
only ensure we don't sleep during it and the send buffered frames and
multicast traffic data. Why can we not implement this on mac80211?

Luis