Software Defined Networks

5 downloads 167151 Views 790KB Size Report
FRP continuous behavior and discrete reactivity. Bacon.js javascript libraries. SDN Controller, Graphics, Robotics, GUIs, Vision potential applications. RxJS. Elm ...
Software Defined Networks From Policy Composability Toward Graphical Workflows

Agenda 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Functional Reactive Programming Architecture Implementation Policy Composition Applications Network Model Deployment Advantages Future Plans

Functional Reactive Programming SDN Controller, Graphics, Robotics, GUIs, Vision

Bacon.js

RxJS

Elm

FRP

Functional Programming

potential applications

javascript libraries

continuous behavior and discrete reactivity

functions, types, etc (Javascript)

Functional Reactive Programming FRP has two key abstractions: 1. Continuous time-varying behaviors (Properties in Bacon.js) 2. Discrete streams of events (EventStreams in Bacon.js). Operations on event streams include: 1. mapping 2. filtering 3. reduction 4. etc.

Layered System Architecture Workflow GUI

Routing

Monitoring

Load Balancing

policies and composition of policies

FRP (Bacon.js)

NodeFlow

Node.js

OpenFlow

Javascript on all stack

Implementation 1. Node.js 2. Mininet 3. NodeFlow controller 4. Bacon.js FRP 5. Underscore.js for functional compositions 6. Draw2D.js for workflows 7. Neo4J

Policies as functions that process messages (events) var clearOnJoin = function(evt) { var switchJoinEvt = evt.filter( function(obj) { return obj.message.header.type == 'OFPT_HELLO' }) switchJoinEvt.onValue(function(obj) { clearTable() }) return switchJoinEvt } var floodPackets1 = function(evt) { var packetInEvt = evt.filter( function(obj) { return obj.message.header.type == 'OFPT_PACKET_IN' }) packetInEvt.onValue(function(obj) { sendReceivedPacketFlood() }) return packetInEvt } var controller1 = function(evt) { var clearCmd = clearOnJoin(evt) var floodCmd = floodPackets1(evt) return floodCmd.awaiting(clearCmd) } // activation of controller1 controller1( Bacon.fromArray( msgs ).toProperty() )

Composition ● Composition allows building out of a large application (SDN controller) by partially applying a core set of functions (policies) ● The functions can be plugged in or pulled apart depending on the requirements. ● Composition primitives: a. serial b. parallel

Applications 1. Hub Implementation: first ping delayed. hhh 2. MAC learner 3. Monitoring 4. Load Balancers

Network Model: Overview

BGP(1)

BGP(2)

IPsec

VLAN

MPLS(1)

MPLS(2)

Simulated Deployment Mininet (Hub)

H1

S1

S3

H3

H2

S2

S4

H4

S1..4 - Switches H1..4 - Hosts

Network Deployment (from [3])

Advantages 1. Javascript on entire stack 2. Node.js reactive event driven callback architecture perfectly suited to OpenFlow 3. Speed and scalability from Google's V8 engine 4. Ease of use of composition operators and workflows 5. SDN (or Networks) as a Service 6. Avoids writing and understanding of DSLs as it is the case with Pyretic or Nettle 7. Reuse of libraries (Bacon.js) both in GUI and in

Future Plans 1. Federation of Controllers using dnode, upnode, fleet and Neo4J 2. Interdomain communication protocol of Controllers 3. Java port with Opendaylight and RxJava FRP 4. Develop FRP operators in m3Data 5. Scalability tests 6. Deployment on a datacenter using openvswitch and then on multiple domains 7. Encrypt policies 8. Policies as apps or installable by npm nodejs modules

References 1.

Andreas Voellmy and Paul Hudak Nettle: Functional Reactive Programming of OpenFlow Networks

2.

Christopher Monsanto, Joshua Reich, Nate Foster, Jennifer Rexford, David Walker Composing Software-Defined Networks

3.

R. Esteves, L. Granville and R. Boutaba. On the Management of Network Virtualization. IEEE Communications Magazine. Accepted April 2013.

4.

DMTF CIM Network Model

5.

Alexander Clemm and Ralf Wolter Network-Embedded Management and Applications: Understanding Programmable Networking Infrastructure (Jul 24 2012)

Suggest Documents