About Cisco OpenFlow Agent
OpenFlow is an open standardized interface that allows a software-defined networking (SDN) controller to manage the forwarding plane of a network.
Cisco OpenFlow Agent provides better control over networks making them more open, programmable, and application-aware and supports the following specifications defined by the Open Networking Foundation (ONF) standards organization:
OpenFlow Switch Specification Version 1.0.1 (Wire Protocol 0x01) (referred to as OpenFlow 1.0)
OpenFlow Switch Specification Version 1.3.0 (Wire Protocol 0x04), referred to as OpenFlow 1.3
These specifications are based on the concept of an Ethernet switch, with an internal flow table and standardized interface to allow traffic flows on a device to be added or removed. OpenFlow 1.3 defines the communication channel between Cisco OpenFlow Agent and controllers.
A controller can be Cisco Open SDN Controller, or any controller compliant with OpenFlow 1.3.
In an OpenFlow network, Cisco OpenFlow Agent exists on the device and controllers exist on a server that is external to the device. Flow management and any network management are either part of a controller or accomplished through a controller. Flow management includes the addition, modification, or removal of flows, and the handling of OpenFlow error messages.
The following figure gives an overview of the OpenFlow network.
Cisco OpenFlow Agent Operation
Cisco OpenFlow Agent creates OpenFlow–based TCP/IP connections to controllers for a Cisco OpenFlow Agent logical switch. Cisco OpenFlow Agent creates databases for a configured logical switch, OpenFlow-enabled interfaces, and flows. The logical switch database contains all the information needed to connect to a controller. The interface database contains the list of OpenFlow-enabled interfaces associated with a logical switch, and the flow database contains the list of flows on a logical switch as well as for interface that is programmed into forwarded traffic.
OpenFlow Controller Operation
OpenFlow controller (referred to as controller) controls the switch and inserts flows with a subset of OpenFlow 1.3 and 1.0 match and action criteria through Cisco OpenFlow Agent logical switch. Cisco OpenFlow Agent rejects all OpenFlow messages with any other action.
OpenFlow Multiple Sub-Switch Operation
For more granular and distributed flow control, you can define multiple virtual subswitches, each with its own controller, its own unique VLAN range, and its own flow control configuration. The controller of a subswitch has configuration access only to the flows of that subswitch. VLANs associated with a subswitch cannot also be associated to another subswitch, and VLAN ranges cannot overlap between subswitches.
When you define one or more subswitches, a lower priority primary switch is implicitly created. A flow is evaluated for a match first on the subswitches and lastly on the primary switch if no previous match was found. There are no default flows (miss-action) for the subswitches.