SDN is always referred as separation of control and data plane. But in general networking control plane is used to exchange the destination information whereas data plane is used to program the control plane information in the local stack along with the information how to reach to local neighbors. The advantage of this separation is that every time when the router receives reachability information for a network via control plane protocol, and then programs it’s own data plane so that packets go in the right direction based off of the learned information packets comes in. Data plane takes the responsibility to forward the packets to the neighbors keeping in mind that there is no change in the control plane; if change happens the same has been incorporated in the data plane.
In the world of SDN, we always come across OPENFLOW terminology and have perception in mind that if the software or hardware is not providing this capability is not SDN capable or certified.
However this is not the case; OPENFLOW is a control or communication protocol and foundational element of software defined networking. As in legacy networking, control and data plane resides in same element but leveraging open flow, control plane intelligence is taken out however data plane intelligence is residing local to the element. OPENFLOW defines a programmatic way to define the flow state in the local agent running on switch or router. The local agent must store these flow information locally and push them into vendor specific format on that device.
OPENFLOW is not a configuration protocol like we have NETCONF. OPENFLOW is used to provide the access of data plane by specifying general language which can be easily understood by any switch or router instead of making their own rules from local control plane.
OPENFLOW is control plane protocol as per given figure and the main objective is to provide open and programmatic way to program the data planes instead of relying on local control planes. It’s very clear no one can make the changes in the configuration by using OPENFLOW, it’s only intend is to tell the agent to add the flow, match the flow and forward the flow basis on its characterization like ether type, port, mac address and destination address etc.