Skip to content
An experimentation platform for resource management in datacenters using whole-network emulation in a centralized software emulator.
C C++ Python Shell R Makefile Roff
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.externalToolBuilders
.settings Added Eclipse project for all fastpass project May 10, 2013
bindings
src fix paths, update READMEs, etc. Mar 27, 2017
tests moved window_test.c in src/protocol to tests/ Jun 30, 2014
.gitignore added the .cmd and .d files generated by the DPDK makefiles to .gitig… Jan 20, 2015
.pydevproject Added Eclipse project for all fastpass project May 10, 2013
README add paper to README Mar 27, 2017

README

Flexplane is an experimentation platform for resource management in datacenters.

Users implement resource management schemes in C++ in a centralized software
emulator. The emulator emulates the behavior of the network in real time, and
instructs endpoints when to send packets (and whether to apply modifications,
such as ECN marks), so that packets arrive at their destinations with the
timings and modifications they would have in a hardware network that supported
the programmed scheme.

Flexplane is described in more detail in:
Amy Ousterhout, Jonathan Perry, Hari Balakrishnan, and Petr Lapukhov.
"Flexplane: An Experimentation Platform for Resource Management in Datacenters."
NSDI 2017.

Directory Structure

This repo is a fork of https://github.com/yonch/fastpass. The key directories
used by Flexplane are described below.

  src/
    - arbiter/       main emulator loop and multi-core communications
    - emulator/	     emulated network and example resource management schemes
    - kernel-mod/    Linux kernel module
    - protocol/      FCP (Fastpass Control Protocol) implementation
    - rpc_tool/	     tool for running RPC experiments

Compiling and running

For instructions on compiling and running the emulator (called the 'arbiter' in
Fastpass terminology), see the README in src/arbiter. For instructions on
compiling and running the endpoing kernel module, se the README in
src/kernel-mod.

Licenses
The following licenses apply to code in this repo.
-The original code forked from https://github.com/yonch/fastpass is licensed
 under an MIT License, Copyright (c) 2014 Jonathan Perry, Amy Ousterhout.
-The CCAN packages in src/arbiter/ccan carry individual licenses. Most packages
 are CC0 ("public domain"), others are LGPL and BSD-MIT.
-The code in src/kernel-mod is additionally released under the GPL v2.
-The code in src/protocol/platform/generic.h contains some code from the Linux
 kernel, and derives from the respective Linux code's license (e.g. GPL).

Questions?
Please e-mail Amy Ousterhout at aousterh@mit.edu.
You can’t perform that action at this time.