onos intent introduction
TRANSCRIPT
#OpenCORD #ONOSProject
ONOS Intent framework
Yi Tseng <[email protected]>ONOS Contributor / Ambassador
Dec 29, 2016Taiwan, 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
THANK YOU!