Compass Core Technical User Guide

CompassCoreTechnical-UserGuide

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 37

DownloadCompass Core Technical -User Guide
Open PDF In BrowserView PDF
PREFACE
SEGMENT ROUTING POC
1. Technical Details
a) Assumptions
b) Device Platform Used for Testing
c) NSO Version
d) NED Version
e) NSO Packages
f) Devices List
g) Migration Strategy or Steps
2. Use Cases and Model Representations
1. Brown Field Deployment Topology
i. Model: SR-infrastructure
ii. Configuration of model in NSO
2. Configuration of segment routing on brownfield deployments using srinfrastructure
i. Model: Segment Routing
ii. Configuration of model in NSO
iii. Addition of New Router with same instance-name in the Existing
Brownfield Topology
iv. Configuration of model in NSO
v. Device Modifications
3. Addition of New Routers to Brown Field Deployment Topology
i. Model: Segment Routing
ii. Configuration of model in NSO
iii. Device Modifications
4. Configuration of Topology Independent Loop Free Alternative
i. Topology
ii. Model: TI-LFA

iii. Configuration in NSO using custom instance (brownfield) and all
interfaces
iv. Device Modifications
v. Configuration in NSO using brown field and specifying fewer
interfaces
vi. Device Modifications
5. Segment Routing Mapping Server
i. Model: SR-MS
ii. Configuration of model in NSO

2

1.

TECHNICAL DETAILS
a. Assumptions:
• Router isis instance-name: We assume that this instance name already exists
and is active for a customer deployment as we sought to migrate.
• Interfaces under Router isis instance name should be already present. It may
not have ti-lfa configurations, which nso would tend to configure on them.
• Loopback used for segment routing is assumed to be already present on the
device.
• Compass Service Models/Configurations that get pushed are platform
independent. They should work on all the platforms that run ios-xr.
b. Device Platform Used for Testing
RP/0/RP0/CPU0:PE4_Zermat#show version
Thu Jun 21 21:51:49.783 UTC
Cisco IOS XR Software, Version 6.5.1.24I
Copyright (c) 2013-2018 by Cisco Systems, Inc.
Build Information:
Built By : ahoang
Built On : Tue May 29 13:04:05 PDT 2018
Build Host : iox-ucs-025
Workspace : /auto/iox-ucs-025-san2/prod/6.5.1.24I.SIT_IMAGE/ncs5500/ws
Version : 6.5.1.24I
Location : /opt/cisco/XR/packages/
Label
: 6.5.1.24I
cisco NCS-5500 () processor
System uptime is 1 week 6 days 16 hours 36 minutes

3

TECHNICAL DETAILS
RP/0/RP0/CPU0:PE4_Zermat#show platform
Thu Jun 21 21:52:02.701 UTC
Node
Type
State
Config state
-------------------------------------------------------------------------------0/RP0/CPU0
NCS-5502-SE(Active)
IOS XR RUN
NSHUT
0/RP0/NPU0
Slice
UP
0/RP0/NPU1
Slice
UP
0/RP0/NPU2
Slice
UP
0/RP0/NPU3
Slice
UP
0/RP0/NPU4
Slice
UP
0/RP0/NPU5
Slice
UP
0/RP0/NPU6
Slice
UP
0/RP0/NPU7
Slice
UP
0/FT0
NC55-2RU-FAN-FW
OPERATIONAL
NSHUT
0/FT1
NC55-2RU-FAN-FW
OPERATIONAL
NSHUT
0/FT2
NC55-2RU-FAN-FW
OPERATIONAL
NSHUT
0/PM1
NC55-2KW-ACFW
OPERATIONAL
NSHUT
0/PM3
NC55-2KW-ACFW
OPERATIONAL
NSHUT
RP/0/RP0/CPU0:PE4_Zermat#exit
c. NSO Version: 4.6 or above
d. NED : There is no official ned being used. A Netconf NED named Prouter-ned
is part of packages for IOSXR Devices . NED version 1.0.
e. NSO Packages
admin@ncs> show packages package oper-status up
NAME
UP
------------------------------------disable-ldp
X
prouter-ned
X
resource-manager
X
sr
X
sr-ms
X
ti-fla
X

4

TECHNICAL DETAILS
f. Devices list (netsim netconf devices)
admin@ncs> show devices list
NAME ADDRESS
DESCRIPTION NED ID ADMIN STATE
------------------------------------------------------------P-0 127.0.0.1 netconf unlocked
P-1 127.0.0.1 netconf unlocked
P-2 127.0.0.1 netconf unlocked
P-3 127.0.0.1 netconf unlocked
P-4 127.0.0.1 netconf unlocked
g. Migration Strategy or Steps
Customer is expected to run a LDP/RSVP Networks.
Migration done in form of small steps. These are actually the name of NSO
Packages and needs in the configured in the order described below after
verification at each step. Verification is left to the user at moment. The
verification is to ensure that the configuration is effective in the network and
could be seen as part of the device operational.
• SR : prefix-sid are assigned to devices.
• TI-LFA ( Topology Independent – Loop Free Alternative) : every node/link can
be configured a backup path. Hence on a node failure it needs to reconverge
so a backup path is configured.
• SR-MS (Segment Routing – Mapping Server ) : Label path - switch between
LDP and SR networks. A network could both SR and LDP. To ensure that the
switching works across this two kinds of networks a label path is statically
assigned. I.e. for this ldp prefix use this sr prefix. Idea is to advertise ldp
prefixes into sr.
• Disable-ldp (Label Distribution Protocol)

5

USE CASES AND MODELS REPRESENTATION

1. Brown Field Deployment Topology (Example): Assume the following P Routers has
the same instance-name and loopback.

P0
P2

All the P-Routers that share the same instance name and loopback can be
configured in the infrastructure with this details. If there is a probability that most
of the routers in the network would have same details, then the sr-infrastructure
configuration can be re-used and pointed back to it. This saves User time to reenter same details again and again for each router.
a. Model: SR-infrastructure
module: infrastructure
+--rw sr-infrastructure!
+--rw sr-global-block-pools* [name]
| +--rw name -> /ralloc:resource-pools/idalloc:id-pool/name
+--rw instance-name?
string
+--rw loopback?
uint32
b. Configuration of the model in NSO
admin@ncs% set resource-pools id-pool sr-pool range start 16000 end 23999
[ok][2018-07-30 21:00:57]
admin@ncs% set sr-infrastructure instance-name CORE loopback 0 sr-global-block-pools
sr-pool
[ok][2018-07-30 21:01:44]
admin@ncs% commit

6

USE CASES AND MODEL REPRESENTATIONS

2. CONFIGURATION OF SEGMENT ROUTING ON BROWNFIELD DEPLOYMENTS USING
SR-INFRASTRUCTURE

P0

P2

Model: Segment Routing
module: sr
augment /ncs:services:
+--rw sr* [name]
+--rw name
string
+--rw router* [device-name]
+--rw device-name
-> /ncs:devices/device/name
+--rw prefix-preference
| +--rw (prefix-choice)?
| +--:(auto-assign-prefix-sid)
| | +--rw auto-assign-prefix-sid? empty
| +--:(assign-prefix-sid)
|
+--rw assign-prefix-sid?
uint16
+--rw instance-preference
+--rw (instance-choice)?
+--:(use-sr-infrastructure)
| +--rw use-sr-infrastructure? empty
+--:(custom-instance)
+--rw custom-instance
+--rw instance-name? string
+--rw loopback?
uint32

7

USE CASES AND MODEL REPRESENTATIONS
Configuration of the model in NSO
services {
+ sr ACME-west {
+
router P-0 {
+
prefix-preference {
+
auto-assign-prefix-sid;
+
}
+
instance-preference {
+
use-sr-infrastructure;
+
}
+
}
+
router P-2 {
+
prefix-preference {
+
auto-assign-prefix-sid;
+
}
+
instance-preference {
+
use-sr-infrastructure;
+
}
+
}
}
In the above scenario; we are asking NSO to configure Router P-0 and P-2. As part of the
configuration NSO will auto assign prefix sid as indicated in the model configuration
prefix-preference “auto-assign-prefix-sid”. NSO uses a resource allocator to pick IDs
from a pool. These pool is already defined in the SR-INFRASTRUCTURE model. If no pool
is assigned, NSO will result into error as it is missing the details of the pool. Whenever
this option auto-assign-prefix-sid is selected NSO will pick up next available ID from the
pool until the pool is exhausted.

8

USE CASES AND MODEL REPRESENTATIONS
TEMPLATE




{$DEVICENAME}




{$INSTANCE-NAME}

{$SRGB-START}
{$SRGB-END}



ipv4
unicast





ldp



Loopback{$LOOPBACK}


true







Loopback{$LOOPBACK}


ipv4
unicast


absolute
{$PREFIX-SID}
enable
disable
disable













9

USE CASES AND MODEL REPRESENTATIONS

TEMPLATE VARIABLES
Variable name

Value

$INSTANCE_NAME

SR-INFRASTRUCTURE INSTANCE-NAME OR USER
DEFINED

$SRGB-START

SR-INFRASTRUCTURE RESOURCE POOL START RANGE
VALUE

$SRGB-END

SR-INFRASTRUCTURE RESOURCE POOL END RANGE
VALUE

$LOOPBACK

LOOPBACK ID

$PREFIX-SID

NSO ALLOCATED OR USER PROVIDED

10

USE CASES AND MODEL REPRESENTATIONS
Addition of New Router with same instance –name in the Existing Brownfield
Topology : Administrator can choose to pick a new sid prefix for this newly added
router as described below.

P4
P0

P2

Model : Segment Routing
module: sr
augment /ncs:services:
+--rw sr* [name]
+--rw name
string
+--rw router* [device-name]
+--rw device-name
-> /ncs:devices/device/name
+--rw prefix-preference
| +--rw (prefix-choice)?
| +--:(auto-assign-prefix-sid)
| | +--rw auto-assign-prefix-sid? empty
| +--:(assign-prefix-sid)
|
+--rw assign-prefix-sid?
uint16
+--rw instance-preference
+--rw (instance-choice)?
+--:(use-sr-infrastructure)
| +--rw use-sr-infrastructure? empty
+--:(custom-instance)
+--rw custom-instance
+--rw instance-name? string
+--rw loopback?
uint32

11

USE CASES AND MODEL REPRESENTATIONS
In the above scenario, Users wishes to have his own choice of prefix-sid which he/she
enters and User also wishes to use the same sr-infrastructure details (instance name
and loopback) as the device has it. In this case NSO will not auto assign prefix sid from a
pool. It is to the user onus to ensure that NSO has not already assigned the id he/she
enters.
Configuration of the model in NSO
services {
+ sr ACME-west {
+
router P-4 {
+
prefix-preference {
+
assign-prefix-sid 22004;
+
}
+
instance-preference {
+
use-sr-infrastructure;
+
}
+
}
+ }
}
DEVICE MODIFICATIONS
admin@ncs% request services sr ACME-west get-modifications
cli {
local-node {
data devices {
device P-0 {
config {
clns-isis-cfg:isis {
instances {

12

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+

13

instance CORE {
srgb {
lower-bound 16000;
upper-bound 23999;
}
afs {
af ipv4 unicast {
af-data {
segment-routing {
prefix-sid-map {
advertise-local;
}
mpls ldp;
}
mpls {
router-id {
interface-name Loopback0;
}
level {
level2 true;
}
}
}
}
}
interfaces {
interface Loopback0 {
interface-afs {
interface-af ipv4 unicast {
interface-af-data {
prefix-sid {
type absolute;
value 16000;
php enable;
explicit-null disable;
nflag-clear disable;

+
+
+

}
}
}
}
running;

+
}

}
running;

+
}
}
}
}

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

14

}
device P-2 {
config {
clns-isis-cfg:isis {
instances {
instance CORE {
srgb {
lower-bound 16000;
upper-bound 23999;
}
afs {
af ipv4 unicast {
af-data {
segment-routing {
prefix-sid-map {
advertise-local;
}
mpls ldp;
}
mpls {
router-id {
interface-name Loopback0;
}
level {

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+

15

level2 true;
}
}
}
}
}
interfaces {
interface Loopback0 {
interface-afs {
interface-af ipv4 unicast {
interface-af-data {
prefix-sid {
type absolute;
value 16001;
php enable;
explicit-null disable;
nflag-clear disable;
}
}
}
}
running;
}
}
running;
device P-4 {
config {
clns-isis-cfg:isis {
instances {
instance CORE {
srgb {
lower-bound 16000;
upper-bound 23999;
}
afs {
af ipv4 unicast {
af-data {

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

segment-routing {
prefix-sid-map {
advertise-local;
}
mpls ldp;
}
mpls {
router-id {
interface-name Loopback0;
}
level {
level2 true;
}
}
}
}
}
interfaces {
interface Loopback0 {
interface-afs {
interface-af ipv4 unicast {
interface-af-data {
prefix-sid {
type absolute;
value 22004;
php enable;
explicit-null disable;
nflag-clear disable;
}
}
}
}
running;
}
}
running;

+
+
+
+
+
+
+
+
+
+
+
+
+
+

16

}

}
}
}
}
}
resource-pools {
id-pool sr-pool {
+
allocation ACME-west-P-0 {
+
username admin;
+
allocating-service /services/sr:sr[name='ACME-west'];
+
request {
+
sync false;
+
}
+
}
+
allocation ACME-west-P-2 {
+
username admin;
+
allocating-service /services/sr:sr[name='ACME-west'];
+
request {
+
sync false;
+
}
+
}
+
+
+
+
+

17

allocation ACME-west-P-3 {
username admin;
allocating-service /services/sr:sr[name='ACME-west'];
request {
sync false;

USE CASES AND MODEL REPRESENTATIONS

3. Addition of new routers to Brown Field Deployment Topology(Example): A new
set of brown field P Routers has been brought into the existing topology that has
different instance name and loopback.

P4
P0

P2

P3

P1

Administrator can now use a different instance name and loopback depending on the PRouter configuration as shown below.

18

USE CASES AND MODEL REPRESENTATIONS

Model: Segment Routing
module: sr
augment /ncs:services:
+--rw sr* [name]
+--rw name
string
+--rw router* [device-name]
+--rw device-name
-> /ncs:devices/device/name
+--rw prefix-preference
| +--rw (prefix-choice)?
| +--:(auto-assign-prefix-sid)
| | +--rw auto-assign-prefix-sid? empty
| +--:(assign-prefix-sid)
|
+--rw assign-prefix-sid?
uint16
+--rw instance-preference
+--rw (instance-choice)?
+--:(use-sr-infrastructure)
| +--rw use-sr-infrastructure? empty
+--:(custom-instance)
+--rw custom-instance
+--rw instance-name? string
+--rw loopback?
uint32
Configuration of Model in NSO
admin@ncs% show | compare
services {
+ sr ACME-west {
+
router P-1 {
+
prefix-preference {
+
assign-prefix-sid 22001;
+
}
+
instance-preference {
+
custom-instance {

19

USE CASES AND MODEL REPRESENTATIONS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
}

instance-name foobar;
loopback 1;
}
}
router P-3 {
prefix-preference {
auto-assign-prefix-sid;
}
instance-preference {
custom-instance {
instance-name westzone;
loopback 1;
}
}
}

In this scenario, user has brought in two different routers as part of exisiting topology.
Each of the routers shares a different instance-name and loopback that is different from
one defined in the SR-infrastructure. In addition the user wishes to let NSO assign a
prefix-sid on one of the Routers for whatsoever reason while on the other Router User
wants to self assign a prefix sid id. NSO will only assign one id as requested, for the other
router NSO will just take the user input and assign to the router.

20

USE CASES AND MODEL REPRESENTATIONS
TEMPLATE




{$DEVICENAME}




{$INSTANCE-NAME}

{$SRGB-START}
{$SRGB-END}



ipv4
unicast





ldp



Loopback{$LOOPBACK}


true







Loopback{$LOOPBACK}


ipv4
unicast


absolute
{$PREFIX-SID}
enable
disable
disable













21

USE CASES AND MODEL REPRESENTATIONS
TEMPLATE VARIABLES
Variable name

Value

$INSTANCE_NAME

SR-INFRASTRUCTURE INSTANCE-NAME OR USER
DEFINED

$SRGB-START

SR-INFRASTRUCTURE RESOURCE POOL START RANGE
VALUE

$SRGB-END

SR-INFRASTRUCTURE RESOURCE POOL END RANGE
VALUE

$LOOPBACK

LOOPBACK ID

$PREFIX-SID

NSO ALLOCATED OR USER PROVIDED

DEVICE MODIFICATIONS
admin@ncs% request services sr ACME-west get-modifications
cli {
local-node {
data devices {
device P-1 {
config {
clns-isis-cfg:isis {
instances {
+
instance foobar {
+
srgb {
+
lower-bound 16000;

22

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

23

upper-bound 23999;
}
afs {
af ipv4 unicast {
af-data {
segment-routing {
prefix-sid-map {
advertise-local;
}
mpls ldp;
}
mpls {
router-id {
interface-name Loopback1;
}
level {
level2 true;
}
}
}
}
}
interfaces {
interface Loopback1 {
interface-afs {
interface-af ipv4 unicast {
interface-af-data {
prefix-sid {
type absolute;
value 22001;
php enable;
explicit-null disable;
nflag-clear disable;
}
}
}
}

+
+
+
+
+

running;
}
}
running;
}
}
}
}

+
+
+
+
+
+
+
+
+
+
+
+
+
+

}
device P-3 {
config {
clns-isis-cfg:isis {
instances {
instance westzone {
afs {
af ipv4 unicast {
af-data {
segment-routing {
prefix-sid-map {
advertise-local;
}
mpls ldp;
}
mpls {
router-id {
interface-name Loopback1;
}

+
+
+
+
+
+
+
+

24

level {
level2 true;
}
}
}
}
}
interfaces {

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

interface Loopback1 {
interface-afs {
interface-af ipv4 unicast {
interface-af-data {
prefix-sid {
type absolute;
value 16002;
php enable;
explicit-null disable;
nflag-clear disable;
}
}
}
}
running;

resource-pools {
id-pool sr-pool {
+
+
+
+
+
+
+

allocation ACME-west-P-3 {
username admin;
allocating-service /services/sr:sr[name='ACME-west'];
request {
sync false;
}
}
}

}
}
}

25

USE CASES AND MODEL REPRESENTATIONS

4. Configuration of Topology Independent Loop Free Alternative

P0

P1

Model
module: ti-lfa
augment /ncs:services:
+--rw ti-lfa* [name]+--rw address-family?
string
+--rw router* [device-name]
+--rw device-name
-> /ncs:devices/device/name
+--rw instance-name-preference
| +--rw (instance-name-choice)?
| +--:(use-sr-infrastructure)
| | +--rw use-sr-infrastructure? empty
| +--:(custom-instance)
|
+--rw custom-instance
|
+--rw instance-name? string
+--rw interface-preference
+--rw (interfaces)?
+--:(all-interfaces)
| +--rw all-interfaces? empty
+--:(select-interface)
+--rw select-interface* [interface-type interface-id]
+--rw interface-type int-type
+--rw interface-id int-id

26

USE CASES AND MODEL REPRESENTATIONS
The above model provides two alternatives to configure TI-LFA. One is to allow user to
cherry pick interfaces of the device on which TI-FLA needs to be configured, the other
is to configure all the interfaces.
Configuration of Model in NSO
The following example uses a custom instance name while specifying all interfaces to be
configured.
services {
+ ti-lfa ACME {
+
address-family ipv6;
+
router P-0 {
+
instance-name-preference {
+
custom-instance {
+
instance-name core;
+
}
+
}
+
interface-preference {
+
all-interfaces;
+
}
+
}
+ }
}
In this example, NSO uses the instance name provided that will be configured while NSO
will also read all the interfaces under this instance name and configure the TI-LFA on
each of these interfaces minus the Loopback interface.

27

USE CASES AND MODEL REPRESENTATIONS
TEMPLATE



{$DEVICE}




{$INSTANCE-NAME}


{$INTERFACE-NAME}{$INTERFACEID}


{$ADDRESS-FAMILY}
unicast




not-set




not-set
per-prefix


















28

USE CASES AND MODEL REPRESENTATIONS
TEMPLATE VARIABLES
TEMPLATE VARIABLE

VALUE

$INSTANCE-NAME

SR-INFRASTRUCUTRE OR USER PROVIDED

$INTERFACE-NAME

USER PROVIDER OR NSO FINDS IT
QUERYING DEVICE

$INTERFACE-ID

USER PROVIDED OR NSO FINDS IT
QUERYING DEVICE

ADDRESS-FAMILY

IPV4 OR IPV6

DEVICE MODIFICATIONS
admin@ncs% request services ti-lfa ACME get-modifications
cli {
local-node {
data devices {
device P-0 {
config {
clns-isis-cfg:isis {
instances {
instance core {
interfaces {
interface Bundle-Ether511 {
interface-afs {
+
interface-af ipv6 unicast {
+
interface-af-data {
+
interface-frr-table {
+
frr-types {

29

+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+

30

frr-type not-set {
type per-prefix;
}
}
frrtilfa-types {
frrtilfa-type not-set;
}
}
}
}
}
running;
}
interface TenGigabitEthernet2/1/1 {
interface-afs {
interface-af ipv6 unicast {
interface-af-data {
interface-frr-table {
frr-types {
frr-type not-set {
type per-prefix;
}
}
frrtilfa-types {
frrtilfa-type not-set;
}
}
}
}
}
running;
}
interface TenGigabitEthernet2/1/2 {
interface-afs {
interface-af ipv6 unicast {
interface-af-data {
interface-frr-table {

+
+
+
+
+
+
+
+
+
+
+

frr-types {
frr-type not-set {
type per-prefix;
}
}
frrtilfa-types {
frrtilfa-type not-set;
}
}
}
}
}
running;

+
}

}
running;

+
}

31

USE CASES AND MODEL REPRESENTATIONS
The following example uses an instance name defined in the sr-infrastructure while user
cherry picks few interfaces to be configured that are part of the instance-name. User
will not be able to provide a loopback.
admin@ncs% show | compare
services {
+ ti-lfa ACME {
+
address-family ipv4;
+
router P-0 {
+
instance-name-preference {
+
use-sr-infrastructure;
+
}
+
interface-preference {
+
select-interface Bundle-Ether 611;
+
select-interface Bundle-Ether 711;
+
select-interface Bundle-Ether 811;
+
}
+
}
+ }
}
[ok][2018-07-30 22:07:22]
[edit]
admin@ncs%

In this case NSO will send configure the interfaces specified above with ti-fla
configuration.

32

USE CASES AND MODEL REPRESENTATIONS
DEVICE MODIFICATIONS
admin@ncs% request services ti-lfa ACME get-modifications
cli {
local-node {
data devices {
device P-0 {
config {
clns-isis-cfg:isis {
instances {
instance CORE {
interfaces {
interface Bundle-Ether611 {
interface-afs {
+
interface-af ipv4 unicast {
+
interface-af-data {
+
interface-frr-table {
+
frr-types {
+
frr-type not-set {
+
type per-prefix;
+
}
+
}
+
frrtilfa-types {
+
frrtilfa-type not-set;
+
}
+
}
+
}
+
}
}
+
running;
}
interface Bundle-Ether711 {
interface-afs {
+
interface-af ipv4 unicast {
+
interface-af-data {

33

+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+

34

interface-frr-table {
frr-types {
frr-type not-set {
type per-prefix;
}
}
frrtilfa-types {
frrtilfa-type not-set;
}
}
}
}
}
running;
}
interface Bundle-Ether811 {
interface-afs {
interface-af ipv4 unicast {
interface-af-data {
interface-frr-table {
frr-types {
frr-type not-set {
type per-prefix;
}
}
frrtilfa-types {
frrtilfa-type not-set;
}
}
}
}
}

USE CASES AND MODEL REPRESENTATIONS

5. SEGMENT ROUTING MAPPING SERVER
a. Model : SR-MS
module: sr-ms
augment /ncs:services:
+--rw sr-ms* [name]
+--rw name
string
+--rw address-family?
string
+--rw ipv4-address?
inet:ipv4-address
+--rw prefix-length?
uint16
+--rw first-sid-value?
uint32
+--rw number-of-allocated-sids? uint32
+--rw router* [device-name]
+--rw device-name -> /ncs:devices/device/name
The above model takes in various input parameters from user and does template
replacement. NO NSO specific logic is done.
b. Configuration of Model in NSO
services {
+ sr-ms ACME {
+
address-family ipv4;
+
ipv4-address 192.168.10.1;
+
prefix-length 24;
+
first-sid-value 16001;
+
number-of-allocated-sids 80;
+
router P-0;
+ }
}

35

USE CASES AND MODEL REPRESENTATIONS
c. TEMPLATES



{/router/device-name}




{/address-family}
{/ipv4-address}
{/prefix-length}
{/first-sid-value}
{/number-of-allocated-sids}









TEMPLATE VARIABLES
TEMPLATE VARIABLE

VALUE

DEVICE-NAME

USER PROVIDED

ADDRESS-FAMILY

USER PROVIDED ipv4 or ipv6

IPV4-ADDRESS

USER PROVIDED

PREFIX-LENGTH

USER PROVIDED

FIRST SID VALUE

USER PROVIDED

36

NUMBER OF ALLOCATED-SIDS

USER PROVIDED

d. DEVICE MODIFICATIONS
admin@ncs% request services sr-ms ACME get-modifications
cli {
local-node {
data devices {
device P-0 {
config {
segment-routing-ms-cfg:sr {
mappings {
+
mapping ipv4 192.168.10.1 24 {
+
sid-start 16001;
+
sid-range 80;
+
}
}
+
enable;
}
}
}
}
}
}

37



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Create Date                     : 2018:08:30 20:08:42Z
Creator                         : Word
Modify Date                     : 2018:08:30 13:09:03-07:00
XMP Toolkit                     : Adobe XMP Core 5.6-c015 84.159810, 2016/09/10-02:41:30
Creator Tool                    : Word
Metadata Date                   : 2018:08:30 13:09:03-07:00
Keywords                        : 
Producer                        : Acrobat PDFMaker 15 for Word
Format                          : application/pdf
Title                           : Microsoft Word - CompassCoreTechnicalDocument-UserGuide.docx
Document ID                     : uuid:f01dcb32-f74e-d04f-bf18-0ead277466a5
Instance ID                     : uuid:ff23795a-fe3a-3142-a958-c8ab7f498676
Page Count                      : 37
EXIF Metadata provided by EXIF.tools

Navigation menu