From: Marco Porsch <marco.porsch@etit.tu-chemnitz.de>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: javier@cozybit.com, linux-wireless@vger.kernel.org
Subject: Re: [RFC 14/14] mac80211: mesh PS individually-addressed frame release
Date: Tue, 20 Nov 2012 10:11:28 -0800 [thread overview]
Message-ID: <50ABC7D0.2030303@etit.tu-chemnitz.de> (raw)
In-Reply-To: <1353145246.9543.39.camel@jlt4.sipsolutions.net>
On 11/17/2012 01:40 AM, Johannes Berg wrote:
> On Fri, 2012-11-16 at 22:48 -0800, Marco Porsch wrote:
>
>> +static inline bool test_and_set_psp_flag(struct sta_info *sta,
>> + enum ieee80211_sta_info_flags flag)
>> +{
>> + if (!test_and_set_sta_flag(sta, flag)) {
>> + atomic_inc(&sta->sdata->u.mesh.num_psp);
>
> This is ... strange? Can a single station really own *two* num_psp
> refcounts?
Yes it can. A station can be both owner and recipient. And it would just
be overhead to distinguish between num_psp_owner and num_psp_recipient,
when in the end we only want to know if there is any PSP ongoing at all.
I'll change the comment to:
/* number of active PSPs (owner and recipient counted independently) */
atomic_t num_psp;
>
>> + nullfunc = (struct ieee80211_hdr *) skb->data;
>> + if (!eosp)
>> + nullfunc->frame_control |=
>> + cpu_to_le16(IEEE80211_FCTL_MOREDATA);
>
> This seems wrong -- EOSP and moredata are orthogonal (with the
> restriction that "!EOSP => moredata") -- but if you just have that in
> the code the moredata bit won't always be set correctly.
Imho, in the context of PSP trigger frames it does.
Sending a trigger frame to a mesh PS STA with no EOSP implies the start
of a PSP with the sender as owner -> following data. The other two
combinations imply that there is no more data following in that direction.
>
>> + /* Send all internal mgmt frames on VO. Accordingly set TID to 7. */
>> + drv_allow_buffered_frames(sdata->local, sta, BIT(7), 1,
>> + IEEE80211_FRAME_RELEASE_UAPSD, !eosp);
>
> ditto, passing !eosp definitely seems wrong
>
>> +/**
>> + * ieee80211_qos_null_append - append QoS Null as PSP trigger (if necessary)
>
> append? where? why not static?
Append to the skb queue given to the function. - I'll clarify the
comment for that.
Not static because called from sta_info.c. I can move it there if you
like, but I valued keeping all the mesh PS stuff in one place.
But now that you mention it... is there any interest in having that
function used for uAPSD? Because ieee80211_sta_ps_deliver_response sets
the EOSP flag during uAPSD, but does not enforce a QoS Data frame to
carry it. But maybe uAPSD just permits transmitting anything else than
QoS Data frames...
>
>> + ieee80211_sta_ps_deliver_response(sta, 1, 0,
>> + IEEE80211_FRAME_RELEASE_UAPSD);
>
> uAPSD?
>
> The standard *explicitly* states that ASPD is *not* supported in mesh.
Absolutely correct. The PSP mechanism is just very similar to uAPSD,
though. So once the PSP is set up, the mechanisms are the same actually.
What do you advise? Renaming the release reason? Creating a different
one that is handled equally?
>
> Ok I don't really get this, need more time I guess .. also it seems
> really hacked together.
Of course it is. You should have seen it before numerous cleanup
iterations =)
>
> johannes
>
>
next prev parent reply other threads:[~2012-11-20 18:11 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-17 6:47 [RFC 00/14] mesh powersave - basics Marco Porsch
2012-11-17 6:47 ` [RFC 01/14] {nl,cfg,mac}80211: add beacon interval and DTIM period to mesh config Marco Porsch
2012-11-17 8:54 ` Johannes Berg
2012-11-17 6:47 ` [RFC 02/14] {cfg,nl}80211: mesh power mode config parameters Marco Porsch
2012-11-17 8:57 ` Johannes Berg
2012-11-17 6:47 ` [RFC 03/14] {cfg,nl}80211: set and get default mesh power mode Marco Porsch
2012-11-17 8:59 ` Johannes Berg
2012-11-17 23:38 ` Thomas Pedersen
2012-11-17 6:47 ` [RFC 04/14] mac80211: local link-specific mesh power mode logic Marco Porsch
2012-11-17 9:05 ` Johannes Berg
2012-11-17 6:47 ` [RFC 05/14] mac80211: mesh power mode indication in transmitted frames Marco Porsch
2012-11-17 9:10 ` Johannes Berg
2012-11-19 20:07 ` Marco Porsch
2012-11-19 20:32 ` Johannes Berg
2012-11-17 6:47 ` [RFC 06/14] mac80211: track neighbor STA power modes Marco Porsch
2012-11-17 9:14 ` Johannes Berg
2012-11-17 6:47 ` [RFC 07/14] {cfg,nl}80211: set local link-specific power mode Marco Porsch
2012-11-17 9:16 ` Johannes Berg
2012-11-17 6:48 ` [RFC 08/14] {cfg,nl}80211: get local and peer mesh power modes Marco Porsch
2012-11-17 6:48 ` [RFC 09/14] mac80211: add power save support structure to mesh interface Marco Porsch
2012-11-17 9:26 ` Johannes Berg
2012-11-20 23:53 ` Marco Porsch
2012-11-26 10:39 ` Johannes Berg
2012-11-17 6:48 ` [RFC 10/14] mac80211: enable frame buffering for PS STA Marco Porsch
2012-11-17 9:28 ` Johannes Berg
2012-11-17 6:48 ` [RFC 11/14] {cfg,nl}80211: add awake window to mesh config Marco Porsch
2012-11-17 9:29 ` Johannes Berg
2012-11-17 6:48 ` [RFC 12/14] mac80211: add awake window IE to mesh beacons Marco Porsch
2012-11-17 9:30 ` Johannes Berg
2012-11-17 6:48 ` [RFC 13/14] mac80211: add TIM " Marco Porsch
2012-11-17 9:33 ` Johannes Berg
2012-11-17 6:48 ` [RFC 14/14] mac80211: mesh PS individually-addressed frame release Marco Porsch
2012-11-17 9:40 ` Johannes Berg
2012-11-20 18:11 ` Marco Porsch [this message]
2012-11-26 10:45 ` Johannes Berg
2012-11-26 18:27 ` Marco Porsch
2012-11-28 13:07 ` Johannes Berg
2012-11-17 9:41 ` [RFC 00/14] mesh powersave - basics Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50ABC7D0.2030303@etit.tu-chemnitz.de \
--to=marco.porsch@etit.tu-chemnitz.de \
--cc=javier@cozybit.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).