eniac / Flightplan

Flightplan is a toolchain for the flexible decomposition of P4 programs and their allocation to heterogeneous hardware to improve performance, reliability and utilisation of software-defined networks.

Home Page:https://flightplan.cis.upenn.edu/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flightplan

Our project develops a tool-chain for the flexible decomposition of P4 programs and their allocation to heterogeneous hardware to improve performance, reliability and utilisation of software-defined networks.

Using the repo

Look at the Flightplan paper to better understand what the various things below do.

There are several things you can get out of this repo, including tools and data for reuse:

  • The Flightplan system:

  • Reusable tools, infrastructure, and documentation:

    • Network boosters: FEC, memcached, header compression, running on CPU or FPGA.
    • Various new P4 programs, including Crosspod that invokes our network boosters.
    • Examples of applying Flightplan to third-party P4 programs, e.g., basic_tunnel.
    • A fairly mature simulation system and our simulated experiments. Among other things, this was used to simulate the setup shown in Fig7 in the paper.
    • A fat-tree topology and configuration generator. You can see example output for k=4 and its visualisation in FDP.
      FDP video
    • Our testbed experiment methodology, automation, and/or data. 1, 2.
      Contact us if raw data is needed, it's big.
    • The power measurement method and setup used in our testbed experiments.

Need more info?

License

Apache 2.0

About

Flightplan is a toolchain for the flexible decomposition of P4 programs and their allocation to heterogeneous hardware to improve performance, reliability and utilisation of software-defined networks.

https://flightplan.cis.upenn.edu/

License:Apache License 2.0


Languages

Language:C 54.9%Language:Jupyter Notebook 29.3%Language:C++ 3.4%Language:Tcl 3.3%Language:Shell 3.0%Language:P4 1.8%Language:Python 1.6%Language:Makefile 0.4%Language:Verilog 0.4%Language:VHDL 0.4%Language:Roff 0.3%Language:HTML 0.2%Language:CMake 0.2%Language:Assembly 0.2%Language:M4 0.1%Language:Lua 0.1%Language:Perl 0.1%Language:CartoCSS 0.1%Language:Awk 0.0%Language:Objective-C 0.0%Language:R 0.0%Language:GDB 0.0%