ONOS
Open Network Operating System
APIs & Intent Framework
Brian O'Connor
[email protected]
ONOS Architecture
AAppppss
NB Core API
Distributed Core
(state management, notifications, high-availability & scale-out)
SB Core API
Adapters Adapters Adapters Adapters
Protocols Protocols Protocols Protocols
ONOS Service APIs
"Southbound" "Core" "Northbound"
● Device
● Link ● Core ● Topology
● Host
● Statistics ● Mastership ● Path
● Flow Rule
● Packet ● Clusters ● Intent
● Resource
● Providers ● Event Delivery
● Database
● Leadership
...
Intent Framework
• Programming Abstraction
– Intents
– Compilers
– Installers
• Execution Framework
– Intent Service
– Intent Store
Intents
• Provide high-level interface that focuses on
what should be done rather than how it is
specifically programmed
• Abstract network complexity from applications
• Extend easily to produce more complex
functionality through combinations of other
intents
Intent Example
Host to Host Intent
Intent Example
Host to Host Intent
COMPILATION
Path Intent Path Intent
Intent Example
Host to Host Intent
COMPILATION
Path Intent Path Intent
INSTALLATION Flow Rule Batch
Flow Rule Batch Flow Rule Batch
Flow Rule Batch
Intent Compilers
• Produce more specific Intents given the
environment
• Works on high-level network objects, rather than
device specifics
• “Stateless” – free from HA / distribution concerns
interface IntentCompiler<T extends Intent> {
List<Intent> compile(T intent);
}
Intent Installers
• Transform Intents into device commands
• Allocate / deallocate network resources
• Define scheduling dependencies for workers
• “Stateless”
Intent Framework
• Translates intents into device instructions (in
accordance with network state and policy)
• Coordinates and verifies installation of
instructions
• Reacts to changing network conditions
• Permits optimization across intent objects
• Extends dynamically to add or change
functionality (compilers or installers)
Intent Framework Design
Applications
Intent Service API
Host to Host Intent Extension Intent Intent Store
Intent Compiler Service API Manager
PPaatthhInIntetnetnt Intent Intent
IInnssttaallellrer Installation Objective
Tracker
Worker
Flow Rule Service API Topology API Resource API …
Core
Southbound
Physical Network
Intent Store
• Key to HA and Scale-Out
• Work is delegated to specific cluster nodes
through batch queue mechanism
• Execution steps designed to be idempotent
– However, when resources are required, duplicate
request will be detected and handled
• Failures can be detected by batch queue
mechanism, and work can be reassigned
Design Modularity
• Intents, Compilers, and Coordinators can be
defined and loaded dynamically
• Framework implements service API, so the
entire framework can be swapped out
• Each component also implements an internal
API, so they can be replaced as desired
Intents in ONOS 1.0.0
• Distributed Framework
– Backed by Hazelcast maps and queues
• Connectivity-Based
– Host to Host, Multi-Point to Single Point
• Supports constraints as policy
– Link type, bandwidth