2011-10-17 17:59:38

by Andrés García Saavedra

[permalink] [raw]
Subject: brcmfmac driver implementation: Questions

Hi all,

I would like to test some custom powersaving algorithms for 802.11abg
WLANs on some current android smartphone (e.g., nexus one). My
question is regarding the brcmfmac driver implementation for BCM4329
chipsets:

* The current open source implementation of the driver, brcmfmac, does
ONLY support 11n PHY?
* Does this driver interfaces the mac80211 operations or "acts as" a
mac80211 driver itself talking to cfg80211/nl80211?
* Does the chipset/current implementation support sleep/awake
triggers? (or at least quiet elements?)

Thanks for your answer,
Andr?s


2011-10-17 20:26:23

by Franky Lin

[permalink] [raw]
Subject: Re: brcmfmac driver implementation: Questions

Hi Andres,

On 10/17/2011 10:59 AM, Andr?s Garc?a Saavedra wrote:
> Hi all,
>
> I would like to test some custom powersaving algorithms for 802.11abg
> WLANs on some current android smartphone (e.g., nexus one). My
> question is regarding the brcmfmac driver implementation for BCM4329
> chipsets:

Android drive is a little different from brcmfmac. We do have plan to
add android support on a fullmac based code. But it's not going to
happen in short time. I would suggest you could start with the android
driver to save the time of porting fullmac to Android.

> * The current open source implementation of the driver, brcmfmac, does
> ONLY support 11n PHY?

No. 11g is supported as well.

> * Does this driver interfaces the mac80211 operations or "acts as" a
> mac80211 driver itself talking to cfg80211/nl80211?

We implement the callback and talk to cfg80211 directly.

> * Does the chipset/current implementation support sleep/awake
> triggers? (or at least quiet elements?)

I don't think there is any interface available to bypass the firmware
and control the RF directly.

Hope this can help.

Regards,
Franky





2011-10-18 10:11:14

by Arend van Spriel

[permalink] [raw]
Subject: Re: brcmfmac driver implementation: Questions

On 10/18/2011 10:31 AM, Andr?s Garc?a Saavedra wrote:
> Thank you for your answers, been very helpful.
>
> What I basically mean here to force the wifi interface stay quiet (or
> sleep) for a certain duration of time (the way Notice of Absence
> protocol proposes or 802.11h's Quiet Element does). For example, the
> ath5k driver supports quiet elements and the card offers registers
> that can be edited within the driver to force a station be quiet for a
> certain duration at certain intervals of time. A (local) test
> implementation i've performed on ath5k "understands" the NoA IE from a
> beacon and edits those registers accordingly in order to stay quiet
> accordingly for powersaving purposes.

So your question boils down to whether or not the brcmfmac driver
supports NoA or 11h. I have to look into that. As brcmfmac is a cfg80211
driver the beacon processing and any subsequent action is performed on
the device by firmware and not on the host.

> For the case of a potential BCM4329 implementation of NoA, the
> brcmfmac should be the one to trigger those scheduled quiet intervals
> on the HW (or is there a lower layer to interface the HW?) when it
> receives each beacon NoA IE.

> Thanks again, and excuses for my vague knowledge on the bcm4329 drivers.
> Andr?s
>

To clarify: the brcmfmac driver in the linux kernel is different from
the bcm4329 driver that is in the android kernel. For your nexus one you
would probably be using the android kernel and not the main linux kernel.

Gr. AvS


2011-10-17 20:38:08

by Arend van Spriel

[permalink] [raw]
Subject: RE: brcmfmac driver implementation: Questions

> Sent: maandag 17 oktober 2011 19:59
>
> Hi all,
>
> I would like to test some custom powersaving algorithms for 802.11abg
> WLANs on some current android smartphone (e.g., nexus one). My
> question is regarding the brcmfmac driver implementation for BCM4329
> chipsets:
>
> * The current open source implementation of the driver, brcmfmac, does
> ONLY support 11n PHY?

Yes. It supports the bcm4329 device which comes with a 11n phy, which
can connect to a non-11n AP without problems.

> * Does this driver interfaces the mac80211 operations or "acts as" a
> mac80211 driver itself talking to cfg80211/nl80211?

The brcmfmac does not require mac80211, but interfaces with cfg80211.

> * Does the chipset/current implementation support sleep/awake
> triggers? (or at least quiet elements?)

Nope. All powersaving the device does is done on the device as it
knows best what parts of the device can be put to sleep. Who or what
is going to fire those triggers?

> Thanks for your answer,
> Andr?s

Hope that helps.

Gr. AvS


2011-10-18 08:31:29

by Andrés García Saavedra

[permalink] [raw]
Subject: Re: brcmfmac driver implementation: Questions

Thank you for your answers, been very helpful.

2011/10/17 Arend Van Spriel <[email protected]>:
>> Sent: maandag 17 oktober 2011 19:59
>>
>> Hi all,
>>
>> I would like to test some custom powersaving algorithms for 802.11abg
>> WLANs on some current android smartphone (e.g., nexus one). My
>> question is regarding the brcmfmac driver implementation for BCM4329
>> chipsets:
>>
>> * The current open source implementation of the driver, brcmfmac, does
>> ONLY support 11n PHY?
>
> Yes. It supports the bcm4329 device which comes with a 11n phy, which
> can connect to a non-11n AP without problems.
>
>> * Does this driver interfaces the mac80211 operations or "acts as" a
>> mac80211 driver itself talking to cfg80211/nl80211?
>
> The brcmfmac does not require mac80211, but interfaces with cfg80211.
>
>> * Does the chipset/current implementation support sleep/awake
>> triggers? (or at least quiet elements?)
>
> Nope. All powersaving the device does is done on the device as it
> knows best what parts of the device can be put to sleep. Who or what
> is going to fire those triggers?

What I basically mean here to force the wifi interface stay quiet (or
sleep) for a certain duration of time (the way Notice of Absence
protocol proposes or 802.11h's Quiet Element does). For example, the
ath5k driver supports quiet elements and the card offers registers
that can be edited within the driver to force a station be quiet for a
certain duration at certain intervals of time. A (local) test
implementation i've performed on ath5k "understands" the NoA IE from a
beacon and edits those registers accordingly in order to stay quiet
accordingly for powersaving purposes.

For the case of a potential BCM4329 implementation of NoA, the
brcmfmac should be the one to trigger those scheduled quiet intervals
on the HW (or is there a lower layer to interface the HW?) when it
receives each beacon NoA IE.

Thanks again, and excuses for my vague knowledge on the bcm4329 drivers.
Andr?s

>
>> Thanks for your answer,
>> Andr?s
>
> Hope that helps.
>
> Gr. AvS
>
>