draft-ietf-spring-sr-yang-06.txt   draft-ietf-spring-sr-yang-07.txt 
SPRING Working Group S. Litkowski SPRING Working Group S. Litkowski
Internet-Draft Orange Business Service Internet-Draft Orange Business Service
Intended status: Standards Track Y. Qu Intended status: Standards Track Y. Qu
Expires: September 11, 2017 Huawei Expires: January 2, 2018 Huawei
P. Sarkar P. Sarkar
J. Tantsura J. Tantsura
Individual Individual
March 10, 2017 July 01, 2017
YANG Data Model for Segment Routing YANG Data Model for Segment Routing
draft-ietf-spring-sr-yang-06 draft-ietf-spring-sr-yang-07
Abstract Abstract
This document defines a YANG data model ([RFC6020], [RFC7950]) for This document defines a YANG data model ([RFC6020], [RFC7950]) for
segment routing ([I-D.ietf-spring-segment-routing]) configuration and segment routing ([I-D.ietf-spring-segment-routing]) configuration and
operation. This YANG model is intended to be used on network operation. This YANG model is intended to be used on network
elements to configure or operate segment routing. This document elements to configure or operate segment routing. This document
defines also generic containers that SHOULD be reused by IGP protocol defines also generic containers that SHOULD be reused by IGP protocol
modules to support segment routing. modules to support segment routing.
skipping to change at page 1, line 45 skipping to change at page 1, line 45
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 11, 2017. This Internet-Draft will expire on January 2, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 28 skipping to change at page 2, line 28
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 6
4. IGP Control plane configuration . . . . . . . . . . . . . . . 7 4. IGP Control plane configuration . . . . . . . . . . . . . . . 7
4.1. IGP interface configuration . . . . . . . . . . . . . . . 7 4.1. IGP interface configuration . . . . . . . . . . . . . . . 7
4.1.1. Adjacency SID properties . . . . . . . . . . . . . . 8 4.1.1. Adjacency SID properties . . . . . . . . . . . . . . 7
4.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 8 4.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 7
4.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 8 4.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 8
5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 9 6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8
7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 9 7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 9
8. Security Considerations . . . . . . . . . . . . . . . . . . . 28 8. Security Considerations . . . . . . . . . . . . . . . . . . . 28
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29
11. Normative References . . . . . . . . . . . . . . . . . . . . 28 11. Normative References . . . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29
1. Introduction 1. Introduction
This document defines a YANG data model for segment routing This document defines a YANG data model for segment routing
configuration and operation. This document does not define the IGP configuration and operation. This document does not define the IGP
extensions to support segment routing but defines generic groupings extensions to support segment routing but defines generic groupings
that SHOULD be reused by IGP extension modules. The reason of this that SHOULD be reused by IGP extension modules. The reason of this
design choice is to not require implementations to support all IGP design choice is to not require implementations to support all IGP
extensions. For example, an implementation may support IS-IS extensions. For example, an implementation may support IS-IS
skipping to change at page 3, line 37 skipping to change at page 3, line 37
shown. shown.
2. Design of the Data Model 2. Design of the Data Model
As the module definition is just starting, it is expected that there As the module definition is just starting, it is expected that there
will be changes as the module matures. will be changes as the module matures.
module: ietf-segment-routing module: ietf-segment-routing
augment /rt:routing: augment /rt:routing:
+--rw segment-routing +--rw segment-routing
+--rw transport-type? identityref +--rw transport-type? identityref
+--ro node-capabilities
| +--ro transport-planes* [transport-plane]
| | +--ro transport-plane identityref
| +--ro readable-label-stack-depth? uint8
+--rw msd {msd}? +--rw msd {msd}?
| +--rw node-msd? uint8 | +--rw node-msd? uint8
| +--rw link-msd | +--rw link-msd
| +--rw link-msds* [interface] | +--rw link-msds* [interface]
| +--rw interface if:interface-ref | +--rw interface if:interface-ref
| +--rw msd? uint8 | +--rw msd? uint8
+--rw bindings +--rw bindings
| +--rw mapping-server {mapping-server}? | +--rw mapping-server {mapping-server}?
| | +--rw policy* [name] | | +--rw policy* [name]
| | +--rw name string | | +--rw name string
skipping to change at page 4, line 50 skipping to change at page 5, line 6
| +--rw prefix inet:ipv6-prefix | +--rw prefix inet:ipv6-prefix
| +--rw value-type? enumeration | +--rw value-type? enumeration
| +--rw start-sid uint32 | +--rw start-sid uint32
| +--rw range? uint32 | +--rw range? uint32
| +--rw algorithm identityref | +--rw algorithm identityref
+--rw global-srgb +--rw global-srgb
| +--rw srgb* [lower-bound upper-bound] | +--rw srgb* [lower-bound upper-bound]
| +--rw lower-bound uint32 | +--rw lower-bound uint32
| +--rw upper-bound uint32 | +--rw upper-bound uint32
+--rw srlb +--rw srlb
+--rw srlb* [lower-bound upper-bound] | +--rw srlb* [lower-bound upper-bound]
+--rw lower-bound uint32 | +--rw lower-bound uint32
+--rw upper-bound uint32 | +--rw upper-bound uint32
augment /rt:routing-state:
+--ro segment-routing
+--ro node-capabilities
| +--ro transport-planes* [transport-plane]
| | +--ro transport-plane identityref
| +--ro readable-label-stack-depth? uint8
+--ro msd
| +--ro node-msd? uint8
| +--ro link-msd
| +--ro link-msds* [interface]
| +--ro interface if:interface-ref
| +--ro msd? uint8
+--ro label-blocks* +--ro label-blocks*
| +--ro lower-bound? uint32 | +--ro lower-bound? uint32
| +--ro upper-bound? uint32 | +--ro upper-bound? uint32
| +--ro size? uint32 | +--ro size? uint32
| +--ro free? uint32 | +--ro free? uint32
| +--ro used? uint32 | +--ro used? uint32
| +--ro scope? enumeration | +--ro scope? enumeration
+--ro sid-list +--ro sid-list
+--ro sid* [target sid source source-protocol binding-type] +--ro sid* [target sid source source-protocol binding-type]
+--ro target string +--ro target string
+--ro sid uint32 +--ro sid uint32
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro source inet:ip-address +--ro source inet:ip-address
+--ro used? boolean +--ro used? boolean
+--ro source-protocol -> /rt:routing-state/control-plane-protocols +--ro source-protocol -> /rt:routing/control-plane-protocols
/control-plane-protocol/name + /control-plane-protocol/name
+--ro binding-type enumeration +--ro binding-type enumeration
+--ro scope? enumeration +--ro scope? enumeration
notifications: notifications:
+---n segment-routing-global-srgb-collision +---n segment-routing-global-srgb-collision
| +--ro srgb-collisions* | +--ro srgb-collisions*
| +--ro lower-bound? uint32 | +--ro lower-bound? uint32
| +--ro upper-bound? uint32 | +--ro upper-bound? uint32
| +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols | +--ro routing-protocol? -> /rt:routing/control-plane-protocols
| /control-plane-protocol/name | /control-plane-protocol/name
| +--ro originating-rtr-id? router-id | +--ro originating-rtr-id? router-id
+---n segment-routing-global-sid-collision +---n segment-routing-global-sid-collision
| +--ro received-target? string | +--ro received-target? string
| +--ro new-sid-rtr-id? router-id | +--ro new-sid-rtr-id? router-id
| +--ro original-target? string | +--ro original-target? string
| +--ro original-sid-rtr-id? router-id | +--ro original-sid-rtr-id? router-id
| +--ro index? uint32 | +--ro index? uint32
| +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols | +--ro routing-protocol? -> /rt:routing/control-plane-protocols
| /control-plane-protocol/name | /control-plane-protocol/name
+---n segment-routing-index-out-of-range +---n segment-routing-index-out-of-range
+--ro received-target? string +--ro received-target? string
+--ro received-index? uint32 +--ro received-index? uint32
+--ro routing-protocol? -> /rt:routing-state/control-plane-protocols +--ro routing-protocol? -> /rt:routing/control-plane-protocols
/control-plane-protocol/name /control-plane-protocol/name
notifications:
+---n segment-routing-global-srgb-collision
| +--ro srgb-collisions*
| +--ro lower-bound? uint32
| +--ro upper-bound? uint32
| +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols
| /control-plane-protocol/name
| +--ro originating-rtr-id? router-id
+---n segment-routing-global-sid-collision
| +--ro received-target? string
| +--ro new-sid-rtr-id? router-id
| +--ro original-target? string
| +--ro original-sid-rtr-id? router-id
| +--ro index? uint32
| +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols
| /control-plane-protocol/name
+---n segment-routing-index-out-of-range
+--ro received-target? string
+--ro received-index? uint32
+--ro routing-protocol? -> /rt:routing-state/control-plane-protocols
/control-plane-protocol/name
3. Configuration 3. Configuration
This module augments the "/rt:routing:" with a segment-routing This module augments the "/rt:routing:" with a segment-routing
container. This container defines all the configuration parameters container. This container defines all the configuration parameters
related to segment-routing. related to segment-routing.
The segment-routing configuration is split in global configuration The segment-routing configuration is split in global configuration
and interface configuration. and interface configuration.
skipping to change at page 9, line 35 skipping to change at page 9, line 19
advertised index is already associated with another target (in advertised index is already associated with another target (in
this version, the only defined targets are IPv4 and IPv6 this version, the only defined targets are IPv4 and IPv6
prefixes). prefixes).
o segment-routing-index-out-of-range: Raised when a control plane o segment-routing-index-out-of-range: Raised when a control plane
advertised index fall outside the range of SRGBs configured for advertised index fall outside the range of SRGBs configured for
the network device. the network device.
7. YANG Module 7. YANG Module
<CODE BEGINS> file "ietf-segment-routing-common@2017-03-10.yang" <CODE BEGINS> file "ietf-segment-routing-common@2017-07-01.yang"
module ietf-segment-routing-common { module ietf-segment-routing-common {
namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing-common"; namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing-common";
prefix sr-cmn; prefix sr-cmn;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization organization
"IETF SPRING Working Group"; "IETF SPRING - SPRING Working Group";
contact contact
"WG List: <mailto:spring@ietf.org> "WG Web: <http://tools.ietf.org/wg/spring/>
WG List: <mailto:spring@ietf.org>
Editor: Stephane Litkowski Editor: Stephane Litkowski
<mailto:stephane.litkowski@orange.com> <mailto:stephane.litkowski@orange.com>
Editor: Yingzhen Qu
<mailto:yingzhen.qu@huawei.com>
Author: Acee Lindem Author: Acee Lindem
<mailto:acee@cisco.com> <mailto:acee@cisco.com>
Author: Yingzhen Qu
<mailto:yingzhen.qu@huawei.com>
Author: Pushpasis Sarkar Author: Pushpasis Sarkar
<mailto:pushpasis.ietf@gmail.com> <mailto:pushpasis.ietf@gmail.com>
Author: Jeff Tantsura Author: Jeff Tantsura
<jefftant.ietf@gmail.com> <jefftant.ietf@gmail.com>
"; ";
description description
"The YANG module defines a collection of types and groupings for "The YANG module defines a collection of types and groupings for
Segment routing."; Segment routing.
Copyright (c) 2017 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices.";
reference "RFC XXXX";
revision 2017-07-01 {
description
"
*Conform to RFC6087BIS Appendix C
";
reference "RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2017-03-10 { revision 2017-03-10 {
description description
" "
* Add support of SRLB * Add support of SRLB
"; ";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
} }
revision 2016-10-28 { revision 2016-10-28 {
description description
" "
skipping to change at page 11, line 8 skipping to change at page 11, line 15
"Base identity for segment routing transport."; "Base identity for segment routing transport.";
} }
identity segment-routing-transport-mpls { identity segment-routing-transport-mpls {
base segment-routing-transport; base segment-routing-transport;
description description
"This identity represents MPLS transport for segment "This identity represents MPLS transport for segment
routing."; routing.";
} }
identity segment-routing-transport-ipv6 {
base segment-routing-transport;
description
"This identity represents IPv6 transport for segment
routing.";
}
identity prefix-sid-algorithm { identity prefix-sid-algorithm {
description description
"Base identity for prefix-sid algorithm."; "Base identity for prefix-sid algorithm.";
} }
identity prefix-sid-algorithm-shortest-path { identity prefix-sid-algorithm-shortest-path {
base prefix-sid-algorithm; base prefix-sid-algorithm;
description description
"The default behavior of prefix-sid algorithm."; "The default behavior of prefix-sid algorithm.";
} }
skipping to change at page 13, line 38 skipping to change at page 14, line 4
} }
enum "php" { enum "php" {
description description
"Use PHP for the SID."; "Use PHP for the SID.";
} }
} }
description description
"Configure last hop behavior."; "Configure last hop behavior.";
} }
} }
grouping node-capabilities { grouping node-capabilities {
description description
"Containing SR node capabilities."; "Containing SR node capabilities.";
container node-capabilities { container node-capabilities {
config false;
description description
"Shows the SR capability of the node."; "Shows the SR capability of the node.";
list transport-planes { list transport-planes {
key "transport-plane"; key "transport-plane";
description description
"List of supported transport planes."; "List of supported transport planes.";
leaf transport-plane { leaf transport-plane {
type identityref { type identityref {
base segment-routing-transport; base segment-routing-transport;
} }
description description
"Transport plane supported"; "Transport plane supported";
} }
} }
leaf readable-label-stack-depth { leaf readable-label-stack-depth {
type uint8; type uint8;
description description
"Number of MPLS labels that "Number of MPLS labels that
can be read in the stack."; can be read in the stack.";
skipping to change at page 14, line 48 skipping to change at page 15, line 13
leaf algorithm { leaf algorithm {
type identityref { type identityref {
base prefix-sid-algorithm; base prefix-sid-algorithm;
} }
description description
"Prefix-sid algorithm."; "Prefix-sid algorithm.";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
<CODE BEGINS> file "ietf-segment-routing@2017-03-10.yang" <CODE BEGINS> file "ietf-segment-routing@2017-07-01.yang"
module ietf-segment-routing { module ietf-segment-routing {
namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing"; namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing";
prefix sr; prefix sr;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
import ietf-routing { import ietf-routing {
prefix rt; prefix rt;
} }
import ietf-interfaces { import ietf-interfaces {
skipping to change at page 15, line 23 skipping to change at page 15, line 37
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import ietf-segment-routing-common { import ietf-segment-routing-common {
prefix sr-cmn; prefix sr-cmn;
} }
organization organization
"IETF SPRING Working Group"; "IETF SPRING Working Group";
contact contact
"WG List: <mailto:spring@ietf.org> "WG Web: <http://tools.ietf.org/wg/spring/>
WG List: <mailto:spring@ietf.org>
Editor: Stephane Litkowski Editor: Stephane Litkowski
<mailto:stephane.litkowski@orange.com> <mailto:stephane.litkowski@orange.com>
Editor: Yingzhen Qu
<mailto:yingzhen.qu@huawei.com>
Author: Acee Lindem Author: Acee Lindem
<mailto:acee@cisco.com> <mailto:acee@cisco.com>
Author: Yingzhen Qu
<mailto:yingzhen.qu@huawei.com>
Author: Pushpasis Sarkar Author: Pushpasis Sarkar
<mailto:pushpasis.ietf@gmail.com> <mailto:pushpasis.ietf@gmail.com>
Author: Jeff Tantsura Author: Jeff Tantsura
<jefftant.ietf@gmail.com> <jefftant.ietf@gmail.com>
"; ";
description description
"The YANG module defines a generic configuration model for "The YANG module defines a generic configuration model for
Segment routing common across all of the vendor Segment routing common across all of the vendor
implementations."; implementations.
Copyright (c) 2017 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices.";
reference "RFC XXXX";
revision 2017-07-01 {
description
"
* Implement NMDA model
*Conform to RFC6087BIS Appendix C
";
reference "RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2017-03-10 { revision 2017-03-10 {
description description
" "
* Change global-sid-list to sid-list and add a leaf scope * Change global-sid-list to sid-list and add a leaf scope
* Added support of SRLB * Added support of SRLB
* Added support of local sids * Added support of local sids
* fixed indentations * fixed indentations
"; ";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
skipping to change at page 20, line 31 skipping to change at page 21, line 21
} }
leaf msd { leaf msd {
type uint8; type uint8;
description description
"SID depth of the interface associated with the link."; "SID depth of the interface associated with the link.";
} }
} }
} }
} }
notification segment-routing-global-srgb-collision {
description
"This notification is sent when received SRGB blocks from
a router conflict.";
list srgb-collisions {
description
"List of SRGB blocks that conflict.";
leaf lower-bound {
type uint32;
description
"Lower value in the block.";
}
leaf upper-bound {
type uint32;
description
"Upper value in the block.";
}
leaf routing-protocol {
type leafref {
path "/rt:routing-state/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name";
}
description
"Routing protocol reference that received the event.";
}
leaf originating-rtr-id {
type router-id;
description
"Originating router id of this SRGB block.";
}
}
}
notification segment-routing-global-sid-collision {
description
"This notification is sent when a new mapping is learned
, containing mapping
where the SID is already used.
The notification generation must be throttled with at least
a 5 second gap. ";
leaf received-target {
type string;
description
"Target received in the controlplane that
caused SID collision.";
}
leaf new-sid-rtr-id {
type router-id;
description
"Router Id that advertising the conflicting SID.";
}
leaf original-target {
type string;
description
"Target already available in database that have the same SID
as the received target.";
}
leaf original-sid-rtr-id {
type router-id;
description
"Original router ID that advertised the conflicting SID.";
}
leaf index {
type uint32;
description
"Value of the index used by two different prefixes.";
}
leaf routing-protocol {
type leafref {
path "/rt:routing-state/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name";
}
description
"Routing protocol reference that received the event.";
}
}
notification segment-routing-index-out-of-range {
description
"This notification is sent when a binding
is received, containing a segment index
which is out of the local configured ranges.
The notification generation must be throttled with at least
a 5 second gap. ";
leaf received-target {
type string;
description
"Target received in the controlplane
that caused SID collision.";
}
leaf received-index {
type uint32;
description
"Value of the index received.";
}
leaf routing-protocol {
type leafref {
path "/rt:routing-state/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name";
}
description
"Routing protocol reference that received the event.";
}
}
augment "/rt:routing" { augment "/rt:routing" {
description description
"This augments routing-instance "This augments routing-instance
configuration with segment-routing."; configuration with segment-routing.";
container segment-routing { container segment-routing {
description description
"segment routing global config."; "segment routing global config.";
leaf transport-type { leaf transport-type {
type identityref { type identityref {
base sr-cmn:segment-routing-transport; base sr-cmn:segment-routing-transport;
} }
default "sr-cmn:segment-routing-transport-mpls"; default "sr-cmn:segment-routing-transport-mpls";
description description
"Dataplane to be used."; "Dataplane to be used.";
} }
uses sr-cmn:node-capabilities;
container msd { container msd {
if-feature "msd"; if-feature "msd";
description description
"MSD configuration."; "MSD configuration.";
uses msd-cfg; uses msd-cfg;
} }
container bindings { container bindings {
description description
"List of bindings."; "List of bindings.";
container mapping-server { container mapping-server {
skipping to change at page 25, line 16 skipping to change at page 23, line 50
container global-srgb { container global-srgb {
description description
"Global SRGB configuration."; "Global SRGB configuration.";
uses sr-cmn:srgb-cfg; uses sr-cmn:srgb-cfg;
} }
container srlb { container srlb {
description description
"SR Local Block configuration."; "SR Local Block configuration.";
uses sr-cmn:srlb-cfg; uses sr-cmn:srlb-cfg;
} }
}
}
augment "/rt:routing-state" {
description
"This augments the operational states
with segment-routing.";
container segment-routing {
description
"Segment routing operational states.";
uses sr-cmn:node-capabilities;
container msd {
description
"MSD configuration state.";
uses msd-cfg;
}
list label-blocks { list label-blocks {
config false;
description description
"List of labels blocks currently "List of labels blocks currently
in use."; in use.";
leaf lower-bound { leaf lower-bound {
type uint32; type uint32;
description description
"Lower bound of the label block."; "Lower bound of the label block.";
} }
leaf upper-bound { leaf upper-bound {
type uint32; type uint32;
skipping to change at page 26, line 27 skipping to change at page 24, line 48
enum "local" { enum "local" {
description description
"Local sid."; "Local sid.";
} }
} }
description description
"Scope of this label block."; "Scope of this label block.";
} }
} }
container sid-list { container sid-list {
config false;
description description
"List of prefix and SID associations."; "List of prefix and SID associations.";
list sid { list sid {
key "target sid source source-protocol binding-type"; key "target sid source source-protocol binding-type";
ordered-by system; ordered-by system;
description description
"Binding."; "Binding.";
leaf target { leaf target {
type string; type string;
description description
skipping to change at page 27, line 17 skipping to change at page 25, line 39
the binding."; the binding.";
} }
leaf used { leaf used {
type boolean; type boolean;
description description
"Defines if the binding is used "Defines if the binding is used
in forwarding plane."; in forwarding plane.";
} }
leaf source-protocol { leaf source-protocol {
type leafref { type leafref {
path "/rt:routing-state/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
description description
"Rtg protocol that owns the binding"; "Rtg protocol that owns the binding";
} }
leaf binding-type { leaf binding-type {
type enumeration { type enumeration {
enum "prefix-sid" { enum "prefix-sid" {
description description
"Binding is learned from "Binding is learned from
skipping to change at page 28, line 4 skipping to change at page 26, line 26
description description
"Global sid."; "Global sid.";
} }
enum "local" { enum "local" {
description description
"Local sid."; "Local sid.";
} }
} }
description description
"The sid is local or global."; "The sid is local or global.";
} }
} }
} }
} }
} }
notification segment-routing-global-srgb-collision {
description
"This notification is sent when received SRGB blocks from
a router conflict.";
list srgb-collisions {
description
"List of SRGB blocks that conflict.";
leaf lower-bound {
type uint32;
description
"Lower value in the block.";
}
leaf upper-bound {
type uint32;
description
"Upper value in the block.";
}
leaf routing-protocol {
type leafref {
path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name";
}
description
"Routing protocol reference that received the event.";
}
leaf originating-rtr-id {
type router-id;
description
"Originating router id of this SRGB block.";
}
}
}
notification segment-routing-global-sid-collision {
description
"This notification is sent when a new mapping is learned
, containing mapping
where the SID is already used.
The notification generation must be throttled with at least
a 5 second gap. ";
leaf received-target {
type string;
description
"Target received in the controlplane that
caused SID collision.";
}
leaf new-sid-rtr-id {
type router-id;
description
"Router Id that advertising the conflicting SID.";
}
leaf original-target {
type string;
description
"Target already available in database that have the same SID
as the received target.";
}
leaf original-sid-rtr-id {
type router-id;
description
"Original router ID that advertised the conflicting SID.";
}
leaf index {
type uint32;
description
"Value of the index used by two different prefixes.";
}
leaf routing-protocol {
type leafref {
path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name";
}
description
"Routing protocol reference that received the event.";
}
}
notification segment-routing-index-out-of-range {
description
"This notification is sent when a binding
is received, containing a segment index
which is out of the local configured ranges.
The notification generation must be throttled with at least
a 5 second gap. ";
leaf received-target {
type string;
description
"Target received in the controlplane
that caused SID collision.";
}
leaf received-index {
type uint32;
description
"Value of the index received.";
}
leaf routing-protocol {
type leafref {
path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name";
}
description
"Routing protocol reference that received the event.";
}
}
} }
<CODE ENDS> <CODE ENDS>
8. Security Considerations 8. Security Considerations
TBD. TBD.
9. Acknowledgements 9. Acknowledgements
Authors would like to thank Derek Yeung, Acee Lindem, Greg Hankins, Authors would like to thank Derek Yeung, Acee Lindem, Greg Hankins,
skipping to change at page 28, line 32 skipping to change at page 29, line 14
10. IANA Considerations 10. IANA Considerations
TBD. TBD.
11. Normative References 11. Normative References
[I-D.ietf-isis-segment-routing-msd] [I-D.ietf-isis-segment-routing-msd]
Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg,
"Signaling MSD (Maximum SID Depth) using IS-IS", draft- "Signaling MSD (Maximum SID Depth) using IS-IS", draft-
ietf-isis-segment-routing-msd-02 (work in progress), March ietf-isis-segment-routing-msd-04 (work in progress), June
2017. 2017.
[I-D.ietf-ospf-segment-routing-msd] [I-D.ietf-ospf-segment-routing-msd]
Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak,
"Signaling MSD (Maximum SID Depth) using OSPF", draft- "Signaling MSD (Maximum SID Depth) using OSPF", draft-
ietf-ospf-segment-routing-msd-02 (work in progress), March ietf-ospf-segment-routing-msd-05 (work in progress), June
2017. 2017.
[I-D.ietf-spring-segment-routing] [I-D.ietf-spring-segment-routing]
Filsfils, C., Previdi, S., Decraene, B., Litkowski, S., Filsfils, C., Previdi, S., Decraene, B., Litkowski, S.,
and R. Shakir, "Segment Routing Architecture", draft-ietf- and R. Shakir, "Segment Routing Architecture", draft-ietf-
spring-segment-routing-11 (work in progress), February spring-segment-routing-12 (work in progress), June 2017.
2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020, Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010. October 2010.
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language",
RFC 7950, August 2016. RFC 7950, August 2016.
 End of changes. 42 change blocks. 
189 lines changed or deleted 203 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/