Check out the new USENIX Web site.


Associating a New Client

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, $A$ and $B$ hear probe requests from a client $M$. Assume that $A$ is active i.e. it already has other clients associated with it, whereas $B$ does not (passive). For both $A$ and $B$, the DC first calculates the expected rates with $M$, $R_{AM}$ and $R_{BM}$, using both the observed signal strengths and the rate map table. Then, the DC considers the amount of free air time at each DAP. $A$ already has clients associated with it, and therefore it is operating on some channel $X$. Hence, $A$ has already been reporting free air time for that channel. We denote this by $F_{XA}$. Using the most recent report, the DC calcuates the available capacity at $A$ on channel $X$ by $AC^X_{AM}
= F_{XA} * R_{AM}$.

Now let us consider DAP $B$. It has no clients associated with it. Let us assume that DAP $B$ has recently seen the highest available free air time on channel $Y$, denoted by $F_{YB}$. The DC calculates the available capacity at $B$ on channel $Y$ as $AC^Y_{BM} = F_{YA} * R_{BM}$. The DC then compares $AC^X_{AM}$ and $AC^Y_{BM}$, and picks the higher of the two. If they are equal, it decides in favor of $B$, since $B$ 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 $A$, it adds $M$'s mac address to $A$'s ACL. If it picks $B$ instead, it first instructs $B$ to stop scanning and to stay on channel $Y$. It then adds $M$'s mac address to $B$'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