The State of (Open Source) SDN and Programming Language Opportunities

Slides:



Advertisements
Similar presentations
OpenFlow and Software Defined Networks. Outline o The history of OpenFlow o What is OpenFlow? o Slicing OpenFlow networks o Software Defined Networks.
Advertisements

November 2013 Jan Medved, Reinaldo Penno
SDN Controller Challenges
A Brief Introduction to SDN and OpenDaylight
OpenDaylight Overview for Developers David Meyer Chair, OpenDaylight Technical Steering Committee OpenDaylight | ONS Developer Breakout.
The OpenDaylight Project London ODLUG, November 3 rd, Colin TSC Chair, OpenDaylight Principal Engineer, Brocade.
OpenDaylight: An Open Source SDN for Your OpenStack Cloud Stephan Baucke, Ericsson Kyle Mestery, Cisco Anees Shaikh, IBM Chris Wright,
Hydrogen Helium Lithium
Slide title 70 pt CAPITALS Slide subtitle minimum 30 pt Vpn service Ericsson.
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Software Defined Networking.
ViSION Status Update Dan Savu Stefan Stancu 1D. Savu - CERN openlab.
SDN and Openflow.
Network Innovation using OpenFlow: A Survey
OpenDaylight Architecture ONF Member Work Day February 12 th, 2015 Colin TSC Chair, OpenDaylight Principal Engineer, Brocade.
ODL Release Vehicles. Base Network Service Functions Management GUI/CLI Controller Platform Southbound Interfaces & Protocol Plugins OpenDaylight APIs.
Gap Analysis of Simplified Use of Policy Abstractions (SUPA) Presenter: Jun Bi draft-bi-supa-gap-analysis-02 IETF 92 SUPA BoF Dallas, TX March 23, 2015.
Exploring OpenDaylight
Helium Hydrogen. AAA: Authentication, Authorization & Accounting AuthN: Authentication BGP: Border Gateway Protocol COPS: Common Open Policy Service DLUX:
An Overview of Software-Defined Network
NOV 20, 2014 Abi Varghese Tiju John Mahesh Govind
Traffic shaping with OVS and SDN Ramiro Voicu Caltech LHCOPN/LHCONE, Berkeley, June
An Overview of Software-Defined Network Presenter: Xitao Wen.
Interoperability is Key to Accelerating SDN Adoption Neela Jacques Executive Director OpenDaylight Projectt.
ONF Configuration and Management WG Jürgen Quittek
OpenDaylight Introduction and Overview David Meyer SP CTO and Chief Scientist
Software-Defined Networks Jennifer Rexford Princeton University.
Software Defined-Networking. Network Policies Access control: reachability – Alice can not send packets to Bob Application classification – Place video.
SDN : What We’ve Learned Martìn Casado I’ve. Outline SDN : a History SDN : a Definition SDN : What I’ve Learned.
OpenDaylight project introduction An open source project under the Linux Foundation with the goal of furthering the adoption and innovation of Software.
Programmable Networks: Active Networks + SDN. How to Introduce new services Overlays: user can introduce what-ever – Ignores physical network  perf overhead.
Networks big switch Hard Problems in SDN Rob Sherwood SDNRG – Atlanta, November 2012.
OpenDaylight: Introduction, Lithium and Beyond Colin Dixon Technical Steering Committee Chair, OpenDaylight Senior Principal Engineer, Brocade Some content.
Vic Liu Liang Xia Zu Qiang Speaker: Vic Liu China Mobile Network as a Service Architecture draft-liu-nvo3-naas-arch-01.
OpenDaylight: Introduction, Lithium and Beyond
SDN AND OPENFLOW SPECIFICATION SPEAKER: HSUAN-LING WENG DATE: 2014/11/18.
OpenDaylight and the Rise of Open Source, Software Networking
SDN Management Layer DESIGN REQUIREMENTS AND FUTURE DIRECTION NO OF SLIDES : 26 1.
A Brief Introduction to OpenDaylight Colin Dixon Technical Steering Committee Chair, OpenDaylight Senior Principal Engineer, Brocade Some content from:
Extending OVN Forwarding Pipeline Topology-based Service Injection
Improving Network Management with Software Defined Network Group 5 : z Xuling Wu z Haipeng Jiang z Sichen Wu z Aparna Sanil.
P4 Amore! ( Or, How I Learned to Stop Worrying and Love P4) Jennifer Rexford Princeton University.
December 30, 2015 Richard Chien Marko Lai Jason Yuan
Azher Mughal / Beraldo Leal Programming OpenFlow Flows for Scientific Profit 1 Azher Mughal / Beraldo Leal SuperComputing 2015.
Introduction to Avaya’s SDN Architecture February 2015.
What’s New and Hot in OpenDaylight Beryllium Colin Dixon TSC Chair, OpenDaylight Distinguished Engineer, Brocade.
Clustering in OpenDaylight
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
Time Series Data Repository #ODSummit - The Generic, Extensible, and Elastic Data Repository in OpenDaylight for Advanced Analytics.
Test and Performance Integration Group.
Author: Maros Marsalek (Honeycomb PTL)
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Preliminaries: EE807 Software-defined Networked Computing KyoungSoo Park Department of Electrical Engineering KAIST.
Software Defined Networking BY RAVI NAMBOORI. Overview  Origins of SDN.  What is SDN ?  Original Definition of SDN.  What = Why We need SDN ?  Conclusion.
OpenDaylight Hydrogen Release Sept 2, 2013.
Exploring OpenDaylight Matt Younkins
SDN Controller/ Orchestration/ FastDataStacks Joel Halpern (Ericsson) Frank Brockners (Cisco)
Luis Gomez, Principal SW Test Engineer, Brocade
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Instructor Materials Chapter 7: Network Evolution
Some slides have been adapted from:
IP/MPLS Backbone Transition to SDN: OpenDaylight Advisory Board
6.829 Lecture 13: Software Defined Networking
Software Defined Networking (SDN)
Chapter 5 Network Layer: The Control Plane
ONOS Drake Release September 2015.
Indigo Doyoung Lee Dept. of CSE, POSTECH
Software Defined Networking (SDN)
Link State on Data Center Fabrics
Software Defined Networking
Chapter 5 Network Layer: The Control Plane
Presentation transcript:

The State of (Open Source) SDN and Programming Language Opportunities Colin Dixon Technical Steering Committee Chair, OpenDaylight Principal Engineer, Brocade Some content from: David Meyer, Neela Jaques, Kevin Woods, and others

Outline What I know a lot about What I know a lot less about Who I am and why I’m here A brief history of SDN Problems that I have What I know a lot less about Ideas for how to solve them in “nice” ways …instead of my normal systemsy hacks

Colin Dixon PhD Univ. of Washington 2011 IBM Research Austin 2012–14 Started with ODL in late 2012 OpenDaylight 2012-present Committer-at-Large (9/2014) TSC Chair (10/2014) Brocade 2014-present Grad Student Research Lab Academic Working on products Working in Open Source Industry Shipping products

This is just Controllers A brief history of SDN This is just Controllers Original Papers 4D (2004/2005) SANE/Ethane (2006/2007) OpenFlow (2008) Onix (2010) (Open Source) Software Open vSwitch (2009) NOX/POX (2009/2011) Beacon (2010) Trema (2011) Floodlight (2011/2012) Ryu (2011/2012) OpenDaylight (2013) ONOS (2014) explosion

Traditional SDN (OpenFlow) The separation of the control and data planes Install table entry, send packet SDN Controller Modern switches Control/data plane both on switch Data plane: fast, reads tables Control plane: slow, writes tables SDN Decouple control/data planes Data plane on the switch Control plane elsewhere, e.g., an x86 server, can do fancier things 0C->4 Most features go here Control Plane CPU Table miss, send to controller This gets smaller, turns into controller to switch chip translator dst port 0E 6 0A 1 0C 4 dst port 0E 6 dst port 0E 6 0A 1 Switch Chip 0A->0E 0A->0E 0A->0C Ports, 1-6

Control/Management Protocols Modern, Inclusive SDN Logically Centralized SDN Controller Northbound API Vendor A control mgmt Vendor B Vendor C control mgmt Industry Standard Control/Management Protocols NETCONF/YANG control mgmt mgmt mgmt mgmt Standard Modeling Language control control control Vendor A Vendor B Vendor C So, I just talked about what SDN looks like when you do it with one device, but what does this look like when we expand things beyond a single device? This is where things get interesting. [Needs text at the bottom and some flow. Added points: Not just control, but also management and orchestration Not just physical boxes, but logical boxes, NFV It’s at least as much about abstraction as separation Also, faster innovation]

Acquisitions (very incomplete) 2012: Nicira => VMware (1.26B) 2012: Contrail => Juniper (176M) 2013: Insieme => Cisco (863M) 2014: Tail-F => Cisco (175M) 2015: Cyan => Ciena (400M)

Deployed in Production Today AT&T’s Domain 2.0 initiative Broad attempt to move to SDN and NFV in a major way BWoD runs us Brocade’s OpenDaylight-based controller Also see: Google, Microsoft, VMware, etc.

Summary SDN has gone from wild, crazy academic idea to reality Tons of attention from academia and industry Sustained ~1B/year in acquisitions Along the way it’s changed a lot Not just about separation of the control plane from the data plane Not just OpenFlow I think it’s the rise of open source software networking

Open Source SDN Projects of Note Akanda OpenContrail CloudRouter Prescriptive Topology Manager MidoNet ONIE Quagga ONOS SocketPlane OVN Weave Open Compute …and many, many more Open Network Linux Orchestration Management/Control Control/ Data Open Network Linux

What is OpenDaylight OpenDaylight is an Open Source Software project under the Linux Foundation with the goal of furthering the adoption and innovation of Software Defined Networking (SDN) through the creation of a common industry supported platform. Code Acceptance Community To create a robust, extensible, open source code base that covers the major common components required to build an SDN solution To get broad industry acceptance amongst vendors and users: • Using it directly or through vendor products • Vendors using OpenDaylight in commercial products To have a thriving and growing technical community contributing to the code base, using the code in commercial products, and adding value above, below and around.

OpenDaylight Releases Hydrogen (first release) February 2014 13 projects, 1.3m lines of code Helium October 2014 25 projects, 2.1m lines of code Lithium (most recent release) June 2015 40 projects, 2.3m lines of code

Controllers in a Cluster Core Architecture Controllers in a Cluster App/Service App/Service Model-Driven Service Abstraction Layer (MD-SAL) Notifications Data RPCs Plugin Plugin YANG Models

What does YANG data look like container ~= struct list ~= map/dictionary leaf ~= primitive types grouping ~= interface Others: typedef, pointers, constraints, etc. grouping node-attributes { leaf node-id { ... } } container network-topology { list topology { key "topology-id"; leaf topology-id { type topology-id; list node { key "node-id"; uses node-attributes; list link { key "link-id"; uses link-attributes;

Why Java? Obvious answer: it’s what we started in, so… Slightly deeper: ~40 companies looking to hire ~10 developers each at some cost Java developers are (a) common, (b) reasonably priced, (c) somewhat safe CUDA/OpenCL : GPUs :: OpenDaylight : Java programmers Would we change to something else? Not everywhere. In some places, maybe.

Programming Language Opportunities Things that are currently causing me problems.

SDN Grand Challenges Centralized vs. Distributed Migration to SDN RAFT distributed consensus algorithm in Helium Continued work on clustering in Lithium and beyond Migration to SDN Support SNMP, BGP, LISP, NETCONF “legacy” protocols Application Composition Support for declarative, intent- based policy Unified models for inventory, topology, and more Hardware Diversity Support for Table Type Patterns Device Driver Framework provides adaptation in Lithium

How to get there from here How do we deploy SDN when it’s not green field Because pretty much nothing is actually green field Hybrid switches, hybrid networks, legacy protocols for interoperability, etc. OpenDaylight supports SNMP, BGP, LISP, NETCONF, etc. Trust and stability Current networks build on 40 years of code/experience How can SDN compete with that? Borrow good code/ideas from legacy code Provide better visibility, debugging, etc. Model checking, verification, etc.

How to get there from here Flowlog’s Exodus, Header Space Analysis, etc. Translate legacy config to SDN programs with correct semantics Works pretty well when everything is “SDN-enabled” In practice, connected to legacy network devices Also, middleboxes MB SDN OF OF OF Loop? Connected? Unreachable?

Centralized vs. Distributed (Consistency, Clustering and Federation) SDN promises a (logically) centralized control plane In practice, we have a distributed cluster of controllers, rather than just one so that we can tolerate faults we can scale out our performance in network partitions there are controllers on both sides Providing consistency, federation, scale-out, dealing with CAP trade-offs, etc. is HARD http://events.linuxfoundation.org/sites/events/files/slides/sdn-consistency-ods2014.pdf https://www.youtube.com/watch?v=XQ-lnB3x30g

Centralized vs. Distributed (Consistency, Clustering and Federation) What properties can I provide when mixing consistency levels? the topology is stored in an eventually consistent manner the actions I take based on it should not diverge Is Irmin one answer?

Hardware Diversity OpenFlow 1.0 provided a lowest common denominator API Real hardware is much more diverse and has many more capabilities Exposing this diversity without burdening developers with per-device programming is hard Some Attempts Programming Protocol-independent Packet Processors (P4) TTPs from the ONF’s FAWG https://www.youtube.com/watch?v=bcaBS6w_k_o http://events.linuxfoundation.org/sites/events/files/slides/TTPs%20and%20NBIs%20for%20ods2014-final_0.pdf http://arxiv.org/pdf/1312.1719v1.pdf

Table Type Patterns Really just a simple way to express fixed OF 1.3 pipelines DAG of tables Legal jumps between tables Legal matches in each table Legal actions/instructions in each table Hope is to be able to map SDN services/apps to these in a sane way Compiler? What’s the source language?

Are TTPs also the source language? L2 Forwarding Broadcom OF-DPA 10-table TTP DMAC => port L2/L3 Fwding/Routing DMAC=>port IP=>nxtHop Netronome Corsa Marvell Soon: HP, Dell, Intel… nxtHop=>port

Why is this hard? Some actions are impossible on a given switch cont Some actions are impossible on a given switch Can “fake” it in the controller Better: use a fast programmable software switch Could even be an end-host vSwitch, host stack, NIC VNF SDN OF OF OF

Application Composition We’re systems people, we can’t help it! How can we let multiple SDN apps share the network? PC OSes partition and allocate resources You can’t easily partition the network It’s value comes from the fact that it spans everything You can in some cases, e.g., by address space (FlowVisor) Some ideas Most apps should be middleboxes, i.e., NFV Simply chain them together in the right order There’s more to it than this, but linear chaining is powerful Other apps are concerned only with the physical path There is hope that conflicts here can be sanely managed Better Idea: DSLs? Have: Neutron, NIC, GBP Coming to ODL: NEMO, Maple, Pyretic

Application Composition The reality in OpenDaylight Some apps written to h/w Other apps written to DSLs Many different DSLs Can I combine different DSLs? What about detecting conflicts with apps with no properties? App2 App3 App4 App1 DSL2 DSL3 comp. comp. composition composition Controller flows on switches

Call to Action

Open source => real impact quickly If you have ideas, they can be real pretty quickly Switches: OF-DPA + Open Network Linux on Broadcom Hardware Controllers: OpenDaylight, ONOS, etc. Orchestration: OpenStack, etc. You don’t have to play with simulators Build the real thing in real code that real people can pick up and use

OpenDaylight in particular Designed to be customized and productized Ridiculously modular Nobody will tell you no (at least to producing a new project) We could really use help, guidance and people.

Backup Slides

Network-wide Security Policy Historically, policy is mostly Rigidly enforced by the physical topology, e.g., firewall at the gateway Configured “dynamically” via box-by-box Access Control Lists (ACLs) New policy efforts are changing this Network Function Virtualization (NFV) and Service Function Chaining (SFC) Automatically generated ACLs based on network-wide policy OpenDaylight is a proving ground for at least 3 policy-oriented projects Service Function Chaining, Group-Based Policy, and Network Intent Composition [Unify with general session]

OpenStack Neutron Integration OpenDaylight has a common Neutron “northbound” provider 3 implementations in Helium 4+ implementations in Lithium Supports L2 network virtualization and Distributed L3 forwarding Security Groups {LB,VPN}aaS Neutron ML2 MechanismDriver OpenDaylight OpenDaylight APIs (REST) Neutron Service VTN Provider OpenContrail Provider OVSDB Provider [Unify with general session]

Programmable EMS and/or NMS Huge number of southbound protocol drivers OpenFlow, NETCONF, OVSDB, SNMP, BGP, PCEP, PCMM/COPS, etc. With a little bit of effort, you can write “shell scripts” for your network to either gather information or automate tasks Automate triggering activities based on network events, e.g., quarantine a host with L2 ACLs based on information from an IDS

How can I get it? OpenDaylight: http://www.opendaylight.org/software/downloads Also commercialized, supported versions from Brocade, Ciena, Cisco, Inocybe, and others Understand the difference between “uses” and “based on” OpenDaylight Policy on “upstreaming” changes and compatibility with other products The Brocade Vyatta Controller is based on unmodified OpenDaylight and upstreams all changes to OpenDaylight Get it here: https://tinyurl.com/BrcdVytaCntrlr

Who is OpenDaylight? [Call out Brocade.]

Who is OpenDaylight? (Really)

Who is OpenDaylight? (Really) Like any Open Source Project, OpenDaylight primarily consists of those who show up to do the work. Running around 300 commits per week over 12 months, trending up 30 Days: ~3200 commits, ~150 contributors (4/1/15–5/1/15; during a release) 12 Months: ~16,000 commits, ~325 contributors (5/1/14–5/1/15) Strong integration and testing community This stuff really matters Source: https://www.openhub.net/p/opendaylight