for ONOS 1.5.0 (Falcon)
ONOS Distributed Tutorial
#ONOSProject
ONOS Tutorial Sessions
#ONOSProject
ONOS Architecture Tenets
#ONOSProject
ONOS Distributed Architecture
NB Core API
Distributed Core
(state management, notifications, high-availability & scale-out)
SB Core API
Protocols
Providers
Protocols
Providers
Protocols
Providers
Protocols
Providers
Apps
Apps
#ONOSProject
ONOS Distributed Architecture
NB Core API
Distributed Core
(state management, notifications, high-availability & scale-out)
SB Core API
Protocols
Providers
Protocols
Providers
Protocols
Providers
Protocols
Providers
Apps
Apps
Distributed Core
(state management, notifications, high-availability & scale-out)
SB Core API
NB Core API
Providers
Providers
Providers
Providers
Protocols
Protocols
Protocols
Protocols
#ONOSProject
ONOS Core Subsystems
Device
Link
Host
Topology
Flow Rule
Path
Packet
Statistics
Intent
Application
Leadership
Messaging
Storage
Region
Mastership
Driver
Group
Security
Flow Objective
Event
OpenFlow
NetConf
OVSDB
Core
Cluster
. . .
Proxy ARP
Mobility
L2 Forwarding
REST API
GUI
CLI
Network Cfg.
SDN IP / BGP
Packet / Optical
Tunnel
. . .
OSGi / Apache Karaf
Network Virt.
Device Cfg.
Config
UI Extension
External Apps
Graph
Discovery
Tenant
. . .
#ONOSProject
ONOS Core Subsystem Structure
Manager
Component
Manager
Component
Provider
Component
Provider
Component
App
Component
Listener
notify
command
command
sync & persist
add & remove
query &
command
App
Component
Provider
Component
Manager
Component
Manager
Component
ProviderRegistry
Provider
ProviderService
Service
AdminService
Listener
notify
register & unregister
command
command
sensing
add & remove
query &
command
Protocols
Store Store
Provider
Component
ProviderRegistry
Provider
ProviderService
register & unregister
sensing
Protocols
Service
AdminService
Store Store
sync & persist
ProviderRegistry
ProviderRegistry
Provider
Provider
ProviderService
ProviderService
AdminService
AdminService
Service
Service
Listener
Listener
#ONOSProject
ONOS Applications & OSGi
multi-bundle app
simple app
multi-feature & multi-bundle app
bundle
bundle
bundle
bundle
bundle
feature.xml
features.xml
bundle
bundle
features.xml
features.xml
bundle
.oar
.oar
.oar
app.xml
app.xml
app.xml
#ONOSProject
ONOS Applications
#ONOSProject
OSGi Bundles & Karaf Features
#ONOSProject
Service Component Runtime
#ONOSProject
Bundle & Feature Shell Commands
onos> bundle:*
onos> feature:*
onos> scr:*
#ONOSProject
Developing ONOS apps
#ONOSProject
Bundles, Features & ONOS Apps
#ONOSProject
BYON Application
#ONOSProject
BYON Application Example
s1
s2
s3
h2
h1
h3
h4
Physical
h2
h1
h3
h4
h2
h1
h3
h4
Network #2
Network #1
#ONOSProject
BYON App Structure
Manager
Component
Manager
Component
NetworkMonitor
Component
Listener
notify
register app id
sync & persist
NetworkMonitor
Component
NetworkManager
Component
NetworkManager
Component
Provider
Service
Listener
notify
register app id
Store Store
Provider
Service
NetworkStore NetworkStore
sync & persist
CoreService
CoreService
NeworkService
NetworkService
NetworkListener
NetworkListener
submit & withdraw intents
Provider
submit & withdraw intents
Provider
IntentService
IntentService
#ONOSProject
Environment Overview
Container
(LXC)
onos1
10.0.3.101
Container
(LXC)
onos2
10.0.3.102
Container
(LXC)
onos3
10.0.3.103
Mininet Network
Amazon EC2 VM
VPN
Development on VM
(VirtualBox)
or
Native Development
(Mac or Linux)
Developer Laptop
192.168.42.1
#ONOSProject
Environment Setup (Laptop)
Development on VM (easiest)
Native Development (Mac or Linux)
#ONOSProject
Download Links
https://www.jetbrains.com/idea/download/
https://eclipse.org/downloads/
https://karaf.apache.org/index/community/download.html
http://curl.haxx.se/download.html
#ONOSProject
Environment Setup (VPN to EC2)
Mac
Windows
(Windows only) To disable default gateway: (Note: this must be done before connecting)
Server Address: <provided on request> Test by ping 10.0.3.101
VPN Type: PPTP User: onos Password: onos Encryption: 128 bit
#ONOSProject
Tutorial Cell Setup
$ cell tutorial
#ONOSProject
Lab Sections
#ONOSProject
Lab #1: Import & Build BYON App
https://goo.gl/5ezwoI
#ONOSProject
Lab #1: Recap
#ONOSProject
Lab #2: Network Manager & Store
#ONOSProject
Lab #2: Recap
#ONOSProject
Lab #3: Adding Intents
https://goo.gl/Xhe5SE
#ONOSProject
Lab #3: Recap
#ONOSProject
LUNCH!
#ONOSProject
Lab #4: Removing Intents
https://goo.gl/ZIjQlU
#ONOSProject
Lab #4: Recap
#ONOSProject
Lab #5: Distributed Store
https://goo.gl/wx10vS
#ONOSProject
Lab #5: Recap
#ONOSProject
Lab #6: Event Notifications
https://goo.gl/omi8tz
#ONOSProject
Lab #6: Recap
#ONOSProject
ONOS Tutorial Recap
#ONOSProject
Wrap-Up
https://goo.gl/8Druv0
https://wiki.onosproject.org/display/ONOS/ONOS+Mailing+Lists
#ONOSProject