linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RE: [PATCH v3 0/2] mac80211: add U-APSD client support
@ 2009-12-03 20:25 Jason Young
  2009-12-04 12:12 ` Kalle Valo
  2009-12-06 10:47 ` Johannes Berg
  0 siblings, 2 replies; 8+ messages in thread
From: Jason Young @ 2009-12-03 20:25 UTC (permalink / raw)
  To: linux-wireless

Hi,
I'm happy to see this proposal for U-APSD client support for mac80211.

>> Hello,
>>
>> here is my proposal how to add U-APSD client support to mac80211. I also
>> included example driver implementation for wl1251.
>>
>> Please comment. Also I would like to get comments how U-APSD needs to be
>> implemented in different hardware.

WMM Admission Control allows queues to be configured as trigger-only and
deliver-only via mgmt action frames. If this feature is ever added to mac80211
we may need to make trigger-enabled and deliver-enabled per queue configuration
explicit rather than a single boolean value per access category.  Being as
there is no way to configure an access category trigger-only or deliver-only
outside of admission control, we don't need to worry about this problem right
now.

>>
>> v3:
>> - remove unnecessary debugfs interface, people can recompile mac80211 in
>> case they want to try enable more queues

We will want runtime time configuration of u-apsd because its is necessary for
station's 'WMM Power Save' certification. Recompiling mac80211 for the various
uapsd configurations is a bit heavy-handed. I'd like to see debugfs support
added back back for now its primarily a testing issue anyway.

>> - add max SP length defines to ieee80211.h

The bit values for IEEE80211_WMM_IE_STA_SP_XXX are not correct.  The Max SP
Length subfield settings table in 7.3.1.17 has the least significant bit listed
first.

#define IEEE80211_WMM_IE_STA_SP_ALL  (0<<5)
#define IEEE80211_WMM_IE_STA_SP_2     (1<<5)  /* or (BIT(5)) */
#define IEEE80211_WMM_IE_STA_SP_4     (2<<5)  /* or (BIT(6)) */
#define IEEE80211_WMM_IE_STA_SP_6     (3<<5)  /* or (BIT(5) | BIT(6)) */

>> v2:
>> - remove cfg80211 changes
>> - rename IEEE80211_QOS_IE to IEEE80211_WMM_IE_STA in ieee80211.h

I would rename IEEE80211_WMM_IE_STA_XXX defines to something like
IEEE80211_STA_QOSINFO_XXX to make it clear that bit values are used in the
context of the qosinfo field octet.

Jason Young
DSP Group

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 0/2] mac80211: add U-APSD client support
  2009-12-03 20:25 [PATCH v3 0/2] mac80211: add U-APSD client support Jason Young
@ 2009-12-04 12:12 ` Kalle Valo
       [not found]   ` <16a81f890912041102l7bcce84eg7a8f80ff5ff341f2@mail.gmail.com>
  2009-12-06 10:47 ` Johannes Berg
  1 sibling, 1 reply; 8+ messages in thread
From: Kalle Valo @ 2009-12-04 12:12 UTC (permalink / raw)
  To: Jason Young; +Cc: linux-wireless

Jason Young <a.young.jason@gmail.com> writes:

> Hi,

Hello,

>>> here is my proposal how to add U-APSD client support to mac80211. I also
>>> included example driver implementation for wl1251.
>>>
>>> Please comment. Also I would like to get comments how U-APSD needs to be
>>> implemented in different hardware.
>
> WMM Admission Control allows queues to be configured as trigger-only
> and deliver-only via mgmt action frames. If this feature is ever
> added to mac80211 we may need to make trigger-enabled and
> deliver-enabled per queue configuration explicit rather than a
> single boolean value per access category. Being as there is no way
> to configure an access category trigger-only or deliver-only outside
> of admission control, we don't need to worry about this problem
> right now.

I decided to drop Admission Control for now because I didn't see any
real use case for it. And if we would like to utilise it properly, we
would need to have properly supported user space interface. I think we
are not ready for that quite yet.

> We will want runtime time configuration of u-apsd because its is
> necessary for station's 'WMM Power Save' certification. Recompiling
> mac80211 for the various uapsd configurations is a bit heavy-handed.
> I'd like to see debugfs support added back back for now its
> primarily a testing issue anyway.

Thanks, I wasn't aware of this. Yes, adding the debugfs interface back
makes sense now. But can you describe a bit more how you would like to
use the debugfs interface? I would like to understand about your needs
a bit more.

I also need to find the certification test plan and read it myself.

>>> - add max SP length defines to ieee80211.h
>
> The bit values for IEEE80211_WMM_IE_STA_SP_XXX are not correct. The
> Max SP Length subfield settings table in 7.3.1.17 has the least
> significant bit listed first.

Oh, I missed that entirely. And I was even thinking why the order
looked so weird (0, 2, 1, 3), I should have checked that. Thank you
for noticing this.

>>> v2:
>>> - remove cfg80211 changes
>>> - rename IEEE80211_QOS_IE to IEEE80211_WMM_IE_STA in ieee80211.h
>
> I would rename IEEE80211_WMM_IE_STA_XXX defines to something like
> IEEE80211_STA_QOSINFO_XXX to make it clear that bit values are used in the
> context of the qosinfo field octet.

Good point. Is IEEE80211_WMM_IE_STA_QOSINFO_AC_VO clear enough? At
least it's long enough :)

Thank you for the comments, I appreciate them.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v3 0/2] mac80211: add U-APSD client support
       [not found]   ` <16a81f890912041102l7bcce84eg7a8f80ff5ff341f2@mail.gmail.com>
@ 2009-12-04 19:05     ` Jason Young
  2009-12-04 20:49       ` Kalle Valo
  0 siblings, 1 reply; 8+ messages in thread
From: Jason Young @ 2009-12-04 19:05 UTC (permalink / raw)
  To: linux-wireless

On Fri, Dec 4, 2009 at 4:12 AM, Kalle Valo <kalle.valo@iki.fi> wrote:
> Jason Young <a.young.jason@gmail.com> writes:
>
>> Hi,
>
> Hello,
>
>>>> here is my proposal how to add U-APSD client support to mac80211. I also
>>>> included example driver implementation for wl1251.
>>>>
>>>> Please comment. Also I would like to get comments how U-APSD needs to be
>>>> implemented in different hardware.
>>
>> WMM Admission Control allows queues to be configured as trigger-only
>> and deliver-only via mgmt action frames. If this feature is ever
>> added to mac80211 we may need to make trigger-enabled and
>> deliver-enabled per queue configuration explicit rather than a
>> single boolean value per access category. Being as there is no way
>> to configure an access category trigger-only or deliver-only outside
>> of admission control, we don't need to worry about this problem
>> right now.
>
> I decided to drop Admission Control for now because I didn't see any
> real use case for it. And if we would like to utilise it properly, we
> would need to have properly supported user space interface. I think we
> are not ready for that quite yet.
>

There are real use cases for WMMAC, particularly in enterprise
environments but I don't want to get into that discussion just yet,
first things first :) I just wanted it to be noted somewhere in the
discussion of this proposal that U-APSD can, in theory at least, be
configured as trigger or delivery only. Some hardware may be
implemented to allow trigger/delivery only configuration. In such
cases, the driver will need to update both the trigger and delivery
state based on the uapsd boolean parameter.

>> We will want runtime time configuration of u-apsd because its is
>> necessary for station's 'WMM Power Save' certification. Recompiling
>> mac80211 for the various uapsd configurations is a bit heavy-handed.
>> I'd like to see debugfs support added back back for now its
>> primarily a testing issue anyway.
>
> Thanks, I wasn't aware of this. Yes, adding the debugfs interface back
> makes sense now. But can you describe a bit more how you would like to
> use the debugfs interface? I would like to understand about your needs
> a bit more.
>
> I also need to find the certification test plan and read it myself.

Section 2.8.1 of the "WMM Power Save Test Plan Version 1.5" describes
the basic station requirements. Section 5 describes the station
specific tests.

I would like to be able to set the uapsd configuration of each AC
independently, as well as the Max SP length. Basically, the bits that
get used in the qosinfo field during association. Because this should
just be used for testing or until we add a real userspace API, I'm
fine with requiring the user to manually reconnect to have new U-APSD
configuration adopted.

>>>> - add max SP length defines to ieee80211.h
>>
>> The bit values for IEEE80211_WMM_IE_STA_SP_XXX are not correct. The
>> Max SP Length subfield settings table in 7.3.1.17 has the least
>> significant bit listed first.
>
> Oh, I missed that entirely. And I was even thinking why the order
> looked so weird (0, 2, 1, 3), I should have checked that. Thank you
> for noticing this.
>
>>>> v2:
>>>> - remove cfg80211 changes
>>>> - rename IEEE80211_QOS_IE to IEEE80211_WMM_IE_STA in ieee80211.h
>>
>> I would rename IEEE80211_WMM_IE_STA_XXX defines to something like
>> IEEE80211_STA_QOSINFO_XXX to make it clear that bit values are used in the
>> context of the qosinfo field octet.
>
> Good point. Is IEEE80211_WMM_IE_STA_QOSINFO_AC_VO clear enough? At
> least it's long enough :)

Hah, ya.

> Thank you for the comments, I appreciate them.
>
> --
> Kalle Valo
>

Jason Young
DSP Group

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 0/2] mac80211: add U-APSD client support
  2009-12-04 19:05     ` Jason Young
@ 2009-12-04 20:49       ` Kalle Valo
  0 siblings, 0 replies; 8+ messages in thread
From: Kalle Valo @ 2009-12-04 20:49 UTC (permalink / raw)
  To: Jason Young; +Cc: linux-wireless

Jason Young <a.young.jason@gmail.com> writes:

> On Fri, Dec 4, 2009 at 4:12 AM, Kalle Valo <kalle.valo@iki.fi> wrote:
>> I decided to drop Admission Control for now because I didn't see any
>> real use case for it. And if we would like to utilise it properly, we
>> would need to have properly supported user space interface. I think we
>> are not ready for that quite yet.
>>
>
> There are real use cases for WMMAC, particularly in enterprise
> environments but I don't want to get into that discussion just yet,
> first things first :)

A very good idea, otherwise we will spending the new year's eve still
planning about this :)

Let's first get the basic functionality in and then start adding more
features.

> I just wanted it to be noted somewhere in the discussion of this
> proposal that U-APSD can, in theory at least, be configured as
> trigger or delivery only. Some hardware may be implemented to allow
> trigger/delivery only configuration. In such cases, the driver will
> need to update both the trigger and delivery state based on the
> uapsd boolean parameter.

Yes, we need to take this into account in the future.

>> Thanks, I wasn't aware of this. Yes, adding the debugfs interface back
>> makes sense now. But can you describe a bit more how you would like to
>> use the debugfs interface? I would like to understand about your needs
>> a bit more.
>>
>> I also need to find the certification test plan and read it myself.
>
> Section 2.8.1 of the "WMM Power Save Test Plan Version 1.5" describes
> the basic station requirements. Section 5 describes the station
> specific tests.

Thanks for the pointers, I'll read them next week.

> I would like to be able to set the uapsd configuration of each AC
> independently, as well as the Max SP length. Basically, the bits that
> get used in the qosinfo field during association. Because this should
> just be used for testing or until we add a real userspace API, I'm
> fine with requiring the user to manually reconnect to have new U-APSD
> configuration adopted.

Makes sense. I'll include this functionality in my next version of the
patches which I hope to send early next week.

Thank you again for good comments.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v3 0/2] mac80211: add U-APSD client support
  2009-12-03 20:25 [PATCH v3 0/2] mac80211: add U-APSD client support Jason Young
  2009-12-04 12:12 ` Kalle Valo
@ 2009-12-06 10:47 ` Johannes Berg
  2009-12-07 11:51   ` Kalle Valo
  1 sibling, 1 reply; 8+ messages in thread
From: Johannes Berg @ 2009-12-06 10:47 UTC (permalink / raw)
  To: Jason Young; +Cc: linux-wireless

[-- Attachment #1: Type: text/plain, Size: 599 bytes --]

On Thu, 2009-12-03 at 12:25 -0800, Jason Young wrote:

> The bit values for IEEE80211_WMM_IE_STA_SP_XXX are not correct.  The Max SP
> Length subfield settings table in 7.3.1.17 has the least significant bit listed
> first.
> 
> #define IEEE80211_WMM_IE_STA_SP_ALL  (0<<5)
> #define IEEE80211_WMM_IE_STA_SP_2     (1<<5)  /* or (BIT(5)) */
> #define IEEE80211_WMM_IE_STA_SP_4     (2<<5)  /* or (BIT(6)) */
> #define IEEE80211_WMM_IE_STA_SP_6     (3<<5)  /* or (BIT(5) | BIT(6)) */

Can somebody clarify for me which part of this stuff is WMM, and which
is "real" 802.11 QoS?

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 0/2] mac80211: add U-APSD client support
  2009-12-06 10:47 ` Johannes Berg
@ 2009-12-07 11:51   ` Kalle Valo
  2009-12-07 20:25     ` Jason Young
  0 siblings, 1 reply; 8+ messages in thread
From: Kalle Valo @ 2009-12-07 11:51 UTC (permalink / raw)
  To: Johannes Berg; +Cc: Jason Young, linux-wireless

Johannes Berg <johannes@sipsolutions.net> writes:

> On Thu, 2009-12-03 at 12:25 -0800, Jason Young wrote:
>
>> The bit values for IEEE80211_WMM_IE_STA_SP_XXX are not correct.  The Max SP
>> Length subfield settings table in 7.3.1.17 has the least significant bit listed
>> first.
>> 
>> #define IEEE80211_WMM_IE_STA_SP_ALL  (0<<5)
>> #define IEEE80211_WMM_IE_STA_SP_2     (1<<5)  /* or (BIT(5)) */
>> #define IEEE80211_WMM_IE_STA_SP_4     (2<<5)  /* or (BIT(6)) */
>> #define IEEE80211_WMM_IE_STA_SP_6     (3<<5)  /* or (BIT(5) | BIT(6)) */
>
> Can somebody clarify for me which part of this stuff is WMM, and which
> is "real" 802.11 QoS?

I took a quick peek of the 802.11-2007 QoS part. My observation was
that the terms are the same, but that's about it. For example QoS Info
field is reversed, APSD capability is advertised through beacon
capability bits and naturally there are proper ids for IEs.

So they are very similar but the frame handling has to be more or less
rewritten for 802.11 QoS.

BTW, are there clients which support 802.11 QoS? Should we consider
adding it to mac80211, for example? Thoughts?

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 0/2] mac80211: add U-APSD client support
  2009-12-07 11:51   ` Kalle Valo
@ 2009-12-07 20:25     ` Jason Young
  2009-12-08  7:12       ` Kalle Valo
  0 siblings, 1 reply; 8+ messages in thread
From: Jason Young @ 2009-12-07 20:25 UTC (permalink / raw)
  To: Kalle Valo; +Cc: linux-wireless

On Mon, Dec 7, 2009 at 3:51 AM, Kalle Valo <kalle.valo@iki.fi> wrote:
> Johannes Berg <johannes@sipsolutions.net> writes:
>
>> On Thu, 2009-12-03 at 12:25 -0800, Jason Young wrote:
>>
>>> The bit values for IEEE80211_WMM_IE_STA_SP_XXX are not correct.  The Max SP
>>> Length subfield settings table in 7.3.1.17 has the least significant bit listed
>>> first.
>>>
>>> #define IEEE80211_WMM_IE_STA_SP_ALL  (0<<5)
>>> #define IEEE80211_WMM_IE_STA_SP_2     (1<<5)  /* or (BIT(5)) */
>>> #define IEEE80211_WMM_IE_STA_SP_4     (2<<5)  /* or (BIT(6)) */
>>> #define IEEE80211_WMM_IE_STA_SP_6     (3<<5)  /* or (BIT(5) | BIT(6)) */
>>
>> Can somebody clarify for me which part of this stuff is WMM, and which
>> is "real" 802.11 QoS?

Though this patch adds support for WMM Power Save, these defines will
work for WMM and "real" 802.11 QoS.

> I took a quick peek of the 802.11-2007 QoS part. My observation was
> that the terms are the same, but that's about it. For example QoS Info
> field is reversed, APSD capability is advertised through beacon
> capability bits and naturally there are proper ids for IEs.

The QoS info field itself is not reversed, the figure is just reversed.

> So they are very similar but the frame handling has to be more or less
> rewritten for 802.11 QoS.
>
> BTW, are there clients which support 802.11 QoS? Should we consider
> adding it to mac80211, for example? Thoughts?
> --
> Kalle Valo
>

Jason Young

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 0/2] mac80211: add U-APSD client support
  2009-12-07 20:25     ` Jason Young
@ 2009-12-08  7:12       ` Kalle Valo
  0 siblings, 0 replies; 8+ messages in thread
From: Kalle Valo @ 2009-12-08  7:12 UTC (permalink / raw)
  To: Jason Young; +Cc: linux-wireless

Jason Young <a.young.jason@gmail.com> writes:

> On Mon, Dec 7, 2009 at 3:51 AM, Kalle Valo <kalle.valo@iki.fi> wrote:
>> Johannes Berg <johannes@sipsolutions.net> writes:
>>
>>>> #define IEEE80211_WMM_IE_STA_SP_ALL  (0<<5)
>>>> #define IEEE80211_WMM_IE_STA_SP_2     (1<<5)  /* or (BIT(5)) */
>>>> #define IEEE80211_WMM_IE_STA_SP_4     (2<<5)  /* or (BIT(6)) */
>>>> #define IEEE80211_WMM_IE_STA_SP_6     (3<<5)  /* or (BIT(5) | BIT(6)) */
>>>
>>> Can somebody clarify for me which part of this stuff is WMM, and which
>>> is "real" 802.11 QoS?
>
> Though this patch adds support for WMM Power Save, these defines will
> work for WMM and "real" 802.11 QoS.

Yes, I agree now.

>> I took a quick peek of the 802.11-2007 QoS part. My observation was
>> that the terms are the same, but that's about it. For example QoS Info
>> field is reversed, APSD capability is advertised through beacon
>> capability bits and naturally there are proper ids for IEs.
>
> The QoS info field itself is not reversed, the figure is just reversed.

Doh, I was reading it incorrectly in "IETF mode". Thank you for
correcting me.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-12-08  7:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-03 20:25 [PATCH v3 0/2] mac80211: add U-APSD client support Jason Young
2009-12-04 12:12 ` Kalle Valo
     [not found]   ` <16a81f890912041102l7bcce84eg7a8f80ff5ff341f2@mail.gmail.com>
2009-12-04 19:05     ` Jason Young
2009-12-04 20:49       ` Kalle Valo
2009-12-06 10:47 ` Johannes Berg
2009-12-07 11:51   ` Kalle Valo
2009-12-07 20:25     ` Jason Young
2009-12-08  7:12       ` Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).