Abstract: Over the past ten years, programmable networks have gone from a dream to a reality. Software-defined networking (SDN) architectures provide interfaces for specifying network-wide control algorithms, and emerging hardware platforms are exposing programmability at the forwarding plane level as well. But despite much progress, several fundamental questions remain: What are the right abstractions for writing network programs? How do they differ from the abstractions we use to write ordinary software? Can we implement these abstractions efficiently on current hardware? This talk will attempt to answer these questions by exploring the design and implementation of high-level abstractions for network programming. In the first part of the talk, I will present NetKAT, a language for programming the forwarding plane based on a surprising connection to regular languages and finite automata. In the second part of the talk, I will present an abstraction for building SDN control planes that gracefully transitions the network between network-side configurations while preserving programmer-specified notions of consistency.
Bio: Nate Foster is an Associate Professor of Computer Science at Cornell University and a Principal Research Engineer at Barefoot Networks. The goal of his research is to develop languages and tools that make it easy for programmers to build secure and reliable systems. He grew up in a midwest college town (and attended the same small high school as Remzi) and later received a PhD in Computer Science from the University of Pennsylvania. His awards include a Sloan Research Fellowship, an NSF CAREER Award, the ACM SIGCOMM Rising Star Award, and several paper and teaching awards.