1 / 13

OpenFlow Controllers

OpenFlow Controllers. Marcelo Pinheiro September 23rd, 2011. Agenda. OpenFlow Components OpenFlow Controllers OpenFlow software switch Options. OpenFlow Components. Reference : http://www.openflow.org/wp/openflow-components/. OpenFlow Controllers. * Based on Beacon

bowen
Download Presentation

OpenFlow Controllers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OpenFlowControllers Marcelo Pinheiro September 23rd, 2011

  2. Agenda • OpenFlowComponents • OpenFlowControllers • OpenFlow software switch Options

  3. OpenFlowComponents Reference: http://www.openflow.org/wp/openflow-components/

  4. OpenFlowControllers • * BasedonBeacon • ** Basedon NOX 0.4 • AllcontrollerssupportOpenFlow 1.0

  5. OpenFlowControllers Performance TEST SETUP – May 17th, 2011 • CPU: 1 x Intel Core i7 930 @ 3.33ghz, 4 physical cores, 8 threads • RAM: 9GB • OS: Ubuntu 10.04.1 LTS x86_64 • Kernel: 2.6.32-24-generic #43-Ubuntu SMP ThuSep 16 14:58:24 UTC 2010 x86_64 GNU/Linux • BoostLibrary: v1.42 (libboost-all-dev) • malloc: Google'sThread-CachingMalloc version 0.98-1 • Java: Sun Java 1.6.0_25 • Test methodology • cbenchis run locally via loopback, the 4th thread's performance is slightly impacted • cbench emulates 32 switches, sending packet-ins from 1 million source MACs per switch • 10 loops of 10 seconds each are run 3 times and averaged per thread/switch combination • tcmalloc loaded first export LD_PRELOAD=/usr/lib/libtcmalloc_minimal.so.0 • Launched with taskset -c 7 ./cbench -c localhost -p 6633 -m 10000 -l 10 -s 32 -M 1000000 -t

  6. OpenFlowControllers Performance

  7. OpenFlowControllers Performance TEST SETUP – May 1st, 2011 • Machines: 2 x Dell PowerEdge 2950 (1 for controller, 1 for benchmarkerandpacketcapturing)CPU: 2 x Intel(R) Xeon(R) CPU E5405 (4 Cores, 12M Cache, 2.00 GHz, 1333 MHz FSB) • RAM: 4GB • Network: 2 x Gigabitports (tg3 driver) • Buffer sizes: TODO • TCP setting: • OS: DebianSqueeze 32-bit • Kernel: 2.6.32-5-686-bigmem • BoostLibrary: v1.42 (libboost-all-dev) • malloc: Google'sThread-CachingMalloc (libgoogle-perftools-dev) • Java: Sun Java 1.6.0_24 (sun-java6-jdk) • Connectivity: machines are connected via 2 directly attached gigabit links. Directly connected interfaces have IP addresses in the same broadcast domain. The second connection is used to run a second instance of the benchmarker software in case more bandwidth is needed for the test.

  8. OpenFlowControllers Performance • Controller configuration: • nox: must be configured with "--enable-ndebug" passed to the configure script. • nox_d: must be configured with "--enable-ndebug --with-python=no" passed to the configure script. • beacon: see beacon.ini • maestro: see conf/openflow.conf • Control application used: Layer-2 learning switch application. The switch application is a good representative of the controller flow handling performance with tunable read/write ratio (number of unique MAC addresses). • Running controllers: Turn off debugging and verbose output. • nox: ./nox_core -i ptcp:6633 switch • nox_d: ./nox_core -i ptcp:6633 switch -t $NTHREADS • beacon: ./beacon • maestro: ./runbackground.pl conf/openflow.conf conf/learningswitch.dag • Setting CPU affinity for controllers: The following script binds the running threads of a controller to different CPUs (on an 8-core system). Just replace $CTRLNAME with a unique part of controller's binary name (e.g., nox for nox and nox_d). (maestro's runbackground already sets cpu affinity). • Running the benchmarker: • Get the latest version of oflops and compile it. • Run with cbench -c $ctrladdr -p $port -s $nswitch -m $duration -l $loop -t where $ctrladdr and $port are controller IP address and port number respectively, $nswitch is the number of emulated switches, $duration is the duration of test, and $loop is the number of times to repeat the test. The -t option is for running the throughput test: omit it for the latency test.

  9. OpenFlowControllers Performance

  10. OpenFlow software switch Options • Reference Linux Switch: This implementation runs on the widest variety of systems and is easy to port. It is also the slowest, as it cannot take advantage of multiple CPUs and requires kernel-to-user-space transitions. It supports as many ports as you can fit in a PC (8+), including wired and wireless ports. Select platform for further instructions: • NetFPGA Switch: This switch offers line-rate performance for 4 Gigabit ports, regardless of packet size, via hardware acceleration. It requires the purchase of a NetFPGA card, which is $500 for researchers and $1000 for industry. More NetFPGA details are available at www.netfpga.org. • Open vSwitch: Open vSwitch is a multilayer virtual switch, licensed under the open source Apache 2 license, with OpenFlow support. Open vSwitch currently supports multiple virtualization technologies including Xen/XenServer, KVM, and VirtualBox. • OpenWRT: By porting OpenFlow support to OpenWrt, we convert a cheap commercial wireless router and access point into an OpenFlow-enabled switch with a WebUI and a CLI. • NetMagic – The platform is designed with a novel patented architecture, where a common high-density Field Programmable Gate Array (FPGA) device with a combination of commodity Ethernet switching chip can provide the both the high-speed Gigabit Ethernet switching capacity and reconfigurable user-defined packet handling function.

  11. NetMagic x NetFPGA

  12. Expedient

  13. References • OpenFlow – http://www.openflow.org/ • NOX - http://noxrepo.org/wp/ • Beacon - https://openflow.stanford.edu/display/Beacon/Home • Maestro - http://code.google.com/p/maestro-platform/ • Trema - http://trema.github.com/trema/ • SNAC - http://www.openflow.org/wp/snac/ • Big Switch – http://www.bigswitch.com/ • SNAC - http://snacsource.org • NetMagic – http://www.netmagic.org/

More Related