Juggler: An open-source virtual link layer for Linux


Juggler is a virtual link layer for Linux, allowing mobile devices to associate with more than one WiFi AP, mesh network, or ad hoc peer at once. This aim is similar to that of prior work such as MultiNet/VirtualWifi from Microsoft Research, and concurrent work such as FatVAP from MIT.

Unlike VirtualWiFi, we (as does FatVAP) implement Juggler at the link layer, with support inside the wireless device driver, to ensure superior switching efficiency. FatVAP is concerned with the aggregation of AP bandwidth. While Juggler supports such data striping, we also easily support other useful applications, such as seamless handoff between WiFi APs, and maintaining side channels to mesh or ad hoc networks (such as one's personal area network) while not impacting foreground connectivity to an infrastructure AP.

The details of our implementation can be found in the following paper:
Juggler: Virtual Networks for Fun and Profit [pdf]
Anthony J. Nicholson, Scott Wolchok, and Brian D. Noble
To appear in IEEE Transactions on Mobile Computing

Juggler is freely available under the terms of the GNU General Public License (GPL):
    juggler_0.99.tar.bz2
Requirements: Linux 2.6.22.14 kernel, supported wireless card (see below)

This initial release is handcrafted grad student code, with all the potential for bugginess one would expect---no warranty, implied or otherwise.

Documentation can be found in the README file found at the root of the tarball. The current release of Juggler supports cards with the Realtek rtl8185/7 chipset. See this page for a list of suggested cards.

Additionally, researchers at Duke University, as part of the COPSE Project have ported Juggler to the Broadcom chipset. Please check their project page for details on this port.

Contact Information:
Anthony Nicholson
Ph.D. Candidate, University of Michigan
tonynich at eecs.umich.edu
http://www.eecs.umich.edu/~tonynich/