onos intent introduction

14
#OpenCORD #ONOSProject ONOS Intent framework Yi Tseng <[email protected]> ONOS Contributor / Ambassador Dec 29, 2016 Taiwan, NCTU

Upload: yi-tseng

Post on 06-Apr-2017

159 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ONOS intent introduction

#OpenCORD #ONOSProject

ONOS Intent framework

Yi Tseng <[email protected]>ONOS Contributor / Ambassador

Dec 29, 2016Taiwan, NCTU

Page 2: ONOS intent introduction

#OpenCORD #ONOSProject

• Introduction• Built-in intents• Intent compilers• Intent service• Commands• Use intent in ONOS application

Outline

Page 3: ONOS intent introduction

#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?

Page 4: ONOS intent introduction

#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)

Page 5: ONOS intent introduction

#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)

Page 6: ONOS intent introduction

#OpenCORD #ONOSProject

• HostToHost• PointToPoint• SinglePointToMultiPoint• MultiPointToSinglePoint• TwoWayP2PIntent• FlowRuleIntent• FlowObjectiveIntent• ….

Built-in intents

Page 7: ONOS intent introduction

#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

Page 8: ONOS intent introduction

#OpenCORD #ONOSProject

Intent compilation

Page 9: ONOS intent introduction

#OpenCORD #ONOSProject

• Manage Intents.• Basic operation: submit, withdraw, purge.• Get Intent information.

Intent service

Page 10: ONOS intent introduction

#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

Page 11: ONOS intent introduction

#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();

Page 12: ONOS intent introduction

#OpenCORD #ONOSProject

Write some code……..

Quick Demo

Page 13: ONOS intent introduction

#OpenCORD #ONOSProject

• 4 MP2SP intent• Match ethernet

destination• Update intents when

host updated.

Simple L2 forwarding

Network

Host

Host

Host

Host

Page 14: ONOS intent introduction

#OpenCORD #ONOSProject

THANK YOU!