What is the State of OpenFlow at the end of 2012?
Notes for Day Three, Sunday December 17th 2012.
Today we did a lot of work with the Pronto 3290 switch.
- We used our in house tool to push flows into the Pronto until we either ran out of memory in Floodlight, or ran out of FIB space on the Pronto.
- We worked with RouteFlow via a live cd (Thanks Josh), made some modifications and constructed a standard setup for the NOX based testing.
- Constructed a script to configure the Pronto for our tests to make sure that each test is repeatable.
Some of the data that came out of our testing was the following:
The Pronto 3290, which is rated to hold up to 4k flows, held 4781, which is above the stated number. These are simple flows, source ip/port, destination ip/port.
To get this result we needed to boot the pronto into a shell instead of PicaOS. Once inside the shell we needed to configure Open vSwitch by hand, add all of the necessary ports and connect it to the controller. This is a daunting task for those who do not work with the Pronto regularly. We decided to script the setup of the Pronto and just use that each time we booted so that there were no errors. Thanks again to Josh, who created the script we modified to fit our setup.
At the end of the test we will be making all of this data public if possible (We know of no controls on the data) including a bootable CD and configurations used for the different DUTs.
We are thinking about adding Pica8’s reference setup into the test. They provide a OpenFlow 1.2 solution using RYU. You can find more information on their blog post entitled “First Integrated Open OVS Switch and OpenFlow Controller“. This would be for information only as no other vendor that we know of has a public OpenFlow 1.2 solution.
You may notice that we are only testing HP and Pronto right now, we are waiting for Brocade equipment and possibly equipment from other vendors.
Alex Reimers says
Hi Steven,
You should try starting Floodlight using the floodlight.sh script that is in the root of the source tree. It sets these JVM options.
# Set JVM options
JVM_OPTS=””
JVM_OPTS=”$JVM_OPTS -server -d64″
JVM_OPTS=”$JVM_OPTS -Xmx2g -Xms2g -Xmn800m”
JVM_OPTS=”$JVM_OPTS -XX:+UseParallelGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods”
JVM_OPTS=”$JVM_OPTS -XX:MaxInlineSize=8192 -XX:FreqInlineSize=8192″
JVM_OPTS=”$JVM_OPTS -XX:CompileThreshold=1500 -XX:PreBlockSpin=8″
JVM_OPTS=”$JVM_OPTS -Dpython.security.respectJavaAccessibility=false”
-Xmx sets the maximum heap size and -Xms sets the minimum. Using this script they will both be set to 2 Gb.
-Alex
Steven Noble says
Hi Alex,
Thanks for the reply! I will try that when I start testing tonight. I’ve worked around it by limiting the number of flows I try to create (I was feeding Floodlight around 20k flows).
I have been using the binary as available on the site so that I could be sure that the .jar was properly built.
Christian Esteve Rothenberg says
Great work Steven!
Thanks for the practical insights! Looking forward to see more data.
We have a Ryu 1.2 based RFProxy implementation, will be soon in the github repo.
We have also a NOX1.2 RFProxy version in case it is possible to plug an external controller to the integrated OF1.2 Pica8 setup.
Keep the valuable reality check work on OpenFlow!
Steven Noble says
Thanks Christian,
A 1.2 based proxy would be nice but I am not 100% on OpenFlow 1.2 as it appears the spec has not been finalized.
Does anyone other than Pica8 support 1.2? The HP Switch I bought only appears to support 1.0 running the latest code I can find on their website is K.15.10.0003.
I am still waiting for a response from Brocade on getting a switch, I also have asked Juniper if they are willing to allow a public discussion of their OpenFlow software.
My goal with this testing is to use what “exists” at this time, so RouteFlow with support for NOX and OpenFlow v1.0, HP and Pica8 switches running 1.0 and possibly 1.2 on Pica8.
BigSwitch Floodlight supporting v1.0.
David Liu says
Hi Steve,
OVS can be saved as default boot option to avoid the manual config each time. It will boot into OVS mode & start ovs db server & switchd automatically & create the last known bridge configuration. See belwo screen dump:
David
System initiating…Please wait…
Please choose which to start: Pica8 XorPlus, OpenFlow, or System:
(Will choose default entry if no input in 10 seconds.)
[1] Pica8 XorPlus
[2] Open vSwitch * default
[3] System shell
[4] Boot menu editor
Enter your choice (1,2,3,4):4
Please choose which as default boot entry: Pica8 XorPlus, Open :
[1] Pica8 XorPlus
[2] Open vSwitch
Enter your choice (1,2) :2
Choose OVS as default (y/n) :y
Please set a static IP and netmask for the switch (e.g 172.168.1.1/24):192.168.1.20/24
Please set the gateway IP (e.g 172.168.1.2):192.168.1.1
Please set the database (e.g ovs-vswitchd.conf.db):ovs-vswitchd.conf.db
System have found the database file!
Save the config and reboot the switch (y/n) :y
Steven Noble says
Thanks David!
I should do that in case I move the switch to another location where I don’t have a console. I am thinking about modifying the boot so that it will just run the startovs.sh and come up. Have it have all of the interfaces in it and such.