Search Linux Wireless

Re: [PATCH] ath9k: fix processing of TX PS null data frames

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

 



"Luis R. Rodriguez" <lrodriguez@xxxxxxxxxxx> writes:

> When mac80211 was telling us to go into Powersave we listened
> and immediately turned RX off. This meant hardware would not
> see the ACKs from the AP we're associated with and hardware
> we'd end up retransmiting the null data frame in a loop
> helplessly.
>
> Fix this by keeping track of the transmitted nullfunc frames
> and only when we are sure the AP has sent back an ACK do we
> go ahead and shut RX off.

[...]

> This should illustrate some changes we need on mac80211 to help
> with enabling and completing dynamic PS. 

To be exact this is not about dynamic power save but
HW_PS_NULLFUNC_STACK support.

> The If we don't get an ACK we be able to tell mac80211 enabling
> dynamic PS failed so it can stop assuming we've successfully enabled
> it.

Yes, currently mac80211 assumes that the hardware will wait for the
ack before turning off radios. It might be a bit tricky to implement
the ack delay in mac80211, for example we need to support the case
when timeout is zero. Adding more timers to mac80211 creates more
bugs.

Also mac80211 doesn't check at all if the nullfunc frame reached the
AP or not. I think that should be also fixed because it's a problem
with every driver using IEEE80211_HW_PS_NULLFUNC_STACK.

> Curious how this works with other hardware. When you enable
> dynamic PS can you easily check for the ACK from the AP?

On stlc45xx firmware does go to sleep before ACK is received.

> What can we do on mac80211 to help with this without making it
> too complex?

What drivers need this? I guess at least ath5k and ath9k? Is it
simpler if we just implement this in driver and not in mac80211? (Just
asking, I don't have an opinion yet.)

-- 
Kalle Valo
--
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