| < draft-ietf-mpls-base-yang-05.txt | draft-ietf-mpls-base-yang-06.txt > | |||
|---|---|---|---|---|
| MPLS Working Group T. Saad | MPLS Working Group T. Saad | |||
| Internet-Draft K. Raza | Internet-Draft K. Raza | |||
| Intended status: Standards Track R. Gandhi | Intended status: Standards Track R. Gandhi | |||
| Expires: January 3, 2018 Cisco Systems Inc | Expires: August 19, 2018 Cisco Systems Inc | |||
| X. Liu | X. Liu | |||
| Jabil | Jabil | |||
| V. Beeram | V. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| H. Shah | February 15, 2018 | |||
| Ciena | ||||
| I. Bryskin | ||||
| X. Chen | ||||
| Huawei Technologies | ||||
| R. Jones | ||||
| Brocade | ||||
| B. Wen | ||||
| Comcast | ||||
| July 02, 2017 | ||||
| A YANG Data Model for MPLS Base | A YANG Data Model for MPLS Base | |||
| draft-ietf-mpls-base-yang-05 | draft-ietf-mpls-base-yang-06 | |||
| Abstract | Abstract | |||
| This document contains a specification of the the MPLS base YANG | This document contains a specification of the the MPLS base YANG | |||
| model. The MPLS base YANG module serves as a base framework for | model. The MPLS base YANG module serves as a base framework for | |||
| configuring and managing an MPLS switching subsystem. It is expected | configuring and managing an MPLS switching subsystem. It is expected | |||
| that other MPLS technology YANG models (e.g. MPLS LSP Static, LDP or | that other MPLS technology YANG models (e.g. MPLS LSP Static, LDP or | |||
| RSVP-TE models) will augment the MPLS base YANG model. | RSVP-TE models) will augment the MPLS base YANG model. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 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 3, 2018. | This Internet-Draft will expire on August 19, 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 | |||
| (http://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 | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1.1. Keywords . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1.1. Keywords . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. MPLS Base Tree Diagram . . . . . . . . . . . . . . . . . 3 | 1.2. MPLS Base Tree Diagram . . . . . . . . . . . . . . . . . 3 | |||
| 1.3. MPLS Base Module . . . . . . . . . . . . . . . . . . . . 5 | 1.3. MPLS Base Module . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 2. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 3. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 4. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 4. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4.2. Informative References . . . . . . . . . . . . . . . . . 15 | 6. Normative References . . . . . . . . . . . . . . . . . . . . 14 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 1. Introduction | 1. Introduction | |||
| A core routing data model is defined in [RFC8022], and it provides a | A core routing data model is defined in [RFC8022], and it provides a | |||
| basis for the development of data models for routing protocols. The | basis for the development of data models for routing protocols. The | |||
| MPLS base model augments this model with additional data specific to | MPLS base model augments this model with additional data specific to | |||
| MPLS switching [RFC3031]. The interface data model is defined in | MPLS switching [RFC3031]. The interface data model is defined in | |||
| [RFC7223] and is used for referencing interface from the MPLS base | [RFC7223] and is used for referencing interface from the MPLS base | |||
| model. | model. | |||
| The MPLS base YANG module augments the "routing" read-write (rw) and | The MPLS base YANG module augments the "routing" read-write (rw) and | |||
| "routing-state" read-only (ro) branches of the ietf-routing module | "routing-state" read-only (ro) branches of the ietf-routing module | |||
| defined in [RFC8022]. The approach described in | defined in [RFC8022]. | |||
| [I-D.openconfig-netmod-opstate] is adopted to represent data | ||||
| pertaining to configuration intended, applied state and derived state | ||||
| data elements. Each container in the model holds a "config" and | ||||
| "state" sub-container. The "config" sub-container contains the | ||||
| intended configuration data, and the state sub-container contains | ||||
| both the applied configuration and any derived state, such as | ||||
| counters or statistical information. | ||||
| This document defines the specification for the "ietf-mpls" YANG | This document defines the specification for the "ietf-mpls" YANG | |||
| module that provides base components of the MPLS data model. It is | module that provides base components of the MPLS data model. It is | |||
| expected that other MPLS YANG modules will augment the "ietf-mpls" | expected that other MPLS YANG modules will augment the "ietf-mpls" | |||
| base model to define data models for other MPLS technologies (e.g. | base model to define data models for other MPLS technologies (e.g. | |||
| MPLS LDP or MPLS RSVP-TE). | MPLS LDP or MPLS RSVP-TE). | |||
| This document also defines a way to model MPLS labelled routes as an | This document also defines a way to model MPLS labelled routes as an | |||
| augmentation of the the routing RIB model defined in [RFC8022] for IP | augmentation of the the routing RIB model defined in [RFC8022] for IP | |||
| prefix routes that are MPLS labelled. Other MPLS non-IP prefix | prefix routes that are MPLS labelled. Other MPLS non-IP prefix | |||
| skipping to change at page 3, line 52 ¶ | skipping to change at page 3, line 40 ¶ | |||
| o schema tree, | o schema tree, | |||
| o state data, | o state data, | |||
| o RPC operation. | o RPC operation. | |||
| 1.2. MPLS Base Tree Diagram | 1.2. MPLS Base Tree Diagram | |||
| The MPLS base tree diagram is shown in Figure 1. | The MPLS base tree diagram is shown in Figure 1. | |||
| module: ietf-mpls | module: ietf-mpls | |||
| augment /rt:routing: | augment /rt:routing: | |||
| +--rw mpls | +--rw mpls | |||
| +--rw config | +--rw config | |||
| | +--rw ttl-propagate? boolean | | +--rw ttl-propagate? boolean | |||
| +--ro state | +--ro state | |||
| | +--ro ttl-propagate? boolean | | +--ro ttl-propagate? boolean | |||
| +--rw label-blocks | +--rw label-blocks | |||
| | +--rw label-block* [index] | | +--rw label-block* [index] | |||
| | +--rw index -> ../config/index | | +--rw index -> ../config/index | |||
| | +--rw start-label? -> ../config/start-label | | +--rw start-label? -> ../config/start-label | |||
| | +--rw end-label? -> ../config/end-label | | +--rw end-label? -> ../config/end-label | |||
| | +--rw config | | +--rw config | |||
| | | +--rw index? string | | | +--rw index? string | |||
| | | +--rw start-label? rt-types:mpls-label | | | +--rw start-label? rt-types:mpls-label | |||
| | | +--rw end-label? rt-types:mpls-label | | | +--rw end-label? rt-types:mpls-label | |||
| | | +--rw block-allocation-mode? identityref | | | +--rw block-allocation-mode? identityref | |||
| | +--ro state | | +--ro state | |||
| | +--ro index? string | | +--ro index? string | |||
| | +--ro start-label? rt-types:mpls-label | | +--ro start-label? rt-types:mpls-label | |||
| | +--ro end-label? rt-types:mpls-label | | +--ro end-label? rt-types:mpls-label | |||
| | +--ro block-allocation-mode? identityref | | +--ro block-allocation-mode? identityref | |||
| | +--ro free-labels-count? uint32 | | +--ro free-labels-count? uint32 | |||
| | +--ro inuse-labels-count? uint32 | | +--ro inuse-labels-count? uint32 | |||
| +--rw interface* [name] | +--rw interface* [name] | |||
| +--rw name if:interface-ref | +--rw name if:interface-ref | |||
| +--rw config | +--rw config | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw mtu? uint32 | | +--rw mtu? uint32 | |||
| +--ro state | +--ro state | |||
| +--ro enabled? boolean | +--ro enabled? boolean | |||
| +--ro mtu? uint32 | +--ro mtu? uint32 | |||
| augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route: | augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route: | |||
| +--ro local-label? rt-types:mpls-label | +--ro local-label? rt-types:mpls-label | |||
| augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/ | augment | |||
| rt:next-hop/rt:next-hop-options/rt:simple-next-hop: | /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/rt:next-hop/ | |||
| +--ro remote-labels* [index] | rt:next-hop-options/rt:simple-next-hop: | |||
| +--ro index uint8 | +--ro remote-labels* [index] | |||
| +--ro label? rt-types:mpls-label | +--ro index uint8 | |||
| augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/ | +--ro label? rt-types:mpls-label | |||
| rt:next-hop/rt:next-hop-options/rt:next-hop-list/rt:next-hop-list/ | augment | |||
| rt:next-hop: | /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/rt:next-hop/ | |||
| +--ro index? string | rt:next-hop-options/rt:next-hop-list/rt:next-hop-list/rt:next-hop: | |||
| +--ro backup-index? string | +--ro index? string | |||
| +--ro loadshare? uint16 | +--ro backup-index? string | |||
| +--ro role? nhlfe-role | +--ro loadshare? uint16 | |||
| +--ro remote-labels* [index] | +--ro role? nhlfe-role | |||
| +--ro index uint8 | +--ro remote-labels* [index] | |||
| +--ro label? rt-types:mpls-label | +--ro index uint8 | |||
| +--ro label? rt-types:mpls-label | ||||
| augment /rt:routing-state/rt:ribs/rt:rib/rt:active-route/rt:input: | augment /rt:routing-state/rt:ribs/rt:rib/rt:active-route/rt:input: | |||
| +---- index? string | +---- index? string | |||
| +---- backup-index? string | +---- backup-index? string | |||
| +---- loadshare? uint16 | +---- loadshare? uint16 | |||
| +---- role? nhlfe-role | +---- role? nhlfe-role | |||
| +---- remote-labels* [index] | +---- remote-labels* [index] | |||
| +---- index uint8 | +---- index uint8 | |||
| +---- label? rt-types:mpls-label | +---- label? rt-types:mpls-label | |||
| augment /rt:routing-state/rt:ribs/rt:rib/rt:active-route/rt:output/ | augment | |||
| rt:route: | /rt:routing-state/rt:ribs/rt:rib/rt:active-route/rt:output/rt:route: | |||
| +---- index? string | +---- index? string | |||
| +---- backup-index? string | +---- backup-index? string | |||
| +---- loadshare? uint16 | +---- loadshare? uint16 | |||
| +---- role? nhlfe-role | +---- role? nhlfe-role | |||
| +---- remote-labels* [index] | +---- remote-labels* [index] | |||
| +---- index uint8 | +---- index uint8 | |||
| +---- label? rt-types:mpls-label | +---- label? rt-types:mpls-label | |||
| Figure 1: MPLS Base tree diagram | Figure 1: MPLS Base tree diagram | |||
| 1.3. MPLS Base Module | 1.3. MPLS Base Module | |||
| <CODE BEGINS> file "ietf-mpls@2017-07-02.yang" | <CODE BEGINS> file "ietf-mpls@2017-07-02.yang" | |||
| module ietf-mpls { | module ietf-mpls { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-mpls"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mpls"; | |||
| skipping to change at page 14, line 12 ¶ | skipping to change at page 14, line 5 ¶ | |||
| users to a pre-configured subset of all available NETCONF protocol | users to a pre-configured subset of all available NETCONF protocol | |||
| operations and content. | operations and content. | |||
| There are a number of data nodes defined in the YANG module which are | There are a number of data nodes defined in the YANG module which are | |||
| writable/creatable/deletable (i.e., config true, which is the | writable/creatable/deletable (i.e., config true, which is the | |||
| default). These data nodes may be considered sensitive or vulnerable | default). These data nodes may be considered sensitive or vulnerable | |||
| in some network environments. Write operations (e.g., <edit-config>) | in some network environments. Write operations (e.g., <edit-config>) | |||
| to these data nodes without proper protection can have a negative | to these data nodes without proper protection can have a negative | |||
| effect on network operations. | effect on network operations. | |||
| 4. References | 4. Acknowledgement | |||
| 4.1. Normative References | The authors would like to thank the members of the multi-vendor YANG | |||
| design team who are involved in the definition of this model. | ||||
| 5. Contributors | ||||
| Igor Bryskin | ||||
| Huawei Technologies | ||||
| email: Igor.Bryskin@huawei.com | ||||
| Himanshu Shah | ||||
| Ciena | ||||
| email: hshah@ciena.com | ||||
| 6. Normative References | ||||
| [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | |||
| Label Switching Architecture", RFC 3031, DOI 10.17487/ | Label Switching Architecture", RFC 3031, | |||
| RFC3031, January 2001, | DOI 10.17487/RFC3031, January 2001, | |||
| <http://www.rfc-editor.org/info/rfc3031>. | <https://www.rfc-editor.org/info/rfc3031>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <http://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <http://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <http://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <http://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Protocol (NETCONF) Access Control Model", RFC 6536, DOI | Protocol (NETCONF) Access Control Model", RFC 6536, | |||
| 10.17487/RFC6536, March 2012, | DOI 10.17487/RFC6536, March 2012, | |||
| <http://www.rfc-editor.org/info/rfc6536>. | <https://www.rfc-editor.org/info/rfc6536>. | |||
| [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | |||
| Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | |||
| <http://www.rfc-editor.org/info/rfc7223>. | <https://www.rfc-editor.org/info/rfc7223>. | |||
| [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
| Management", RFC 8022, DOI 10.17487/RFC8022, November | Management", RFC 8022, DOI 10.17487/RFC8022, November | |||
| 2016, <http://www.rfc-editor.org/info/rfc8022>. | 2016, <https://www.rfc-editor.org/info/rfc8022>. | |||
| 4.2. Informative References | ||||
| [I-D.openconfig-netmod-opstate] | ||||
| Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling | ||||
| of Operational State Data in YANG", draft-openconfig- | ||||
| netmod-opstate-01 (work in progress), July 2015. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Tarek Saad | Tarek Saad | |||
| Cisco Systems Inc | Cisco Systems Inc | |||
| Email: tsaad@cisco.com | Email: tsaad@cisco.com | |||
| Kamran Raza | Kamran Raza | |||
| Cisco Systems Inc | Cisco Systems Inc | |||
| skipping to change at page 15, line 38 ¶ | skipping to change at line 697 ¶ | |||
| Xufeng Liu | Xufeng Liu | |||
| Jabil | Jabil | |||
| Email: Xufeng_Liu@jabil.com | Email: Xufeng_Liu@jabil.com | |||
| Vishnu Pavan Beeram | Vishnu Pavan Beeram | |||
| Juniper Networks | Juniper Networks | |||
| Email: vbeeram@juniper.net | Email: vbeeram@juniper.net | |||
| Himanshu Shah | ||||
| Ciena | ||||
| Email: tsaad@cisco.com | ||||
| Igor Bryskin | ||||
| Huawei Technologies | ||||
| Email: Igor.Bryskin@huawei.com | ||||
| Xia Chen | ||||
| Huawei Technologies | ||||
| Email: jescia.chenxia@huawei.com | ||||
| Raqib Jones | ||||
| Brocade | ||||
| Email: raqib@Brocade.com | ||||
| Bin Wen | ||||
| Comcast | ||||
| Email: Bin_Wen@cable.comcast.com | ||||
| End of changes. 21 change blocks. | ||||
| 115 lines changed or deleted | 105 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/ | ||||