You didn't mention Cumulus. SDN protocols become much less important when you have an open Linux switch platform. You can compile and install your own management daemon and implement whatever protocol best suits the task (and blend local and remote control).
Here’s my usual response to this line of thinking:
Let’s start with what SDN is. According to the orthodox definition it’s the separation of control and data plane (in words of one of the engineers attending my SDN workshop: that’s exactly like SNA, we’ve seen how well that works). A more useful definition focuses on abstraction layer that allows everyone to focus on network services, not on implementation details.
Linux-based networking does not give you one or the other. It might be easier to implement network automation with existing Linux tools, but that won’t give you an SDN solution – the individual Linux-based switches still have to talk to each other, and they usually do that using traditional networking protocols, because people who know what they’re doing (like engineers working for Cumulus Networks) have better things to do in their life than reinventing 20 years of well-running wheels.
Now let’s focus on the second part of the comment:
You can compile and install your own management daemon and implement whatever protocol best suits the task (and blend local and remote control).
You can do the same thing on a Junos box, and it’s even easier to do it on an Arista switch (listen to Software Gone Wild Episode 19 for a real-life case study). Cisco and HP still have a problem with this approach because most of their gear run on proprietary operating systems, but then keep in mind that you could use Tcl in Cisco IOS for almost a decade; Python was added to NX-OS a few years ago.
Writing Tcl code isn’t exactly fun for most people, but the point is that you could “program” Cisco IOS (the same way you “program” a Linux box with iptables CLI) a long time ago if you really wanted to. The fact that most people didn’t do that has more to do with the mindset (don’t touch a running box) than with the programming capabilities of the box.
On the other hand, the real beauty of Linux-based network operating systems (Cumulus Linux, Arista EOS and to a smaller extent Junos) is the ability to take any one of the zillion off-the-shelf packages and install it on your switch.
Linux-based network operating systems make our lives easier (assuming you know your way around Linux), but apart from ease of integration with existing configuration management tools like Ansible, Puppet or Chef, they haven’t given us dramatic new functionality.
Finally, open-source networking and software-hardware disaggregation have nothing to do with network automation or software-defined networks. They are just different business models used by vendors who want to disrupt the existing status quo (see also: Be Wary of Geeks Bearing Gifts).
Disclosure: Cumulus Networks was indirectly covering some of the costs of my attendance at the Network Field Day 9 event. More…