Research

Flowgrammble Research

The following is a list of origination research published by one or more of the Flowgrammable team that pertains to or has use in Software Defined Networking.

Venue Year Paper
WRiPE 2013
Eliminating Network Protocol Vulnerabilities Through Abstraction and Systems Language Design
Incorrect implementations of network protocol message specifications affect the stability, security, and cost of network system development. Most implementation defects fall into one of three categories of well defined message constraints. However, the general process of constructing network protocol stacks and systems does not capture these categorical constraints. We introduce a systems programming language with new abstractions that capture these constraints. Safe and efficient implementations of standard message handling operations are synthesized by our compiler, and whole-program analysis is used to ensure constraints are never violated. We present language examples using the OpenFlow protocol.
submission 2014
tinyNBI: Distilling an API from essential OpenFlow abstractions

If simplicity is a key strategy for success as a network protocol OpenFlow is not winning. At its core OpenFlow presents a simple idea, which is a network switch data plane abstraction along with a control protocol for manipulating that abstraction. The result of this idea has been far from simple: a new version released each year, five active versions, complex feature dependencies, unstable version negotiation, lack of state machine definition, etc. This complexity represents roadblocks for network, software, and hardware engineers.

We have distilled the core abstractions present in 5 existing versions of OpenFlow and refactored them into a simple API called tinyNBI. Our work does not provide high-level network abstractions (address pools, VPN maps, etc.), instead it focuses on providing a clean low level interface that supports the development of these higher layer abstractions. The goal of tinyNBI is to allow configuration of all existing OpenFlow abstractions without having to deal with the unique personalities of each version of OpenFlow or their level of support in target switches

SDN Research

Through our development activity we have gone through quite a few research papers looking for inspiration, good ideas, or just basic understanding. The following is a set of papers that we feel are foundational, accessible, and worth reading for their requisite categories. For further reading please see the NEC SDN Reading List or google scholar. 

Venue Year Paper
ACM SIGCOMM Computer Communication Review 2005
A Clean Slate 4D Approach to Network Control and Management.
Argues for separation of the decision logic from protocols, replacing distributed algorithms (such as routing) by a centralized algorithm that controls the state of network elements (routers and switches).
ACM SIGCOMM Computer Communication Review 2011
Architecting for Innovation.
Presents a framework that enables evolutionary changes in the network architecture, improving Internet's evolvability. Lists software defined networks as one of the key enablers of evolvable networks, allowing the hardware to support a variety of applications.

Venue Year Paper
ACM SIGCOMM Computer Communication Review 2010
SwitchBlade: A Platform for Rapid Deployment of Network Protocols on Programmable Hardware
Proposes a virtualized programmable switch architecture and data plane that can be implemented using low-cost off the shelf hardware.
ACM SIGCOMM Computer Communication Review 2011
DevoFlow: Scaling Flow Management for High-Performance Networks
Shows that the deterministic centralized control algorithms does not scale well and proposes randomized solutions.

Venue Year Paper
ACM SIGCOMM Computer Communication Review 2008
NOX: Towards an Operating System for Networks
NOX allows centralized control of the network from by providing high level networks abstractions. Can be used by building scalable network management applications.
USENIX Internet Network Management Conference 2010
HyperFlow: A Distributed Control Plane
USENIX Symposium on Operating Systems Design and Implementation 2010
Onix: A Distributed Control Platform for Large-scale Production Networks
The paper focuses on distributed controller architectures and studies the synchronization distributed controller data structures.
Technical report, Rice University 2011
Maestro: A System for Scalable OpenFlow Control
Contributions: SDN Controller Performance
  1. Verifies that using process affinity and run-to-completion models for packet processing are most efficient concerning the memory hierarchy of a typical server.
  2. Suggests that batching socket read/writes into a single read/write is a good technique for amortizing the high cost system calls.
Workshop on Hop topics in software defined networks 2012
Kandoo: A Framework for Efficient and Scalable Offloading of Control Applications
Proposes a hierarchal approach in which most of the load is handled by low-layer controllers. This approach significantly reduces the load on each controller which increases the scalability of OF applications.
ACM SIGCOMM Computer Communication Review 2013
Maple: Simplifying SDN Programming Using Algorithmic Policies
Contributions: SDN Controller Performance
  1. A method for efficiently offloading controller packet classification to switches
  2. A method for efficiently finding commonality between different application classifiers sharing a common classifier prefix for more efficient classification.

Venue Year Paper
OpenFlow Switch Consortium Technical report 2009
FlowVisor: A Network Virtualization Layer
Proposes an abstraction layer that allows multiple logical networks to share the data plane hardware of network elements.
Internet Computing 2013
Scalable Network Virtualization in Software-Defined Networks
An approach to provide a separate logical topology for each virtual SDN network (network slice).

Venue Year Paper
ACM SIGPLAN Notices 2011
Frenetic: A Network Programming Language

Venue Year Paper
INRIA Technical Report 2013
A Survey of Software-Defined Networking: Past, Present, and Future of Programming Networks
Provides a comprehensive survey on the current development in software-defined networks as well as a historical perspective.