Updated February 2013 | Cole Schlesinger


Applied Programming Languages Research

email: (\x. x@princeton.edu) cschlesi

office: 312 Sherrerd Hall


I am a fifth-year Ph.D. student in the Programming Languages group of the computer science department at Princeton University.

My advisor is David Walker.




Abstractions for SDN Controllers

Isolation for Network Programs

Live Migration of  Ensembles

Software-Defined Networking offers a clean and open interface between networking devices and the software that controls them.  But while it makes programming the network possible, it does not make it easy.


Our goal with the Frenetic project is to use tools from the programming languages community to make OpenFlow controller programs simpler and more reliable.

Network slices are an abstraction for isolating SDN networks deployed to a common physical infrastructure.  Slices not only enable safe federated network control, they also provide a means of modularly structuring SDN controller programs, greatly reducing their complexity.


The slice abstraction comes with a semantic definition of isolation independent of the particular mechanism(s) used to achieve it.  Of course, our implementation (part of the Frenetic project) also includes one such mechanism.

Modern data centers are more than just switches; data center engineers are tasked with orchestrating collections of virtual machines (VMs) while maintaining connectivity, at the very least, and perhaps load balancing, monitoring, and other complex networking tasks as well.


Generalizing past work on Frenetic, we present an ambitious new vision of declarative data center programming, starting with the live migration of ensembles of VMs and SDN switches.  The data center engineers simply specifies new locations for switches and VMs, and the LIME platform enacts the migration.  Critically, we have proved that neither the VMs nor the SDN controller can distinguish between a network undergoing migration and a migration-free network.

NetKAT: Semantic Foundations for Networks.  Carolyn Jane Anderson, Nate Foster, Arjun Guha, Jean-Baptiste Jeannin, Dexter Kozen, Cole Schlesinger, and David Walker.  POPL, 2014.  [pdf]


The Frenetic Network Controller.  The Frenetic Contributors.  The OCaml Users and Developers Workshop, 2013.


Towards JavaScript Verification with the Dijkstra State Monad.  Nikhil Swamy, Joel Weinberger, Cole Schlesinger, Juan Chen, and Ben Livshits.  PLDI, 2013. [pdf]


Languages for Software-defined Networks.  Nate Foster, Arjun Guha, Mark Reitblatt, Alec Story, Michael J. Freedman, Naga Praveen Katta, Christopher Monsanto, Joshua Reich, Jennifer Rexford, Cole Schlesinger, David Walker, and Rob Harrison.  IEEE Communications Magazine, Vol. 51, No. 2.  February 2013.


Abstractions for Network Update. Mark Reitblatt, Nate Foster, Jen Rexford, Cole Schlesinger, and David Walker.  SIGCOMM, August 2012.  [pdf ]


Splendid Isolation: A Slice Abstraction for Software-Defined Networks.  Stephen Gutz, Alec Story, Cole Schlesinger, Nate Foster.  HotSDN, August 2012.  [pdf ]


Modular Protections against Non-control Data Attacks.  Cole Schlesinger, Karthik Pattabiraman, Nikhil Swamy, David Walker, and Benjamin Zorn.  CSF, July 2011.  [pdf | tech report]