Are there alternatives to the OpenFlow protocol? What other languages protocols can be used southbound from a controller?
OpenFlow, the most famous and talked-about southbound protocol, is used for communication between a controller and a switch. An important point to remember is that the OpenFlow protocol is used only to gain remote control of the forwarding tables that exist on a switch -- the OpenFlow controller becomes the centralized brain, or control plane, of the network.
Even in SDN environments based on the OpenFlow protocol, managing general configuration across network devices requires other protocols. These can be anything from the Simple Network Management Protocol, or SNMP; Secure Shell, or SSH; and NETCONF, to something like OVSDB (the Open vSwitch Database Management Protocol) or OF-Config (the OpenFlow Management and Configuration Protocol). Other protocols that have been deemed southbound interfaces to a controller even include Location Identifier Separation Protocol, or LISP, and border gateway protocol, or BGP.
Over the past 12 months, vendor proprietary solutions that don't use the OpenFlow protocol have emerged. The reason that vendors typically give for this is that OpenFlow didn't meet their needs and they couldn't wait around for OpenFlow standards to be developed. However, some of these proprietary solutions do not offer flow-level control like that of OpenFlow.
To determine which protocol works best for you, it's important to understand the problem that you're trying to solve. You might not need flow-level control in your environment today, making this a moot point. But it's important to consider this: Are you deploying for today or for the next three to five years? Could flow-level control be a requirement in the future? Could the need for this control be met with other vendor-specific protocols? These are key questions to ask when you speak to vendors about their overall solution.
Ideally, the southbound protocols being used by a particular controller become less important over time, as standards get worked out. But no matter what, all functions that southbound APIs provide should be exposed via a northbound RESTful application programming interface on top of the controller to be used by services and applications of the network.