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 Mon, Sep 29, 2008 at 11:14 AM, Luis R. Rodriguez <mcgrof@xxxxxxxxx> wrote:
> 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.

On the way

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

Continuously Aware Mode (No power save)

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

The patch is in internal  review and testing, will be published soon.

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

Typo, will resend the fix.

>> mode is set to STATIC
>
> Can we elaborate a bit on what this vs Dynamic is in the comments if possible?

We cannot copy the whole spec into code :) On the way.

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