Instructor: Nate Foster, Cornell University
Arjun Guha, UMass Amherst Spiros Eliopoulos, Cornell University
Recent years have seen growing interest in high-level abstractions for networks. Examples include systems like FlowVisor, OpenVirteX, and VMware’s NSX, as well as programming languages like Frentic, Pyretic, PANE, Maple, and others, and the emerging “northbound APIs” provided in next-generation SDN controller platforms. The first part of this tutorial will introduce the key abstractions that underpin all these systems, using a series of examples inspired by real-world applications. The second part will discuss how a compiler can translate these abstractions into efficient low-level code that executes directly on network devices.