home publications software cv photos

Software

Some of the open source research software that I've written in the past.

Wireless

SlyFi [source] [linux binary]
Our Linux implementation of SlyFi, an identifier-free wireless link layer similar to 802.11. Compatable with Atheros chipsets. (Used in our MobiSys 2008 paper.) This software was developed in collaboration with Intel Research with Ben Greenstein.

Wifipcap [source 20080201]
A C++ wrapper around libpcap that parses 802.11 frames, and the most common layer 2 (IPv4, IPv6, ARP) and layer 3 protocols (TCP, UDP, ICMP) contained within them. Also works without link-layer headers. Works in Linux and Windows. Now part of tcpflow (github).

Wifi-Profiler [source 20070909]
Wi-Fi fingerprinting library and tools used in our MobiCom 2007 paper. These tools take in 802.11 pcap traces, generate Baysian classifiers for identified users in those traces, and classifies users by their traffic in unidentified 802.11 pcap traces. This package depends on wifipcap (above) and R.

Wifi-Scanner [source 20090415]
Wi-Fi network scanner/wardriving tool used in our MobiSys 2009 paper. The main difference between Wifi-Scanner and other war driving tools is that it has a more complete Wi-Fi Network Manager that supports logging into WEP/WPA networks, remembering passwords for these networks, supports login through AP portal/splash pages, and performs a battery of measurement tests after you login. This software was developed in collaboration with Intel Research with Ben Greenstein and Michael Kaminsky.

Network Games

Colyseus [home page]
Our distributed architecture for multiplayer games and distributed versions of Quake II and Quake III. (Used in our NSDI 2006 paper.)

Donnybrook [source 20080817]
Our peer-to-peer architecture to enable hundreds of players in the same FPS game with no dedicated server and a version of Quake III implemented on Donnybrook. (A full implementation of our SIGCOMM 2008 paper.) This software was developed in collaboration with Microsoft Research with Jacob R. Lorch and John Douceur.

Utility

GCrypt Kernel Module [source 20071026]
A quick and dirty port of libgcrypt to a Linux kernel module. The userlevel API is maintained, so you can use this module to compile crypto code both for the kernel and in userspace. I ported this since I couldn't find any other kernel level implementations of public key crypto algorithms. This includes RSA, DSA, and ElGamal.

Travertine [source 20070315]
A Perl module that includes routines for parallel execution, remote script execution, serialization, and other functions useful for deploying and managing distributed applications. This module is part of the Colyseus project, but it has been useful in its own right in many other projects and works as a standalone module. It is also fairly mature, as we've been using it for several years now.

WaspNet2 [source 20070315]
A simple Linux kernel module that emulates bandwidth, loss, and delays. WaspNet2 was primarily designed to emulate topologies of typical peer-to-peer applications: thousands of nodes where each physical machine emulates multiple virtual nodes, each pair of nodes has a unique RTT, and each node has access link bandwidth bottlenecks. It has been used on 2.4 and 2.6 kernels. WaspNet2 is based on Eric Nahum's WaspNet, which is originally based on rshaper.

Data

Wi-Fi Hotspot Performance [crawdad]
Wi-Fi hotspot performance measurements from our MobiSys 2009 paper. We have measurements for all Wi-Fi networks visible at hotspots in the U-District in Seattle, WA over a one week period. We also recorded some information about the clients on each Wi-Fi network (anonymized). These measurements were performed in collaboration with Intel Research with Ben Greenstein and Michael Kaminsky.

DNS Usage and Availability [failure trace archive]
Data from our IMC 2004 paper. LDNS data has IP addresses anonimized. (Available at the failure trace archive as pang_imc04)

Other

Some non-research open source software that I wrote in a former life.

JASS Tools [home page]
Tools for parsing and analyzing the JASS scripting language, which used for scripting Maps and AI files in Warcraft III.

Starcraft Tools [Arsenal ZERO] [IceCC]
Tools for decompiling and editing internal Starcraft data files to create mods.

Last modified: Mar 05, 2014