[rt2x00-users] [PATCH RFC] rt2800: disable powersaving as default

Johannes Stezenbach js at sig21.net
Mon Jan 31 21:47:33 EST 2011


Hi,

On Mon, Jan 31, 2011 at 11:11:32AM +0100, Ivo Van Doorn wrote:
> On Sun, Jan 30, 2011 at 8:22 PM, Johannes Stezenbach <js at sig21.net> wrote:
> >
> > However, I cannot find anywhere in mac80211 code where it would
> > check the bit in the TIM of a DTIM which indicates pending
> > broadcast/multicast traffic to be sent after the DTIM beacon.
> > I seems some drivers like carl9170 check this by itself.
> >
> > (The bit to check is the lowest bit of struct ieee80211_tim_ie.bitmap_ctrl.)
> 
> Not sure if this is what you meant but in include/linux/ieee80211.h
> you have the function:
>   ieee80211_check_tim
> which is called from ieee80211_rx_mgmt_beacon() in net/mac80211/mlme.c
> based on the result from ieee80211_check_tim it will disable powersave,
> or send a pspoll.

ieee80211_check_tim() only checks for the TIM bit correpsonding
to the AID passed as a prarameter (directed/unicast traffic), it
does not check for the mc/bc traffic bit.  The low bit of the bitmap_ctrl
is masked out, the high 7 bits are the offset for the TIM bitmap.

> > Does this need to be fixed in mac80211 or is it expected that
> > the hw/fw checks this by itself and stays awake automatically
> > to receive the bc/mc traffic?
> 
> If the above is not sufficient, then it is a mac80211 bug. IMHO the driver
> should not be responsible for parsing the beacon data to determine what
> it should do.

Well, we should take this thread to the linux-wireless list then.


Johannes



More information about the users mailing list