Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
An experimentation platform for resource management in datacenters using whole-network emulation in a centralized software emulator.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
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 email@example.com.