Projects

Flexible Data Plane Programming

Description

Data plane programming has been widely adopted by both academia and industry. As a prominent instance, the P4 programming language has been a key language enabling flexible data plane programming with the support of compilers, formal semantics, verification frameworks, testing systems, as well as commodity hardware such as Intel Tofino and Cisco Silicon One. Despite these promising development, there is still a long way to go to let average network architects program data planes in a natural and efficient way. One unique challenge for data plane programming stems from the inherent tension between abstraction and customized optimization.

On one hand, today’s data plane programming is too low level β€” P4 and other languages used by practitioners are hardware-specific and lack many common features most other programmers enjoy everyday (e.g., encapsulation, modularity, libraries); network programmers have to be aware of hardware resources and limitations, tune a lot of details (e.g., determining states, table sizes or memory configurations) of the code to satisfy different hardware constraints, update the code frequently when the network changes, and receive little help for debugging.

On the other hand, today’s data plane programming is also too high level β€” it relies on compilers to perform standard, per-switch optimizations, and it is hardly possible for a programmer to make any networkwide optimizations (e.g., distributing workload to multiple switches) or customize the optimization target for a special scenario or application.

Matching the two conflicting problems, we have seen two disconnected directions of research in recent years. One emerging direction is to introduce higher-level, more abstract languages with more convenient programming tools; but programmers usually have to give up their flexible, fine-granulated optimization goals. Oppositely, another direction is to develop advanced optimization techniques that expect user-provided-guidance (e.g., program segmentations, application-specific labels and policies), making them not accessible to simple network programmers.

The goal of this project is to reconcile the two research directions by developing a radically new programming system for data plane programming, with which a user can naturally and flexibly describe her network design and optimization goals and the corresponding optimal data plane can be automatically generated.

Publications

P4CGO: Control Plane Guided P4 Program Optimization. Chenan Wen, Zhuocong Li, Syed Usman Jafri, Xiaokang Qiu and Sanjay Rao. In FMANO '24: Proceedings of the 2024 SIGCOMM Workshop on Formal Methods Aided Network Operation, August 2024.
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