< draft-ietf-spring-sr-yang-14.txt   draft-ietf-spring-sr-yang-15.txt >
SPRING Working Group S. Litkowski SPRING Working Group S. Litkowski
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Standards Track Y. Qu Intended status: Standards Track Y. Qu
Expires: May 6, 2020 Futurewei Expires: July 12, 2020 Futurewei
A. Lindem A. Lindem
Cisco Systems Cisco Systems
P. Sarkar P. Sarkar
Individual Individual
J. Tantsura J. Tantsura
Apstra Apstra
November 3, 2019 January 9, 2020
YANG Data Model for Segment Routing YANG Data Model for Segment Routing
draft-ietf-spring-sr-yang-14 draft-ietf-spring-sr-yang-15
Abstract Abstract
This document defines a YANG data model ([RFC6020], [RFC7950]) for This document defines a YANG data model ([RFC6020], [RFC7950]) for
segment routing ([RFC8402]) configuration and operation. This YANG segment routing ([RFC8402]) configuration and operation. This YANG
model is intended to be used on network elements to configure or model is intended to be used on network elements to configure or
operate segment routing. This document defines also generic operate segment routing MPLS data plane [RFC8660]. This document
containers that SHOULD be reused by IGP protocol modules to support defines also generic containers that SHOULD be reused by IGP protocol
segment routing. modules to support segment routing.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 May 6, 2020. This Internet-Draft will expire on July 12, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2020 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 31 skipping to change at page 2, line 31
3. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 3. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
4. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 5
5. IGP Control plane configuration . . . . . . . . . . . . . . . 6 5. IGP Control plane configuration . . . . . . . . . . . . . . . 6
5.1. IGP interface configuration . . . . . . . . . . . . . . . 7 5.1. IGP interface configuration . . . . . . . . . . . . . . . 7
5.1.1. Adjacency SID properties . . . . . . . . . . . . . . 7 5.1.1. Adjacency SID properties . . . . . . . . . . . . . . 7
5.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 7 5.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 7
5.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 8 5.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 8
6. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8 7. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8
8. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8
9. Security Considerations . . . . . . . . . . . . . . . . . . . 25 9. Security Considerations . . . . . . . . . . . . . . . . . . . 26
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 27
12.1. Normative References . . . . . . . . . . . . . . . . . . 27 12.1. Normative References . . . . . . . . . . . . . . . . . . 27
12.2. Informative References . . . . . . . . . . . . . . . . . 28 12.2. Informative 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
extension but not OSPF. extension but not OSPF.
The YANG modules in this document conform to the Network Management The YANG modules in this document conform to the Network Management
Datastore Architecture (NMDA) [RFC8342]. Datastore Architecture (NMDA) [RFC8342].
2. Terminology and Notation 2. Terminology and Notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2.1. Tree diagram 2.1. Tree diagram
Tree diagrams used in this document follow the notation defined in Tree diagrams used in this document follow the notation defined in
[RFC8340]. [RFC8340].
2.2. Prefixes in Data Node Names 2.2. Prefixes in Data Node Names
In this document, names of data nodes, actions, and other data model In this document, names of data nodes, actions, and other data model
objects are often used without a prefix, as long as it is clear from objects are often used without a prefix, as long as it is clear from
skipping to change at page 3, line 38 skipping to change at page 3, line 40
| rt | ietf-routing | [RFC8349] | | rt | ietf-routing | [RFC8349] |
| rt-types | ietf-routing-types | [RFC8294] | | rt-types | ietf-routing-types | [RFC8294] |
| yang | ietf-yang-types | [RFC6991] | | yang | ietf-yang-types | [RFC6991] |
| inet | ietf-inet-types | [RFC6991] | | inet | ietf-inet-types | [RFC6991] |
+----------+--------------------+-----------+ +----------+--------------------+-----------+
Table 1: Prefixes and Corresponding YANG Modules Table 1: Prefixes and Corresponding YANG Modules
3. Design of the Data Model 3. Design of the Data Model
As the module definition is just starting, it is expected that there Module ietf-segment-routing augments the routing container in the
will be changes as the module matures. ietf-routing model [RFC8349], and defines generic segment routing
configuration and operational state. This module is augmented by
modules supporting different data planes.
module: ietf-segment-routing Module ietf-segment-routing-mpls augments ietf-segment-routing, and
augment /rt:routing: supports SR MPLS data plane configuration and operational state.
+--rw segment-routing
+--rw transport-type? identityref
+--ro node-capabilities
| +--ro transport-planes* [transport-plane]
| | +--ro transport-plane identityref
| +--ro entropy-readable-label-depth? uint8
+--rw msd {max-sid-depth}?
| +--rw node-msd? uint8
| +--rw link-msd
| +--rw link-msds* [interface]
| +--rw interface if:interface-ref
| +--rw msd? uint8
+--rw bindings
| +--rw mapping-server {mapping-server}?
| | +--rw policy* [name]
| | +--rw name string
| | +--rw entries
| | +--rw mapping-entry* [prefix algorithm]
| | +--rw prefix inet:ip-prefix
| | +--rw value-type? enumeration
| | +--rw start-sid uint32
| | +--rw range? uint32
| | +--rw algorithm identityref
| +--rw connected-prefix-sid-map
| | +--rw connected-prefix-sid* [prefix algorithm]
| | +--rw prefix inet:ip-prefix
| | +--rw value-type? enumeration
| | +--rw start-sid uint32
| | +--rw range? uint32
| | +--rw algorithm identityref
| | +--rw last-hop-behavior? enumeration
| | {sid-last-hop-behavior}?
| +--rw local-prefix-sid
| +--rw local-prefix-sid* [prefix algorithm]
| +--rw prefix inet:ip-prefix
| +--rw value-type? enumeration
| +--rw start-sid uint32
| +--rw range? uint32
| +--rw algorithm identityref
+--rw global-srgb
| +--rw srgb* [lower-bound upper-bound]
| +--rw lower-bound uint32
| +--rw upper-bound uint32
+--rw srlb
| +--rw srlb* [lower-bound upper-bound]
| +--rw lower-bound uint32
| +--rw upper-bound uint32
+--ro label-blocks*
| +--ro lower-bound? uint32
| +--ro upper-bound? uint32
| +--ro size? uint32
| +--ro free? uint32
| +--ro used? uint32
| +--ro scope? enumeration
+--ro sid-list
+--ro sid* [target sid source source-protocol binding-type]
+--ro target string
+--ro sid uint32
+--ro algorithm? uint8
+--ro source inet:ip-address
+--ro used? boolean
+--ro source-protocol -> /rt:routing
/control-plane-protocols
/control-plane-protocol/name
+--ro binding-type enumeration
+--ro scope? enumeration
notifications: module: ietf-segment-routing
+---n segment-routing-global-srgb-collision augment /rt:routing:
| +--ro srgb-collisions* +--rw segment-routing
| +--ro lower-bound? uint32
| +--ro upper-bound? uint32 module: ietf-segment-routing-mpls
| +--ro routing-protocol? -> /rt:routing augment /rt:routing/sr:segment-routing:
| /control-plane-protocols +--rw sr-mpls
| /control-plane-protocol/name +--ro node-capabilities
| +--ro originating-rtr-id? router-id | +--ro entropy-readable-label-depth? uint8
+---n segment-routing-global-sid-collision +--rw msd {max-sid-depth}?
| +--ro received-target? string | +--rw node-msd? uint8
| +--ro new-sid-rtr-id? router-id | +--rw link-msd
| +--ro original-target? string | +--rw link-msds* [interface]
| +--ro original-sid-rtr-id? router-id | +--rw interface if:interface-ref
| +--ro index? uint32 | +--rw msd? uint8
| +--ro routing-protocol? -> /rt:routing +--rw bindings
| /control-plane-protocols | +--rw mapping-server {mapping-server}?
| /control-plane-protocol/name | | +--rw policy* [name]
+---n segment-routing-index-out-of-range | | +--rw name string
+--ro received-target? string | | +--rw entries
+--ro received-index? uint32 | | +--rw mapping-entry* [prefix algorithm]
+--ro routing-protocol? -> /rt:routing | | +--rw prefix inet:ip-prefix
/control-plane-protocols | | +--rw value-type? enumeration
/control-plane-protocol/name | | +--rw start-sid uint32
| | +--rw range? uint32
| | +--rw algorithm identityref
| +--rw connected-prefix-sid-map
| | +--rw connected-prefix-sid* [prefix algorithm]
| | +--rw prefix inet:ip-prefix
| | +--rw value-type? enumeration
| | +--rw start-sid uint32
| | +--rw range? uint32
| | +--rw algorithm identityref
| | +--rw last-hop-behavior? enumeration {sid-last-hop-behavior}?
| +--rw local-prefix-sid
| +--rw local-prefix-sid* [prefix algorithm]
| +--rw prefix inet:ip-prefix
| +--rw value-type? enumeration
| +--rw start-sid uint32
| +--rw range? uint32
| +--rw algorithm identityref
+--rw global-srgb
| +--rw srgb* [lower-bound upper-bound]
| +--rw lower-bound uint32
| +--rw upper-bound uint32
+--rw srlb
| +--rw srlb* [lower-bound upper-bound]
| +--rw lower-bound uint32
| +--rw upper-bound uint32
+--ro label-blocks* []
| +--ro lower-bound? uint32
| +--ro upper-bound? uint32
| +--ro size? uint32
| +--ro free? uint32
| +--ro used? uint32
| +--ro scope? enumeration
+--ro sid-db
+--ro sid* [target sid source source-protocol binding-type]
+--ro target string
+--ro sid uint32
+--ro algorithm? uint8
+--ro source inet:ip-address
+--ro used? boolean
+--ro source-protocol -> /rt:routing
/control-plane-protocols
/control-plane-protocol/name
+--ro binding-type enumeration
+--ro scope? enumeration
notifications:
+---n segment-routing-global-srgb-collision
| +--ro srgb-collisions* []
| +--ro lower-bound? uint32
| +--ro upper-bound? uint32
| +--ro routing-protocol? -> /rt:routing
| /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
| /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
/control-plane-protocols
/control-plane-protocol/name
4. Configuration 4. Configuration
This module augments the "/rt:routing:" with a segment-routing The module ietf-segment-routing-mpls augments the "/rt:routing/
container. This container defines all the configuration parameters sr:segment-routing:" with a sr-mpls container. This container
related to segment-routing. defines all the configuration parameters related to segment-routing
MPLS data plane.
The segment-routing configuration is split in global configuration The sr-mpls configuration is split in global configuration and
and interface configuration. interface configuration.
The global configuration includes : The global configuration includes :
o segment-routing transport type : The underlying transport type for
segment routing. The version of the model limits the transport
type to an MPLS dataplane. The transport-type is only defined
once for a particular routing-instance and is agnostic to the
control plane used. Only a single transport-type is supported in
this version of the model.
o bindings : Defines prefix to SID mappings. The operator can o bindings : Defines prefix to SID mappings. The operator can
control advertisement of Prefix-SID independently for IPv4 and control advertisement of Prefix-SID independently for IPv4 and
IPv6. Two types of mappings are available : IPv6. Two types of mappings are available:
* Mapping-server : maps non local prefixes to a segment ID. * Mapping-server : maps non local prefixes to a segment ID.
Configuration of bindings does not automatically allow Configuration of bindings does not automatically allow
advertisement of those bindings. Advertisement must be advertisement of those bindings. Advertisement must be
controlled by each routing-protocol instance (see Section 5). controlled by each routing-protocol instance (see Section 5).
Multiple mapping policies may be defined. Multiple mapping policies may be defined.
* Connected prefixes : maps connected prefixes to a segment ID. * Connected prefixes : maps connected prefixes to a segment ID.
Advertisement of the mapping will be done by IGP when enabled Advertisement of the mapping will be done by IGP when enabled
for segment routing (see Section 5). The SID value can be for segment routing (see Section 5). The SID value can be
skipping to change at page 8, line 51 skipping to change at page 8, line 51
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.
8. YANG Module 8. YANG Module
The following RFCs and drafts are not referenced in the document text The following RFCs and drafts are not referenced in the document text
but are referenced in the ietf-segment-rouuting-common.yang and/or but are referenced in the ietf-segment-rouuting-common.yang and/or
ietf-segment-routing.yang module: [RFC6991], [RFC8294], [RFC8476], ietf-segment-routing.yang module: [RFC6991], [RFC8294], [RFC8476],
and [RFC8491]. and [RFC8491].
<CODE BEGINS> file "ietf-segment-routing-common@2019-11-03.yang" <CODE BEGINS> file "ietf-segment-routing@2020-01-09.yang"
module ietf-segment-routing {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing";
prefix sr;
import ietf-routing {
prefix rt;
}
organization
"IETF SPRING - SPRING Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/spring/>
WG List: <mailto:spring@ietf.org>
Editor: Stephane Litkowski
<mailto:slitkows.ietf@gmail.com>
Editor: Yingzhen Qu
<mailto:yingzhen.qu@futurewei.com>
Author: Acee Lindem
<mailto:acee@cisco.com>
Author: Pushpasis Sarkar
<mailto:pushpasis.ietf@gmail.com>
Author: Jeff Tantsura
<jefftant.ietf@gmail.com>
";
description
"The YANG module defines a generic configuration model for
Segment Routing common across all of the vendor
implementations. It's to be augmented by different SR data
planes.
Copyright (c) 2020 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 2020-01-09 {
description
"Initial Version";
reference "RFC XXXX: YANG Data Model for Segment Routing.";
}
augment "/rt:routing" {
description
"This augments routing data model (RFC 8349)
with Segment Routing (SR).";
container segment-routing {
description
"Segment Routing configuration. This container
is to be augmented by different SR data planes.";
}
}
}
<CODE ENDS>
<CODE BEGINS> file "ietf-segment-routing-common@2020-01-09.yang"
module ietf-segment-routing-common { module ietf-segment-routing-common {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-segment-routing-common"; "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;
} }
skipping to change at page 9, line 37 skipping to change at page 11, line 10
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 generic types and "The YANG module defines a collection of generic types and
grouping for Segment Routing (SR) as described in RFC 8402. grouping for Segment Routing (SR) as described in RFC 8402.
Copyright (c) 2019 IETF Trust and the persons identified as Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices."; see the RFC itself for full legal notices.";
reference "RFC XXXX"; reference "RFC XXXX";
revision 2019-11-03 {
revision 2020-01-09 {
description description
"Initial version"; "Initial version";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
} }
feature sid-last-hop-behavior { feature sid-last-hop-behavior {
description description
"Configurable last hop behavior."; "Configurable last hop behavior.";
} }
identity segment-routing-transport {
description
"Base identity for segment routing transport.";
}
identity segment-routing-transport-mpls {
base segment-routing-transport;
description
"This identity represents MPLS transport for segment
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
"Shortest Path First (SPF) prefix-sid algorithm. This "Shortest Path First (SPF) prefix-sid algorithm. This
is the default algorthm."; is the default algorthm.";
skipping to change at page 10, line 51 skipping to change at page 12, line 4
description description
"Shortest Path First (SPF) prefix-sid algorithm. This "Shortest Path First (SPF) prefix-sid algorithm. This
is the default algorthm."; is the default algorthm.";
} }
identity prefix-sid-algorithm-strict-spf { identity prefix-sid-algorithm-strict-spf {
base prefix-sid-algorithm; base prefix-sid-algorithm;
description description
"This algorithm mandates that the packet is forwarded "This algorithm mandates that the packet is forwarded
according to ECMP-aware SPF algorithm."; according to ECMP-aware SPF algorithm.";
} }
grouping srlr { grouping srlr {
description description
"Grouping for SR Label Range configuration."; "Grouping for SR Label Range configuration.";
leaf lower-bound { leaf lower-bound {
type uint32; type uint32;
description description
"Lower value in the label range."; "Lower value in the label range.";
} }
leaf upper-bound { leaf upper-bound {
type uint32; type uint32;
must "../lower-bound < ../upper-bound" { must "../lower-bound < ../upper-bound" {
error-message error-message
"The upper-bound must be larger than the lower-bound."; "The upper-bound must be larger than the lower-bound.";
description description
"The value MUST be greater than 'lower-bound'."; "The value must be greater than 'lower-bound'.";
} }
description description
"Upper value in the label range."; "Upper value in the label range.";
} }
} }
grouping srgb { grouping srgb {
description description
"Grouping for SR Global Label range."; "Grouping for SR Global Label range.";
list srgb { list srgb {
skipping to change at page 13, line 39 skipping to change at page 14, line 41
} }
} }
grouping node-capabilities { grouping node-capabilities {
description description
"Containing SR node capabilities."; "Containing SR node capabilities.";
container node-capabilities { container node-capabilities {
config false; config false;
description description
"Shows the SR capability of the node."; "Shows the SR capability of the node.";
list transport-planes {
key "transport-plane";
description
"List of supported transport planes.";
leaf transport-plane {
type identityref {
base segment-routing-transport;
}
description
"Transport plane supported";
}
}
leaf entropy-readable-label-depth { leaf entropy-readable-label-depth {
type uint8; type uint8;
description description
"Maximum label stack depth that a router can read."; "Maximum label stack depth that a router can read.";
} }
} }
} }
grouping prefix-sid-attributes { grouping prefix-sid-attributes {
description description
skipping to change at page 14, line 36 skipping to change at page 15, line 26
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@2019-11-03.yang" <CODE BEGINS> file "ietf-segment-routing-mpls@2020-01-09.yang"
module ietf-segment-routing { module ietf-segment-routing-mpls {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing"; namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing-mpls";
prefix sr; prefix sr-mpls;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-routing { import ietf-routing {
prefix rt; prefix rt;
} }
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import ietf-routing-types { import ietf-routing-types {
prefix rt-types; prefix rt-types;
} }
import ietf-segment-routing {
prefix sr;
}
import ietf-segment-routing-common { import ietf-segment-routing-common {
prefix sr-cmn; prefix sr-cmn;
} }
organization organization
"IETF SPRING - SPRING Working Group"; "IETF SPRING - SPRING Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/spring/> "WG Web: <http://tools.ietf.org/wg/spring/>
WG List: <mailto:spring@ietf.org> WG List: <mailto:spring@ietf.org>
skipping to change at page 15, line 31 skipping to change at page 16, line 24
Author: Acee Lindem Author: Acee Lindem
<mailto:acee@cisco.com> <mailto:acee@cisco.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 MPLS data plane.
implementations.
Copyright (c) 2019 IETF Trust and the persons identified as Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices."; see the RFC itself for full legal notices.";
reference "RFC XXXX"; reference "RFC XXXX";
revision 2019-11-03 { revision 2020-01-09 {
description description
"Initial Version"; "Initial Version";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
} }
feature mapping-server { feature mapping-server {
description description
"Support for Segment Routing Mapping Server (SRMS)."; "Support for Segment Routing Mapping Server (SRMS).";
} }
feature protocol-srgb { feature protocol-srgb {
description description
"Support for per-protocol Segment Routing Global Block "Support for per-protocol Segment Routing Global Block
(SRGB) configuration."; (SRGB) configuration.";
} }
feature max-sid-depth { feature max-sid-depth {
description description
"Support for signaling MSD (Maximum SID Depth) in IGP."; "Support for signaling MSD (Maximum SID Depth) in IGP.";
} }
skipping to change at page 19, line 24 skipping to change at page 20, line 17
} }
leaf msd { leaf msd {
type uint8; type uint8;
description description
"MSD supported by the interface."; "MSD supported by the interface.";
} }
} }
} }
} }
augment "/rt:routing" { augment "/rt:routing/sr:segment-routing" {
description description
"This augments routing data model (RFC 8349) "This augments routing data model (RFC 8349)
with Segment Routing (SR)."; with Segment Routing (SR).";
container segment-routing { container sr-mpls {
description description
"Segment Routing global configuration."; "Segment Routing global configuration.";
leaf transport-type {
type identityref {
base sr-cmn:segment-routing-transport;
}
default "sr-cmn:segment-routing-transport-mpls";
description
"Dataplane to be used.";
}
uses sr-cmn:node-capabilities; uses sr-cmn:node-capabilities;
container msd { container msd {
if-feature "max-sid-depth"; if-feature "max-sid-depth";
description description
"MSD configuration."; "MSD configuration.";
uses max-sid-depth; uses max-sid-depth;
} }
container bindings { container bindings {
description description
"List of bindings."; "List of bindings.";
skipping to change at page 22, line 8 skipping to change at page 22, line 41
} }
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-db {
config false; 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
"SID Binding."; "SID Binding.";
leaf target { leaf target {
type string; type string;
skipping to change at page 28, line 13 skipping to change at page 28, line 45
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
"Common YANG Data Types for the Routing Area", RFC 8294, "Common YANG Data Types for the Routing Area", RFC 8294,
DOI 10.17487/RFC8294, December 2017, DOI 10.17487/RFC8294, December 2017,
<https://www.rfc-editor.org/info/rfc8294>. <https://www.rfc-editor.org/info/rfc8294>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
skipping to change at page 28, line 47 skipping to change at page 29, line 34
[RFC8476] Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, [RFC8476] Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak,
"Signaling Maximum SID Depth (MSD) Using OSPF", RFC 8476, "Signaling Maximum SID Depth (MSD) Using OSPF", RFC 8476,
DOI 10.17487/RFC8476, December 2018, DOI 10.17487/RFC8476, December 2018,
<https://www.rfc-editor.org/info/rfc8476>. <https://www.rfc-editor.org/info/rfc8476>.
[RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, [RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg,
"Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491, "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491,
DOI 10.17487/RFC8491, November 2018, DOI 10.17487/RFC8491, November 2018,
<https://www.rfc-editor.org/info/rfc8491>. <https://www.rfc-editor.org/info/rfc8491>.
[RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing with the MPLS Data Plane", RFC 8660,
DOI 10.17487/RFC8660, December 2019,
<https://www.rfc-editor.org/info/rfc8660>.
12.2. Informative References 12.2. Informative References
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
Authors' Addresses Authors' Addresses
Stephane Litkowski Stephane Litkowski
Cisco Systems Cisco Systems
 End of changes. 39 change blocks. 
177 lines changed or deleted 220 lines changed or added

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