SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
OpenFlow Controller




http://floodlight.openflowhub.org
About Us
Big Switch Networks


 Big Switch Networks builds and promotes Open
     Software Defined Networking Solutions



 We use and help support Floodlight and a number of
     other OpenFlow tools



 Yes, you can contact us about jobs and internships at
     careers@bigswitch.com



 ©2012 – Big Switch Networks Inc.                         2
Introduction

 Floodlight overview
 Floodlight architecture
 Demo!




 ©2012 – Big Switch Networks Inc.   3
Floodlight Overview




          Floodlight is a completely open,
          free, Apache-licensed Java-based
          OpenFlow controller.




©2012 – Big Switch Networks Inc.             4
Floodlight Controller
A great platform for OpenFlow




            Research and                        Easy to build, run, and
            commercial friendly                develop



                                    Toolchain


            Rich set of build and               Community of OpenFlow
            debugging tools                     experts, access to commercial
                                                upgrades, and frequent testing
 ©2012 – Big Switch Networks Inc.                                                5
Building Floodlight
Fast…an 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.                                6
Other Floodlight Highlights

                                                                   REST-      Static    2
 1                                                                 based      Flow
                                                                    App      Pusher     Java event APIs



                                               Jython App
 Active work in
                                    Java App
     defining                                                                           REST-based APIs
     standard
     “Northbound”
     APIs                                                                               Ability to push flows




                                                            Floodlight Controller
                                                                                                     3
                                                              Switch                                  Support for
                                                                                       OF Switch         integrating with
                                                                                                         non-OpenFlow
                                                                       OF Switch                         networks
                                OF Switch


                                                      OF Switch
 ©2012 – Big Switch Networks Inc.                                                                                           7
OpenFlowHub
A community of open source OpenFlow developers

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 marketing       Contact:
      for open source projects
                                             mike.cohen@openflowhub.org
      Wiki, forums, bug tracking tools,
        logos, etc.
 Projects:




 ©2012 – Big Switch Networks Inc.
Internals
Architecture Overview

 Everything is a module: modules export services
      Synchronous service calls
      Asynchronous publish/subscribe events
      Automatic dependency resolution
 Programming environment
      Core and all current modules written in Java
      Rich, extensible REST API
      Recently added Jython: could dev in Python
 Main Module: Floodlight “Provider”
      Manages OpenFlow switch I/O with Netty
      Translates OpenFlow messages to Floodlight Events

 ©2012 – Big Switch Networks Inc.                          10
IFloodlightModule Interface

1. getModuleDependencies()
Function                                   Description

       What services does this moduleWhat services does this
getModuleDependencies()
                                       require?
                                           module require?
2. getModuleServices(), getServiceImpls()
       Services does this module provide and how?
getModuleServices()                        Services does this module
                                           provide and how?
3. init(FloodlightModuleContext context)
       Internal, before dependencies have init()’d
init(FloodlightModuleContext context)      Internal, before dependencies
                                           have init()’ed
4. startup(FloodlightModuleContext context)
       External, with dependencies initialization
startup(FloodlightModuleContext context)   External, with dependencies
                                           initialization
Netty

An asynchronous event-driven network application
framework




 ©2012 – Big Switch Networks Inc.                  12
Threading Model

 All inter-module communication is through services
      Inter-service calls need to be thread safe
 Event handling happens in publisher’s thread context
      Don’t block, use a bottom half handler
 Thread pool executer service exists
      Allows modules to share threads
 Number of shared data structures protected by locks
      Any Java object can be an event
      Standard locks apply : synchronized


 ©2012 – Big Switch Networks Inc.                        13
Floodlight Provider Module

 Manages I/O from OF Switches
      Tracks switch add/removes
      Translates OF messages to Floodlight events
 IFloodlightProvider Service
      addOFMessageListener(OFType type)
        Ordering defined by caller with OFMessageListener iface
      Map<dpid,Switches> getSwitches();
      addOFSwitchListener();
      injectOfMessage(IOFSwitch sw, OFMessage msg);
        Used for recirculation-style hacks


 ©2012 – Big Switch Networks Inc.                                  14
Topology Module
Floodlight Automatically discover topologies


 OpenFlow and non-OF networks
      SwitchClusters – managing OF-islands
 Controller sends active probes via packet out/in
      Probes are formatted to look like LLDPs


 ITopologyService interface
           getLinks()
           addListeners()
           inSameCluster(switch1, switch2)
           Set<Switches> getSwitchesInCluster(switch1)

 ©2012 – Big Switch Networks Inc.                         15
Device Manager Module
Host location tracking


 Tracks End-Host Locations in the network
      Mac to ( Switch, Port) mapping
      Mac to IP
      IP to Mac
 IDeviceManager Service
           List<Device> getDevices()
           addListener()
           Device getDeviceByIPv4Address(ip)
           Device getDeviceByDataLayerAddress(mac)

 TODO: Extend Device definition, include Vlan?

 ©2012 – Big Switch Networks Inc.                     16
REST API Module
Any module can export via REST

 Implementation uses Restlets internally
      www.restlets.org

 IRestAPI Service
      addRestletRoutable(RestletRoutable rr)

 Your module implements RestletRoutable
      String basePath()
        “/rest/version1/myMod”
      Restlet getRestlet(Context)
        New Router(context).attach(“/switch/all/{statType}/json”,
                 MyStatClass.class}

 MyStatClass extends org.restlet.resources.ServerResource

 ©2012 – Big Switch Networks Inc.                                    17
Demo
Demo

Problem:

Track the last N Packet-Ins seen by the controller and
expose it via a REST API


What you will see:

1. Adding a new module
2. Creating a REST API
3. Running Floodlight


 ©2012 – Big Switch Networks Inc.                        19
Interested in Learning More?

 Check out the website
      http://floodlight.openflowhub.org


 Join the mailing list:
      http://groups.google.com/a/openflowhub.org/group/floodli
       ght-dev/topics
      Or just email floodlight-dev@openflowhub.org


 Get the code:
      http://floodlight.openflowhub.org/download

 ©2012 – Big Switch Networks Inc.

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowrjain51
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networkingsuniltomar04
 
Introduction To Openflow
Introduction To OpenflowIntroduction To Openflow
Introduction To OpenflowWaqas Daar
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Stéphane Maldini
 
SDN Basics – What You Need to Know about Software-Defined Networking
SDN Basics – What You Need to Know about Software-Defined NetworkingSDN Basics – What You Need to Know about Software-Defined Networking
SDN Basics – What You Need to Know about Software-Defined NetworkingSDxCentral
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture Ahmed Marzouk
 
Tutorial on SDN data plane evolution
Tutorial on SDN data plane evolutionTutorial on SDN data plane evolution
Tutorial on SDN data plane evolutionAntonio Capone
 
API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)Apigee | Google Cloud
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileKevin Sutter
 
Sdn and open flow tutorial 4
Sdn and open flow tutorial 4Sdn and open flow tutorial 4
Sdn and open flow tutorial 4UmaMahesh Sistu
 
SDN Architecture & Ecosystem
SDN Architecture & EcosystemSDN Architecture & Ecosystem
SDN Architecture & EcosystemKingston Smiler
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)Salvatore Orlando
 
Practical and Incremental Convergence between SDN and Middleboxes
Practical and Incremental Convergence between SDN and MiddleboxesPractical and Incremental Convergence between SDN and Middleboxes
Practical and Incremental Convergence between SDN and MiddleboxesOpen Networking Summits
 
opendayight loadBalancer
opendayight loadBalancer opendayight loadBalancer
opendayight loadBalancer Khubaib Mahar
 
Openlab.2014 02-13.major.vi sion
Openlab.2014 02-13.major.vi sionOpenlab.2014 02-13.major.vi sion
Openlab.2014 02-13.major.vi sionCcie Light
 
Presentation11
Presentation11Presentation11
Presentation11KellyCheah
 
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...DaoliCloud Ltd
 

Was ist angesagt? (20)

Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
 
OpenFlow
OpenFlowOpenFlow
OpenFlow
 
Introduction To Openflow
Introduction To OpenflowIntroduction To Openflow
Introduction To Openflow
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5
 
SDN Basics – What You Need to Know about Software-Defined Networking
SDN Basics – What You Need to Know about Software-Defined NetworkingSDN Basics – What You Need to Know about Software-Defined Networking
SDN Basics – What You Need to Know about Software-Defined Networking
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture
 
Tutorial on SDN data plane evolution
Tutorial on SDN data plane evolutionTutorial on SDN data plane evolution
Tutorial on SDN data plane evolution
 
API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)API Management for Software Defined Network (SDN)
API Management for Software Defined Network (SDN)
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
 
Sdn and open flow tutorial 4
Sdn and open flow tutorial 4Sdn and open flow tutorial 4
Sdn and open flow tutorial 4
 
SDN Architecture & Ecosystem
SDN Architecture & EcosystemSDN Architecture & Ecosystem
SDN Architecture & Ecosystem
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)
 
Practical and Incremental Convergence between SDN and Middleboxes
Practical and Incremental Convergence between SDN and MiddleboxesPractical and Incremental Convergence between SDN and Middleboxes
Practical and Incremental Convergence between SDN and Middleboxes
 
SDN Project PPT
SDN Project PPTSDN Project PPT
SDN Project PPT
 
opendayight loadBalancer
opendayight loadBalancer opendayight loadBalancer
opendayight loadBalancer
 
Openlab.2014 02-13.major.vi sion
Openlab.2014 02-13.major.vi sionOpenlab.2014 02-13.major.vi sion
Openlab.2014 02-13.major.vi sion
 
Presentation11
Presentation11Presentation11
Presentation11
 
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
A Novel Use of Openflow and Its Applications in Connecting Docker and Dummify...
 

Ähnlich wie OpenFlow Controller Architecture and Demo

Floodlight - Overview
Floodlight - OverviewFloodlight - Overview
Floodlight - Overviewopenflowhub
 
Opendaylight SDN Controller
Opendaylight SDN ControllerOpendaylight SDN Controller
Opendaylight SDN ControllerSumit Arora
 
Software Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectSoftware Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectGreat Wide Open
 
Open stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiOpen stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiHui Cheng
 
Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...
Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...
Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...David Meyer
 
OpenFlow Controllers and Tools
OpenFlow Controllers and ToolsOpenFlow Controllers and Tools
OpenFlow Controllers and Toolsrjain51
 
SDN: Network Agility in the Cloud
SDN: Network Agility in the CloudSDN: Network Agility in the Cloud
SDN: Network Agility in the CloudSebastien Goasguen
 
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PROIDEA
 
SDN (Software Defined Networking) Controller
SDN (Software Defined Networking) ControllerSDN (Software Defined Networking) Controller
SDN (Software Defined Networking) ControllerVipin Gupta
 
Software Defined Networking/Openflow: A path to Programmable Networks
Software Defined Networking/Openflow: A path to Programmable NetworksSoftware Defined Networking/Openflow: A path to Programmable Networks
Software Defined Networking/Openflow: A path to Programmable NetworksMyNOG
 
Node summit workshop
Node summit workshopNode summit workshop
Node summit workshopShubhra Kar
 
Learn OpenStack from trystack.cn
Learn OpenStack from trystack.cnLearn OpenStack from trystack.cn
Learn OpenStack from trystack.cnOpenCity Community
 
The Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksThe Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksClarence Ho
 
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKHow to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKDominik Renzel
 
Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015Ian Skerrett
 
Android presentation
Android presentationAndroid presentation
Android presentationImam Raza
 
OpenFlow/SDN activities of NTT Communications
OpenFlow/SDN activities of NTT CommunicationsOpenFlow/SDN activities of NTT Communications
OpenFlow/SDN activities of NTT CommunicationsOpen Networking Summits
 
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud ComputingOSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud ComputingMark Hinkle
 

Ähnlich wie OpenFlow Controller Architecture and Demo (20)

Floodlight - Overview
Floodlight - OverviewFloodlight - Overview
Floodlight - Overview
 
Opendaylight SDN Controller
Opendaylight SDN ControllerOpendaylight SDN Controller
Opendaylight SDN Controller
 
Software Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectSoftware Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight Project
 
Open stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiOpen stack with_openflowsdn-torii
Open stack with_openflowsdn-torii
 
SDN_Gustaf_Nilstadius
SDN_Gustaf_NilstadiusSDN_Gustaf_Nilstadius
SDN_Gustaf_Nilstadius
 
Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...
Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...
Introduction to OpenDaylight and Hydrogen, Learnings from the Year, What's Ne...
 
OpenFlow Controllers and Tools
OpenFlow Controllers and ToolsOpenFlow Controllers and Tools
OpenFlow Controllers and Tools
 
SDN: Network Agility in the Cloud
SDN: Network Agility in the CloudSDN: Network Agility in the Cloud
SDN: Network Agility in the Cloud
 
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
 
SDN (Software Defined Networking) Controller
SDN (Software Defined Networking) ControllerSDN (Software Defined Networking) Controller
SDN (Software Defined Networking) Controller
 
Software Defined Networking/Openflow: A path to Programmable Networks
Software Defined Networking/Openflow: A path to Programmable NetworksSoftware Defined Networking/Openflow: A path to Programmable Networks
Software Defined Networking/Openflow: A path to Programmable Networks
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Node summit workshop
Node summit workshopNode summit workshop
Node summit workshop
 
Learn OpenStack from trystack.cn
Learn OpenStack from trystack.cnLearn OpenStack from trystack.cn
Learn OpenStack from trystack.cn
 
The Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksThe Power of Enterprise Java Frameworks
The Power of Enterprise Java Frameworks
 
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKHow to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
 
Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
OpenFlow/SDN activities of NTT Communications
OpenFlow/SDN activities of NTT CommunicationsOpenFlow/SDN activities of NTT Communications
OpenFlow/SDN activities of NTT Communications
 
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud ComputingOSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
OSCON 2013 - The Hitchiker’s Guide to Open Source Cloud Computing
 

Kürzlich hochgeladen

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Kürzlich hochgeladen (20)

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

OpenFlow Controller Architecture and Demo

  • 2. About Us Big Switch Networks  Big Switch Networks builds and promotes Open Software Defined Networking Solutions  We use and help support Floodlight and a number of other OpenFlow tools  Yes, you can contact us about jobs and internships at careers@bigswitch.com ©2012 – Big Switch Networks Inc. 2
  • 3. Introduction  Floodlight overview  Floodlight architecture  Demo! ©2012 – Big Switch Networks Inc. 3
  • 4. Floodlight Overview Floodlight is a completely open, free, Apache-licensed Java-based OpenFlow controller. ©2012 – Big Switch Networks Inc. 4
  • 5. Floodlight Controller A great platform for OpenFlow Research and Easy to build, run, and commercial friendly  develop Toolchain Rich set of build and Community of OpenFlow debugging tools experts, access to commercial upgrades, and frequent testing ©2012 – Big Switch Networks Inc. 5
  • 6. Building Floodlight Fast…an 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. 6
  • 7. Other Floodlight Highlights REST- Static 2 1 based Flow App Pusher  Java event APIs Jython App  Active work in Java App defining  REST-based APIs standard “Northbound” APIs  Ability to push flows Floodlight Controller 3 Switch  Support for OF Switch integrating with non-OpenFlow OF Switch networks OF Switch OF Switch ©2012 – Big Switch Networks Inc. 7
  • 8. OpenFlowHub A community of open source OpenFlow developers 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 marketing  Contact: for open source projects mike.cohen@openflowhub.org  Wiki, forums, bug tracking tools, logos, etc. Projects: ©2012 – Big Switch Networks Inc.
  • 10. Architecture Overview  Everything is a module: modules export services  Synchronous service calls  Asynchronous publish/subscribe events  Automatic dependency resolution  Programming environment  Core and all current modules written in Java  Rich, extensible REST API  Recently added Jython: could dev in Python  Main Module: Floodlight “Provider”  Manages OpenFlow switch I/O with Netty  Translates OpenFlow messages to Floodlight Events ©2012 – Big Switch Networks Inc. 10
  • 11. IFloodlightModule Interface 1. getModuleDependencies() Function Description  What services does this moduleWhat services does this getModuleDependencies() require? module require? 2. getModuleServices(), getServiceImpls()  Services does this module provide and how? getModuleServices() Services does this module provide and how? 3. init(FloodlightModuleContext context)  Internal, before dependencies have init()’d init(FloodlightModuleContext context) Internal, before dependencies have init()’ed 4. startup(FloodlightModuleContext context)  External, with dependencies initialization startup(FloodlightModuleContext context) External, with dependencies initialization
  • 12. Netty An asynchronous event-driven network application framework ©2012 – Big Switch Networks Inc. 12
  • 13. Threading Model  All inter-module communication is through services  Inter-service calls need to be thread safe  Event handling happens in publisher’s thread context  Don’t block, use a bottom half handler  Thread pool executer service exists  Allows modules to share threads  Number of shared data structures protected by locks  Any Java object can be an event  Standard locks apply : synchronized ©2012 – Big Switch Networks Inc. 13
  • 14. Floodlight Provider Module  Manages I/O from OF Switches  Tracks switch add/removes  Translates OF messages to Floodlight events  IFloodlightProvider Service  addOFMessageListener(OFType type)  Ordering defined by caller with OFMessageListener iface  Map<dpid,Switches> getSwitches();  addOFSwitchListener();  injectOfMessage(IOFSwitch sw, OFMessage msg);  Used for recirculation-style hacks ©2012 – Big Switch Networks Inc. 14
  • 15. Topology Module Floodlight Automatically discover topologies  OpenFlow and non-OF networks  SwitchClusters – managing OF-islands  Controller sends active probes via packet out/in  Probes are formatted to look like LLDPs  ITopologyService interface  getLinks()  addListeners()  inSameCluster(switch1, switch2)  Set<Switches> getSwitchesInCluster(switch1) ©2012 – Big Switch Networks Inc. 15
  • 16. Device Manager Module Host location tracking  Tracks End-Host Locations in the network  Mac to ( Switch, Port) mapping  Mac to IP  IP to Mac  IDeviceManager Service  List<Device> getDevices()  addListener()  Device getDeviceByIPv4Address(ip)  Device getDeviceByDataLayerAddress(mac)  TODO: Extend Device definition, include Vlan? ©2012 – Big Switch Networks Inc. 16
  • 17. REST API Module Any module can export via REST  Implementation uses Restlets internally  www.restlets.org  IRestAPI Service  addRestletRoutable(RestletRoutable rr)  Your module implements RestletRoutable  String basePath()  “/rest/version1/myMod”  Restlet getRestlet(Context)  New Router(context).attach(“/switch/all/{statType}/json”, MyStatClass.class}  MyStatClass extends org.restlet.resources.ServerResource ©2012 – Big Switch Networks Inc. 17
  • 18. Demo
  • 19. Demo Problem: Track the last N Packet-Ins seen by the controller and expose it via a REST API What you will see: 1. Adding a new module 2. Creating a REST API 3. Running Floodlight ©2012 – Big Switch Networks Inc. 19
  • 20. Interested in Learning More?  Check out the website  http://floodlight.openflowhub.org  Join the mailing list:  http://groups.google.com/a/openflowhub.org/group/floodli ght-dev/topics  Or just email floodlight-dev@openflowhub.org  Get the code:  http://floodlight.openflowhub.org/download ©2012 – Big Switch Networks Inc.

Hinweis der Redaktion

  1. Tools – packetstreamer ,static flow pusher, mininet. All the tools we use here at big switch.Finally, Floodlight is something we use at big switch in the core of our commercial controller. Its an extremely important part of our business. This means
  2. Our topology, device manager know about host attachment points and make it possible to deal with integrating openflow and non openflow networks.
  3. Say “high performance I/O is a PITA to get right. Best practice is to use an off-the-shelf already optimized library, so we’re using Netty. Only affects floodlight provider module, so could easily move to something else”