Search Linux Wireless

Re: [PATCH 1/1] mac80211: send action frame when toggling SM PS mode

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

 



On Sun, Sep 28, 2008 at 9:14 AM, Tomas Winkler <tomas.winkler@xxxxxxxxx> wrote:
> From: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
>
> This patch makes mac80211 able to send action frames when toggling
> (SM PS) Spacial Multiplexing Power Save mode.

I have no clue what this is as I haven't yet peeked at this section of
the draft. If we can provide a brief explanation as to what this is
would be useful to other developers without access to the 11n draft.
Even it its just enhancing the comment in the code.

> Example:
> 1.
> Low lever driver may close some of RX chains in power save mode
> and needs to announce to AP that a RTS frame is need in order to wake all
> RX chains, on other hand SM PS can be disabled on CAM mode

What's CAM mode?

> or if HW is able
> to wake all chains without RTS frame.

Should we add a HW capability bit for mac80211 drivers to indicate this?

> 2.
> iwlwifi can call this function when it detects that only
> one antenna can effectively receive

When would this happen? Would this happen when any 11n mac80211
capable driver is going to PS mode and it doesn't have the capability
of detecting when it needs to to turn on its antennas?

> then MS PS

Did you mean SM PS mode?

> mode is set to STATIC

Can we elaborate a bit on what this vs Dynamic is in the comments if possible?


> +static void ieee80211_send_sm_ps(struct ieee80211_sub_if_data *sdata, u8 mode)
> +{
> +       struct ieee80211_local *local = sdata->local;
> +       struct ieee80211_mgmt *mgmt;
> +       struct sk_buff *skb;
> +       DECLARE_MAC_BUF(mac);
> +
> +       struct ieee80211_if_sta *ifsta = &sdata->u.sta;
> +       struct net_device *dev = sdata->dev;
> +
> +       /* Implemented for STA only */
> +       if (sdata->vif.type != NL80211_IFTYPE_STATION)
> +               return;

<-- snip -->

> +       if (ifsta->flags & IEEE80211_STA_ASSOCIATED)
> +               ieee80211_tx_skb(sdata, skb, 0);

You can move this ending branch above to return early so we don't go
through the entire routine for no good reason. So something like:

       if (sdata->vif.type != NL80211_IFTYPE_STATION ||
                      ifsta->flags & IEEE80211_STA_ASSOCIATED)
               return;

  Luis
--
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