Programmable Internetworking & Communication Operating System Docs ... Click Spaces -> Space Directory to see docs for all releases ...
Page tree
Skip to end of metadata
Go to start of metadata

Once the controller and OVS are connected, a set of messages will be exchanged. For example, the OVS sends an OFPT_HELLO message to the controller. The hello message is captured on the wireshark screen. The first byte of the message is the version number, and the second byte is the OFPT_TYPE. OFTP_HELLO message is type 0.

After the hello message from the switch, the controller sends OFPT_FEATURES_REQUEST (type=5) to retrieve the switch capabilities, including supported open flow version, switch configuration, and port hardware address. The switch sends OFPT_FEATURES_REPLY (type=6) to provide the feature information. The message is shown on both the controller console and the switch console. 

Figure 6 – OFPT_HELLO message

The switch console information is provided by the snoop option of the ovs-ofctl command. The command is ovs-ofctl snoop br0. It shows the feature request from the controller and the feature reply with the bridge information. User can compare the switch console information with the controller console information to get a better understanding of the message exchange.

Figure 7 – ovs-ofctl snoop br0

The wireshark also captured the information. Notice the message type in the second byte is 6 representing the OFPT_FEATURES_REPLY. After the feature reply, the controller sends an OFPT_SET_CONFIG message to set the message parameters like the max length, etc. Once the controller is connected, the OVS changes its default behavior from a layer 2 switch to an OVS switch. It means the flooding is disabled and open flow packet processing starts. Each packet is processed based on the flow table entry. Unmatched packet is forwarded to the controller for analysis unless a rule is defined to drop the packet. During initial start up with the controller, the flow table is empty. Therefore, packets received from any port are forwarded to the controller. The next message from the switch is type OFPT_PACKET_IN (type=10/0x0a). 

Figure 8 – OFPT_FEATURE_REPLY message 

In this exercise, the OpenDaylight controller does not have any application to receive and process the OFPT_PACKET_IN message. Therefore, on the controller screen, a bunch of unhandled_events are printed on the console. At this point, the OpenDaylight-OVS open flow session is established and ready for Open Flow application to take over the event handling and flow configuration.

  • No labels