OpenFlow channel

The OpenFlow channel is the interface that connects each OpenFlow switch to a controller. The controller uses the OpenFlow channel to exchange control messages to configure and manage the switch, receive events from the switch, and send packets out the switch. The OpenFlow channel is usually encrypted by using TLS. Also, an OpenFlow channel can be run directly over TCP.

The OpenFlow protocol supports the following message types: controller-to-switch, asynchronous, and symmetric. Each message type has its own subtypes.

Controller-to-Switch messages


[IMPORTANT: ]

IMPORTANT:

Support for Controller-to-Switch messages varies by device mode.


Controller-to-Switch messages are initiated by the controller and used to directly manage or inspect the state of the switch. Controller-to-Switch messages might or might not require a response from the switch.

The Controller-to-Switch messages include the following subtypes:

Asynchronous messages


[IMPORTANT: ]

IMPORTANT:

Support for asynchronous messages varies by device mode.


Switches send asynchronous messages to controllers to inform a packet arrival or switch state change. For example, when a flow entry is removed due to timeout, the switch sends a flow removed message to inform the controller.

The asynchronous messages include the following subtypes:

Symmetric messages


[IMPORTANT: ]

IMPORTANT:

Support for symmetric messages varies by device mode.


Symmetric messages are sent without solicitation, in either direction.

The symmetric messages contain the following subtypes: