When a new client first appears in the network, it scans on all channels and sends out probe requests. Because this client has not yet been added to the ACL of any DAP, all DAPs that hear the probe requests simply report them to the DC. To calculate reasonable signal strength estimates, the DC waits for a short while (10-30 seconds in our current implementation) after the first report of a new client is received. During this interval it continues to collect reports of probe request packets from DAPs. At the end of this interval the DC calculates the average signal strength of all the probe request frames seen by each DAP. The rest of association algorithm is illustrated by the following example.
Assume two DAPs, and
hear probe requests from a client
.
Assume that
is active i.e. it already has other clients associated
with it, whereas
does not (passive). For both
and
, the DC first calculates the expected rates with
,
and
,
using both the observed signal strengths and the rate map table. Then,
the DC considers the amount of free air time at each DAP.
already
has clients associated with it, and therefore it is operating on some
channel
. Hence,
has already been reporting free air time for that
channel. We denote this by
. Using the most recent report, the
DC calcuates the available capacity at
on channel
by
.
Now let us consider DAP . It has no clients associated with it.
Let us assume that DAP
has recently seen the highest available free
air time on channel
, denoted by
. The DC calculates the
available capacity at
on channel
as
.
The DC then compares
and
, and picks the higher
of the two. If they are equal, it decides in favor of
, since
has
no clients associated with it. In general, whenever available capacity
of several DAPs are equal, the DC always picks one that has the fewest
clients associated with it. If the DC picks
, it adds
's mac
address to
's ACL. If it picks
instead, it first instructs
to
stop scanning and to stay on channel
. It then adds
's mac address
to
's ACL. In both cases, the rest of the association process unfolds
as described in Section 3.1.
Note two key aspects of this algorithm. First, we never move existing clients to another DAP as a result of a new client association. Second, DAPs are only assigned channels on an on-demand basis, as part of the association process. A DAP is assigned a channel only when a client in its vicinity requests service from the network. When a DAP becomes passive, it no longer has an assigned channel.
NSDI-2008