Search Linux Wireless

Re: [PATCH] mac80211: Always send a null data frame if TIM bit is set.

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

 



On Mon, Mar 2, 2009 at 8:20 PM, Vivek Natarajan <vivek.natraj@xxxxxxxxx> wrote:
> If the AP thinks we are in power save state eventhough we are not truly
> in that state, it sets the TIM bit and does not send a data frame unless
> we send a null data frame to correct the state in the AP.
> This might happen if the null data frame for wake up is lost in the air
> after we disable power save.
>
> Signed-off-by: Vivek Natarajan <vnatarajan@xxxxxxxxxxx>
> ---
>  net/mac80211/mlme.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index 7f23858..ac10b21 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -1457,8 +1457,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
>        ieee80211_sta_wmm_params(local, ifmgd, elems.wmm_param,
>                                 elems.wmm_param_len);
>
> -       if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK &&
> -           local->hw.conf.flags & IEEE80211_CONF_PS) {
> +       if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) {
>                directed_tim = ieee80211_check_tim(&elems, ifmgd->aid);
>
>                if (directed_tim) {
	                 if (local->hw.conf.dynamic_ps_timeout > 0) {
				local->hw.conf.flags &= ~IEEE80211_CONF_PS;
				ieee80211_hw_config(local,
						    IEEE80211_CONF_CHANGE_PS);
				ieee80211_send_nullfunc(local, sdata, 0);
			} else {
				local->pspolling = true;
				ieee80211_send_pspoll(local, sdata);

Although the above patch is a right approach, it opens up an issue
with pspolling.

In the above chunk of code, if the timeout is zero, instead of sending
a null frame to
correct the state in the AP, we may keep on sending ps poll frames (
And the ps state
in the AP will never be corrected)

I have not tested pspolling with ath9k. But this seems to be an issue.
Thoughts?

VIvek.
--
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