From: Helmut Schaa <helmut.schaa@googlemail.com>
To: "Luis R. Rodriguez" <lrodriguez@atheros.com>
Cc: linux-wireless@vger.kernel.org, Jouni Malinen <j@w1.fi>,
Holger Schurig <hs4233@mail.mn-solutions.de>,
Mircea Gherzan <mgherzan@gmail.com>
Subject: Re: Google Summer of Code 2009 -- Linux wireless roaming project
Date: Sat, 21 Mar 2009 12:43:24 +0100 [thread overview]
Message-ID: <200903211243.25380.helmut.schaa@gmail.com> (raw)
In-Reply-To: <20090320215705.GE8120@tesla>
Am Freitag, 20. M=C3=A4rz 2009 schrieb Luis R. Rodriguez:
> We need to extend this now and since things are shifting towards nl80=
211
> (the MLME SAP stuff) I think we may need to rethink this a bit. Ideas=
,
> wishlists for how to improve our roaming with the help of GSoC studen=
ts
> would be appreciated.
Ok, here are some considerations regarding roaming:
Basically roaming can be divided into 3 steps:
1) detect if it is time to roam
2) scan for better APs
3) associate with the new AP
Step 1 is the most difficult one here, 2 only needs some tweaking and 3
should work as it is currently.
So, how can we detect if it is beneficial to roam?
a) Just check the signal strength if it drops below a certain threshold
and start a scan if that happens
Advantages:
- Easy to implement
Disadvantages:=20
- The signal strength values on different cards are not comparable. So =
the
threshold value has to be different for all cards.
- Ping-pong effect if you sit between two APs both are in range but wit=
h a
signal strength around the threshold.
- Unnecessary scanning if the signal strength is below the threshold bu=
t no
better AP is in range will further reduce the connection quality and
increase power consumption.
b) Number of consecutivley missed beacons below threshold
Advantages:
- Also easy to implement
- Comparable value on all cards
Disadvantages:
- e.g. 10 consecutively missed beacons means that the connection is alr=
eady
quite bad but we need around 1 second (beacon interval=3D100ms) to de=
tect
that =3D> Handoff delay is strictly greater than 1 second (+scan and
association)
- Using smaller values might result in a similar ping-pong effect as
described above
- Unnecessary scanning if the number of missed beacons drops below the
threshold every once and then but no better AP is in range will furth=
er
reduce the connection quality and increase power consumption.
c) Only scan for new APs if the environment changes (e.g. we are moving=
or
the AP is moving etc.)
This could for example be done by computing the sample variance of the =
signal
strength (maybe measured over the last second) which will change signif=
icant
if the client or the AP is moving (see [1] for details).
If the client device has a GPS it would be beneficial to only scan for =
better
APs if the client is moving.
Advantages:
- Number of unnecessary scans is lower than for a) and b)
Disadvantages:
- Needs some more theoretical research on how to automatically find the
threshold values for the signal strength variance.
- Complex implementation
I already did some research on c) and it looks very promising but the t=
opic
is quite complex and needs more theoretical research first.
Now, some considerations regarding the implementation:
Independently of which trigger is used to start the roaming process I w=
ould
suggest the following:
Scanning for new APs should not be started from within the driver or
mac80211. Instead wpa_supplicant should care about that. Why? Just beca=
use
the supplicant might have more information (maybe provided by NM) about=
the
used network. For example a typical multi-AP network won't use all chan=
nels
from within the bg-band due to signal interferences. Instead, all APs w=
ill be
located on non-overlapping channels. Let's say 1,6 and 11. Hence, if th=
e
supplicant tiggers a scan it will just leave all channels !=3D 1,6,11 o=
ut of
the scan request and the scan will take a shorter amount of time, which
in turn speeds up the handoff delay.
However, that infrastructure is not there yet but something like the fo=
llowing
would be worth considering: extend wpa_supplicant's network blocks to a=
llow
the specification of preferred channels ("channels=3D1,6,11"). This val=
ue could
be provided by NM which gathered that information either from the user =
or
through monitoring. If the client was already connected to several APs =
in the
same ESS it would just pass these channels to wpa_supplicant. Of course=
if no
AP is found on the preferred channels a full scan might have to run.
Ok, regarding the second part "scanning":
In order to lower the negative influence a scan has to the ongoing traf=
fic
the software scan implementation would have to be reworked. The scan sh=
ould
simply switch back to the operating channel every once in a while to al=
low
queued packets to be delivered (in both directions).
Phew! I'm pretty sure I've missed several ideas/considerations here but=
that
has to suffice for now.
Helmut
[1] http://www.informatik.uni-mannheim.de/pi4/publications/King2008c.pd=
f=20
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-03-21 11:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-20 21:57 Google Summer of Code 2009 -- Linux wireless roaming project Luis R. Rodriguez
2009-03-21 11:43 ` Helmut Schaa [this message]
2009-03-24 9:06 ` Holger Schurig
2009-03-24 10:15 ` Helmut Schaa
2009-03-24 10:36 ` Holger Schurig
2009-03-24 11:05 ` Helmut Schaa
2009-03-24 12:52 ` Mats Karlsson
2009-03-24 10:37 ` Dan Williams
2009-03-24 10:46 ` Holger Schurig
2009-03-24 10:49 ` Dan Williams
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=200903211243.25380.helmut.schaa@gmail.com \
--to=helmut.schaa@googlemail.com \
--cc=hs4233@mail.mn-solutions.de \
--cc=j@w1.fi \
--cc=linux-wireless@vger.kernel.org \
--cc=lrodriguez@atheros.com \
--cc=mgherzan@gmail.com \
/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.