2. #ONOSProject
What is ONOS?
Open Network Operating System (ONOS) is an open
source SDN network operating system. Our mission is to
enable Service Providers to build real SDN/NFV Solutions.
2
3. #ONOSProject
Quarterly Releases
Avocet (1.0.0) released 2014-12
Initial release of clean and modular code-base, protocol independence
Blackbird (1.1.0) released 2015-03
Improved performance, scale-out, increased robustness
Cardinal (1.2.0) released 2015-06
New use-cases, additional core features, additional SB protocols
Drake (1.3.0) released 2015-09
Platform enhancements, security, UI enhancements
Emu (1.4.0) - released 2015-12
CORD features, prototype of dynamic cluster scaling
Falcon (1.5.0) - released 2016-03
Dynamic cluster scaling, model extensibility, intents on flow objectives
Goldeneye (1.6.0) - released 2016-06
3
4. #ONOSProject
Service Provider Networks
● WAN core backbone
o Multi-Protocol Label Switching (MPLS) with Traffic Engineering (TE)
o 200-500 routers, 5-10K ports
● Metro Networks
o Metro cores for access networks
o 10-50K routers, 2-3M ports
● Cellular Access Networks
o LTE for a metro area
o 20-100K devices, 100K-100M ports
● Wired access / aggregation
o Access network for homes; DSL/Cable
o 10-50K devices, 100K-1M ports
4
5. #ONOSProject
Key Performance Requirements
ONOS
AppsApps
Global Network View / StateGlobal Network View / State
high throughput | low latency | consistency | high availability
High Throughput:
~500K-1M paths setups / second
~3-6M network state ops / second
High Volume:
~500GB-1TB of network state data
Difficult challenge!
5
6. #ONOSProject
Architectural Tenets
High-availability, scalability and performance
required to sustain demands of service provider & enterprise
networks
Strong abstractions and simplicity
required for development of apps and solutions
Protocol and device behaviour independence
avoid contouring and deformation due to protocol specifics
Separation of concerns and modularity
allow tailoring and customization without speciating the code-
base
6
7. #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
AppsApps
Distributed Core
(state management, notifications, high-availability & scale-out)
SB Core API
NB Core API
Providers Providers Providers Providers
Protocols Protocols Protocols Protocols
7
14. #ONOSProject
ONOS Distributed Architecture
Distributed
Set up as a cluster of instances
Symmetric
Each instance runs identical software and configuration
Fault-tolerant
Cluster remains operational in the face of node failures
Location Transparent
A client can interact with any instance. The cluster presents the
abstraction of a single logical instance
Dynamic
The cluster can be scaled up/down to meet usage demands
14
19. #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
AppsApps
19
20. #ONOSProject
ONOS Distributed Primitives
EventuallyConsistentMap<K, V>
Map abstraction with eventual consistency guarantee
ConsistentMap<K, V>
Map abstraction with strong linearizable consistency
LeadershipService
Distributed Locking primitive
DistributedQueue<E>
Distributed FIFO queue with long poll support
DistributedSet<E>
Distributed collection of unique elements
AtomicCounter
Distributed version of Java AtomicLong
AtomicValue<V>
Distributed version of Java AtomicReference
20
22. #ONOSProject
Key Northbound Abstractions
Network Graph
Directed, cyclic graph comprising of infrastructure devices,
infrastructure links and end-station hosts
Flow Objective
Device-centric abstraction for programming data-plane flows in
table pipeline-independent manner
Intent
Network-centric abstraction for programming data-plane in
topology-independent manner
22
23. #ONOSProject
Building Network Applications
Each application has complex path computation and rule installation
Inconsistent behavior in the face of failures
Failures may be handled in different ways (or not at all)
Bugs need to fixed in multiple places (applications)
Expensive to upgrade/refactor behavior across all applications; e.g.
Improve performance
Support new types of devices
Implement better algorithms
Difficult or impossible to resolve conflicts with other applications
23
24. #ONOSProject
Intent Framework
• Provides high-level, network-centric interface that
focuses on what should be done rather than how it
is specifically programmed
• Abstracts unnecessary network complexity from
applications
• Maintains requested semantics as network changes
• High availability, scalability and high performance
24
28. #ONOSProject
Intent Framework Summary
Intents are a network-centric programming
abstraction that reduce application complexity.
Intents provide device-agnostic behavior with
persistency and high performance across network
failures.
Intent framework has moved from prototype to
production deployments.
28
29. #ONOSProject
Network Programming
OF 1.0 OF 1.3 Netconf TL1
Flow Rule
OFDPA
Pipeline
Single Table
Pipeline
SpringOpen
Pipeline
Flow Objective
DC Clos
Fabric
Packet/Optical
WAN
Enterprise
Campus
Intent
29
Abstract
to
concrete
30. #ONOSProject
Multiple Layers of Abstraction
Device Link HostDevice Link HostDevice Link HostDevice Link Host
Topology
Virtual Network Slice
Virtual Network Slice
Virtual Network Network Slice
30
31. #ONOSProject
Network Configuration (netcfg)
Provides mechanism for any service to register and receive
configuration
Dynamic Configuration (in progress)
Enables YANG-based service models to be introduced at runtime
Allow applications to implement dynamic services
Configuration
31
34. #ONOSProject
Southbound protocols in 1.7.1:
OpenFlow until 1.3 → 1.5 is in the works.
OVSDB
NETCONF + YANG → Yang tools and Yang management system
SNMP
P4 → thrift api for bmv2 softswitch from barefoot networks.
BGP, ISIS, OSPF → interoperability with legacy network.
PCEP → Path computation element protocol (IETF)
REST and RESTCONF
LISP
Southbound overview
34
35. #ONOSProject
ONOS drivers
• Device specific driver
• collection of behaviors
• on-demand activation
• Abstraction via behaviors
• define specific capabilities offered
by the device
• encapsulate specific logic and code
• ports,controller,flowrule,power…
• Encapsulate single interaction
• protocol
• information
Driver
Protocol
App
ONOS Driver
Protocol
<driver name="default "manufacturer="ON.Lab"
hwVersion="0.0.1" swVersion="0.0.1">
<behaviour api=InterfacePath
impl=ImpementationPath />
</driver>
35
36. #ONOSProject
Southbound Architecture
• Southbound abstractions, modularity
• customization without changing the core
• Protocol and device model independency
• avoid specifics and dependencies in the core
• hidden complexity to upper layers
• testability, extensibility and performance
ONOS Distributed Core
SB Core API
NB Core API
Apps
Protocols and Drivers
36
38. #ONOSProject
Developing ONOS applications
ONOS applications:
Interact with the northbound Java or REST interface
Device and protocol agnostic
Augment ONOS though modularity
Provide GUI,REST,CLI and distributed stores.
Shape the network.
Easy to start with auto generated basic code via maven
archetypes.
38
39. #ONOSProject
39
●ONOS Applications
○ OSGi bundles, Karaf features, ONOS apps & OAR files
○ application lifecycle - install, activate, deactivate, uninstall
○ ONOS CLI & GUI
●Developing ONOS apps
○ use mvn archetype:generate and onos-create-app
○ archetype overlays for CLI and UI - generated & pre-canned
○ iterative and demonstrating use of onos-app tool or GUI
Outline
40. #ONOSProject
Example Applications
SDN-IP Peering
Connect internal BGP software daemon to external BGP routers
Install learned routes to forward IP traffic to appropriate egress point
Multi-level (IP / Optical) Provisioning
Provision optical paths/tunnels with constraints
Content Acquisition / Video Streaming (DirecTV)
Establish multicast forwarding from a sender to set of receivers
Virtual Network Gateway (vBNG)
Provide connectivity between a private host and the Internet
Bandwidth Calendaring
Establish tunnels with bandwidth guarantees between two points at a
given time
40
42. #ONOSProject
42
Motivation and Goals
R&E Network Operators and Users
Create a global SDN network
Provide L0, L2 and L3 connectivity without
“legacy” equipment in the network core
Enable network and services innovation
ONOS community
Demonstrate ONOS in real networks
Test High performance, HA and
scalability in real networks
Learn and improve
Requirements/Learning/Bug Fixes
ONOS and Use Cases
Agile
collaboration
model
R&E Network
Operators
ONOS Community
43. #ONOSProject
43
OpenFlow
OpenFlow
OF
Q3 2015
ONOS Deployment in Australia
OpenFlow
Q3 2015
Korea announces the first
ONOS deployment
Q4 2015
ONOS deployed in Korea
Q4 2015
First ONOS
production deployment
in South America
Q1-Q2 2015
First ONOS Deployments
South America, US, EU
Q4 2015 – New connections
Sidney – Seattle - Miami
Sao Paolo – Amsterdam
Q1 2016
NCTU / Taiwan
deploys ONOS
Q1 2016 – New connections
Miami - Korea
Miami - Taiwan
Korea - Taiwan
Global SDN Deployment Powered by ONOS
44. #ONOSProject
44
Castor
• Provides L2/L3 connectivity for SDXs
• Developed and deployed in AARNET
SDN-IP
• Transforms a SDN into a transit IP network
• SDN AS uses BGP to communicate with neighbors
• L3 connectivity without legacy routers
• Deployed by AmLight, Internet2 (upgrading), KREONET, NCTU
SDX L2/L3
• Provides L2/L3 connectivity for SDXs
• Developed and deployed by GEANT
VPLS
• L2 broadcast overlay networks on demand
• Ready to be deployed at AmLight
Enabling network innovation with new apps
46. 46
What is CORD? Central Office Re-architected as a Datacenter
SDN + NFV + Cloud
Open Source Software
Commodity Hardware
(Servers, White-Box Switches, I/O Blades)
Large number of COs
Evolved over 40-50 years
300+ Types of equipment
Huge source of CAPEX/OPEX
47. 47
What is Trellis?
Datacenter Leaf-Spine
Fabric Underlay
Virtual Network
Overlay
Unified SDN Control
Of Underlay & Overlay
ONOS
Controller Cluster &
Apps
Trellis is the enabling Network Infrastructure for CORD
Trellis Provides Common control over underlay & overlay networks, including
• Service Composition for Tenant Networks
• Distributed Virtual Routing
• Optimized Delivery of Multicast Traffic Streams
48. CORD Architecture
R,E,M-
Access
Metro
Router
ONOS Controller Cluster
vRouter
Control
Other
App
Overlay
Control
Underlay
Control
Other
App
XOS (Orchestrator)
vSG
vSG
vSG
VNF
VNF
VNFVNF
VNF VNFVNF
VNF VNF VNFVNF
VNF
OVS OVS OVS OVS OVS
White Box White Box
White Box
White Box
White Box White Box White Box White Box
White Box White Box White Box
White Box
White Box
White Box
Open Source
SDN-based
Bare-metal
White Box
White Box
48
Residential Mobile Enterprise
Underlay
Overlay
Control
49. ▪ Underlay Fabric
• L2/L3 spine-leaf fabric – bare-metal hardware + open source software
• SDN control plane – no distributed protocols
• Modern ASIC data plane – 1.28 Tbps switching bandwitdth for each switch
▪ Virtual Network Overlay
• Designed for NFV – chained VNFs using with best principles of cloud
• Overlay Control – XOS and VTN implement service graph
• OVS + VxLAN Data Plane
▪ Unified SDN Control
• Common Control – opportunity for optimized service delivery
49
ONOS for CORD
54. #ONOSProject
Further reading
ONOS website:
http://onosproject.org
Tutorials, documentation and general reading at:
https://wiki.onosproject.org/
ONOS is on Github at:
https://github.com/opennetworkinglab/onos
Setup Tutorial
https://wiki.onosproject.org/display/ONOS/Installing+and+Running+O
NOS
Screencasts:
https://wiki.onosproject.org/display/ONOS/Screencasts
54
55. #ONOSProject 55
Application tutorial
• Creating and deploying and ONOS App
• Creating and deploying and ONOS App (video)
• Template application tutorial
57. #ONOSProject Join the journey @ onosproject.org
Software Defined Transformation of Service Provider Networks
57
58. #ONOSProject
Features and modules to communicate with
devices
Expose the standard set of APIs and enabled
operations. I.e:
OpenFlow: FlowMods, GroupMods, etc
Rest: implements CRUD operations (GET, POST,
DELETE, etc...)
Netconf: Open/close session, setConfiguration,
getConfiguration
Usually leverage 3rd party communication
libraries → openflowj, snmp4j, thrift
ONOS Protocols
58
Provider
Component
Provider
Component
Protocols
Provider
59. #ONOSProject
ONOS Providers
Providers are used by the core to (re)act on the network:
- Up/down of device, links
- DeviceProvider, LinkProvider
- Provisioning of rules, paths, tunnels
- FlowRuleProvider, TunnelProvider
- Receive notifications/alarms
- AlarmProvider
→ Translate to and from Core abstractions into device
specific commands.
Provider
Component
Provider
Component
Protocols
This is where the
magic happens
61. #ONOSProject
Performance Metrics
Device & link sensing latency
measure how fast can controller react to environment changes, such as
switch or port down to rebuild the network graph and notify apps
Flow rule operations throughput
measure how many flow rule operations can be issued against the controller
and characterize relationship of throughput with cluster size
Intent operations throughput
measure how many intent operations can be issued against controller cluster
and characterize relationship of throughput with cluster size
Intent operations latency
measure how fast can the controller react to environment changes and
reprovision intents on the data-plane and characterize scalability
61
62. #ONOSProject
Link Up/Down Latency
● Since we use LLDP & BDDP to discover
links, it takes longer to discover a link
coming up than going down
● Port down event trigger immediate teardown
of the link.
62
63. #ONOSProject
Flow Throughput results
● Single instance can install over 500K
flows per second
● ONOS can handle 3M local and 2M
non local flow installations
● With 1-3 ONOS instances, the flow
setup rate remains constant no
matter how many neighbours are
involved
● With more than 3 instances injecting
load the flow performance drops off
due to extra coordination required.
63
65. #ONOSProject
Intent Latency Results
Less than 100ms to install or withdraw a batch of intents
Less than 50ms to process and react to network events
Slightly faster because intent objects are already replicated
65