< draft-ietf-spring-sr-yang-28.txt   draft-ietf-spring-sr-yang-29.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: June 1, 2021 Futurewei Expires: June 11, 2021 Futurewei
A. Lindem A. Lindem
Cisco Systems Cisco Systems
P. Sarkar P. Sarkar
Arrcus Networks Arrcus Networks
J. Tantsura J. Tantsura
Apstra Apstra
November 28, 2020 December 8, 2020
YANG Data Model for Segment Routing YANG Data Model for Segment Routing
draft-ietf-spring-sr-yang-28 draft-ietf-spring-sr-yang-29
Abstract Abstract
This document defines a YANG data model for segment routing This document defines a YANG data model for segment routing
configuration and operation, which is to be augmented by different configuration and operation, which is to be augmented by different
segment routing data planes. The document also defines a YANG model segment routing data planes. The document also defines a YANG model
that is intended to be used on network elements to configure or that is intended to be used on network elements to configure or
operate segment routing MPLS data plane, as well as some generic operate segment routing MPLS data plane, as well as some generic
containers to be reused by IGP protocol modules to support segment containers to be reused by IGP protocol modules to support segment
routing. routing.
skipping to change at page 1, line 43 skipping to change at page 1, line 43
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 June 1, 2021. This Internet-Draft will expire on June 11, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 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
skipping to change at page 2, line 30 skipping to change at page 2, line 30
2.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 2.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3
3. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 3. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
4. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 6
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. State Data . . . . . . . . . . . . . . . . . . . . . . . . . 8 6. State Data . . . . . . . . . . . . . . . . . . . . . . . . . 8
7. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8 7. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8
8. YANG Modules . . . . . . . . . . . . . . . . . . . . . . . . 8 8. YANG Modules . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. YANG Module for Segment Routing . . . . . . . . . . . . . 9 8.1. YANG Module for Segment Routing . . . . . . . . . . . . . 9
8.2. YANG Module for Segment Routing Common Types . . . . . . 10 8.2. YANG Module for Segment Routing Common Types . . . . . . 11
8.3. YANG Module for Segment Routing MPLS . . . . . . . . . . 16 8.3. YANG Module for Segment Routing MPLS . . . . . . . . . . 16
9. Security Considerations . . . . . . . . . . . . . . . . . . . 28 9. Security Considerations . . . . . . . . . . . . . . . . . . . 29
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
12.1. Normative References . . . . . . . . . . . . . . . . . . 31 12.1. Normative References . . . . . . . . . . . . . . . . . . 31
12.2. Informative References . . . . . . . . . . . . . . . . . 33 12.2. Informative References . . . . . . . . . . . . . . . . . 33
Appendix A. Configuration examples . . . . . . . . . . . . . . . 33 Appendix A. Configuration examples . . . . . . . . . . . . . . . 34
A.1. SR MPLS with IPv4 . . . . . . . . . . . . . . . . . . . . 34 A.1. SR MPLS with IPv4 . . . . . . . . . . . . . . . . . . . . 34
A.2. SR MPLS with IPv6 . . . . . . . . . . . . . . . . . . . . 37 A.2. SR MPLS with IPv6 . . . . . . . . . . . . . . . . . . . . 37
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40
1. Introduction 1. Introduction
This document defines a YANG data model [RFC7950] for segment routing This document defines a YANG data model [RFC7950] for segment routing
[RFC8402] configuration and operation. The document also defines a [RFC8402] configuration and operation. The document also defines a
YANG model that is intended to be used on network elements to YANG model that is intended to be used on network elements to
configure or operate segment routing MPLS data plane [RFC8660]. This configure or operate segment routing MPLS data plane [RFC8660]. This
skipping to change at page 4, line 8 skipping to change at page 4, line 8
3. Design of the Data Model 3. Design of the Data Model
Module ietf-segment-routing augments the routing container in the Module ietf-segment-routing augments the routing container in the
ietf-routing model [RFC8349], and defines generic segment routing ietf-routing model [RFC8349], and defines generic segment routing
configuration and operational state. This module is augmented by configuration and operational state. This module is augmented by
modules supporting different data planes. modules supporting different data planes.
Module ietf-segment-routing-mpls augments ietf-segment-routing, and Module ietf-segment-routing-mpls augments ietf-segment-routing, and
supports SR MPLS data plane configuration and operational state. supports SR MPLS data plane configuration and operational state.
Module ietf-segment-routing-common defines generic types and
groupings that SHOULD be reused by IGP extension modules.
module: ietf-segment-routing module: ietf-segment-routing
augment /rt:routing: augment /rt:routing:
+--rw segment-routing +--rw segment-routing
module: ietf-segment-routing-mpls module: ietf-segment-routing-mpls
augment /rt:routing/sr:segment-routing: augment /rt:routing/sr:segment-routing:
+--rw sr-mpls +--rw sr-mpls
+--ro node-capabilities +--ro node-capabilities
| +--ro entropy-readable-label-depth? uint8 | +--ro entropy-readable-label-depth? uint8
+--ro msd {max-sid-depth}? +--ro msd {max-sid-depth}?
skipping to change at page 9, line 11 skipping to change at page 9, line 21
routing-common.yang, and/or ietf-segment-routing-mpls.yang modules: routing-common.yang, and/or ietf-segment-routing-mpls.yang modules:
[RFC6991], [RFC8294], [RFC8476], [RFC8491], [RFC8665], [RFC8667], [RFC6991], [RFC8294], [RFC8476], [RFC8491], [RFC8665], [RFC8667],
[RFC8669], and [RFC8814]. [RFC8669], and [RFC8814].
8.1. YANG Module for Segment Routing 8.1. YANG Module for Segment Routing
ietf-segment-routing.yang: This module defines a generic framework ietf-segment-routing.yang: This module defines a generic framework
for Segment Routing, and it is to be augmented by models for for Segment Routing, and it is to be augmented by models for
different SR data planes. different SR data planes.
<CODE BEGINS> file "ietf-segment-routing@2020-11-27.yang" <CODE BEGINS> file "ietf-segment-routing@2020-12-08.yang"
module ietf-segment-routing { module ietf-segment-routing {
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";
prefix sr; prefix sr;
import ietf-routing { import ietf-routing {
prefix rt; prefix rt;
reference "RFC 8349: A YANG Data Model for Routing reference "RFC 8349: A YANG Data Model for Routing
Management (NMDA Version)"; Management (NMDA Version)";
} }
skipping to change at page 10, line 21 skipping to change at page 10, line 31
see the RFC itself for full legal notices. see the RFC itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here."; they appear in all capitals, as shown here.";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
revision 2020-11-27 { revision 2020-12-08 {
description description
"Initial Version"; "Initial Version";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
} }
augment "/rt:routing" { augment "/rt:routing" {
description description
"This module augments routing data model (RFC 8349) "This module augments routing data model (RFC 8349)
with Segment Routing (SR)."; with Segment Routing (SR).";
container segment-routing { container segment-routing {
skipping to change at page 10, line 47 skipping to change at page 11, line 10
} }
} }
} }
<CODE ENDS> <CODE ENDS>
8.2. YANG Module for Segment Routing Common Types 8.2. YANG Module for Segment Routing Common Types
ietf-segment-routing-common.yang: This module defines a collection of ietf-segment-routing-common.yang: This module defines a collection of
generic types and groupings for SR as defined in [RFC8402]. generic types and groupings for SR as defined in [RFC8402].
<CODE BEGINS> file "ietf-segment-routing-common@2020-11-27.yang" <CODE BEGINS> file "ietf-segment-routing-common@2020-12-08.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;
reference "RFC 6991: Common YANG Data Types"; reference "RFC 6991: Common YANG Data Types";
} }
skipping to change at page 12, line 11 skipping to change at page 12, line 20
see the RFC itself for full legal notices. see the RFC itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here."; they appear in all capitals, as shown here.";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
revision 2020-11-27 { revision 2020-12-08 {
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.";
reference "RFC 8660: Segment Routing with the MPLS Data Plane"; reference "RFC 8660: Segment Routing with the MPLS Data Plane";
} }
skipping to change at page 16, line 4 skipping to change at page 16, line 13
type uint32; type uint32;
mandatory true; mandatory true;
description description
"Value associated with prefix. The value must be "Value associated with prefix. The value must be
interpreted in the context of value-type."; interpreted in the context of value-type.";
} }
leaf range { leaf range {
type uint32; type uint32;
description description
"Indicates how many SIDs can be allocated."; "Indicates how many SIDs can be allocated.";
} }
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>
8.3. YANG Module for Segment Routing MPLS 8.3. YANG Module for Segment Routing MPLS
ietf-segment-routing-mpls.yang: This module defines the configuration ietf-segment-routing-mpls.yang: This module defines the configuration
and operational states for Segment Routing MPLS data plane. and operational states for Segment Routing MPLS data plane.
<CODE BEGINS> file "ietf-segment-routing-mpls@2020-11-28 <CODE BEGINS> file "ietf-segment-routing-mpls@2020-12-08
module ietf-segment-routing-mpls { module ietf-segment-routing-mpls {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing-mpls"; namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing-mpls";
prefix sr-mpls; prefix sr-mpls;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference "RFC 6991: Common YANG Data Types"; reference "RFC 6991: Common YANG Data Types";
} }
import ietf-routing { import ietf-routing {
skipping to change at page 18, line 4 skipping to change at page 18, line 13
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.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here."; they appear in all capitals, as shown here.";
reference "RFC XXXX: YANG Data Model for Segment Routing."; reference "RFC XXXX: YANG Data Model for Segment Routing.";
revision 2020-11-28 {
revision 2020-12-08 {
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).";
reference "RFC 8661: Segment Routing MPLS Interworking reference "RFC 8661: Segment Routing MPLS Interworking
with LDP"; with LDP";
skipping to change at page 22, line 4 skipping to change at page 22, line 14
description description
"Node MSD is the lowest MSD supported by the node."; "Node MSD is the lowest MSD supported by the node.";
} }
container link-msds { container link-msds {
description description
"MSD supported by an individual interface."; "MSD supported by an individual interface.";
list link-msds { list link-msds {
key "interface"; key "interface";
description description
"List of link MSDs."; "List of link MSDs.";
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"Reference to device interface."; "Reference to device interface.";
} }
leaf msd { leaf msd {
type uint8; type uint8;
description description
"MSD supported by the interface."; "MSD supported by the interface.";
} }
} }
} }
} }
augment "/rt:routing/sr:segment-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) with the MPLS Data Plane.";
container sr-mpls { container sr-mpls {
description description
"Segment Routing global configuration and "Segment Routing global configuration and
operational state."; operational state.";
uses sr-cmn:node-capabilities; uses sr-cmn:node-capabilities;
container msd { container msd {
if-feature "max-sid-depth"; if-feature "max-sid-depth";
config false; config false;
description description
"Maximum Segment Depth (MSD) Operational State."; "Maximum Segment Depth (MSD) Operational State.";
 End of changes. 18 change blocks. 
17 lines changed or deleted 19 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/