the beacon openflow controller
play

The Beacon OpenFlow Controller www.beaconcontroller.net David - PowerPoint PPT Presentation

The Beacon OpenFlow Controller www.beaconcontroller.net David Erickson Stanford Motivation Back to circa 2008-2009 The OpenFlow controller world == NOX Single threaded event based C++ with SWIG glue to Python Python apps C++


  1. The Beacon OpenFlow Controller www.beaconcontroller.net David Erickson Stanford

  2. Motivation • Back to circa 2008-2009 • The OpenFlow controller world == NOX – Single threaded event based C++ with SWIG glue to Python – Python apps – C++ apps

  3. Great! … • … but room for improvement • Python – Inconsistent API between C++/Python (SWIG) – Significantly slower than C++ • C++ – Slow compilation – Cryptic compilation errors (STL, templates) – Manual memory management – Linux only, significant list of dependencies

  4. Questions • Can I contribute solutions to these issues to NOX? – Yes to some. – No to others due to programming language. • Am I going to be using a controller platform for awhile? – Yes. • Should I try and build one that improves on these problems? – Probably. – Sigh.

  5. One more thing… • Other useful features – Runtime Modularity – Fast, Fully Multithreaded

  6. Improvement Summary • Language Specific – Slow compilation – Cryptic compilation errors (STL, templates) – Manual memory management – Linux only, significant list of dependencies • Implementation – Runtime Modularity – Fast, Fully Multithreaded

  7. Language Exploration Language Fast Managed Cross High Compilation Memory Platform Performance C# ? Java ? Python

  8. Why Modularity? • Code level – Interfaces, Implementations • Start Time – Select apps to run • Run Time

  9. What is Runtime Modularity? • SDN Controller ~= Operating System – Stop, Start, Install, Remove Apps at Runtime • Uses – Application restart – Online App Store – Live Updates – Debugging • Enabled by OSGi

  10. Southbound Northbound Applications OpenFlow Learning Switch Beacon Your App! Topology Device Mgr Core Routing Web UI Your App!

  11. Performance Decode Applications Thread PacketIn PacketIn Thread Device Topology Routing Manager Thread PacketIn Core • Each app gets OFMessages from all threads

  12. Read Designs • Run to Completion I/O Threads Read Write Pipeline App 1 App 2 App 3 Read Write Pipeline • Shared Queue Pipeline Threads I/O Threads Read Write Queue Shared App 1 App 2 App 3 Queue Read Write Queue

  13. Write Designs • Immediate - Write Application: Core (I/O Loop): Kernel: • Batched Time Application: Core (I/O Loop): Kernel:

  14. Performance • Cbench – Run on EC2, cluster compute instance – Easily reproducible – Throughput mode Read Path Shared Queue Run to Completion Write Path Immediate Beacon Imm. Batched Beacon Queue Beacon

  15. Single Threaded Controllers Read Path Shared Queue Run to Completion Write Path Immediate Beacon Imm. Batched Beacon Queue Beacon

  16. Multithreaded Controllers 12.8M Read Path Shared Queue Run to Completion Write Path Immediate Beacon Imm. Batched Beacon Queue Beacon

  17. Conclusions • Productivity++ • Runtime Modularity • Performance • Open Source Progeny – 2012 – Floodlight • http://www.projectfloodlight.org/floodlight/ – 2013 – OpenDaylight Controller • http://www.opendaylight.org/

  18. Questions? www.beaconcontroller.net David Erickson Stanford

Recommend


More recommend