You are on page 1of 72

BRKNMS-2530

NSO in Brownfield: Fully


Automated One-Click
Reconciliation

Fatih Ayvaz, Solutions Architect


Cisco Spark
Questions?
Use Cisco Spark to communicate
with the speaker after the session

How
1. Find this session in the Cisco Live Mobile App
2. Click “Join the Discussion”
3. Install Spark or go directly to the space
4. Enter messages/questions in the space

cs.co/ciscolivebot#BRKNMS-2530

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Agenda

• Network Service Orchestrator (NSO) Overview


• Brownfield Challenge: Reconciliation
• One-Click Reconciliation Automation and Demo
• NSO in Continuous Integration Continuous Deployment (CICD)
• Q&A
Network Services Orchestrator (NSO)
Overview
The problem that Cisco NSO solves today
BSS/OSS • The complex task of taking the service
definition, calculating the change sets and
Service Order communicating that with the devices is solved
by NSO.
Cisco NSO • With network complexity abstracted, the
focus can center around creating and
managing services.
Minimal Device
Reconfigurations

Multi-vendor L2, L3, L4-L7 network


BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
NSO Functional Architecture
Network
OSS/BSS EMS/NMS
Engineer

REST, NETCONF, Java, Python, Erlang, CLI, Web UI

Service
NSO
Service Manager Models
Script API
CDB
Mapping
Templates
Package Logic
AAA Core Engine
Manager
Develope Fast Map
r
Device
API
Alarm Manager Notification Receiver Device Manager Models

Network Element Drivers (NEDs)

NETCONF, REST, SNMP, CLI, etc

• VNFM
• Controller Apps
• EMS and NMS

Physical Networks Virtual Networks Network Apps


BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Deployment Challenge in Brownfield
Potential Problems in Brownfield Deployment
• Your network already has active network services for business customers.
• Out of band changes are being performed by different teams.
• Existing device configurations must not be impacted!
• Migration paths to NSO
• from manual to automation with NSO
• from another automation tool to NSO

• Resource allocations must be taken care of.


• Some service configurations do not match templates.
• Different organizations (i.e. operations, engineering) have different interests
on the network services.

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 9
Solution: Reconciliation on NSO
• Device configurations are source of truth.
• Service configurations are discovered from devices
using a custom-built reconciliation code.
• Service input parameters are identified to match
the YANG service model.
• Service instances are created “only” on NSO
(FastMap).
• Consumed resources are registered to NSO’s
resource manager (Reactive FastMap).
• Orphan services are removed from NSO.
• Fully automated.
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 10
An NSO Service Use Case
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet
description “a siteswitch service”
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
!
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet
description “a siteswitch service”
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
i/f i/f i/f i/f
!
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet
description “a siteswitch service”
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
i/f i/f i/f i/f
!
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet
description “a siteswitch service”
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
i/f i/f i/f i/f
!
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet
description “a siteswitch service”
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
i/f i/f i/f i/f
!
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet
description “a siteswitch service”
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
i/f i/f i/f i/f
!
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet
description “a siteswitch service”
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
i/f i/f i/f i/f
!
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet service
description “a siteswitch service” instance
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
! interface GigE 0/0/1
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
NSO Service: L2 site switch service
interface GigabitEthernet0/0/1
service instance 3 ethernet service
description “a siteswitch service” instance
encapsulation dot1q 100
rewrite ingress tag pop 1 symmetric
! interface GigE 0/0/1
bridge-domain 100
member GigabitEthernet0/0/1 service-instance 3
!

bridge-domain 100
Service Parameters:
DEVICE <- Operator
ASR903 site switch
INTERFACE-TYPE <- Operator
INTERFACE-INDEX <- Operator
From Northbound
VLAN_ID <- Operator
DESCRIPTION <- Operator
*EVC_ID <- NSO

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
Service Intent:
• device
What do I need in my NSO service? • interface-type
• interface-index
• vlan-id
• Service YANG model • description
• Service config template
• Resource allocation
• Service create logic id pools:
pool-{device}-{interface}

create id no allocate
idRequest()
service allocated? id

yes CHECK4 CHECK5

apply
template

Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 21
Service Intent:
• device
Let's orchestrate the service! • interface-type
• interface-index
• vlan-id
• description
CLI,GUI,REST fail(Reason)

NSO redeploy
id pools:
pool-{device}-{interface}
Service Action
CHECK0
pre-validation new create id no allocate
idRequest()
checks service allocated? id
CHECK1
CHECK2
yes CHECK4 CHECK5
existing CHECK3

Description apply
Change template

Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 22
Service Intent:
• device
• interface-type
siteswitch_multipoint action • interface-index
• vlan-id
• description
CLI,GUI,REST fail(Reason)

NSO redeploy
id pools:
pool-{device}-{interface}
Service Action
CHECK0
pre-validation new create id no allocate
idRequest()
checks service allocated? id
CHECK1
CHECK2
yes CHECK4 CHECK5
existing CHECK3

Description apply
Change template

Site Switch

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 23
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

siteswitchAction

/ncs:services:
siteswitch_multipoint_bridging

id-pool: pool-{device}-{interface}
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

siteswitchAction
checks on parameters

/ncs:services:
siteswitch_multipoint_bridging

id-pool: pool-{device}-{interface}
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters

/ncs:services:
siteswitch_multipoint_bridging

id-pool: pool-{device}-{interface}
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging

id-pool: pool-{device}-{interface}
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
does service idRequest or validation
have evc_id? idRequest(evc_id)
check on evc_id

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface}
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
does service idRequest or validation
have evc_id? idRequest(evc_id)
check on evc_id

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
does service idRequest or validation
have evc_id? idRequest(evc_id)
check on evc_id

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or validation …
have evc_id? idRequest(evc_id)
check on evc_id

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or validation …
have evc_id? idRequest(evc_id)
check on evc_id

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or validation …
have evc_id? idRequest(evc_id)
check on evc_id

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks on parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or validation …
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id id id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks onid-allocation
parameters create service
instance

validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or validation …
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id id id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks onid-allocation
parameters create service services
instance created?
validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or validation …
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id id id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks onid-allocation
parameters create service services
instance created?
validation=true
state=id-allocation
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or validation …
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

evc_id used in evc_id used in


bridge-domain? interface?

id-pool: pool-{device}-{interface} id id id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks onid-allocation
parameters create service services create service
instance created? instance

validation=true validation=false
state=id-allocation state=commit-device
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or novalidation
validation …
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id id
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks onid-allocation
parameters create service services create service
instance created? instance

validation=true validation=false
state=id-allocation state=commit-device
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or novalidation
validation …
apply template
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

config
service1
service2

serviceN
id-pool: pool-{device}-{interface} id id id exit
write mem
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks onid-allocation
parameters create service services create service
commit-device
instance created? instance

validation=true validation=false
state=id-allocation state=commit-device
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or novalidation
validation …
apply template
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

config
service1
service2

serviceN
id-pool: pool-{device}-{interface} id id id exit
write mem
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
admin@ncs> request siteswitch-multipoint-action create-…
Service Action Flow
siteswitch_multipoint(device,interface,vlan_id,description)
siteswitch_multipoint(device,interface,vlan_id,description)

siteswitch_multipoint(device,interface,vlan_id,description)

device existing existing interface&bridge interface&vlan- description


sync? service? interface? domain? id? chars?

siteswitchAction
checks onid-allocation
parameters create service services create service delete invalid
commit-device
instance created? instance services
validation=true validation=false
state=id-allocation state=commit-device
/ncs:services:
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or novalidation
validation …
apply template
have evc_id? idRequest(evc_id)
check on evc_id siteswitch_multipoint_bridging{}

config
service1
service2

serviceN
id-pool: pool-{device}-{interface} id id id exit
write mem
Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
Service Instances Configured!
interface Port-channel1 service instance 5 ethernet
service instance 3 ethernet description WEVO_3
description DSLAM Management encapsulation dot1q 3
encapsulation dot1q 4087 rewrite ingress tag pop 1 symmetric
rewrite ingress tag pop 1 symmetric !
! !
service instance 4 ethernet
description WEVO_2 bridge-domain 2
encapsulation dot1q 2 member Port-channel1 service-instance 4
rewrite ingress tag pop 1 symmetric member Port-channel2 service-instance 4
! !
service instance 5 ethernet bridge-domain 3
description WEVO_3 member Port-channel1 service-instance 5
encapsulation dot1q 3 member Port-channel2 service-instance 5
rewrite ingress tag pop 1 symmetric !
! bridge-domain 4087
! member Port-channel1 service-instance 3
interface Port-channel2 member Port-channel2 service-instance 3
service instance 3 ethernet !
description DSLAM Management
encapsulation dot1q 4087
rewrite ingress tag pop 1 symmetric
!
service instance 4 ethernet
description WEVO_2
encapsulation dot1q 2
rewrite ingress tag pop 1 symmetric
!
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 42
Reconciliation
Reconciliation

NSO *redeploy
Service Intent:
• device id pools:
pool-{device}-{interface}
• interface-name
• vlan-id
• description new
create id no allocate
Find New Services id
idRequest()
service allocated?
id
yes
Delete Orphan Services
apply
sync-from template

Site Switch
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 44
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow

Site Switch

reconcilesitewsitchAction

/ncs:services
siteswitch_multipoint_bridging siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow

Site Switch

reconcilesitewsitchAction
sync-from

/ncs:services
siteswitch_multipoint_bridging siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
...
bridge-domain ...
member interface ...
...
reconcilesitewsitchAction
sync-from

/ncs:services
siteswitch_multipoint_bridging siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
...
bridge-domain ...
member interface ...
...
reconcilesitewsitchAction
sync-from service exists
on device?

/ncs:services
siteswitch_multipoint_bridging siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
...
bridge-domain ...
member interface ...
...
reconcilesitewsitchAction
sync-from service exists delete service
on device? instance

/ncs:services
siteswitch_multipoint_bridging siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
...
bridge-domain ...
member interface ...
...
reconcilesitewsitchAction
sync-from service exists delete service
on device? instance

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
...
bridge-domain ...
member interface ...
...
reconcilesitewsitchAction
sync-from service exists delete service
delete orphan
on device?services instance

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance service
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance service
create
services
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance service
create
services
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}

siteswitch_multipoint_bridging{}

id-pool: pool-{device}-{interface} id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance service
create
services
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or
idRequest(evc_id) …
have evc_id?
siteswitch_multipoint_bridging{}

evc_id

id-pool: pool-{device}-{interface} id id

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance service
create
services
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or
idRequest(evc_id) …
have evc_id?
siteswitch_multipoint_bridging{}

evc_id

id-pool: pool-{device}-{interface} id id

id
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance service
create
services
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or
idRequest(evc_id) …
have evc_id?
siteswitch_multipoint_bridging{}

evc_id evc_id

id-pool: pool-{device}-{interface} id id

id
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance service
create
services
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or
idRequest(evc_id) …
have evc_id?
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}
evc_id evc_id

id-pool: pool-{device}-{interface} id id

id
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction
sync-from service exists delete service discover
delete orphan
on device?services instance reconcileservices
service
create
parameters

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or
idRequest(evc_id) …
have evc_id?
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}
evc_id evc_id

id-pool: pool-{device}-{interface} id id

id
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction un-deploy re-deploy
sync-from service exists delete service discover no-networking no-networking
delete orphan
on device?services instance reconcileservices
service
create
ignore- no-out-of-
parameters refcount sync-check

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or
idRequest(evc_id) …
have evc_id?
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}
evc_id evc_id

id-pool: pool-{device}-{interface} id id

id
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
admin@ncs> request reconcile_siteswitch_multipoint_bridging device CE0 Reconciliation Action Flow
/ncs:devices
device CE0
config
...
Site Switch
interface
service instance ...
... check
check
bridge-domain ... service
pool?
member interface ... existing
...
reconcilesitewsitchAction un-deploy re-deploy
sync-from service exists delete service discover no-networking no-networking
delete orphan
on device?services instance reconcileservices
service
create adjust-refcounts
ignore- no-out-of-
parameters refcount sync-check

/ncs:services
siteswitch_multipoint_bridging
siteswitch_multipoint_bridging{}
does service idRequest or
idRequest(evc_id) …
have evc_id?
siteswitch_multipoint_bridging{}
siteswitch_multipoint_bridging{}
evc_id evc_id

id-pool: pool-{device}-{interface} id id

id
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
Demo
What we will demo

• Create resource pool


• Create siteswitch_multipoint service
instance
• Bulk create instances
• Reconciliation: add new services
• Reconciliation: remove orphan services
• Reconciliation: mixed scenario

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 63
NSO Development in CICD
Continuous Integration Platform
Update

Binaries
Continuous Artifacts Repository
Integration
System
Automated
Project Mgmt. Central Build & Test
Fetch
& Bug Source Code Quality Check
Tracking Repo.
Development
Request

Code Code Quality


Search Analysis
& Reuse

Manage Tasks
Feedback
Collab.

Developers
BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 66
NSO at Cisco Live Design Clinics

 Opportunity for customers to ask


questions without an appointment
 Located in The hub (Hall 6)

 Opening hours of The Hub:


Monday: 8:00 – 19:30
Tuesday: 8:00 – 19:30
Wednesday: 8:00 – 19:00
Thursday: 8:00 – 18:30
Friday: 8:00 – 13:30
https://www.ciscolive.com/emea/activities/the-hub/

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 67
Cisco Spark
Questions?
Use Cisco Spark to communicate
with the speaker after the session

How
1. Find this session in the Cisco Live Mobile App
2. Click “Join the Discussion”
3. Install Spark or go directly to the space
4. Enter messages/questions in the space

cs.co/ciscolivebot#BRKNMS-2530

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
• Please complete your Online Complete Your Online
Session Evaluations after each
session
Session Evaluation
• Complete 4 Session Evaluations
& the Overall Conference
Evaluation (available from
Thursday) to receive your Cisco
Live T-shirt
• All surveys can be completed via
the Cisco Live Mobile App or the
Communication Stations
Don’t forget: Cisco Live sessions will be available
for viewing on-demand after the event at
www.ciscolive.com/global/on-demand-library/.

© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Continue Your Education
• Demos in the Cisco campus
• Walk-in Self-Paced Labs
• Tech Circle
• Meet the Engineer 1:1 meetings
• Related sessions

BRKNMS-2530 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 70
Thank you

You might also like