The design challenge is your opportunity to do something novel and interesting. You may propose to do a project of your own choosing, but we do encourage you to consider pursuing one of the potential projects listed below. We would like to avoid having too many groups working on the same project so the proposal will help us to gauge interest in the various topics. The proposal should be a 1-page document that includes the information listed below:
- Project title
- Problem Statement and Motivation
- Initial thoughts for system design and final demonstration
The project suggestions listed below are inspired by an on-going research effort to change the data-plane programming model from one that is purely packet driven to one that is more generally event-driven. The key insight is that many data-plane algorithms need to maintain state that must be accessed and updated potentially multiple times and sometimes independently of packets arriving or departing.
You’re required to implement and test your ideas using BMv2 and Mininet. If needed, you may have to extend BMv2, Mininet, p4app, or even p4c to realize your ideas. Although it’s not mandatory, if you implement and test your ideas using the Tofino ASIC model as well, you may be able to receive extra credits. In such a case, please set the right expectation for yourselves because, although Tofino and the associated tools are much more powerful than BMv2, etc., the ASIC model is not suitable for testing use cases that require handling packets at high speed or running multiple ASIC models in parallel.
Potential Projects
Microburst Detection
- Snappy paper
- How would you improve microburst detection when using an event-driven architecture?
Fast-Reroute
- FRR paper
- How would you implement fast re-route using an event-driven architecture?
Load Balancing
- HULA paper
- How would you improve HULA using an event-driven architecture?
Network Monitoring
- Network Monitoring Lecture
- Marple paper
- Sonata paper
- What sorts of interesting network monitoring techniques can you develop using an event-driven architecture?
- E.g. Generating an INT report whenever:
- Number of active flows exceeds some threshold
- Per-flow packet drop rate exceeds threshold
- New sketch techniques
- E.g. Generating an INT report whenever:
Active Queue Management (AQM)
- P4 TM SubWG AQM Google Doc
- P4 TM SubWG Meeting 4
- P4 TM SubWG Meeting 5
- The ability to derive congestion signals naturally facilitates the implementation of AQM algorithms.
- Pick a few AQM policies, then implement and evaluate them on the NetFPGA.
P4 on Raspberry Pi
- p4pi (link to come)
- Software router running on the Raspberry Pi 4.
- Develop the tools and infrastructure for prototyping P4 programs on the RPI.
- What functionality would be useful for a home router? E.g., parental controls, firewall, monitoring network usage (time spent on different applications).
P4 Externs
- P4 extern objects and functions
- What functionality is missing from the BMv2 SimpleSwitch pipeline?
- What useful features could be implemented as externs? E.g., packet encryption, persistent storage.
Submission
Each team should email your proposal to the instructors using the subject line: CS344 Project Proposal - Team-X