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:
- Analyser+transformer for P4 code with segment annotations, from which disaggregated programs are derived.
- The Flightplanner produces execution plans for disaggregated P4 programs.
- Examples of segment annotation usage, analysis tool invocation and output, which are fed to the planner. The planner about the disaggregated dataplane program to produce (among other things) allocations of segments to devices on the network.
- Flightplan's Full runtime for running disaggregated programs, the associated fpctl control program, and usage examples.
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.
- Our testbed experiment methodology, automation, and/or data.
Contact us if raw data is needed, it's big.
- The power measurement method and setup used in our testbed experiments.