| < draft-ietf-spring-sr-yang-18.txt | draft-ietf-spring-sr-yang-19.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: January 27, 2021 Futurewei | Expires: February 3, 2021 Futurewei | |||
| A. Lindem | A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| P. Sarkar | P. Sarkar | |||
| Individual | Individual | |||
| J. Tantsura | J. Tantsura | |||
| Apstra | Apstra | |||
| July 26, 2020 | August 2, 2020 | |||
| YANG Data Model for Segment Routing | YANG Data Model for Segment Routing | |||
| draft-ietf-spring-sr-yang-18 | draft-ietf-spring-sr-yang-19 | |||
| 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 January 27, 2021. | This Internet-Draft will expire on February 3, 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 8, line 49 ¶ | skipping to change at page 8, line 49 ¶ | |||
| 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. | |||
| 8. YANG Module | 8. YANG Module | |||
| The following RFCs and drafts are not referenced in the document text | The following RFCs and drafts are not referenced in the document text | |||
| but are referenced in the ietf-segment-rouuting-common.yang and/or | but are referenced in the ietf-segment-rouuting-common.yang and/or | |||
| ietf-segment-routing.yang module: [RFC6991], [RFC8294], [RFC8476], | ietf-segment-routing.yang module: [RFC6991], [RFC8294], [RFC8476], | |||
| and [RFC8491]. | [RFC8491], [RFC8665], and [RFC8667]. | |||
| <CODE BEGINS> file "ietf-segment-routing@2020-07-24.yang" | <CODE BEGINS> file "ietf-segment-routing@2020-08-02.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 13 ¶ | skipping to change at page 10, line 13 ¶ | |||
| 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"; | reference "RFC XXXX"; | |||
| revision 2020-07-24 { | revision 2020-08-02 { | |||
| 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 { | |||
| description | description | |||
| "Segment Routing configuration. This container | "Segment Routing configuration. This container | |||
| is to be augmented by models for different SR | is to be augmented by models for different SR | |||
| data planes."; | data planes."; | |||
| reference "RFC 8402: Segment Routing Architecture."; | reference "RFC 8402: Segment Routing Architecture."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| <CODE BEGINS> file "ietf-segment-routing-common@2020-07-24.yang" | <CODE BEGINS> file "ietf-segment-routing-common@2020-08-02.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 11, line 44 ¶ | skipping to change at page 11, line 44 ¶ | |||
| 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"; | reference "RFC XXXX"; | |||
| revision 2020-07-24 { | revision 2020-08-02 { | |||
| 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 15, line 49 ¶ | skipping to change at page 15, line 49 ¶ | |||
| 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-mpls@2020-07-24.yang" | <CODE BEGINS> file "ietf-segment-routing-mpls@2020-08-02.yang" | |||
| 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 17, line 30 ¶ | skipping to change at page 17, line 30 ¶ | |||
| 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"; | reference "RFC XXXX"; | |||
| revision 2020-07-24 { | revision 2020-08-02 { | |||
| 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 with LDP"; | reference "RFC 8661: Segment Routing MPLS Interworking with LDP"; | |||
| } | } | |||
| skipping to change at page 18, line 44 ¶ | skipping to change at page 18, line 44 ¶ | |||
| "Segment Routing global configuration."; | "Segment Routing global configuration."; | |||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Enables segment-routing protocol extensions."; | "Enables segment-routing protocol extensions."; | |||
| } | } | |||
| container bindings { | container bindings { | |||
| description | description | |||
| "Control of binding advertisement and reception."; | "Control of binding advertisement and reception."; | |||
| if-feature mapping-server; | ||||
| container advertise { | container advertise { | |||
| description | description | |||
| "Control advertisement of local mappings | "Control advertisement of local mappings | |||
| in binding TLVs."; | in binding TLVs."; | |||
| leaf-list policies { | leaf-list policies { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/sr:segment-routing/sr-mpls:sr-mpls" | path "/rt:routing/sr:segment-routing/sr-mpls:sr-mpls" | |||
| + "/sr-mpls:bindings/sr-mpls:mapping-server" | + "/sr-mpls:bindings/sr-mpls:mapping-server" | |||
| + "/sr-mpls:policy/sr-mpls:name"; | + "/sr-mpls:policy/sr-mpls:name"; | |||
| } | } | |||
| skipping to change at page 19, line 45 ¶ | skipping to change at page 19, line 46 ¶ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Value of the Adj-SID."; | "Value of the Adj-SID."; | |||
| } | } | |||
| leaf protected { | leaf protected { | |||
| type boolean; | type boolean; | |||
| default false; | default false; | |||
| description | description | |||
| "It is used to protect the manual adj-SID."; | "It is used to protect the manual adj-SID."; | |||
| } | } | |||
| leaf weight { | ||||
| type uint8; | ||||
| description | ||||
| "The load-balancing factor over parallel adjacencies."; | ||||
| reference "RFC 8402: Segment Routing Architecture | ||||
| RFC 8665: OSPF Extensions for Segment Routing | ||||
| RFC 8667: IS-IS Extensions for Segment Routing"; | ||||
| } | ||||
| description | description | |||
| "List of adj-sid configuration."; | "List of adj-sid configuration."; | |||
| } | } | |||
| list advertise-adj-group-sid { | list advertise-adj-group-sid { | |||
| key "group-id"; | key "group-id"; | |||
| description | description | |||
| "Control advertisement of S flag. Enable advertisement | "Control advertisement of S flag. Enable advertisement | |||
| of a common Adj-SID for parallel links."; | of a common Adj-SID for parallel links."; | |||
| leaf group-id { | leaf group-id { | |||
| type uint32; | type uint32; | |||
| skipping to change at page 31, line 11 ¶ | skipping to change at page 31, line 16 ¶ | |||
| "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491, | "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491, | |||
| DOI 10.17487/RFC8491, November 2018, | DOI 10.17487/RFC8491, November 2018, | |||
| <https://www.rfc-editor.org/info/rfc8491>. | <https://www.rfc-editor.org/info/rfc8491>. | |||
| [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., | [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., | |||
| Decraene, B., Litkowski, S., and R. Shakir, "Segment | Decraene, B., Litkowski, S., and R. Shakir, "Segment | |||
| Routing with the MPLS Data Plane", RFC 8660, | Routing with the MPLS Data Plane", RFC 8660, | |||
| DOI 10.17487/RFC8660, December 2019, | DOI 10.17487/RFC8660, December 2019, | |||
| <https://www.rfc-editor.org/info/rfc8660>. | <https://www.rfc-editor.org/info/rfc8660>. | |||
| [RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler, | ||||
| H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | ||||
| Extensions for Segment Routing", RFC 8665, | ||||
| DOI 10.17487/RFC8665, December 2019, | ||||
| <https://www.rfc-editor.org/info/rfc8665>. | ||||
| [RFC8667] Previdi, S., Ed., Ginsberg, L., Ed., Filsfils, C., | ||||
| Bashandy, A., Gredler, H., and B. Decraene, "IS-IS | ||||
| Extensions for Segment Routing", RFC 8667, | ||||
| DOI 10.17487/RFC8667, December 2019, | ||||
| <https://www.rfc-editor.org/info/rfc8667>. | ||||
| 12.2. Informative References | 12.2. Informative References | |||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| Appendix A. Configuration example | Appendix A. Configuration example | |||
| The following is an XML example using the SR MPLS YANG modules. | The following is an XML example using the SR MPLS YANG modules. | |||
| End of changes. 14 change blocks. | ||||
| 11 lines changed or deleted | 32 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/ | ||||