OpenFlow (OF) is considered one of the first software-defined networking (SDN) standards. It originally defined the communication protocol in SDN environments that enables the SDN Controller to directly interact with the forwarding plane of network devices such as switches and routers, both physical and virtual (hypervisor-based), so it can better adapt to changing business requirements.
An SDN Controller in SDN is the “brains” of the SDN network, relaying information to switches/routers ‘below’ (via southbound APIs) and the applications and business logic ‘above’ (via northbound APIs). Recently, as organizations deploy more SDN networks, SDN Controllers have been tasked with federating between SDN Controller domains, using common application interfaces, like OpenFlow and open virtual switch database (OVSDB).
To work in an OF environment, any device that wants to communicate to an SDN Controller must support the OpenFlow protocol. Through this interface, the SDN Controller pushes down changes to the switch/router flow-table allowing network administrators to partition traffic, control flows for optimal performance, and start testing new configurations and applications.
Flow-Table Entries That Can Be Manipulated in an OF Switch
Benefits of OpenFlow:
- Enable innovation/differentiation
- Accelerate new features and services introduction
- Simplify provisioning
- Optimize performance
- Granular policy management
- Decoupling of Hardware & Software, Control plane & forwarding, and Physical & logical config.
The original concept for OF begun at Stanford University in 2008. By December 2009, Version 1.0 of the OpenFlow switch specification was released. Since its inception, OpenFlow has been managed by the Open Networking Foundation (ONF), a user-led organization dedicated to open standards and SDN adoption.
Since its release, multiple companies and open source projects like the OpenDaylight Project support OpenFlow, and even provide OpenDaylight Controllers. Other companies like Cisco and Brocade also offer OF-enabled controllers, with Cisco XNC and Brocade Vyatta Controller.