SDN: Introduction, Working, Architecture
5.2 OpenFlow enabled Switch Architecture
5.2.1 Categorization of messages exchanged between switch and a controller
The OpenFlow protocol supports three different types of messages. These messages are asynchronous, controller-to-switch, and symmetric messages. The controller-to-switch messages are initiated by the controller and used to examine the status and state of the flow table of the switches.The asynchronous messages are sent from the switch to the controller which is referred to as an event and designate a change in the switch state or network state. Among many events, Packet-in event has a noteworthy importance. This event occurs when a packet does not have a matching entry in the flow table, Packet-in message is sent to the controller which decide about the flow establishment for the packet. Lastly, the symmetric messages are sent in either direction. These messages are used to check the liveliness of the controller. Checking of liveliness between controller and switches can be done with the help of Hello and Echo message.
5.2.2 Categorization of messages exchanged between switch and a controller
When an Openflow-enabled device attempts to configure itself for the first time, it initially sends a TCP sync message to the controller at default TCP port 6633. An acknowledgment message is sent from each end during a TCP handshake between the controller and switch. The TCP handshake messages are used in the connection establishment process.
Hello: The controller sends its version number to the OpenFlow switch through Hello message in turn the switch replies its version number to the controller.
Features Request: After getting the version, controller seeks the available ports from the switch.
Features Reply: In turn, the switch response with a list options such as set of available ports, the port speeds etc.