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

The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

The Beacon OpenFlow Controllerwww.beaconcontroller.net

David Erickson

Stanford

Page 2: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

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

Page 3: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

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

Page 4: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

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.

Page 5: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

One more thing…

• Other useful features

– Runtime Modularity

– Fast, Fully Multithreaded

Page 6: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

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

Page 7: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Language Exploration

Language Fast Compilation

Managed Memory

Cross Platform

High Performance

C#

?Java

?Python

Page 8: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Why Modularity?

• Code level

– Interfaces, Implementations

• Start Time

– Select apps to run

• Run Time

Page 9: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

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

Page 10: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Beacon

Ap

plic

atio

ns

Core

Top

olo

gy

Dev

ice

Mgr

Ro

uti

ng

You

r A

pp

!

OpenFlow

Lear

nin

g Sw

itch

We

b U

I

Northbound

Southbound

Your App!

Page 11: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

PacketIn

PacketIn

Performance

Core

PacketIn

Decode

DeviceManager

Topology Routing

Thread

Thread

Thread

Applications

• Each app gets OFMessages from all threads

Page 12: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Read Designs• Run to Completion

• Shared Queue

Read

QueueWrite

Shared

QueueApp 1 App 2 App 3

Read

QueueWrite

I/O Threads Pipeline Threads

Read

PipelineWrite

App 1 App 2 App 3

Read

PipelineWrite

I/O Threads

Page 13: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Write Designs

• Immediate

• Batched

Application:

Core (I/O Loop):

Kernel:

Application:

Core (I/O Loop):

Kernel:

- Write

Time

Page 14: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

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

Wri

te P

ath

Page 15: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Single Threaded Controllers

Shared Queue Run to Completion

Immediate Beacon Imm.

Batched Beacon Queue Beacon

Read Path

Wri

te P

ath

Page 16: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Multithreaded Controllers12.8M

Shared Queue Run to Completion

Immediate Beacon Imm.

Batched Beacon Queue Beacon

Read Path

Wri

te P

ath

Page 17: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Conclusions

• Productivity++

• Runtime Modularity

• Performance

• Open Source Progeny

– 2012 – Floodlight

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

– 2013 – OpenDaylight Controller

• http://www.opendaylight.org/

Page 18: The Beacon OpenFlow Controller - SIGCOMM · The Beacon OpenFlow Controller David Erickson Stanford. Motivation ... •Am I going to be using a controller platform for awhile? –Yes

Questions?www.beaconcontroller.net

David Erickson

Stanford