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 Ryu is a very interactive code development environment.
These features make it a perfect platform for prototyping, training, and learning:
- Ryu is Python based.
- Ryu is component base framework
- Ryu has example code that implements key networking protocols in the OpenFlow protocol
This is a significant infrastructure for OpenFlow learning and SDN application development. However, for developers focused on using the line rate OF-DPA there is an issue. All of the Ryu code is currently developed for a generic OpenFlow environment that does not have any table structure prior to the Controller Application taking charge. If there is a multi-table OpenFlow pipeline it is build as part of the application.
The OF-DPA environment is a fixed multi-table OpenFlow pipeline crafted to optimize the ASIC functionality of Broadcom switch silicon. Controller applications need to be aware of the OF-DPA structure. This means the ecosystem of Ryu components and applications needs to by modified to work with the OF-DPA pipeline.
It is the charter of SQI and this blog to make Ryu the most productive tool for understating and prototyping of the OF-DPA. This means the SQI will be both crafting new Ryu component specifically crafted for the OF-DPA and modifying existing Ryu components to work with the OF-DPA pipeline.
This process of refactoring the ecosystem of Ryu components for the OF-DPA pipeline will be a great learning experience for all of us.