Modular composition in software-defined networks ensures the correctness of independently deployed applications. It enables modular application development and the deployment of "best of breed" solutions by picking independent components (e.g. firewall, traffic monitor). Current modular composition techniques are not optimal in terms of both the number of rule updates to the data plane switches and the latency cost of individual updates.
In this project, we design RuleTris, an end-to-end optimization framework for modular composition in software-defined networks. We identify the dependency graph, which captures concise rule dependencies, as the key abstraction to minimize the latency cost of policy updates all the way to physical switches. We present efficient dependency preserving algorithms that incrementally build rule dependency along with the compilation process. We show how to map the incremental changes of dependency graphs to flow tables in physical switches. We have fully implement RuleTris. Our hardware experiment demonstrates that RuleTris outperforms the state of the art composition compiler CoVisor by ~20 times in terms of per rule update latency on TCAM.