Our ultimate goal is to improve networks in general, and carrier networks in particular, by making them easier to manage, less reliant on custom hardware, and more amenable to innovation. To accomplish these goals, we leverage two existing trends in networking: software-defined networking (SDN) and flexible software packet processing (SPP). These approaches each have their limitations, but our research effort blends them to achieve the best of both. For instance, SDN provides a programmable management interface, which has led to increasing adoption in datacenters, but has limited forwarding flexibility. SPP, whose increasing speeds has made NFV possible, has great flexibility but limited notions of orchestration. In our approach we use SDN as an overarching orchestration framework, but rely on SPP to provide forwarding flexibility at the network edge. This approach is conceptually simple, but seamlessly merges SDN and NFV and is far more scalable and modular than more standard SDN and NFV approaches.
We have a wide range of projects in progress, which can roughly be broken down into the following categories:
Control plane: We are exploring recursive designs that enable SDN to scale to global carrier networks, while still retaining fast local failure recovery. We are also exploring new approaches to control plane connectivity, in which the control plane is physically in-band but logically out-of-band.
Data plane: We are designing an “elastic switch” as the prototypical edge forwarding device; the elastic switch combines commodity switching with racks of commodity processing in a self-managing system that handles scaling, fault-tolerance, load-balancing, and job placement. We are also looking at a software NIC that fills the gap between hardware capabilities and user demands, providing advanced functionality while shielding applications from the particular hardware implementation.
Service virtualization: This design turns carrier networks into a service-delivery platform, in which the network provides basic primitives that make it easier for third parties to deploy client-facing services (such as content delivery or Dropbox-like services).
Verification and troubleshooting: We have developed methods for verifying the correct enforcement of invariants in networks with sophisticated packet processing middleboxes, and for troubleshooting large SDN codebases.