#OpenCORD #ONOSProject
ONOS Intent framework
Yi Tseng <yi@onos-ambassadors.org>
ONOS Contributor / Ambassador
Dec 29, 2016
Taiwan, NCTU
#OpenCORD #ONOSProject
• Introduction
• Built-in intents
• Intent compilers
• Intent service
• Commands
• Use intent in ONOS application
Outline
#OpenCORD #ONOSProject
• Tseng Yi (Takeshi)
• NCTU W2CNLab
• ONOS contributor
• ONOS Projects:
• Old/New VPLS
• New MP2SP/SP2MP/LC Intent
• SDN-IP example VM
Who am I?
#OpenCORD #ONOSProject
• A subsystem in ONOS.
• Allows applications install policies into network.
• Intents contains policies, resources and constraints.
• ONOS compiles intents into installable intents and installs
rules (flows) into specific network devices.
• Developers can extend built-in intents to new intent for
special purpose.
Introduction(1/2)
#OpenCORD #ONOSProject
• An intent should contains:
• Intent ID
• App ID
• Intent key
• Priority
• Network resources
• Different kinds of Intent might contains other attributes:
• Ingress port(s)
• Egress port(s)
• Encapsulation type
Introduction(2/2)
#OpenCORD #ONOSProject
• HostToHost
• PointToPoint
• SinglePointToMultiPoint
• MultiPointToSinglePoint
• TwoWayP2PIntent
• FlowRuleIntent
• FlowObjectiveIntent
• ….
Built-in intents
#OpenCORD #ONOSProject
• Compiles Intents into Installable Intents.
• Different Intent Compiler for different types of Intent.
Intent compilers
H2H P2P SP2MP MP2SP
Path LC
FR FO
#OpenCORD #ONOSProject
Intent compilation
#OpenCORD #ONOSProject
• Manage Intents.
• Basic operation: submit, withdraw, purge.
• Get Intent information.
Intent service
#OpenCORD #ONOSProject
• Get intent information
• intents (all intents)
• intents -s (all types of intent and state information)
• intents -i (all intents with details)
• Add intent by cli
• add-host-intent
• add-point-intent
• add-multi-to-single-intent
• add-single-to-multi-intent
• By GUI
Commands
#OpenCORD #ONOSProject
• Get IntentService
• Create an Intent
• Submit Intent by IntentService
Use Intent in ONOS application
intent = SinglePointToMultiPointIntent.builder()
.appId(appId)
.key(key)
.selector(selector)
.filteredIngressPoint(src)
.filteredEgressPoints(dsts)
.priority(PRIORITY_OFFSET)
.build();
#OpenCORD #ONOSProject
Write some code……..
Quick Demo
#OpenCORD #ONOSProject
• 4 MP2SP intent
• Match ethernet destination
• Update intents when host
updated.
Simple L2 forwarding
Network
Host
Host
Host
Host
#OpenCORD #ONOSProject 14
THANK YOU!

ONOS intent introduction

  • 1.
    #OpenCORD #ONOSProject ONOS Intentframework Yi Tseng <yi@onos-ambassadors.org> ONOS Contributor / Ambassador Dec 29, 2016 Taiwan, NCTU
  • 2.
    #OpenCORD #ONOSProject • Introduction •Built-in intents • Intent compilers • Intent service • Commands • Use intent in ONOS application Outline
  • 3.
    #OpenCORD #ONOSProject • TsengYi (Takeshi) • NCTU W2CNLab • ONOS contributor • ONOS Projects: • Old/New VPLS • New MP2SP/SP2MP/LC Intent • SDN-IP example VM Who am I?
  • 4.
    #OpenCORD #ONOSProject • Asubsystem in ONOS. • Allows applications install policies into network. • Intents contains policies, resources and constraints. • ONOS compiles intents into installable intents and installs rules (flows) into specific network devices. • Developers can extend built-in intents to new intent for special purpose. Introduction(1/2)
  • 5.
    #OpenCORD #ONOSProject • Anintent should contains: • Intent ID • App ID • Intent key • Priority • Network resources • Different kinds of Intent might contains other attributes: • Ingress port(s) • Egress port(s) • Encapsulation type Introduction(2/2)
  • 6.
    #OpenCORD #ONOSProject • HostToHost •PointToPoint • SinglePointToMultiPoint • MultiPointToSinglePoint • TwoWayP2PIntent • FlowRuleIntent • FlowObjectiveIntent • …. Built-in intents
  • 7.
    #OpenCORD #ONOSProject • CompilesIntents into Installable Intents. • Different Intent Compiler for different types of Intent. Intent compilers H2H P2P SP2MP MP2SP Path LC FR FO
  • 8.
  • 9.
    #OpenCORD #ONOSProject • ManageIntents. • Basic operation: submit, withdraw, purge. • Get Intent information. Intent service
  • 10.
    #OpenCORD #ONOSProject • Getintent information • intents (all intents) • intents -s (all types of intent and state information) • intents -i (all intents with details) • Add intent by cli • add-host-intent • add-point-intent • add-multi-to-single-intent • add-single-to-multi-intent • By GUI Commands
  • 11.
    #OpenCORD #ONOSProject • GetIntentService • Create an Intent • Submit Intent by IntentService Use Intent in ONOS application intent = SinglePointToMultiPointIntent.builder() .appId(appId) .key(key) .selector(selector) .filteredIngressPoint(src) .filteredEgressPoints(dsts) .priority(PRIORITY_OFFSET) .build();
  • 12.
    #OpenCORD #ONOSProject Write somecode…….. Quick Demo
  • 13.
    #OpenCORD #ONOSProject • 4MP2SP intent • Match ethernet destination • Update intents when host updated. Simple L2 forwarding Network Host Host Host Host
  • 14.

Editor's Notes

  • #3 Rather than provide a taxonomy of the various APIs available in the ONOS platform, I hope to describe some of the properties and rationale for these APIs. ... illustrated by examples.