onos intent introduction

Post on 06-Apr-2017

160 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

#OpenCORD #ONOSProject

ONOS Intent framework

Yi Tseng <yi@onos-ambassadors.org>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!

top related