Floodlight - Overview


Published on

An overview of the Floodlight OpenFlow Controller from the Big Switch networks team.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Our topology, device manager know about host attachment points and make it possible to deal with integrating openflow and non openflow networks.
  • Our topology, device manager know about host attachment points and make it possible to deal with integrating openflow and non openflow networks.
  • Floodlight - Overview

    1. 1. Software-Defined Networking and the Floodlight controllerMike CohenBig Switch NetworksMike.cohen@bigswitch.comAlex ReimersBig Switch NetworksAlex.reimers@bigswitch.com
    2. 2. Agenda  Overview  Architecture  Applications  Demo©2012 – Big Switch Networks Inc.
    3. 3. Big Switch Networks Overview People @ Big Switch Big Switch Networks is a market leader in Guido Appenzeller Software-Defined Networking and a strong CEO, Big Switch Networks proponent of OpenFlow technology Former Consulting Assistant Professor at Stanford University, led the team that developed OpenFlow 1.0 Open Source Projects include:  Floodlight Rob Sherwood MTS, Big Switch Networks  Indigo Author of FlowVisor and key architect  OFTest of OpenFlow 1.0  More to come… Dan Talayco MTS, Big Switch Networks Former member of the Stanford OpenFlow Team. Led development of Yes, we’re hiring! the Indigo reference implementation  Contact me or careers@bigswitch.com Others include: Isabelle Guis, Omar Baldonado, Howie Xu, Mansour Karam, Nick Bastin, Saurav Das, and many others…©2012 – Big Switch Networks Inc. 3
    4. 4. Floodlight Overview©2012 – Big Switch Networks Inc.
    5. 5. Floodlight Overview An Apache licensed OpenFlow Controller  Developer friendly Apache license  Easy to use, extensible Java development environment  Enterprise grade - Core engine used and supported by Big Switch Networks (running in production today)  Supports a broad range of physical and virtual OpenFlow switches  OF 1.0 compliant today – future OF versions on the way©2012 – Big Switch Networks Inc. 5
    6. 6. Floodlight Users and Contributors Floodlight Adopters: • University research • Networking vendors • Users • Developers / startups©2012 – Big Switch Networks Inc. 6
    7. 7. Floodlight Switch Compatibility A snapshot from Interop©2012 – Big Switch Networks Inc. 7
    8. 8. Floodlight Growth Downloads of Floodlight since January launch 7000 • Over 200 mailing list posts / month 6000 • Run rate of 1200+ downloads / month 5000 4000 3000 Mailing list 2000 posts per month 1000 0©2012 – Big Switch Networks Inc. 8
    9. 9. Building Floodlight Fast…and easy… Download from Github $ git clone git://github.com/floodlight/floodlight.git $ sudo apt-get install build-essential default-jdk ant python-dev $ cd floodlight; ant $ java –jar target/floodlight.jar Get the VM (including mininet) $ wget http://floodlight.openflowhub.org/files/floodlight-vm.zip (login as “floodlight” user, no password)©2012 – Big Switch Networks Inc. 9
    10. 10. Floodlight Roadmap Recently launched: Roadmap:  OpenFlow 1.x support  Module system  Command line interface  Ubuntu PPA’s  Persistent storage  Quantum / OpenStack  Python / Jython support  Web UI  Firewall, Load balancer apps  Performance improvements  Web UI 2.0  Stable northbound APIs  Better Documentation©2012 – Big Switch Networks Inc. 10
    11. 11. Programming Floodlight©2012 – Big Switch Networks Inc.
    12. 12. Floodlight Architecture Overview FloodlightProvider (IFloodlightProviderService)  Floodlight is a collection of modules TopologyManager (ITopologyManagerService) LinkDiscovery  Some modules (not all) export (ILinkDiscoveryService) services Forwarding DeviceManager  All modules in Java (IDeviceService) StorageSource (IStorageSourceService)  Rich, extensible REST API RestServer (IRestApiService) StaticFlowPusher (IStaticFlowPusherService) VirtualNetworkFilter (IVirtualNetworkFilterService)©2012 – Big Switch Networks Inc. 12
    13. 13. Floodlight Architecture Module descriptions FloodlightProvider  Translates OF messages to Floodlight events (IFloodlightProviderService)  Managing connections to switches via Netty TopologyManager  Computes shortest path using Dijsktra (ITopologyManagerService)  Keeps switch to cluster mappings LinkDiscovery  Maintains state of links in network (ILinkDiscoveryService)  Sends out LLDPs  Installs flow mods for end-to-end routing Forwarding  Handles island routing DeviceManager  Tracks hosts on the network (IDeviceService)  MAC -> switch,port, MAC->IP, IP->MAC StorageSource  DB style storage (queries, etc) (IStorageSourceService)  Modules can access all data and subscribe to changes RestServer  Implements via Restlets (restlet.org) (IRestApiService)  Modules export RestletRoutable StaticFlowPusher  Supports the insertion and removal of static flows (IStaticFlowPusherService)  REST-based API VirtualNetworkFilter  Create layer 2 domain defined by MAC address (IVirtualNetworkFilterService)  Used for OpenStack / Quantum©2012 – Big Switch Networks Inc. 13
    14. 14. Floodlight Programming Model Northbound APIs IFloodlightModule  Java module that runs as part of Floodlight External  Consumes services and events exported by Application other modules  OpenFlow (ie. Packet-in)  Switch add / remove REST IFloodlight-  Device add /remove / move Module  Link discovery Floodlight Controller External Application  Communicates with Floodlight via REST Switch  Quantum / Virtual networks Switch  Normalized network state vSwitch  Static flows Switch©2012 – Big Switch Networks Inc. 14
    15. 15. REST API Reference A moving target…but… Network State Static Flows Virtual Network User Extensions List Hosts Add Flow Create Network … List Links Delete Flow Delete Network List Switches List Flows Add Host GetStats (DPID) RemoveAll Flows Remove Host GetCounters (OFType…) Floodlight Controller Switch Switch Switch vSwitch©2012 – Big Switch Networks Inc. 15
    16. 16. Programming Floodlight (1) Using the REST API  Fine-grained ability to push flows over REST  Access to normalized topology and device state  Extensible access to add new APIs©2012 – Big Switch Networks Inc. 16
    17. 17. Programming Floodlight (2) Creating a module  Handle OpenFlow messages directly (ie. PacketIn)  Expose services to other modules  Add new REST APIs©2012 – Big Switch Networks Inc. 17
    18. 18. Cool Floodlight Applications©2012 – Big Switch Networks Inc. 1
    19. 19. Programmable Patch Panel A Floodlight iPhone application  A simple programmable patch panel built from:  Floodlight  Pronto 3290 switch running Indigo  Uses Static Flow Pusher API to redirect traffic between two ports  Runs remotely on the iPhone!  Available: http://virtualnow.net/2012/05/03/using- an-openflow-switch-as-a-programmable- patch-panel/©2012 – Big Switch Networks Inc. 19
    20. 20. vArmour: Security for OpenFlow  Founded by security veterans from NetScreen  Security device integrated with Application Application Application the Floodlight controller  Showcased the first SDN-capable Floodlight Controller deep packet inspection working Switch with Floodlight at the Open Switch Networking Summit Switch Switch Contact: http://www.varmour.com/©2012 – Big Switch Networks Inc. 20
    21. 21. MobiFlow: Floodlight iPad Interface  Built be Saurabh Sabnis, Georgia Tech  Interface to view switches, hosts, netwo rk topology, and statistics  Access to Static Flow Pusher API  Available: Coming soon©2012 – Big Switch Networks Inc. 21
    22. 22. OpenStack and Quantum©2012 – Big Switch Networks Inc. 2
    23. 23. Floodlight OpenStack Integration Virtual Networking Support Components:  RestProxy plugin runs inside Quantum Quantum module in OpenStack RestProxy  VirtualNetworkFilter implements layer 2 Plugin isolation based on MAC Highlights:  Supports physical and virtual switches in VirtualNetwork OpenFlow networks Filter  Caveats: Floodlight Controller  No multicast and broadcast isolation  All DHCP traffic allowed Switch vSwitch Switch vSwitch©2012 – Big Switch Networks Inc.
    24. 24. OpenStack / Floodlight Demo OpenStack-in-a-VM 1. Create two quantum networks Core Processes VirtualNetwork Filter Quantum 2. Launch 2 hosts in one network: [,] RestProxy Floodlight Plugin Controller 3. Launch 1 host in the other [] OpenStack / Quantum Network 4. Test pings: Open vSwitch 1. -> [OK] 2. -> [NO] Host52 Host53 Each network is in an isolated layer Host62 2 domain enforced by Floodlight’s VirtualNetworkFilter.©2012 – Big Switch Networks Inc. 24
    25. 25. OpenFlowHub and Other Open Source Projects©2012 – Big Switch Networks Inc.
    26. 26. Get Involved with OpenFlowHub Join the community! What it is: Get involved: 1. A community of open source  Submit a project OpenFlow developers  Write a blog post 2. An OpenFlow Blog (available for guest authors)  http://www.openflowhub.org 3. Free hosting, tools, and promotion  Contact: for open source projects mike.cohen@openflowhub.org  Wiki, forums, bug tracking tools, logos, etc. Projects:©2012 – Big Switch Networks Inc. – Proprietary and Confidential 26
    27. 27. OFTest: Validating OpenFlow Switches  A python-based framework and set of tests for OpenFlow switches  Includes over 60 tests exercising various aspects of OpenFlow  Useful for testing new OpenFlow implementations and assessing standards compliance OFTest connects to both the data plane and control plane of the switch to Available: http://oftest.openflowhub.org/ simulate and monitor OpenFlow messages©2012 – Big Switch Networks Inc. 27
    28. 28. LOXI Logical OpenFlow eXtensible Interface Challenge: The OF specification lives in openflow.h openflow.h openflow.h  Tight coupling of wire format and datastructures V1.2 V1.1 Input  New version of OpenFlow 1.x == LOTS of code openflow.h openflow.h change V1.3 V1.0  Few non 1.0 switches and controllers have emerged LOXI Parser Front- Solution: LOXI, an interface that hides OpenFlow wire end format differences  Write once, run across any OF version Code Gen Python Java C  Support for multiple languages Back-end Back-end Back-end  Example: match MPLS tag XX  OF 1.0 – unsupported  OF 1.1 – fixed length match Output LOXI.py LOXI.jar libLOXI.a  OF 1.2+ - OXM-style match Available: Coming soon…©2012 – Big Switch Networks Inc. 28
    29. 29. Indigo An OpenFlow switch reference implementation Version 1:  Designed for hardware switches and released under OpenFlow license in 2009  Support for 1G and 10G Broadcom chips Version 2.0 (coming soon):  Based on LOXI – OF 1.x support for free  Apache 2.0 license  Support for multiple datapaths, both hardware and software  Config abstraction layer for easily integrating UI’s Available (1.0): http://indigo.openflowhub.org©2012 – Big Switch Networks Inc. 29
    30. 30. Interested in Learning More?  Check out the website  http://floodlight.openflowhub.org  Join the mailing list:  http://groups.google.com/a/openflowhub.org/group/floo dlight-dev/topics  Or just email floodlight-dev@openflowhub.org  Get the code:  http://floodlight.openflowhub.org/download©2012 – Big Switch Networks Inc. 30
    31. 31. Thanks! Mike Cohen Mike.cohen@bigswitch.com Big Switch Networks Alex Reimers Alex.reimers@bigswitch.com Big Switch Networks Floodlight mailing list: floodlight-dev@openflowhub.org©2012 – Big Switch Networks Inc.