[[labs.beatcraft.com]]~
[[OpenFlow]]~
#contents

* OpenFlow/OpenFlow Tutorial 2 [#p2c36d62]
>
To use Wireshark, compare the performance of types of the switches by contents of OpenFlow packets. This resembles a part of OpenFlow Tutorials. Its details are listed at the URL below~
~
[[http://www.openflow.org/wk/index.php/OpenFlow_Tutorial#Start_Controller_and_view_Startup_messages_in_Wireshark]]~

** Displaying OpenFlow Pcket [#k303590d]
>
To use Wireshark, which includes OpenFlow analytical plugins, observe the flow of packets on the virtual network that is created at [[OpenFlow/OpenFlow Tutorial 1]].~
<Code and Commands>
To boot Wireshark, capture the packets at loopback interface.~
To imput “of” a string at Filter, it recognizes only OpenFlow related packets (Protocol OFP).~
~
While Wireshark monitors the packets, boot the controller, which implements OpenFlow reference,  as the learning switch.~
<Code and Commands>
To look at the capture window of Wireshark, see how the controller and switch communicate each other.~
#ref();
~
The messages and their details are shown below.~
|Hello|switch &#8594; controller|Show the version of OpenFlow|
|Hello|controller &#8594; switch|Show the version of OpenFlow|
|Feature Request|controller &#8594; switch|Request feature|
|Set Config|controller &#8594; switch|Controller shows how to handle IP fragments and the maximum bytes of a new flow|
|Features Reply|switch &#8594; controller|Switch replies a list of features|
In mininet environment, all packets are handled via localhost, so their original sender's IP address are not specified. The controller uses the OpenFlow standard port 6630, and the switch occupies any available port. (for this example, the port number is 54129.)~
~
While learning switch is effective, send a ping, and check what will happen on OpenFlow. Then, to pture the interface of loopback by Wireshark again, echo Request/Reply, which maintains the connection between the controller and switch, is needed to work as a filter, input string at the entry field, and apply it. As this is completed, the capturing process will start.~
<Code and Commands>
At this moment, the table flow is empty.~
Try to check it by shell, instead of mininet termina.~
<Code and Command>
~
Send a ping by mininet prompt.~
<Code and Command> 
In the capture window of Wireshark show new messages. (See the image below.)~
&ref();~
The contents of the messages are shown below.~
|Packet In|Switch &#8594; Controller|Receiving packets (Since there are no matches on the flow table at the switch, switch sends packets to the controller.)|
|Packet Out|Controller &#8594; Switch|Sending packets|
|Flow Mod|Controller &#8594; Switch|Add a flow to the flow table|
~
To check the flow table, the entries shown below are added by the controller.~
<Code and Commands>
This is a case that OpenFlow is set and used in Passive mode.~
In Passive modem, a flow interacts with each packet.~

** Deferences in the performance of types of switches [#s2ffde65]
>
To boot the mininet environment with mn commands, the switch option  is specified by --switch. This option make difference in throughputs. ~
 
The switch of the mininet environment, which has been used here, is Open vSwitch~
<Code and Commands>
In average, it reaches 300 ~ 500 Mbps throughputs.~
~
This time, the mininet boots with a switch, which works in the user-land applied by the reference implementation of OpenFlow.~
<Code and Commands>
In this implementation, packets need to move from user-space to kernel space several times. This is the reason why its throughputs are lower than the previous setting. With this switch, it is not complicated to improve the throughputs.~

* Revision History [#ef6112fa]
>
- 2013/08/28 This article is initially uploaded.



Front page   New List of pages Search Recent changes   RSS of recent changes