tinyNBI: Distilling an API from Essential OpenFlow Abstractions - - PowerPoint PPT Presentation

tinynbi distilling an api from essential openflow
SMART_READER_LITE
LIVE PREVIEW

tinyNBI: Distilling an API from Essential OpenFlow Abstractions - - PowerPoint PPT Presentation

tinyNBI: Distilling an API from Essential OpenFlow Abstractions Jasson Casey , Andrew Sutton , Alex Sprintson Texas A&M Univerisity University of Akron Flowgrammable.org Where


slide-1
SLIDE 1

tinyNBI: Distilling an API from Essential OpenFlow Abstractions 


  • Jasson Casey♮♭, Andrew Sutton♯♭,

Alex Sprintson♮♭

  • Texas A&M Univerisity♮

University of Akron♯ Flowgrammable.org♭

slide-2
SLIDE 2

Where are we?

OVSDB NetConf OpenFlow HTTP/S REST API Server infrastructure, SDN libraries, data persistence Switches Switches Switches Switches Switches Switches Switches Switches Switches NetFlow, IPFIX, jFlow, sFlow OpFlex SNMP Plugin API multipath routing bridging DHCP Authentication North Bound Interface South Bound Interface

slide-3
SLIDE 3

Where are we?

OVSDB NetConf OpenFlow HTTP/S REST API Server infrastructure, SDN libraries, data persistence Switches Switches Switches Switches Switches Switches Switches Switches Switches NetFlow, IPFIX, jFlow, sFlow OpFlex SNMP Plugin API multipath routing bridging DHCP Authentication North Bound Interface South Bound Interface

slide-4
SLIDE 4

North Bound Interface (NBI)

  • Glue between controllers and applications
  • API for writing OpenFlow applications

Controller App App App Switch Switch Switch Switch TCP TCP TLS TLS Events C

  • n

t r

  • ll

e r A p p FlowMod PacketIn PacketOut FlowRemoved StatsReq

slide-5
SLIDE 5

Most production networks …

  • are heterogeneous
  • contain multiple vendors
  • contain multiple device types
  • operate varying versions of software
slide-6
SLIDE 6

OpenFlow …

  • has five versions in production
  • has a new versions coming
  • is not additive
  • has a high degree of optionality
slide-7
SLIDE 7

Most Features are Optional

0" 10" 20" 30" 40" 50" 60" 70" Match"1.0" Match"1.1" Match"1.2" Match"1.3" Match"1.4" Instruc5on"1.0" Instruc5on"1.1" Instruc5on"1.2" Instruc5on"1.3" Instruc5on"1.4" Ac5on"1.0" Ac5on"1.1" Ac5on"1.2" Ac5on"1.3" Ac5on"1.4" Port"1.0" Port"1.1" Port"1.2" Port"1.3" Port"1.4" Op5onal" Required"

slide-8
SLIDE 8

Writing OpenFlow applications …

  • requires extensive capability detection
  • requires extensive error handling
  • is not possible without apriori knowledge
  • is not for the average programmer
slide-9
SLIDE 9

Introduce a tiny NBI

OFP 1.4 Stack tinyNBI OFP 1.0 Stack OFP 1.1 Stack OFP 1.2 Stack OFP 1.3 Stack High Performance Controller Simple Application Application Application Switch Switch Switch Switch Switch * Version negotiation * Echo state * Barrier state * Uniform datamodel * Command translation * Server distribution * Application synchronization * Topology discovery (LLDP) * Network dependency management * Targets single switch * Hybrid network behavior * Maintenance behavior nocontrol freeflow

slide-10
SLIDE 10

Introduce a tinyNBI that …

  • has a simple sockets “like” interface
  • abstracts away OpenFlow version details
  • simplifies the capability detection
  • supports cross language bindings
slide-11
SLIDE 11

Read/Write from/to the Data Model

Switch Datapath Port Flow Table Flow Match Instruction Action Meter Group Queue Connection Minimal Control Plane Data Plane Buffer

0..1 1..* 1..* 1..* 1..* 1..* 0..1 0..* 0..1 0..1 0..* 0..1 1..* 1..* 1..* 1..* 1..* 0..*

slide-12
SLIDE 12

Abstractions have …

  • capabilities that are read only
  • configurations that can be read or written
  • statistics that are read only
  • event generation: packet, port, flow
slide-13
SLIDE 13

tinyNBI also introduces…

  • an application lifecycle
  • an allocation model for finite resources
  • capability requirements statement
  • non-native feature offload
slide-14
SLIDE 14

Questions?

Switch Datapath Port Flow Table Flow Match Instruction Action Meter Group Queue Connection Minimal Control Plane Data Plane Buffer

0..1 1..* 1..* 1..* 1..* 1..* 0..1 0..* 0..1 0..1 0..* 0..1 1..* 1..* 1..* 1..* 1..* 0..*