draft-ietf-spring-sr-yang-03.txt   draft-ietf-spring-sr-yang-04.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: January 8, 2017 Cisco Systems Expires: April 27, 2017 Cisco Systems
P. Sarkar P. Sarkar
Juniper Networks Juniper Networks
J. Tantsura J. Tantsura
Ericsson Individual
July 07, 2016 October 24, 2016
YANG Data Model for Segment Routing YANG Data Model for Segment Routing
draft-ietf-spring-sr-yang-03 draft-ietf-spring-sr-yang-04
Abstract Abstract
This document defines a YANG data model ([RFC6020]) for segment This document defines a YANG data model ([RFC6020], [RFC7950]) for
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.
Requirements Language Requirements Language
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", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
skipping to change at page 1, line 46 skipping to change at page 1, line 46
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 January 8, 2017. This Internet-Draft will expire on April 27, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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 31 skipping to change at page 2, line 31
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 . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 5
4. IGP Control plane configuration . . . . . . . . . . . . . . . 6 4. IGP Control plane configuration . . . . . . . . . . . . . . . 6
4.1. IGP interface configuration . . . . . . . . . . . . . . . 6 4.1. IGP interface configuration . . . . . . . . . . . . . . . 6
4.1.1. Adjacency SID properties . . . . . . . . . . . . . . 6 4.1.1. Adjacency SID properties . . . . . . . . . . . . . . 6
4.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 6 4.1.1.1. Bundling . . . . . . . . . . . . . . . . . . . . 6
4.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 7 4.1.1.2. Protection . . . . . . . . . . . . . . . . . . . 7
5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8 6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8
7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8 7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8
8. Security Considerations . . . . . . . . . . . . . . . . . . . 24 8. Security Considerations . . . . . . . . . . . . . . . . . . . 24
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
11. Normative References . . . . . . . . . . . . . . . . . . . . 24 11. Normative References . . . . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25
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.
skipping to change at page 5, line 28 skipping to change at page 5, line 28
| +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols | +--ro routing-protocol? -> /rt:routing-state/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-state/control-plane-protocols
/control-plane-protocol/name /control-plane-protocol/name
3. Configuration 3. Configuration
This module augments the "/rt:routing/rt:routing-instance:" with a This module augments the "/rt:routing:" with a segment-routing
segment-routing container. This container defines all the container. This container defines all the configuration parameters
configuration parameters related to segment-routing for this related to segment-routing.
particular routing-instance.
The segment-routing configuration is split in global routing-instance The segment-routing configuration is split in global configuration
configuration and interface configuration. and interface configuration.
The global configuration includes : The global configuration includes :
o segment-routing transport type : The underlying transport type for o segment-routing transport type : The underlying transport type for
segment routing. The version of the model limits the transport segment routing. The version of the model limits the transport
type to an MPLS dataplane. The transport-type is only defined type to an MPLS dataplane. The transport-type is only defined
once for a particular routing-instance and is agnostic to the once for a particular routing-instance and is agnostic to the
control plane used. Only a single transport-type is supported in control plane used. Only a single transport-type is supported in
this version of the model. this version of the model.
skipping to change at page 8, line 32 skipping to change at page 8, line 27
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@2016-07-07.yang" <CODE BEGINS> file "ietf-segment-routing-common@2016-10-24.yang"
module ietf-segment-routing { module ietf-segment-routing-common {
namespace "urn:ietf:params:xml:ns:" namespace "urn:ietf:params:xml:ns:"
+ "yang:ietf-segment-routing"; + "yang:ietf-segment-routing-common";
prefix sr; prefix sr-cmn;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-yang-types {
prefix "yang";
}
import ietf-routing {
prefix "rt";
}
organization organization
"IETF SPRING Working Group"; "IETF SPRING Working Group";
contact contact
"WG List: <mailto:spring@ietf.org> "WG List: <mailto:spring@ietf.org>
Editor: Stephane Litkowski Editor: Stephane Litkowski
<mailto:stephane.litkowski@orange.com> <mailto:stephane.litkowski@orange.com>
Author: Acee Lindem Author: Acee Lindem
skipping to change at page 9, line 25 skipping to change at page 9, line 11
Author: Pushpasis Sarkar Author: Pushpasis Sarkar
<mailto:psarkar@juniper.net> <mailto:psarkar@juniper.net>
Author: Ing-Wher Chen Author: Ing-Wher Chen
<mailto:ing-wher.chen@ericsson.com> <mailto:ing-wher.chen@ericsson.com>
Author: Jeff Tantsura Author: Jeff Tantsura
<jeff.tantsura@ericsson.com> <jeff.tantsura@ericsson.com>
"; ";
description description
"The YANG module defines a generic configuration model for "The YANG module defines a collection of types and groupings for
Segment routing common across all of the vendor Segment routing.";
implementations.";
revision 2016-07-07 { revision 2016-10-24 {
description " description "Initial";
* Add support of prefix-sid algorithm configuration
* change routing-protocols to control-plane-protocols
";
reference reference
"RFC XXXX: YANG Data Model for Segment Routing."; "RFC XXXX: YANG Data Model for Segment Routing.";
} }
revision 2016-03-17 {
description "
* Add notification segment-routing-global-srgb-collision
* Add router-id to segment-routing-global-sid-collision
* Remove routing-instance
* Add typedef router-id
";
reference
"RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2015-10-17 {
description "
* Add per-protocol SRGB config feature
* Move SRBG config to a grouping
";
reference
"RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2015-06-22 {
description "
* Prefix SID config moved to
connected-prefix-sid-map in global SR cfg
rather than IGP.
";
reference "draft-litkowski-spring-sr-yang-01";
}
revision 2015-04-23 {
description "
* Node flag deprecated from prefixSID
* SR interface cfg moved to protocol
* Adding multiple binding policies for SRMS
";
reference "";
}
revision 2015-02-27 {
description "Initial";
reference "draft-litkowski-spring-sr-yang-00";
}
/* Identities */ /* Identities */
identity segment-routing-transport { identity segment-routing-transport {
description description
"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.";
skipping to change at page 11, line 11 skipping to change at page 10, line 4
} }
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 forwared "This algorithm mandates that the packet is forwared
according to ECMP-aware SPF algorithm."; according to ECMP-aware SPF algorithm.";
} }
/* Features */ /* Features */
feature mapping-server {
description
"Support of SRMS.";
}
feature sid-last-hop-behavior { feature sid-last-hop-behavior {
description description
"Configurable last hop behavior."; "Configurable last hop behavior.";
} }
feature protocol-srgb {
description
"Support per-protocol srgb configuration.";
}
/* Type Definitions */
typedef system-id {
type string {
pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.00';
}
description
"This type defines ISIS system id using pattern,
system id looks like : 0143.0438.AeF0.00";
}
typedef router-id {
type union {
type system-id;
type yang:dotted-quad;
}
description
"OSPF/BGP router id or ISIS system ID.";
}
/* Groupings */ /* Groupings */
grouping srgb-cfg { grouping srgb-cfg {
list srgb { list srgb {
key "lower-bound upper-bound"; key "lower-bound upper-bound";
ordered-by user; ordered-by user;
leaf lower-bound { leaf lower-bound {
type uint32; type uint32;
description description
"Lower value in the block."; "Lower value in the block.";
skipping to change at page 12, line 25 skipping to change at page 10, line 33
"Upper value in the block."; "Upper value in the block.";
} }
description description
"List of global blocks to be "List of global blocks to be
advertised."; advertised.";
} }
description description
"Grouping for SRGB configuration."; "Grouping for SRGB configuration.";
} }
grouping controlplane-cfg {
container segment-routing {
leaf enabled {
type boolean;
default false;
description
"Enables segment-routing
protocol extensions.";
}
container bindings {
container advertise {
leaf-list policies {
type string;
description
"List of policies to be advertised.";
}
description
"Authorize the advertise
of local mappings in binding TLV.";
}
leaf receive {
type boolean;
default true;
description
"Authorize the reception and usage
of binding TLV.";
}
description
"Control of binding advertisement
and reception.";
}
description
"segment routing global config.";
}
description
"Defines protocol configuration.";
}
grouping sid-value-type { grouping sid-value-type {
leaf value-type { leaf value-type {
type enumeration { type enumeration {
enum index { enum index {
description description
"The value will be "The value will be
interpreted as an index."; interpreted as an index.";
} }
enum absolute { enum absolute {
description description
skipping to change at page 13, line 35 skipping to change at page 11, line 4
description description
"The value will become "The value will become
interpreted as an absolute interpreted as an absolute
value."; value.";
} }
} }
default index; default index;
description description
"This leaf defines how value "This leaf defines how value
must be interpreted."; must be interpreted.";
} }
description description
"Defines how the SID value is expressed."; "Defines how the SID value is expressed.";
} }
grouping ipv4-sid-cfg { grouping ipv4-sid-cfg {
leaf prefix { leaf prefix {
type inet:ipv4-prefix; type inet:ipv4-prefix;
description description
"connected prefix sid."; "connected prefix sid.";
} }
uses sid-value-type;
leaf start-sid {
type uint32;
mandatory true;
description
"Value associated with
prefix. The value must
be interpreted in the
context of value-type.";
}
leaf range { uses prefix-sid-attributes;
type uint32;
description
"Describes how many SIDs could be
allocated.";
}
leaf algorithm {
type identityref {
base prefix-sid-algorithm;
}
description "Prefix-sid algorithm.";
}
description description
"This grouping defines cfg of prefix SID."; "This grouping defines cfg of prefix SID.";
} }
grouping ipv6-sid-cfg { grouping ipv6-sid-cfg {
leaf prefix { leaf prefix {
type inet:ipv6-prefix; type inet:ipv6-prefix;
description description
"connected prefix sid."; "connected prefix sid.";
} }
uses sid-value-type;
leaf start-sid {
type uint32;
mandatory true;
description
"Value associated with
prefix. The value must
be interpreted in the
context of value-type.";
}
leaf range {
type uint32;
description
"Describes how many SIDs could be
allocated.";
}
leaf algorithm { uses prefix-sid-attributes;
type identityref {
base prefix-sid-algorithm;
}
description "Prefix-sid algorithm.";
}
description description
"This grouping defines cfg of prefix SID."; "This grouping defines cfg of prefix SID.";
} }
grouping last-hop-behavior { grouping last-hop-behavior {
leaf last-hop-behavior { leaf last-hop-behavior {
if-feature sid-last-hop-behavior; if-feature sid-last-hop-behavior;
type enumeration { type enumeration {
enum explicit-null { enum explicit-null {
skipping to change at page 15, line 34 skipping to change at page 12, line 4
"Use explicit-null for the SID."; "Use explicit-null for the SID.";
} }
enum no-php { enum no-php {
description description
"Do no use PHP for the SID."; "Do no use PHP for the SID.";
} }
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.";
} }
description description
"Defines last hop behavior"; "Defines last hop behavior";
} }
grouping node-capabilities {
description "Containing SR node capabilities.";
container node-capabilities {
list transport-planes {
key transport-plane;
leaf transport-plane {
type identityref {
base segment-routing-transport;
}
description
"Transport plane supported";
}
description
"List of supported transport planes.";
}
leaf segment-stack-push-limit {
type uint8;
description
"Describes the number of segments
that can be pushed by the node.";
}
leaf readable-label-stack-depth {
type uint8;
description
"Number of MPLS labels that
can be read in the stack.";
}
description
"Shows the SR capability of the node.";
} // node-capabilities
} // sr-node-capabilities
grouping prefix-sid-attributes {
description "Containing SR attributes for a prefix.";
uses sid-value-type;
leaf start-sid {
type uint32;
mandatory true;
description
"Value associated with
prefix. The value must
be interpreted in the
context of value-type.";
}
leaf range {
type uint32;
description
"Describes how many SIDs could be
allocated.";
}
leaf algorithm {
type identityref {
base prefix-sid-algorithm;
}
description "Prefix-sid algorithm.";
}
} //prefix-sid-attributes
}
<CODE ENDS>
<CODE BEGINS> file "ietf-segment-routing@2016-10-24.yang"
module ietf-segment-routing {
namespace "urn:ietf:params:xml:ns:"
+ "yang:ietf-segment-routing";
prefix sr;
import ietf-inet-types {
prefix "inet";
}
import ietf-yang-types {
prefix "yang";
}
import ietf-routing {
prefix "rt";
}
import ietf-segment-routing-common {
prefix "sr-cmn";
}
organization
"IETF SPRING Working Group";
contact
"WG List: <mailto:spring@ietf.org>
Editor: Stephane Litkowski
<mailto:stephane.litkowski@orange.com>
Author: Acee Lindem
<mailto:acee@cisco.com>
Author: Yingzhen Qu
<mailto:yiqu@cisco.com>
Author: Pushpasis Sarkar
<mailto:psarkar@juniper.net>
Author: Ing-Wher Chen
<mailto:ing-wher.chen@ericsson.com>
Author: Jeff Tantsura
<jeff.tantsura@ericsson.com>
";
description
"The YANG module defines a generic configuration model for
Segment routing common across all of the vendor
implementations.";
revision 2016-10-24 {
description "
* Moved common SR types and groupings to a seperate module
";
reference
"RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2016-07-07 {
description "
* Add support of prefix-sid algorithm configuration
* change routing-protocols to control-plane-protocols
";
reference
"RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2016-03-17 {
description "
* Add notification segment-routing-global-srgb-collision
* Add router-id to segment-routing-global-sid-collision
* Remove routing-instance
* Add typedef router-id
";
reference
"RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2015-10-17 {
description "
* Add per-protocol SRGB config feature
* Move SRBG config to a grouping
";
reference
"RFC XXXX: YANG Data Model for Segment Routing.";
}
revision 2015-06-22 {
description "
* Prefix SID config moved to
connected-prefix-sid-map in global SR cfg
rather than IGP.
";
reference "draft-litkowski-spring-sr-yang-01";
}
revision 2015-04-23 {
description "
* Node flag deprecated from prefixSID
* SR interface cfg moved to protocol
* Adding multiple binding policies for SRMS
";
reference "";
}
revision 2015-02-27 {
description "Initial";
reference "draft-litkowski-spring-sr-yang-00";
}
/* Features */
feature mapping-server {
description
"Support of SRMS.";
}
feature protocol-srgb {
description
"Support per-protocol srgb configuration.";
}
/* Type Definitions */
typedef system-id {
type string {
pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.00';
}
description
"This type defines ISIS system id using pattern,
system id looks like : 0143.0438.AeF0.00";
}
typedef router-id {
type union {
type system-id;
type yang:dotted-quad;
}
description
"OSPF/BGP router id or ISIS system ID.";
}
/* Groupings */
grouping controlplane-cfg {
container segment-routing {
leaf enabled {
type boolean;
default false;
description
"Enables segment-routing
protocol extensions.";
}
container bindings {
container advertise {
leaf-list policies {
type string;
description
"List of policies to be advertised.";
}
description
"Authorize the advertise
of local mappings in binding TLV.";
}
leaf receive {
type boolean;
default true;
description
"Authorize the reception and usage
of binding TLV.";
}
description
"Control of binding advertisement
and reception.";
}
description
"segment routing global config.";
}
description
"Defines protocol configuration.";
}
grouping igp-interface-cfg { grouping igp-interface-cfg {
container segment-routing { container segment-routing {
container adjacency-sid { container adjacency-sid {
list advertise-adj-group-sid { list advertise-adj-group-sid {
key group-id; key group-id;
leaf group-id { leaf group-id {
type uint32; type uint32;
description description
"The value is an internal value to identify "The value is an internal value to identify
a group-ID. Interfaces with the same a group-ID. Interfaces with the same
group-ID will be bundled together. group-ID will be bundled together.";
";
}
description
"Control advertisement of S flag.
Enable to advertise a common Adj-SID
for parallel links.";
}
leaf advertise-protection {
type enumeration {
enum "single" {
description
"A single Adj-SID is associated
with the adjacency and reflects
the protection configuration.";
}
enum "dual" {
description
"Two Adj-SIDs will be associated
with the adjacency if interface
is protected. In this case
one will be enforced with
backup flag set, the other
will be enforced to backup flag unset.
In case, protection is not configured,
a single Adj-SID will be advertised
with backup flag unset.";
}
}
description
"If set, the Adj-SID refers to an
adjacency being protected.";
}
description
"Defines the adjacency SID properties.";
} }
description description
"container for SR interface cfg."; "Control advertisement of S flag.
Enable to advertise a common Adj-SID
for parallel links.";
} }
leaf advertise-protection {
type enumeration {
enum "single" {
description
"A single Adj-SID is associated
with the adjacency and reflects
the protection configuration.";
}
enum "dual" {
description
"Two Adj-SIDs will be associated
with the adjacency if interface
is protected. In this case
one will be enforced with
backup flag set, the other
will be enforced to backup flag unset.
In case, protection is not configured,
a single Adj-SID will be advertised
with backup flag unset.";
}
}
description description
"Grouping for IGP interface cfg."; "If set, the Adj-SID refers to an
adjacency being protected.";
}
description
"Defines the adjacency SID properties.";
}
description
"container for SR interface cfg.";
}
description
"Grouping for IGP interface cfg.";
} }
/* Cfg */ /* Cfg */
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 {
leaf transport-type { leaf transport-type {
type identityref { type identityref {
base segment-routing-transport; base sr-cmn:segment-routing-transport;
} }
default "segment-routing-transport-mpls"; default "sr-cmn:segment-routing-transport-mpls";
description "Dataplane to be used."; description "Dataplane to be used.";
} }
container bindings { container bindings {
container mapping-server { container mapping-server {
if-feature mapping-server; if-feature mapping-server;
list policy { list policy {
key name; key name;
leaf name { leaf name {
type string; type string;
description
"Name of the mapping policy.";
}
container ipv4 {
list mapping-entry {
key "prefix algorithm";
uses ipv4-sid-cfg;
description
"Mapping entries.";
}
description
"IPv4 mapping entries.";
}
container ipv6 {
list mapping-entry {
key "prefix algorithm";
uses ipv6-sid-cfg;
description
"Mapping entries.";
}
description
"IPv6 mapping entries.";
}
description description
"Definition of mapping policy."; "Name of the mapping policy.";
} }
description
"Configuration of mapping-server
local entries.";
}
container connected-prefix-sid-map {
container ipv4 { container ipv4 {
list ipv4-prefix-sid { list mapping-entry {
key "prefix algorithm"; key "prefix algorithm";
uses ipv4-sid-cfg; uses sr-cmn:ipv4-sid-cfg;
uses last-hop-behavior;
description description
"List of prefix SID "Mapping entries.";
mapped to IPv4 local prefixes.";
} }
description description
"Parameters associated with IPv4 prefix SID"; "IPv4 mapping entries.";
} }
container ipv6 { container ipv6 {
list ipv6-prefix-sid { list mapping-entry {
key "prefix algorithm"; key "prefix algorithm";
uses ipv6-sid-cfg; uses sr-cmn:ipv6-sid-cfg;
uses last-hop-behavior;
description description
"List of prefix SID "Mapping entries.";
mapped to IPv6 local prefixes.";
} }
description description
"Parameters associated with IPv6 prefix SID"; "IPv6 mapping entries.";
} }
description description
"Prefix SID configuration."; "Definition of mapping policy.";
} }
description
"Configuration of mapping-server
local entries.";
}
container connected-prefix-sid-map {
container ipv4 {
list ipv4-prefix-sid {
key "prefix algorithm";
uses sr-cmn:ipv4-sid-cfg;
uses sr-cmn:last-hop-behavior;
description
"List of prefix SID
mapped to IPv4 local prefixes.";
}
description
"Parameters associated with IPv4 prefix SID";
}
container ipv6 {
list ipv6-prefix-sid {
key "prefix algorithm";
uses sr-cmn:ipv6-sid-cfg;
uses sr-cmn:last-hop-behavior;
description
"List of prefix SID
mapped to IPv6 local prefixes.";
}
description
"Parameters associated with IPv6 prefix SID";
}
description
"Prefix SID configuration.";
}
description description
"List of bindings."; "List of bindings.";
} }
container global-srgb { container global-srgb {
uses srgb-cfg; uses sr-cmn:srgb-cfg;
description description
"Global SRGB configuration."; "Global SRGB configuration.";
} }
description description
"segment routing global config."; "segment routing global config.";
} }
} }
/* Operational states */ /* Operational states */
augment "/rt:routing-state" { augment "/rt:routing-state" {
description description
"This augments the operational states "This augments the operational states
with segment-routing."; with segment-routing.";
container segment-routing { container segment-routing {
container node-capabilities { uses sr-cmn:node-capabilities;
list transport-planes {
key transport-plane;
leaf transport-plane {
type identityref {
base segment-routing-transport;
}
description
"Transport plane supported";
}
description
"List of supported transport planes.";
}
leaf segment-stack-push-limit {
type uint8;
description
"Describes the number of segments
that can be pushed by the node.";
}
leaf readable-label-stack-depth {
type uint8;
description
"Number of MPLS labels that
can be read in the stack.";
}
description
"Shows the SR capability of the node.";
}
list label-blocks { list label-blocks {
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;
description description
"Upper bound of the label block."; "Upper bound of the label block.";
skipping to change at page 24, line 24 skipping to change at page 25, line 14
10. IANA Considerations 10. IANA Considerations
TBD. TBD.
11. Normative References 11. Normative References
[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-03 (work in progress), May 2015. spring-segment-routing-09 (work in progress), July 2016.
[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",
RFC 7950, August 2016.
Authors' Addresses Authors' Addresses
Stephane Litkowski Stephane Litkowski
Orange Business Service Orange Business Service
Email: stephane.litkowski@orange.com Email: stephane.litkowski@orange.com
Yingzhen Qu Yingzhen Qu
Cisco Systems Cisco Systems
skipping to change at page 25, line 4 skipping to change at page 25, line 42
Yingzhen Qu Yingzhen Qu
Cisco Systems Cisco Systems
Email: yiqu@cisco.com Email: yiqu@cisco.com
Pushpasis Sarkar Pushpasis Sarkar
Juniper Networks Juniper Networks
Email: psarkar@juniper.net Email: psarkar@juniper.net
Jeff Tantsura Jeff Tantsura
Ericsson Individual
Email: jeff.tantsura@ericsson.com Email: jefftant.ietf@gmail.com
 End of changes. 55 change blocks. 
337 lines changed or deleted 382 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/