Cumulus OS vs OpenFlow


I am newbie and would like to understand the differences between Culumus approach vs OpenFlow? Is there any article or discussion that I can refer to? Thank you.

4 replies

Userlevel 2
Albert, someone else may have a link handy, but in short:

OpenFlow is a way to program specific flows (5 tuples) into hardware for defined forwarding. OpenFlow is defined by the OpenNetworkingFoundation (ONF). A number of vendors have added proprietary extensions to the base OpenFlow format to enable functionality lacking in the original OpenFlow spec.

Cumulus Linux is a Debian Linux distro that runs directly on switches and programs the hardware. Instead of building custom extensions to OpenFlow and storing every flow in hardware (which has scaling issues) we rely on traditional IP networking concepts. A switch running Cumulus Linux acts just like any other switching platform from traditional switching vendors. We speak Spanning Tree, BGP, OSPF and VxLAN and then do traditional packet forwarding.

Hope this helps.

- Pete
Hi Pete,

Thanks for the reply. I now begin to understand the approach taken by Cumulus and it is a more flexible in many ways. My additional question is, Is there any plans to add OpenFlow support in the near future?

Userlevel 2
Albert Kay wrote:

Hi Pete,

Thanks for the reply. I now begin to understand the approach taken by Cumulus and it i...

Openflow is not on the roadmap, but there is nothing in Cumulus Linux that would prevent it from being added in the future.
I'll let here my opinion. The most common OS architectures of many vendors are based on control plane and forwarding plane separation, basically the difference between these is that when you're using a command line on device you're using control plane and all configurations you do there will be used to program your forwarding plane that is the plane that will treat your packets accordingly with your statements made on control plane.

Said that, openflow is an approach that decouples control plane and forwarding plane of each device in your datacenter, let's say that you have 10 devices in your fabric switching datacenter, so you'll have 10 control planes and 10 forwarding planes and the openflow approach is to centralize your control plane and let only the forwarding plane on each device in your datacenter, sure I'm talking about control plane logically centralized and geographically distributed to make sure resiliency.

I like of openflow approach but the when we are thinking about protocol maturity you cannot disconsider that OSPF and BGP approaches are so much more matures than a protocol that came to us few years ago. At moment, if you have a team for research and development would be great to consider openflow and learn with it about its advantages. the problem I see here it's about vendors support for openflow, each one turning available different openflow versions, what could be a nightmare of vendor lock-in.

IMHO, the cumulus approach is great cause you are free of hardware and vendors, even though you have to maintain many control and forwarding planes, that could be solved using any automation tools like ansible for example. Talking about costs, try to request a quote for 32 ports 100GbE to any vendor and get a device with same config in the hardware compatibility list on cumulus site plus licenses to see the difference.