Nate Foster is an Associate Professor at Cornell University and a Principal Research Engineer at Barefoot Networks. His current research focuses on the design and implementation of high-level network programming languages.
Motoyoshi Sekiya is a Senior Director of Network Systems Laboratory in Fujitsu Laboratories Ltd. His current research focus on network architecture and control system for software programmed optical / packet network. From 2010-2015 he led optical networking and transmission research at Fujitsu Labs America.
Sunday, February 25, 2018
15:00 – : Check-in
19:00 – 21:00: Welcome Banquet
Monday, February 26, 2018
07:30 – 09:00: Breakfast
09:00 – 09:15: Welcome (Nate Foster & Motoyoshi Sekiya)
09:15 – 09:45: Introductions
09:45 – 10:30: Changhoon Kim
10:30 – 11:00: Break
11:00 – 12:00: Changhoon Kim
12:00 – 13:30: Lunch
13:30 – 15:30: Programming Stateful Dataplanes (Vyas Sekar)
15:30 – 16:00: Break
16:00 – 17:15: Laurent Vanbever
18:00 – 19:30: Dinner
Tuesday, February 27, 2018
07:30 – 09:00: Breakfast
09:00 – 10:45: Srinivas Narayan
10:45 – 11:15: Break
11:15 – 11:40: Ruzica Piscak “Verification and Repair of Firewalls”
11:40 – 12:00: Kohei Shiomoto “Machine Learning for Network Management”
12:00 – 13:30: Lunch
13:30 – 13:45: Group Photo
13:45 – 14:30: Alex Horn
14:30 – 15:30: Akihiro Nakao
15:30 – 16:00 Break
16:00 – 16:30: Norihiko Shinomiya “Cycle-Based Traffic Balancing Method for Clustered Network with Multiple SDN Controllers”
16:30 – 17:15: Group Discussion
18:00 – 19:30: Dinner
Wednesday, February 28, 2018
07:30 – 09:00: Breakfast
9:00 – 10:15: Working Groups
10:15 – 10:30: Experiences building a Campus Network (Shingo Ata)
10:30– 11:00: Break
11:00– 12:00: Incremental vs. Clean-Slate Approaches (Debate)
12:00 – 13:30: Lunch
13:30 – 20:45: Excursion and Dinner at “Minemoto”
Thursday, March 1, 2018
07:30 – 09:00: Checkout & breakfast
09:00 – 09:20: Nicholas Zhang
09:20 – 09:40: Event-Driven Network Programming (Pavol Cerny)
09:40 – 10:00: Kiyo Ishii
10:00– 10:20: Steffen Smolka
10:20 – 10:40: Motoyoshi Sekiya
10:40 – 11:10: Break
11:10 – 11:30: Marco Canini and Robert Soule
11:30 – 12:00: Closing Discussion
12:00 – 13:30: Lunch
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.