Projects

A Program Synthesis Approach to Designing Networks with Provable Properties

Description

Computer networks are difficult to manage since there exists a wide gulf between the high-level goals that operators have for their networks (e.g., Quality of Service etc.), and the low-level decisions that operators should make (e.g., how to route traffic, allocate bandwidth, configure devices etc.). While the advent of Software-Defined Networking helps, the process of designing networks is still ad-hoc, leading to high operational costs, design faults that account for a large fraction of network downtime, and costly security breaches. This project is motivated by the vision of design automation for networking, inspired by the success of the approach in other domains such as chip design. The project is developing methods for network architects to express their intent at higher levels of abstraction, and techniques to automatically synthesize network designs that realize this intent correctly and efficiently.

As a concrete example, we have tackled a key challenge network architects encounter: how to balance multiple conflicting metrics, and ensure fair allocations to competing traffic while prioritizing critical traffic. The state of practice poses challenges since architects must precisely encode their (somewhat fuzzy) intent into formal optimization models using abstract notions such as utility functions, and ad-hoc manually tuned knobs. We have developed one of the first efforts to synthesize network designs with indeterminate objectives using an interactive program-synthesis-based approach. Specifically, we have developed a novel framework that we term comparative synthesis, where a user's design objective, and the synthesis of a network design that optimizes that objective are done in tandem. Our work is based on the key insight that when a user has difficulty in providing a concrete objective function, it is relatively easy and natural to give preferences between pairs of concrete candidates. The approach may be viewed as a new variant of programming-by-example (PBE) widely studied in the Programming Languages community, where preference pairs are used as "examples" instead of input-output pairs in traditional PBE systems. We have developed Net10Q, a system based on our approach, and evaluated its effectiveness on real-world network case studies, and through pilot user studies comprising network researchers and practitioners.

More recently, we have started exploring program synthesis approaches for data plane forwarding in the context of the P4 programming language

Publications

Comparative Synthesis: Learning Near-Optimal Network Designs by Query. Yanjun Wang, Chuan Jiang, Zixuan Li, Xiaokang Qiu, Sanjay Rao. In Proceedings of the ACM on Programming Languages, 2023.
Learning Network Design Objectives Using A Program Synthesis Approach. Yanjun Wang, Chuan Jiang, Xiaokang Qiu, Sanjay G. Rao. In Proceedings of the 18th ACM Workshop on Hot Topics in Networks (HotNets), 2019.

Team

Faculty
  • Prof. Sanjay Rao

Students
  • Chenan Wen — Ph.D. student
  • Syed Usman Jafri — Ph.D. student
  • Zhuocong Li — Undergraduate student

Graduated Students
  • Chuan Jiang — Ph.D.
  • Yanjun Wang — Ph.D.
  • Zixuan Li — MS

Collaborators
  • Prof. Xiaokang Qiu — Purdue University