The OpenFlow protocol is a key enabler in driving SDN solutions. OpenFlow is a standard protocol between data and control for remotely controlling the flow table of a switch or router:
Figure 9: OpenFlow block diagram.
OpenFlow enables SDN controllers to define the flow of network packets across the network of devices supporting the OpenFlow protocol. OpenFlow defines a generalized flow table with a very flexible and generalized flow abstraction, Open control API, which enables remote control of layers1-7.
OpenFlow defines APIs for defining traffic flow and a framework for describing the flow state; hence, it can be viewed as the following.
OpenFlow is an outline semantic for defining flow characteristics of traffic and actions to take on the packets matching the defined characteristics.