| < draft-ietf-spring-sr-yang-02.txt | draft-ietf-spring-sr-yang-03.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 19, 2016 Cisco Systems | Expires: January 8, 2017 Cisco Systems | |||
| P. Sarkar | P. Sarkar | |||
| Juniper Networks | Juniper Networks | |||
| J. Tantsura | J. Tantsura | |||
| Ericsson | Ericsson | |||
| March 18, 2016 | July 07, 2016 | |||
| YANG Data Model for Segment Routing | YANG Data Model for Segment Routing | |||
| draft-ietf-spring-sr-yang-02 | draft-ietf-spring-sr-yang-03 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model ([RFC6020]) for segment | This document defines a YANG data model ([RFC6020]) for segment | |||
| routing ([I-D.ietf-spring-segment-routing]) configuration and | 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 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 September 19, 2016. | This Internet-Draft will expire on January 8, 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8 | 6. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 11. Normative References . . . . . . . . . . . . . . . . . . . . 23 | 11. Normative References . . . . . . . . . . . . . . . . . . . . 24 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 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 3, line 43 ¶ | skipping to change at page 3, line 43 ¶ | |||
| 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 | |||
| +--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 | |||
| | | +--rw ipv4 | | | +--rw ipv4 | |||
| | | | +--rw mapping-entry* [prefix] | | | | +--rw mapping-entry* [prefix algorithm] | |||
| | | | +--rw prefix inet:ipv4-prefix | | | | +--rw prefix inet:ipv4-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 ipv6 | | | +--rw ipv6 | |||
| | | +--rw mapping-entry* [prefix] | | | +--rw mapping-entry* [prefix algorithm] | |||
| | | +--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 connected-prefix-sid-map | | +--rw connected-prefix-sid-map | |||
| | +--rw ipv4 | | +--rw ipv4 | |||
| | | +--rw ipv4-prefix-sid* [prefix] | | | +--rw ipv4-prefix-sid* [prefix algorithm] | |||
| | | +--rw prefix inet:ipv4-prefix | | | +--rw prefix inet:ipv4-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 last-hop-behavior? enumeration {sid-last-hop-behavior}? | | | +--rw last-hop-behavior? enumeration {sid-last-hop-behavior}? | |||
| | +--rw ipv6 | | +--rw ipv6 | |||
| | +--rw ipv6-prefix-sid* [prefix] | | +--rw ipv6-prefix-sid* [prefix algorithm] | |||
| | +--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 last-hop-behavior? enumeration {sid-last-hop-behavior}? | | +--rw last-hop-behavior? enumeration {sid-last-hop-behavior}? | |||
| +--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 | |||
| augment /rt:routing-state: | augment /rt:routing-state: | |||
| +--ro segment-routing | +--ro segment-routing | |||
| +--ro node-capabilities | +--ro node-capabilities | |||
| | +--ro transport-planes* [transport-plane] | | +--ro transport-planes* [transport-plane] | |||
| | | +--ro transport-plane identityref | | | +--ro transport-plane identityref | |||
| skipping to change at page 4, line 44 ¶ | skipping to change at page 4, line 48 ¶ | |||
| | +--ro size? uint32 | | +--ro size? uint32 | |||
| | +--ro free? uint32 | | +--ro free? uint32 | |||
| | +--ro used? uint32 | | +--ro used? uint32 | |||
| +--ro global-sid-list | +--ro global-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/routing-protocols/ | +--ro source-protocol -> /rt:routing-state/control-plane-protocols | |||
| routing-protocol/name | /control-plane-protocol/name | |||
| +--ro binding-type enumeration | +--ro binding-type 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/routing-protocols/ | | +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols | |||
| routing-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/routing-protocols/ | | +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols | |||
| routing-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/routing-protocols/ | +--ro routing-protocol? -> /rt:routing-state/control-plane-protocols | |||
| routing-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/rt:routing-instance:" with a | |||
| segment-routing container. This container defines all the | segment-routing container. This container defines all the | |||
| configuration parameters related to segment-routing for this | configuration parameters related to segment-routing for this | |||
| particular routing-instance. | particular routing-instance. | |||
| The segment-routing configuration is split in global routing-instance | The segment-routing configuration is split in global routing-instance | |||
| configuration and interface configuration. | configuration and interface configuration. | |||
| skipping to change at page 8, line 23 ¶ | skipping to change at page 8, line 32 ¶ | |||
| 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-03-18.yang" | <CODE BEGINS> file "ietf-segment-routing@2016-07-07.yang" | |||
| module ietf-segment-routing { | module ietf-segment-routing { | |||
| namespace "urn:ietf:params:xml:ns:" | namespace "urn:ietf:params:xml:ns:" | |||
| + "yang:ietf-segment-routing"; | + "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 { | |||
| skipping to change at page 9, line 19 ¶ | skipping to change at page 9, line 29 ¶ | |||
| 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 generic configuration model for | |||
| Segment routing common across all of the vendor | Segment routing common across all of the vendor | |||
| implementations."; | implementations."; | |||
| revision 2016-03-18 { | 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 " | description " | |||
| * Add notification segment-routing-global-srgb-collision | * Add notification segment-routing-global-srgb-collision | |||
| * Add router-id to segment-routing-global-sid-collision | * Add router-id to segment-routing-global-sid-collision | |||
| * Remove routing-instance | * Remove routing-instance | |||
| * Add typedef router-id | * Add typedef router-id | |||
| "; | "; | |||
| reference | reference | |||
| "RFC XXXX: YANG Data Model for Segment Routing."; | "RFC XXXX: YANG Data Model for Segment Routing."; | |||
| } | } | |||
| revision 2015-10-17 { | revision 2015-10-17 { | |||
| skipping to change at page 10, line 4 ¶ | skipping to change at page 10, line 22 ¶ | |||
| "; | "; | |||
| reference "draft-litkowski-spring-sr-yang-01"; | reference "draft-litkowski-spring-sr-yang-01"; | |||
| } | } | |||
| revision 2015-04-23 { | revision 2015-04-23 { | |||
| description " | description " | |||
| * Node flag deprecated from prefixSID | * Node flag deprecated from prefixSID | |||
| * SR interface cfg moved to protocol | * SR interface cfg moved to protocol | |||
| * Adding multiple binding policies for SRMS | * Adding multiple binding policies for SRMS | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2015-02-27 { | revision 2015-02-27 { | |||
| description "Initial"; | description "Initial"; | |||
| reference "draft-litkowski-spring-sr-yang-00"; | 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."; | |||
| } | } | |||
| identity prefix-sid-algorithm { | ||||
| description | ||||
| "Base identity for prefix-sid algorithm."; | ||||
| } | ||||
| identity prefix-sid-algorithm-shortest-path { | ||||
| base prefix-sid-algorithm; | ||||
| description | ||||
| "The default behavior of prefix-sid algorithm."; | ||||
| } | ||||
| identity prefix-sid-algorithm-strict-spf { | ||||
| base prefix-sid-algorithm; | ||||
| description | ||||
| "This algorithm mandates that the packet is forwared | ||||
| according to ECMP-aware SPF algorithm."; | ||||
| } | ||||
| /* Features */ | /* Features */ | |||
| feature mapping-server { | feature mapping-server { | |||
| description | description | |||
| "Support of SRMS."; | "Support of SRMS."; | |||
| } | } | |||
| feature sid-last-hop-behavior { | feature sid-last-hop-behavior { | |||
| description | description | |||
| "Configurable last hop behavior."; | "Configurable last hop behavior."; | |||
| skipping to change at page 13, line 28 ¶ | skipping to change at page 14, line 18 ¶ | |||
| be interpreted in the | be interpreted in the | |||
| context of value-type."; | context of value-type."; | |||
| } | } | |||
| leaf range { | leaf range { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Describes how many SIDs could be | "Describes how many SIDs could be | |||
| allocated."; | 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."; | |||
| } | } | |||
| skipping to change at page 14, line 10 ¶ | skipping to change at page 15, line 7 ¶ | |||
| context of value-type."; | context of value-type."; | |||
| } | } | |||
| leaf range { | leaf range { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Describes how many SIDs could be | "Describes how many SIDs could be | |||
| allocated."; | 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 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 { | |||
| description | description | |||
| skipping to change at page 16, line 4 ¶ | skipping to change at page 17, line 7 ¶ | |||
| description | description | |||
| "Grouping for IGP interface cfg."; | "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 segment-routing-transport; | |||
| } | } | |||
| default "segment-routing-transport-mpls"; | default "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 | description | |||
| "Name of the mapping policy."; | "Name of the mapping policy."; | |||
| } | } | |||
| container ipv4 { | container ipv4 { | |||
| list mapping-entry { | list mapping-entry { | |||
| key prefix; | key "prefix algorithm"; | |||
| uses ipv4-sid-cfg; | 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 | |||
| "Mapping entries."; | "Definition of mapping policy."; | |||
| } | } | |||
| description | description | |||
| "IPv4 mapping entries."; | "Configuration of mapping-server | |||
| local entries."; | ||||
| } | } | |||
| container ipv6 { | container connected-prefix-sid-map { | |||
| list mapping-entry { | container ipv4 { | |||
| key prefix; | list ipv4-prefix-sid { | |||
| uses ipv6-sid-cfg; | key "prefix algorithm"; | |||
| uses ipv4-sid-cfg; | ||||
| uses last-hop-behavior; | ||||
| description | ||||
| "List of prefix SID | ||||
| mapped to IPv4 local prefixes."; | ||||
| } | ||||
| description | description | |||
| "Mapping entries."; | "Parameters associated with IPv4 prefix SID"; | |||
| } | ||||
| container ipv6 { | ||||
| list ipv6-prefix-sid { | ||||
| key "prefix algorithm"; | ||||
| uses ipv6-sid-cfg; | ||||
| uses last-hop-behavior; | ||||
| description | ||||
| "List of prefix SID | ||||
| mapped to IPv6 local prefixes."; | ||||
| } | ||||
| description | ||||
| "Parameters associated with IPv6 prefix SID"; | ||||
| } | } | |||
| description | description | |||
| "IPv6 mapping entries."; | "Prefix SID configuration."; | |||
| } | } | |||
| description | ||||
| "Definition of mapping policy."; | ||||
| } | ||||
| description | description | |||
| "Configuration of mapping-server | "List of bindings."; | |||
| local entries."; | ||||
| } | } | |||
| container connected-prefix-sid-map { | container global-srgb { | |||
| container ipv4 { | uses srgb-cfg; | |||
| list ipv4-prefix-sid { | ||||
| key prefix; | ||||
| uses ipv4-sid-cfg; | ||||
| uses 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; | ||||
| uses ipv6-sid-cfg; | ||||
| uses last-hop-behavior; | ||||
| description | ||||
| "List of prefix SID | ||||
| mapped to IPv6 local prefixes."; | ||||
| } | ||||
| description | ||||
| "Parameters associated with IPv6 prefix SID"; | ||||
| } | ||||
| description | description | |||
| "Prefix SID configuration."; | "Global SRGB configuration."; | |||
| } | } | |||
| description | description | |||
| "List of bindings."; | "segment routing global config."; | |||
| } | ||||
| container global-srgb { | ||||
| uses srgb-cfg; | ||||
| description | ||||
| "Global SRGB configuration."; | ||||
| } | ||||
| description | ||||
| "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 { | |||
| skipping to change at page 19, line 49 ¶ | skipping to change at page 21, line 4 ¶ | |||
| 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:routing-protocols/" | path "/rt:routing-state/rt:control-plane-protocols/" | |||
| + "rt:routing-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 | |||
| a prefix SID."; | a prefix SID."; | |||
| skipping to change at page 20, line 48 ¶ | skipping to change at page 22, line 4 ¶ | |||
| list srgb-collisions { | list srgb-collisions { | |||
| leaf lower-bound { | leaf lower-bound { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Lower value in the block."; | "Lower value in the block."; | |||
| } | } | |||
| leaf upper-bound { | leaf upper-bound { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Upper value in the block."; | "Upper value in the block."; | |||
| } | } | |||
| leaf routing-protocol { | leaf routing-protocol { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing-state/rt:routing-protocols/" | path "/rt:routing-state/rt:control-plane-protocols/" | |||
| + "rt:routing-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| description | description | |||
| "Routing protocol reference that received the event."; | "Routing protocol reference that received the event."; | |||
| } | } | |||
| leaf originating-rtr-id { | leaf originating-rtr-id { | |||
| type router-id; | type router-id; | |||
| description | description | |||
| "Originating router id of this SRGB block."; | "Originating router id of this SRGB block."; | |||
| } | } | |||
| description | description | |||
| skipping to change at page 21, line 49 ¶ | skipping to change at page 23, line 4 ¶ | |||
| } | } | |||
| leaf original-sid-rtr-id { | leaf original-sid-rtr-id { | |||
| type router-id; | type router-id; | |||
| description | description | |||
| "Original router ID that advertised the conflicting SID."; | "Original router ID that advertised the conflicting SID."; | |||
| } | } | |||
| leaf index { | leaf index { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Value of the index used by two different prefixes."; | "Value of the index used by two different prefixes."; | |||
| } | } | |||
| leaf routing-protocol { | leaf routing-protocol { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing-state/rt:routing-protocols/" | path "/rt:routing-state/rt:control-plane-protocols/" | |||
| + "rt:routing-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| description | description | |||
| "Routing protocol reference that received the event."; | "Routing protocol reference that received the event."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when a new mapping is learned | "This notification is sent when a new mapping is learned | |||
| , containing mapping | , containing mapping | |||
| where the SID is already used. | where the SID is already used. | |||
| The notification generation must be throttled with at least | The notification generation must be throttled with at least | |||
| a 5 second gap. "; | a 5 second gap. "; | |||
| skipping to change at page 22, line 31 ¶ | skipping to change at page 23, line 35 ¶ | |||
| "Target received in the controlplane | "Target received in the controlplane | |||
| that caused SID collision."; | that caused SID collision."; | |||
| } | } | |||
| leaf received-index { | leaf received-index { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Value of the index received."; | "Value of the index received."; | |||
| } | } | |||
| leaf routing-protocol { | leaf routing-protocol { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing-state/rt:routing-protocols/" + | path "/rt:routing-state/rt:control-plane-protocols/" + | |||
| "rt:routing-protocol/rt:name"; | "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| description | description | |||
| "Routing protocol reference that received the event."; | "Routing protocol reference that received the event."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when a binding | "This notification is sent when a binding | |||
| is received, containing a segment index | is received, containing a segment index | |||
| which is out of the local configured ranges. | which is out of the local configured ranges. | |||
| The notification generation must be throttled with at least | The notification generation must be throttled with at least | |||
| a 5 second gap. "; | a 5 second gap. "; | |||
| End of changes. 44 change blocks. | ||||
| 95 lines changed or deleted | 142 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/ | ||||