General OF-DPA TopicsInformation about the OF-DPA
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
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
What Flow Mod Types support sending a packet to the controller port? This is a very important question when beginning development with OF-DPA 2.0 as it defines what kind of packets can be monitored by the controller, which determines what kind of decisions the controller can make based on current network traffic.read more
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
Here is a quick tip on changing port configuration. To set (or unset) a port as Administratively Down, use Ryu’s standard `ofctl` REST interface to POST on /stats/portdesc/modify with a simple data structure.read more
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
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
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
Postman is a tool that we use extensively to access the Ryu REST API (ryu.app.ofctl_rest). 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
2. Customized Engagements
Let us design a customized engagement around your requirements!
3. Accelerate Your Development!
Reduce cost and time-to-market.