No.112 Theory and Practice of Data Plane Programming


NII Shonan Meeting Seminar 112


Networks have traditionally been built out of fixed-function devices such as routers, switches, and firewalls that provide good performance, but are difficult to customize or extend with new functionality. Recently a number of researchers have started to develop new kinds of devices in which nearly every feature, from the packet parser, to the data processing pipeline, to the traffic manager, is programmable. They have also developed accompanying languages, compilers, and verification tools for programming and reasoning about these devices. These advances have made it possible to customize the structure and functionality of a network to suit specific applications. Already, programmers have started to develop novel applications such in-network telemetry, which provides fine-grained visibility into network state, as well as data plane implementations of distributed protocols, which can improve performance by orders of magnitude compared to end host implementations.

However, despite tremendous progress, a number of important research questions remain:

  • Architecture: What features do programmable data planes require at the hardware level? Are there certain designs that are inevitable and others that fundamentally do not make sense? What primitives, techniques, and optimizations are needed to achieve good performance? What are the fundamental tradeoffs in designs based on traditional switch ASICs, FPGAs, NPUs, programmable NICs, and software switches?
  • Programming Languages: What features should high-level languages for programmable data planes provide? Are there essential constructs or those that should be left out? What is the role of types, both for catching bugs and enabling compiler analyses and optimizations? What are the right concurrency models for programmable data planes, both on a single device and across multiple devices?
  • Compilers: What are the key optimizations in the domain of data plane programming? Can classic ideas from the compiler community such as speculation, prediction, and stochastic super-optimization be adapted to the networking domain further accelerate data plane programs?
  • Formal Verification: What data plane properties can we check automatically? It is possible to add notions of state to existing data plane verification tools ? How can we extend these frameworks to enable reasoning about quantitative and probabilistic properties?
  • Applications: What are the “killer” applications for programmable data planes? Some early adopters have identified some promising ideas, but it is clear that these have only scratched the surface.

The technical agenda will be organized around four distinct kinds of activities. First, to help establish a common background and vocabulary, we plan to start the workshop with longer invited tutorials in each of the categories above from experts. Second, we plan to have shorter presentations of research highlights to give a sense of current research trends and, as a secondary goal, to help promote the careers of junior researchers. Third, we plan to organize interactive working groups, technical panels, and debates, to help encourage cross-fertilization and make progress on more open-ended questions. Fourth, we plan to invite participants to present hands-on demos. We plan to write a survey article after the workshop and submit it for publication in a venue such as ACM SIGCOMM CCR.

Category: Uncategorized


Comments are closed.