| < draft-ietf-spring-sr-yang-08.txt | draft-ietf-spring-sr-yang-09.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: July 1, 2018 Huawei | Expires: December 30, 2018 Huawei | |||
| P. Sarkar | P. Sarkar | |||
| J. Tantsura | ||||
| Individual | Individual | |||
| December 28, 2017 | J. Tantsura | |||
| Nuage Networks | ||||
| June 28, 2018 | ||||
| YANG Data Model for Segment Routing | YANG Data Model for Segment Routing | |||
| draft-ietf-spring-sr-yang-08 | draft-ietf-spring-sr-yang-09 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model ([RFC6020], [RFC7950]) for | This document defines a YANG data model ([RFC6020], [RFC7950]) for | |||
| segment routing ([I-D.ietf-spring-segment-routing]) configuration and | segment routing ([I-D.ietf-spring-segment-routing]) configuration and | |||
| operation. This YANG model is intended to be used on network | operation. This YANG model is intended to be used on network | |||
| elements to configure or operate segment routing. This document | elements to configure or operate segment routing. This document | |||
| defines also generic containers that SHOULD be reused by IGP protocol | defines also generic containers that SHOULD be reused by IGP protocol | |||
| modules to support segment routing. | modules to support segment routing. | |||
| skipping to change at page 1, line 45 ¶ | skipping to change at page 1, line 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 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 July 1, 2018. | This Internet-Draft will expire on December 30, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 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 3, line 22 ¶ | skipping to change at page 3, line 22 ¶ | |||
| As the module definition is just starting, it is expected that there | As the module definition is just starting, it is expected that there | |||
| will be changes as the module matures. | will be changes as the module matures. | |||
| module: ietf-segment-routing | module: ietf-segment-routing | |||
| augment /rt:routing: | augment /rt:routing: | |||
| +--rw segment-routing | +--rw segment-routing | |||
| +--rw transport-type? identityref | +--rw transport-type? identityref | |||
| +--ro node-capabilities | +--ro node-capabilities | |||
| | +--ro transport-planes* [transport-plane] | | +--ro transport-planes* [transport-plane] | |||
| | | +--ro transport-plane identityref | | | +--ro transport-plane identityref | |||
| | +--ro readable-label-stack-depth? uint8 | | +--ro entropy-readable-label-depth? uint8 | |||
| +--rw msd {msd}? | +--rw msd {msd}? | |||
| | +--rw node-msd? uint8 | | +--rw node-msd? uint8 | |||
| | +--rw link-msd | | +--rw link-msd | |||
| | +--rw link-msds* [interface] | | +--rw link-msds* [interface] | |||
| | +--rw interface if:interface-ref | | +--rw interface if:interface-ref | |||
| | +--rw msd? uint8 | | +--rw msd? uint8 | |||
| +--rw bindings | +--rw bindings | |||
| | +--rw mapping-server {mapping-server}? | | +--rw mapping-server {mapping-server}? | |||
| | | +--rw policy* [name] | | | +--rw policy* [name] | |||
| | | +--rw name string | | | +--rw name string | |||
| skipping to change at page 8, line 35 ¶ | skipping to change at page 8, line 35 ¶ | |||
| advertised index is already associated with another target (in | advertised index is already associated with another target (in | |||
| this version, the only defined targets are IPv4 and IPv6 | this version, the only defined targets are IPv4 and IPv6 | |||
| prefixes). | prefixes). | |||
| o segment-routing-index-out-of-range: Raised when a control plane | o segment-routing-index-out-of-range: Raised when a control plane | |||
| advertised index fall outside the range of SRGBs configured for | advertised index fall outside the range of SRGBs configured for | |||
| the network device. | the network device. | |||
| 7. YANG Module | 7. YANG Module | |||
| <CODE BEGINS> file "ietf-segment-routing-common@2017-12-28.yang" | <CODE BEGINS> file "ietf-segment-routing-common@2018-06-25.yang" | |||
| module ietf-segment-routing-common { | module ietf-segment-routing-common { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing-common"; | namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing-common"; | |||
| prefix sr-cmn; | prefix sr-cmn; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| } | } | |||
| organization | organization | |||
| "IETF SPRING - SPRING Working Group"; | "IETF SPRING - SPRING Working Group"; | |||
| skipping to change at page 9, line 35 ¶ | skipping to change at page 9, line 35 ¶ | |||
| 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 2017-12-28 { | revision 2018-06-25 { | |||
| description | description | |||
| " | " | |||
| * Renamed readable-label-stack-depth to entropy-readable-label-depth; | ||||
| "; | "; | |||
| reference "RFC XXXX: YANG Data Model for Segment Routing."; | reference "RFC XXXX: YANG Data Model for Segment Routing."; | |||
| } | } | |||
| revision 2017-07-01 { | revision 2017-07-01 { | |||
| description | description | |||
| " | " | |||
| *Conform to RFC6087BIS Appendix C | *Conform to RFC6087BIS Appendix C | |||
| "; | "; | |||
| reference "RFC XXXX: YANG Data Model for Segment Routing."; | reference "RFC XXXX: YANG Data Model for Segment Routing."; | |||
| } | } | |||
| skipping to change at page 11, line 51 ¶ | skipping to change at page 12, line 4 ¶ | |||
| } | } | |||
| grouping srlb-cfg { | grouping srlb-cfg { | |||
| description | description | |||
| "Grouping for SR Local Block range configuration."; | "Grouping for SR Local Block range configuration."; | |||
| list srlb { | list srlb { | |||
| key "lower-bound upper-bound"; | key "lower-bound upper-bound"; | |||
| ordered-by user; | ordered-by user; | |||
| description | description | |||
| "List of SRLBs."; | "List of SRLBs."; | |||
| uses srlr; | ||||
| uses srlr; | ||||
| } | } | |||
| } | } | |||
| grouping sid-value-type { | grouping sid-value-type { | |||
| description | description | |||
| "Defines how the SID value is expressed."; | "Defines how the SID value is expressed."; | |||
| leaf value-type { | leaf value-type { | |||
| type enumeration { | type enumeration { | |||
| enum "index" { | enum "index" { | |||
| description | description | |||
| skipping to change at page 13, line 47 ¶ | skipping to change at page 13, line 47 ¶ | |||
| description | description | |||
| "List of supported transport planes."; | "List of supported transport planes."; | |||
| leaf transport-plane { | leaf transport-plane { | |||
| type identityref { | type identityref { | |||
| base segment-routing-transport; | base segment-routing-transport; | |||
| } | } | |||
| description | description | |||
| "Transport plane supported"; | "Transport plane supported"; | |||
| } | } | |||
| } | } | |||
| leaf readable-label-stack-depth { | leaf entropy-readable-label-depth { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Number of MPLS labels that | "Maximum label statck depth that | |||
| can be read in the stack."; | the router can read. "; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping prefix-sid-attributes { | grouping prefix-sid-attributes { | |||
| description | description | |||
| "Containing SR attributes for a prefix."; | "Containing SR attributes for a prefix."; | |||
| uses sid-value-type; | uses sid-value-type; | |||
| leaf start-sid { | leaf start-sid { | |||
| skipping to change at page 14, line 38 ¶ | skipping to change at page 14, line 38 ¶ | |||
| leaf algorithm { | leaf algorithm { | |||
| type identityref { | type identityref { | |||
| base prefix-sid-algorithm; | base prefix-sid-algorithm; | |||
| } | } | |||
| description | description | |||
| "Prefix-sid algorithm."; | "Prefix-sid algorithm."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| <CODE BEGINS> file "ietf-segment-routing@2017-12-28.yang" | <CODE BEGINS> file "ietf-segment-routing@2018-06-25.yang" | |||
| module ietf-segment-routing { | module ietf-segment-routing { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing"; | namespace "urn:ietf:params:xml:ns:yang:ietf-segment-routing"; | |||
| prefix sr; | prefix sr; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| } | } | |||
| import ietf-yang-types { | ||||
| prefix yang; | ||||
| } | ||||
| import ietf-routing { | import ietf-routing { | |||
| prefix rt; | prefix rt; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| } | } | |||
| import ietf-routing-types { | ||||
| prefix rt-types; | ||||
| } | ||||
| import ietf-segment-routing-common { | import ietf-segment-routing-common { | |||
| prefix sr-cmn; | prefix sr-cmn; | |||
| } | } | |||
| organization | organization | |||
| "IETF 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> | |||
| Editor: Stephane Litkowski | Editor: Stephane Litkowski | |||
| <mailto:stephane.litkowski@orange.com> | <mailto:stephane.litkowski@orange.com> | |||
| Editor: Yingzhen Qu | Editor: Yingzhen Qu | |||
| <mailto:yingzhen.qu@huawei.com> | <mailto:yingzhen.qu@huawei.com> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| skipping to change at page 15, line 34 ¶ | skipping to change at page 15, line 37 ¶ | |||
| <mailto:pushpasis.ietf@gmail.com> | <mailto:pushpasis.ietf@gmail.com> | |||
| Author: Jeff Tantsura | Author: Jeff Tantsura | |||
| <jefftant.ietf@gmail.com> | <jefftant.ietf@gmail.com> | |||
| "; | "; | |||
| description | description | |||
| "The YANG module defines a generic configuration model for | "The YANG module defines a generic configuration model for | |||
| Segment routing common across all of the vendor | Segment routing common across all of the vendor | |||
| implementations. | implementations. | |||
| Copyright (c) 2017 IETF Trust and the persons identified as | Copyright (c) 2018 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 2018-06-25 { | ||||
| revision 2017-12-28 { | ||||
| description | description | |||
| ""; | ""; | |||
| reference "RFC XXXX: YANG Data Model for Segment Routing."; | reference "RFC XXXX: YANG Data Model for Segment Routing."; | |||
| } | } | |||
| revision 2017-07-01 { | revision 2017-07-01 { | |||
| description | description | |||
| " | " | |||
| * Implement NMDA model | * Implement NMDA model | |||
| *Conform to RFC6087BIS Appendix C | *Conform to RFC6087BIS Appendix C | |||
| "; | "; | |||
| reference "RFC XXXX: YANG Data Model for Segment Routing."; | reference "RFC XXXX: YANG Data Model for Segment Routing."; | |||
| } | } | |||
| skipping to change at page 18, line 4 ¶ | skipping to change at page 18, line 6 ¶ | |||
| feature mapping-server { | feature mapping-server { | |||
| description | description | |||
| "Support of SRMS."; | "Support of SRMS."; | |||
| } | } | |||
| feature protocol-srgb { | feature protocol-srgb { | |||
| description | description | |||
| "Support per-protocol srgb configuration."; | "Support per-protocol srgb configuration."; | |||
| } | } | |||
| feature msd { | feature msd { | |||
| description | description | |||
| "Support of signaling MSD (Maximum SID Depth) in IGP."; | "Support of signaling MSD (Maximum SID Depth) in IGP."; | |||
| } | } | |||
| typedef system-id { | typedef system-id { | |||
| type string { | type string { | |||
| pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.00"; | pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.00"; | |||
| } | } | |||
| description | description | |||
| "This type defines ISIS system id using pattern, | "This type defines ISIS system id using pattern, | |||
| system id looks like : 0143.0438.AeF0.00"; | system id looks like : 0143.0438.AeF0.00"; | |||
| } | } | |||
| typedef router-id { | typedef router-id { | |||
| type union { | type union { | |||
| type system-id; | type system-id; | |||
| type yang:dotted-quad; | type rt-types:router-id; | |||
| } | } | |||
| description | description | |||
| "OSPF/BGP router id or ISIS system ID."; | "OSPF/BGP router id or ISIS system ID."; | |||
| } | } | |||
| grouping controlplane-cfg { | grouping controlplane-cfg { | |||
| description | description | |||
| "Defines protocol configuration."; | "Defines protocol configuration."; | |||
| container segment-routing { | container segment-routing { | |||
| description | description | |||
| skipping to change at page 20, line 49 ¶ | skipping to change at page 21, line 4 ¶ | |||
| "Name of the interface."; | "Name of the interface."; | |||
| } | } | |||
| leaf msd { | leaf msd { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "SID depth of the interface associated with the link."; | "SID depth of the interface associated with the link."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing" { | augment "/rt:routing" { | |||
| description | description | |||
| "This augments routing-instance | "This augments routing data model (RFC 8349) | |||
| configuration with segment-routing."; | with segment-routing."; | |||
| container segment-routing { | container segment-routing { | |||
| description | description | |||
| "segment routing global config."; | "segment routing global config."; | |||
| leaf transport-type { | leaf transport-type { | |||
| type identityref { | type identityref { | |||
| base sr-cmn:segment-routing-transport; | base sr-cmn:segment-routing-transport; | |||
| } | } | |||
| default "sr-cmn:segment-routing-transport-mpls"; | default "sr-cmn:segment-routing-transport-mpls"; | |||
| description | description | |||
| "Dataplane to be used."; | "Dataplane to be used."; | |||
| skipping to change at page 29, line 24 ¶ | skipping to change at page 29, line 30 ¶ | |||
| Network Configuration Protocol (NETCONF)", RFC 6020, | Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| October 2010. | October 2010. | |||
| [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, August 2016. | RFC 7950, August 2016. | |||
| 11.2. Informative References | 11.2. Informative References | |||
| [I-D.ietf-netmod-yang-tree-diagrams] | [I-D.ietf-netmod-yang-tree-diagrams] | |||
| Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- | Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- | |||
| ietf-netmod-yang-tree-diagrams-04 (work in progress), | ietf-netmod-yang-tree-diagrams-06 (work in progress), | |||
| December 2017. | February 2018. | |||
| 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 | |||
| Huawei | Huawei | |||
| skipping to change at page 29, line 43 ¶ | skipping to change at page 30, line 4 ¶ | |||
| Yingzhen Qu | Yingzhen Qu | |||
| Huawei | Huawei | |||
| Email: yingzhen.qu@huawei.com | Email: yingzhen.qu@huawei.com | |||
| Pushpasis Sarkar | Pushpasis Sarkar | |||
| Individual | Individual | |||
| Email: pushpasis.ietf@gmail.com | Email: pushpasis.ietf@gmail.com | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Individual | Nuage Networks | |||
| Email: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com | |||
| End of changes. 28 change blocks. | ||||
| 30 lines changed or deleted | 29 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/ | ||||