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

the beacon openflow controller
SMART_READER_LITE
LIVE PREVIEW

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++


slide-1
SLIDE 1

The Beacon OpenFlow Controller

www.beaconcontroller.net David Erickson Stanford

slide-2
SLIDE 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

slide-3
SLIDE 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

slide-4
SLIDE 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.

slide-5
SLIDE 5

One more thing…

  • Other useful features

– Runtime Modularity – Fast, Fully Multithreaded

slide-6
SLIDE 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

slide-7
SLIDE 7

Language Exploration

Language Fast Compilation Managed Memory Cross Platform High Performance C#

?

Java

?

Python

slide-8
SLIDE 8

Why Modularity?

  • Code level

– Interfaces, Implementations

  • Start Time

– Select apps to run

  • Run Time
slide-9
SLIDE 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
slide-10
SLIDE 10

Beacon

Applications Core Topology Device Mgr Routing Your App!

OpenFlow

Learning Switch Web UI Northbound Southbound Your App!

slide-11
SLIDE 11

PacketIn PacketIn

Performance

Core PacketIn Decode Device Manager Topology Routing Thread Thread Thread Applications

  • Each app gets OFMessages from all threads
slide-12
SLIDE 12

Read Designs

  • Run to Completion
  • Shared Queue

Read Queue Write

Shared Queue App 1 App 2 App 3

Read Queue Write

I/O Threads Pipeline Threads

Read Pipeline Write

App 1 App 2 App 3

Read Pipeline Write

I/O Threads

slide-13
SLIDE 13

Write Designs

  • Immediate
  • Batched

Application: Core (I/O Loop): Kernel: Application: Core (I/O Loop): Kernel:

  • Write

Time

slide-14
SLIDE 14

Performance

  • Cbench

– Run on EC2, cluster compute instance – Easily reproducible – Throughput mode

Shared Queue Run to Completion Immediate Beacon Imm. Batched Beacon Queue Beacon Read Path Write Path

slide-15
SLIDE 15

Single Threaded Controllers

Shared Queue Run to Completion Immediate Beacon Imm. Batched Beacon Queue Beacon

Read Path Write Path

slide-16
SLIDE 16

Multithreaded Controllers

12.8M

Shared Queue Run to Completion Immediate Beacon Imm. Batched Beacon Queue Beacon

Read Path Write Path

slide-17
SLIDE 17

Conclusions

  • Productivity++
  • Runtime Modularity
  • Performance
  • Open Source Progeny

– 2012 – Floodlight

  • http://www.projectfloodlight.org/floodlight/

– 2013 – OpenDaylight Controller

  • http://www.opendaylight.org/
slide-18
SLIDE 18

Questions?

www.beaconcontroller.net David Erickson Stanford