Project Number


Project Title

GENI Experiment Control Using Gush
a.k.a. GushProto, GUSH

Technical Contacts

PI: Jeannie Albrecht / +1 413 597 4251
Amin Vahdat / +1 858 534 4614


Jeannie Albrecht working on Gush with undergraduates Danny Huang and Kelsey Levine at Williams College.

Karlan Eberhardt working with GENI Summer Camp participants at RIT.

Participating Organizations

Williams College, Williamstown, MA
UC San Diego, San Diego, CA


The scope of work on this project is to design and implement a prototype to build Gush (the GENI User Shell), a robust experiment control and management framework for GENI. The final product of this work is expected to be a fully functional framework that supports experiment control through three user interfaces, including a graphical user interface (GUI), command line interface, and a programmatic interface.

This work will include design of an API in Gush for interacting with GENI Clearinghouses. Gush will integrate with GENI Clearinghouse prototypes provided by the control framework developers to test the Gush API and the use of slice interaction functions. Initial work will be with the PlanetLab control framework using XML-RPC communication with the PlanetLab Central Database (PLC). Development will focus on getting the Gush command line and programmatic interfaces working before moving on to the graphical interface, with an emphasis on detailed error reporting that will simplify debugging.

Gush Architecture Picture (from

Current Capabilities

Gush can seamlessly run experiments using PlanetLab, GpENI, MAX, and ProtoGENI resources. ORCA integration is underway. Prof. Albrecht (PI) uses Gush to help undergrads run experiments on PlanetLab in her Distributed Systems class at Williams. The Gush code has been released publicly and is available for download.

Raven/Stork has been integrated into Gush. All of the new Gush code has been committed to the svn repository and there is a new example on the Wiki page ( that explains how to use Stork/Raven? to install software in Gush.

NetKarma is also now using Gush.


Spiral 4

  • Error: Failed to load processor MilestoneDate
    No macro or processor named 'MilestoneDate' found

  • Error: Failed to load processor MilestoneDate
    No macro or processor named 'MilestoneDate' found

  • Error: Failed to load processor MilestoneDate
    No macro or processor named 'MilestoneDate' found

  • Error: Failed to load processor MilestoneDate
    No macro or processor named 'MilestoneDate' found

Project Technical Documents

Gush User Study 1 Download
Gush User Study 2 Download

Gush based course work available from PI upon request.

Paper: Jeannie Albrecht and Danny Yuxing Huang. Managing Distributed Applications using Gush. Proceedings of the Sixth International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities, Testbeds Practices Session (TridentCom), May 2010.  PDF

Website maintained by Williams College:  Gush


To check out Gush code out of SVN use "svn co --username guest". Please contact jeannie AT cs DOT williams DOT edu for the password.

Quarterly Status Reports

4Q08 Report Download
1Q09 Report Download
2Q09 Report Download
3Q09 Report Download
4Q09 Report Download
1Q10 Report
2Q10 Report Download
Post GEC9 Report
Post GEC10 Report
Post GEC11 Report
Post GEC12 Report
Post GEC13 Report
Post GEC14 Report

Spiral 1 Connectivity

PlanetLab control framework.

For Spiral 1, Gush will be deployed to GENI PlanetLab nodes. Experimenters will download the Gush controller to their workstation from the  Gush project website. Gush automatically downloads the client software to the PlanetLab machines in use. There is no GENI requirement for UCSD/Williams connectivity.

IP Connectivity: IP connectivity required from GUSH controller (typically user desktops) to PlanetLab machines in slice. IP connectivity required between controller and PlanetLab clearinghouse. IP connectivity required between PlanetLab nodes in experimenter's slice and Gush code repository to download so Gush software if machines don't already have Gush client installed.

Layer 2 Connectivity: Gush does not require any layer 2 virtual ethernets.

GEC Presentations

GEC 2 Presentation Download
GEC 3 Presentation Download
GEC 4 Presentation Download
GEC 5 Presentation Download
GEC 7 Presentation Download

Spiral 2 Review

Spiral 2 review slides Download

GPO Liaison System Engineer

 Vic Thomas

Related Projects