Created by Jan Medvedwww.opendaylight.orgOpen DaylightTutorial For DevelopersFebruary 2014Thomas D. Nadeau, [email protected] Venugopal,
Created by Jan Medvedwww.opendaylight.orgOpen Daylight Controller Architecture10
Created by Jan Medvedwww.opendaylight.orgNetwork Application Life Cycle (Today)NetworkNetwork Element…APINetwork Element…APIControllerAPIAPI… …Network
Created by Jan Medvedwww.opendaylight.orgNetwork Application Life Cycle(End-to-End Model-Driven Archictecture)NetworkNetwork Element…APINetwork Elemen
Created by Jan Medvedwww.opendaylight.orgModel-Driven SALNetwork ElementsAbstractionLayerNetconf PCEPOF x.yNetworkTopologyLinksNodesPathsNENESystem
Created by Jan Medvedwww.opendaylight.orgModel-Driven SAL:The Software Engineer’s ViewController (Container Instance)SALSB ProtocolApplicationsJava SA
Created by Jan Medvedwww.opendaylight.orgController (Container Instance)SALSB ProtocolApplicationsJava SAL APIs (Generated)NB APIs (Generated & Ha
Created by Jan MedvedDemo: RPC Request RoutingModule sal-flow {namespace "urn:opendaylight:flow:service";prefix flow;import yang-ext {prefix
Created by Jan MedvedDemo: RPC Request RoutingController (Container Instance)NodesNetworkRouting Table:Node [key=foo:node:1]ConsumerNode[key=foo:node:
Created by Jan MedvedDemo: RPC Request RoutingController (Container Instance)NodesNetworkRouting Table:Node [key=foo:node:1]ConsumerNode[key=foo:node:
Created by Jan MedvedDemo: RPC Request RoutingController (Container Instance)NodesNetworkRouting Table:Node [key=foo:node:1]ConsumerNode[key=foo:node:
Created by Jan Medvedwww.opendaylight.org Overview and Introduction Developer Hands-on Live! Kickstarter for Developers End-User Hands-on Live!Tut
Created by Jan MedvedController (Container Instance)NodesNetworkRouting Table:Node [key=foo:node:1]Node[key=foo:node:2]add-flowremove-flow...update-fo
Created by Jan MedvedRequest Routing (App->NE)21Controller (Container Instance)InventoryNetworkNetconfNE1ModelsNE1f1 f2...fn... ...NE2f1 f2...fn...
Created by Jan MedvedRequest Routing (App->NE, Multi-Dest)22Controller (Container Instance)InventoryNetworkNetconfNE1ModelsNE1f1 f2...fn... ...NE2f
Created by Jan Medvedwww.opendaylight.org The OpenDaylight OpenFlow plugin will provide: Abstraction of OpenFlow networks to the MD-SAL Interim sup
Created by Jan Medvedwww.opendaylight.orgModelModelPlugin Build Process24ControllerYang ModelJava API DefinitionJava API DefinitionGenerated API Defin
Created by Jan Medvedwww.opendaylight.orgOpenFlow Plugin Architecture25
Created by Jan Medvedwww.opendaylight.orgReceiving a ‘Flow Delete’ Message26ControllerMD-SALOF Plugin ModelOF Plugin APIFlow Programmer ServiceOF Libr
Created by Jan Medvedwww.opendaylight.orgAdding a Flow27ControllerMD-SALOF Plugin ModelOF Plugin APIFlow Programmer ServiceOF LibraryTopology ManagerR
Created by Jan Medvedwww.opendaylight.org Concepts Coding mostly done in Java and python OSGI Tools IRC – communication tool maven (mvn) for bui
Created by Jan Medvedwww.opendaylight.org29 Open Source is standards for the 21stCentury OpenDaylight is rapidly becoming the focal point for SDN C
Created by Jan Medvedwww.opendaylight.orgOverview and Introduction3
Created by Jan Medvedwww.opendaylight.org More information and to join: wiki.opendaylight.org Keep informed and join the conversation IRC: #openda
Created by Jan Medvedwww.opendaylight.orgThank you31
Created by Jan Medvedwww.opendaylight.orgDeveloper Hands-on Live!32
Created by Jan Medvedwww.opendaylight.org33 Nothing satisfies a Networking geek like a RFC-Style ASCII Architecture diagram ;-)
Created by Jan Medvedwww.opendaylight.org34Open Daylight Controller Platform• Built using Java OSGi Framework - Equinox• Provides Modularity & Ext
Created by Jan Medvedwww.opendaylight.org35We all write modular code.FunctionsClass / ObjectPackage
Created by Jan Medvedwww.opendaylight.org36We all write modular code.Jar - Java ArchiveOSGi Bundles
Created by Jan Medvedwww.opendaylight.org37
Created by Jan Medvedwww.opendaylight.org38OSGi Service Registry• OpenDaylight uses Equinox OSGi Framework• Uses Apache Felix Dependency Manager for D
Created by Jan Medvedwww.opendaylight.orgOpenFlow + OVSDBHands-On Lab31
Created by Jan Medvedwww.opendaylight.org4The Open Daylight Project is a collaborative open source project that aims to accelerate adoption of Softwar
Created by Jan Medvedwww.opendaylight.orgLab: Administrative Stuffs641. Copy the Directory named, OpenDaylight_Techtorial from the USB Stick to your l
Created by Jan Medvedwww.opendaylight.orgDemo / Lab : OpenFlow & OVSDB63• Open the Terminal / Konsole / Xterm application on the Fedora Desktop.•
Created by Jan Medvedwww.opendaylight.orgDemo / Lab : Basic OpenFlow setup63• Check topology in the GUI• Start Chrome Browser and Open http://localhos
Created by Jan Medvedwww.opendaylight.orgDemo / Lab : OVSDB63•Open another Konsole / Terminal and Check ovsdb-server configuration on the Host VM usin
Created by Jan Medvedwww.opendaylight.orgDemo / Lab: REST-APIs for OVSDB64 Execute the following REST-API calls in Postman: Connect to OVSDB server
Created by Jan MedvedCreated by Jan Medvedwww.opendaylight.orgOpenVSwitchOVSDB Protocol LibraryBidirectional JSON-RPC LibraryNetty.ioConfigurationServ
Created by Jan Medvedwww.opendaylight.orgKickstarter for Developers33
Created by Jan Medvedwww.opendaylight.org1. Setup Git account2. Pull the code3. Build it!4. Run it!The Basics for How To Get Set Up As A Developer34
Created by Jan Medvedwww.opendaylight.orghttps://wiki.opendaylight.org/view/GettingStarted:Developer_MainThe Developer Wiki Is Your Friend35
Created by Jan Medvedwww.opendaylight.org Copy the VM files from your USB stick to your HDD Open VirtualBox/Vmware and import Configure the VM wit
Created by Jan Medvedwww.opendaylight.org Projects chosen by TSC are limited to the following areas: The OpenDaylight controller Software for forwa
Created by Jan Medvedwww.opendaylight.org Point your browser at the gerrit wiki: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Gerrit_Se
Created by Jan Medvedwww.opendaylight.orgAccount Setup/SSH Keys38
Created by Jan Medvedwww.opendaylight.org Goto your VM and enter this in a terminal: cat ~/.ssh/id_rsa.pub Copy and paste it into the SSH add hereA
Created by Jan Medvedwww.opendaylight.org SSH to connect to Gerrit's SSHD port:$ ssh -p 29418 <sshusername>@git.opendaylight.org[server:~]
Created by Jan Medvedwww.opendaylight.org In a terminal type: mkdir –p opendaylight/controller cd opendaylight/controller git clone ssh://<user
Created by Jan Medvedwww.opendaylight.org Setenv MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=1024m" /* syntax for setting varies on the OS used b
Created by Jan Medvedwww.opendaylight.org ls target/distribution.opendaylight-0.1.0-SNAPSHOT-osgipackage.zip Run the controller cd controller/opend
Created by Jan Medvedwww.opendaylight.org GUI URL: http://127.0.0.1:8080Controller GUI44
Created by Jan Medvedwww.opendaylight.orgThank you45
Created by Jan Medvedwww.opendaylight.orgEnd-User Hands-On Live46
Created by Jan Medvedwww.opendaylight.orgPlatinum Gold SilverWho is OpenDaylight Project?
Created by Jan Medvedwww.opendaylight.org Content Lab setup Download and run controller Explore graphical Interface Start your own network with m
Created by Jan Medvedwww.opendaylight.org Copy the VM files in your HDD Open VirtualBox and do import appliance Configure the VM with the following
Created by Jan Medvedwww.opendaylight.org Download options Edition ZIP files – for any OS running JVM/JDK 1.7 RPM files – for Fedora based Linux
Created by Jan Medvedwww.opendaylight.org OpenDaylight distributions are continuously generated and tested (Jenkins and Robot Framework) Latest Base
Created by Jan Medvedwww.opendaylight.org Controller normally starts with run.sh/run.bat Run options: -help: see all options -start: start control
Created by Jan Medvedwww.opendaylight.org GUI URL: http://127.0.0.1:8080 Features: Switch inventory Topology show Flow programming (OF10) Flow
Created by Jan Medvedwww.opendaylight.orgLab: Download and start controller53 Create folder, download base edition and run it: NOTE: there are contr
Created by Jan Medvedwww.opendaylight.org Mininet is an Open Source tool that simulates a network including switches and hosts. Key features are: Se
Created by Jan Medvedwww.opendaylight.org ARP Handler: Forwards ARP messages between hosts Process gateway ARP requests Host Tracker: Keeps track
Created by Jan Medvedwww.opendaylight.orgLab: Start Mininet56 Open a terminal and start mininet with tree topology: Check Inventory and Topology in
Created by Jan Medvedwww.opendaylight.org Code: To create a robust, extensible, open source code base that covers the major common components require
Created by Jan Medvedwww.opendaylight.org Controller NB REST APIs: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Architectural_Principle
Created by Jan Medvedwww.opendaylight.orgLab: Postman for basic NSF58 Restart mininet: Open Postman (Chrome Application) Select Collection Basic NS
Created by Jan Medvedwww.opendaylight.orgLab: Postman for OF13 (1/2)59 Stop mininet: Stop controller and restart with –of13 option: Start mininet f
Created by Jan Medvedwww.opendaylight.orgLab: Postman for OF13 (2/2)60 Open Postman (Chrome Application) Select Collection RESTCONF OF13 and do: Ge
Created by Jan Medvedwww.opendaylight.org OSGi console: telnet 127.0.0.1 2400 (after using –start option) Provides real-time controller log Type h
Created by Jan Medvedwww.opendaylight.org8ODP First Release “Hydrogen”8 Bootstrap Projects OpenDaylight Controller OpenDaylight Virtual Tenant Netw
Created by Jan Medvedwww.opendaylight.orghttps://wiki.opendaylight.org/view/Main_PageDeveloper Info – Start With the Wiki9
Comments to this Manuals