About

Who We Are

Flowgrammable.org is a coalition of researchers and industry engineers dedicated to improving adoption of software-defined networks and networking. Flow-level SDN, enabled by reusable COTS network processors, is enabling an unprecedented level of software innovation opportunity. Early pioneers have often marked SDN as the dawn of a new level of "simplified networking", but such claims are struggling to be fully realized as important abstractions remain undefined. Flowgrammable seeks to fill the gap with an end-to-end vision of flow-level SDN and targeted tools to accelerate application development, network deployment, and system testing.

What We've Done

Our first solution is the Flowgrammable SDN Stack, an implementation of OpenFlow 1.0, 1.1, 1.2, 1.3, and 1.3.1 protocols with a robust and secure message layer. Complementing the stack, we have also prepared a knowledge base designed to accelerate learning about OpenFlow and its protocol definitions. Unlike the OpenFlow specifications, the knowledge base uses easy to read IETF styled descriptions that don't require a reader to be familiar with C and GNU GCC.

Where We Are Going

Beyond the Flowgrammable SDN Stack and derivative tools and knowledge bases, we are also working on innovative models for accelerating operational maturity of SDN. A key aspect of this investigation is a rethinking of trends in network functions virtualization to determine patterns that might be useful in quickly adapting traditional network elements to an SDN solution. Other avenues of exploration include commercial and technical harmonization of design choices, tradeoffs, and best practices to determine the appropriate SDN model for a particular set of applications or functions.

Frequently Asked Questions

Who is Flowgrammable?

Flowgrammable.org is a coalition of researchers and industry engineers dedicated to improving adoption of software-defined networks and networking.

What does Flowgrammable do?

Our first solution is the Flowgrammable Stack, an implementation of OpenFlow 1.0, 1.1, 1.2, 1.3, and 1.3.1 protocols with a robust and secure message layer. Complementing the stack, we have also prepared a knowledge base designed to accelerate learning about OpenFlow and its protocol definitions.

Why did Flowgrammable decide to start with a stack and a knowledge base?

The group was loosely organized in May 2013 to investigate interesting research pursuits in SDN. The initial investigation revealed that, while a lot of activity surrounded OpenFlow and its newer versions, actual implementations were still rather sparse. And worse yet, the protocols were not laid out in a fashion that invited easy discovery and learning.

Around the same time Open Networking Foundation announced a contest to develop an OpenFlow driver. This driver competition was widely accepted by the team as excellent opportunity to gain knowledge of OpenFlow and also integrate key lessons of their previous research in secure and reliable networking. During the process of building the driver a knowledge base naturally evolved.

Why is the Flowgrammable Stack important?

The stack is implemented using C++11, a modern systems programming language, for both expressivity and runtime efficiency. Our stack makes minimal external library dependencies for ease of portability and simpler programmer reasoning. It also uses advanced tools and techniques from the programming language, compiler, and verification communities.

We use a systematic, principled systems programming framework and well-founded approach for protocol implementation. Our tools for system programming allow expression of network and system abstractions that facilitate efficient and correct implementation. This provides a powerful ability to express the definitions of a protocol, including message formats, state machine, initial configuration, and system interaction.

What is Flowgrammable going to do next?

Most existing SDN innovation has been in data center and transport networks. We plan to closely examine under-represented deployment models like access and wireless networks to see if a personal scale SDN model can be designed to scale and be cloud managed.

Additionally, we are committed to developing tools that allow existing network engineers to design applications for SDN infrastructure. This is in contrast to many in the SDN community who see the need for a new type of developer to focus on the network. We believe that well-defined and intuitive languages are the key to allowing already seasoned networking professionals to quickly exploit the benefits of SDN in their networks.

Why is Flowgrammable's work and mission important?

Software-defined networks stand to be enormously important if they are widely deployed and designed to eliminate artificial vendor lock-ins. Unfortunately, a quick survey of OpenFlow since it left research reveals that a majority of the entities engaged in defining SDN for commercial applications are sell-side advocates; the same vendors that stand to win biggest with single vendor lock-ins. This is where Flowgrammable significantly diverges from the crowd. We are a coalition of researchers with unique service provider backgrounds that allow us to understand the real needs of the buy-side of SDN. Our objective is to empower the network operators and users, forcing the network and application vendor community, ourselves included, to maintain market strength through genuine innovation, not power games.