General OF-DPA Topics

Information about the OF-DPA

Community Submission: TTP Language Definition for Notepad++

Michael Orr wrote in with an importable language definition for Table Type Pattern (TTP) files usable in Notepad++, an Open Source editor for Windows. If you are a user of Notepad++, installation is easy and convenient. This is also the first submission into OF-DPA Insider’s TTP Tools public repository on GitHub, where we hope to host new tools for TTP editing and extraction by other members of the community.

read more

LinTTP: A Linter and Validator for your TTP

After my last post on extracting useful information from the Broadcom TTP file, I thought it would be interesting to write a validator and linter for TTPs. A TTP is essentially a JSON file that defines what specific hardware can handle in regards to being controlled by an OpenFlow 1.3+ controller. With so few examples of real-world TTPs, and those not actually following the specification, a hard look is required to see how this technology can be promoted. The adoption of Table Type Patterns is very important for the integration of hardware switches in a very fluid SDN-controlled infrastructure.

read more

Utility Functions: Changing Port Configuration

When writing Ryu applications, you can often find yourself repeatedly looking up multiple reference guides to find appropriate bitmasks and flag names even when doing something as simple as configuring a port. Following up on my previous Quick Tip, here we have a couple of utility functions that you can use to easily bring ports up and down inside a Ryu app itself. This is just a simple example, but it demonstrates that it is often a good idea to write your own utility functions that you may use in several places. This not only make your code cleaner and easier to read, but also save time in the future by not having to repeat previous work.

read more

Subscribing to Port Events

When writing controller applications, it is often useful to determine when a port status changes. For example, when a port’s physical link is removed, flows and internal tables may need to be modified as part of a network layout learning algorithm. Thankfully, subscribing to these events is quite simple.

read more

Ryu Quickstart with Simple Switch for OF-DPA

One of the largest hurdles with getting started with OF-DPA is finding everything you need just to get an example OF-DPA pipeline application running. Once an example is working, it becomes much easier to experiment. This tutorial will cover setting up your Ryu environment with a modified Simple Switch application designed to provide simple L2 switching in the OF-DPA pipeline. As an extra bonus, this will also cover getting Ryu’s REST interface operational while the switch application is running.

read more

Ryu REST API – Your First Tool for Learning OF-DPA

The OF-DPA pipeline is a complex OpenFlow environment. The first tool you should use to develop an understanding of OF-DPA is the Ryu REST API. This will provide you a way to probe the status of a switch and modify the switch’s behavior from a web browser. The REST API is a hands-on interactive environment that provides an initial learning environment that is much more productive that crafting python scripts to test basic concepts.

read more

Using Postman to Probe Ryu REST API

Postman is a tool that we use extensively to access the Ryu REST API ( It has been an indispensable component of our development tool chain.

Postman, a Chrome-based application (either as a Chrome App or a standalone application), is a web browser technology that simplifies accessing the the Ryu REST API by providing an environment to craft, send HTTP requests and receive replays. Postman is especially helpful in working with the long JSON structures required by the Ryu REST API to query OpenFlow switches.

read more

Ryu for Prototyping

  SQI has selected the Ryu Controller for our prototyping environment. Ryu is a Python based, open source technology. It is much easier to get started with than the controllers focused on large scale deployments. And, being a scripting language base technology... read more

Signup for our Newsletter!


1. Call or email us today!

Call (408) 813-3340 or email us today and let us know how we can help!

2. Customized Engagements

Let us design a customized engagement around your requirements!

3. Accelerate Your Development!

Reduce cost and time-to-market.