From: Stefano Brivio <stefano.brivio@polimi.it>
To: Mattias Nissler <mattias.nissler@gmx.de>
Cc: Johannes Berg <johannes@sipsolutions.net>,
linux-wireless <linux-wireless@vger.kernel.org>,
"John W. Linville" <linville@tuxdriver.com>
Subject: Re: [RFC/T][PATCH 1/3] rc80211-pid: introduce rate behaviour learning algorithm
Date: Mon, 10 Dec 2007 22:22:13 +0100 [thread overview]
Message-ID: <20071210222213.0cf8ce0d@morte> (raw)
In-Reply-To: <1197319867.7493.4.camel@localhost>
On Mon, 10 Dec 2007 21:51:07 +0100
Mattias Nissler <mattias.nissler@gmx.de> wrote:
>
> On Mon, 2007-12-10 at 09:08 +0100, Stefano Brivio wrote:
> > On Sun, 09 Dec 2007 23:25:50 +0100
> > Mattias Nissler <mattias.nissler@gmx.de> wrote:
> >
> > > > static void *rate_control_pid_alloc(struct ieee80211_local *local)
> > > > {
> > > > struct rc_pid_info *pinfo;
> > > > + struct rc_pid_rateinfo *rinfo;
> > > > + struct ieee80211_hw_mode *mode;
> > > > + int i, j, tmp;
> > > > + bool s;
> > > >
> > > > pinfo = kmalloc(sizeof(*pinfo), GFP_ATOMIC);
> > > > + if (!pinfo)
> > > > + return NULL;
> > > > +
> > > > + mode = local->oper_hw_mode;
> > > > + rinfo = kmalloc(sizeof(*rinfo) * mode->num_rates, GFP_ATOMIC);
> > > > + if (!rinfo) {
> > > > + kfree(pinfo);
> > > > + return NULL;
> > > > + }
> > >
> > > What if the mode is changed? Have you checked the rate control algorithm
> > > gets reinitialized? If not, we're scheduling a crash here, when
> > > mode->num_rates changes.
> >
> > After a discussion on IRC with Michael (Wu), we came to the conclusion that
> > it doesn't make sense for mode->num_rates to change, because:
> > 1) if the AP drops supported rates, it'll drop the association as well,
> > then everything here will be destroyed and created again;
> > 2) that can be changed in userspace, but we couldn't figure out a scenario
> > where it would make any sense. Johannes, any comments? Wouldn't it make
> > sense to just forbid to change this in userspace?
>
> I don't agree. For example, what if you have some broken 802.11b only
> hardware that you desperately need to get going, but it freaks out on
> 802.11g encoded frames. Now if your AP is hostapd on a Linux machine,
> you'll want to change the mode. Hence, also the number of available
> rates change.
Yes, but the association gets dropped. I'm not sure about the hostapd
implementation (will check), but APs drop association when they change
supported rates. So the per-sta rate control would obviously get reinitialized.
I didn't find anything clear about this in the 802.11 standard, though.
> Moreover, I think we can do better than just disallowing changes to the
> rate set, don't you think?
Well, I still can't find an example of where this would be needed. Your
scenario looks like this:
1) the AP STA periodically advertises supported rates;
2) the non-AP STA supported rates are the intersection (as in set theory)
of the rates supported by the non-AP STA and the rate advertised by the AP
STA (in this case, assuming that the both the non-AP and the AP STAs
support 802.11b and g, rates supported by the non-AP STA are both CCK and
OFDM rates);
3) let's say that a thunderstorm makes the air CCK-hostile, so we want to
reconfigure our AP STA to work with 802.11b only: the association will need
to be recreated (thus the rc algorithm gets reinitialized), and now rates
supported by the non-AP STA are the CCK rates only -> everything works as
expected and wanted.
Anyway, it's not an issue at all to deal with rates changing in
rc80211-pid - I would just need to reallocate a struct and copy over some
data (but please think about this now: OFDM rates are the same for 802.11a
and 802.11g, but it really doesn't make any sense to assume that behaviour
at 2.4GHz is anywhere near to behaviour at 5GHz - so maybe I would just
reallocate the struct and that's it). But before than doing this, I wanted
to be sure that we aren't just hiding a bug in mac80211.
--
Ciao
Stefano
next prev parent reply other threads:[~2007-12-10 21:29 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-09 20:15 [RFC/T][PATCH 0/3] rc80211-pid: PID controller enhancements Stefano Brivio
2007-12-09 20:19 ` [RFC/T][PATCH 1/3] rc80211-pid: introduce rate behaviour learning algorithm Stefano Brivio
2007-12-09 22:25 ` Mattias Nissler
2007-12-09 23:21 ` Stefano Brivio
2007-12-10 0:17 ` Stefano Brivio
2007-12-10 2:24 ` [RFC/T][PATCH v2 " Stefano Brivio
2007-12-10 6:51 ` Mattias Nissler
2007-12-10 7:23 ` Stefano Brivio
2007-12-11 23:29 ` [RFC/T][PATCH v3 " Stefano Brivio
2007-12-12 0:25 ` [RFC/T][PATCH v4 " Stefano Brivio
2007-12-10 6:48 ` [RFC/T][PATCH " Mattias Nissler
2007-12-10 8:03 ` Stefano Brivio
2007-12-10 20:48 ` Mattias Nissler
2007-12-10 20:56 ` Mattias Nissler
2007-12-10 21:30 ` Stefano Brivio
2007-12-10 22:05 ` Mattias Nissler
2007-12-10 8:08 ` Stefano Brivio
2007-12-10 20:51 ` Mattias Nissler
2007-12-10 21:22 ` Stefano Brivio [this message]
2007-12-10 21:31 ` st3
2007-12-10 22:09 ` Mattias Nissler
2007-12-11 14:52 ` Johannes Berg
2007-12-11 17:23 ` Mattias Nissler
2007-12-12 17:13 ` Johannes Berg
2007-12-12 20:06 ` Mattias Nissler
2007-12-12 21:34 ` Stefano Brivio
2007-12-13 11:42 ` Johannes Berg
2007-12-14 5:27 ` Jouni Malinen
2007-12-14 12:09 ` Johannes Berg
2007-12-13 8:00 ` Holger Schurig
2007-12-11 14:51 ` Johannes Berg
2007-12-09 20:21 ` [RFC/T][PATCH 2/3] rc80211-pid: introduce PID sharpening factor Stefano Brivio
2007-12-09 22:29 ` Mattias Nissler
2007-12-09 23:31 ` Stefano Brivio
2007-12-09 23:53 ` Mattias Nissler
2007-12-10 2:28 ` [RFC/T][PATCH v2 " Stefano Brivio
2007-12-10 6:28 ` Mattias Nissler
2007-12-10 7:21 ` Stefano Brivio
2007-12-10 7:44 ` Mattias Nissler
2007-12-10 8:17 ` Stefano Brivio
2007-12-11 23:31 ` [RFC/T][PATCH v3 " Stefano Brivio
2007-12-09 20:28 ` [RFC/T][PATCH 3/3] rc80211-pid: allow for parameters to be set through sysfs Stefano Brivio
2007-12-09 22:30 ` Mattias Nissler
2007-12-10 2:31 ` [RFC/T][PATCH v2 " Stefano Brivio
2007-12-16 9:40 ` [RFC/T][PATCH " Stefano Brivio
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=20071210222213.0cf8ce0d@morte \
--to=stefano.brivio@polimi.it \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mattias.nissler@gmx.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.