Search Linux Wireless

Re: p54: AP mode: no data frame despite traffic indication set in TIM

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

 



Thanks again Christian and Johannes,

from a first quick check
- set-and-clear.diff doesn't seem to change anything
- both patches together freeze my system

I don't have a serial console on this embedded thing, so I don't know
its death poem yet. Let me set up my debug environment properly and
report back to you.

Stefan.


2008/11/24 Christian Lamparter <chunkeey@xxxxxx>:
> On Monday 24 November 2008 14:37:54 Johannes Berg wrote:
>> On Fri, 2008-11-21 at 15:12 +0100, Stefan Steuerwald wrote:
>>
>> > - frame 7: http request
>> > - frame 13: iPod goes to sleep
>> > - frame 23: AP beacon indicates traffic for iPod (AID 1 in TIM)
>>
>> in 24 too, the ipod probably didn't see the beacon in frame 23 even
>> though 23 was a dtim beacon (which is a bit odd, but maybe the ipod
>> doesn't care about mcast at this point)
>>
>> > - frame 25: iPod wakes up
>>
>> 26: ack from the AP
>>
>> > - in between: MISSING DATA ???
>> > - frame 27: AP beacon with no traffic indicated ???
>> > - frame 29: iPod goes to sleep again
>> > - subsequent frames: repetitions of this, until the TCP connection is closed
>> >
>> > My understanding is that the AP would not indicate any traffic without
>> > actually having some ready to send? Wrong assumption?
>>
>> Indeed. Christian, is it possible that the p54 device is actually
>> filtering these frames? I'm pretty sure mac80211 behaves correctly, and
>> it unsetting the TIM bit means that it must no longer have traffic
>> buffered.
> As far as I know it works like this:
> If a frame with a the PS-Bit in the FC set is received, the firmware
> will mark the source mac / aid as "sleeping". And every frame from
> this moment on for this device will be buffered.
>
> To remove the "mark" again, the driver has to call p54_sta_unlock.
> And the firmware will send out all buffered frames.
> Or if we only need for one frame (e.g: probe resp) we have a tx_flag (_NO_CANCEL)
>
> If for some reason the "mark" doesn't get removed the firmware will eventually timeout
> the stuck frame and sets a the P54_TX_PSM_CANCELLED flag in tx_status.
> And we pass this on to the mac with IEEE80211_TX_STAT_TX_FILTERED.
>
> one thing: p54 reports the tx_status through the rx-ring-buffer.
> so I hope there's no rx/tx race here since everything is in the same "boat" here.
>
> based on that:
> I made two different patches to address the problem.
>
> one fiddles with mac80211 only (set-and-clear.diff).
> It assumes that if a station comes out of PS, we have to set
> the CLEAR_PS_FILT on the same time we clear the WLAN_STA_PS.
>
> the other one is only for p54 (p54-sta-flags.diff)... Doesn't do very much,
> it just checks if the CLEAR_PS_FILT is set and then sets the
> NO_CANCEL flag on that frame, so the firmware won't buffer it.
>
> Of course you can test both patches on the same time, if it doesn't help.
>
> And finally of course, I could be totally wrong and this is all nothing but useless gibberish.
>
> Regards,
>        Chr
>
> BTW: I couldn't test the patches, so it may OOps
>
--
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