| < draft-qu-mpls-mpls-msd-yang-00.txt | draft-qu-mpls-mpls-msd-yang-01.txt > | |||
|---|---|---|---|---|
| Internet Y. Qu | Internet Y. Qu | |||
| Internet-Draft Futurewei | Internet-Draft Futurewei | |||
| Intended status: Standards Track A. Lindem | Intended status: Standards Track A. Lindem | |||
| Expires: August 8, 2021 S. Litkowski | Expires: February 2, 2022 S. Litkowski | |||
| Cisco Systems | Cisco Systems | |||
| J. Tantsura | J. Tantsura | |||
| Juniper | Juniper | |||
| February 4, 2021 | August 1, 2021 | |||
| A YANG Model for MPLS MSD | A YANG Model for MPLS MSD | |||
| draft-qu-mpls-mpls-msd-yang-00 | draft-qu-mpls-mpls-msd-yang-01 | |||
| Abstract | Abstract | |||
| This document defines a YANG data module augmenting the IETF MPLS | This document defines a YANG data module augmenting the IETF MPLS | |||
| YANG model to provide support for MPLS Maximum SID Depths (MSDs) as | YANG model to provide support for MPLS Maximum SID Depths (MSDs) as | |||
| defined RFC 8476 and RFC 8491. | defined in RFC 8476 and RFC 8491. | |||
| 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 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 August 8, 2021. | This Internet-Draft will expire on February 2, 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 2, line 15 ¶ | skipping to change at page 2, line 15 ¶ | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 | |||
| 2. YANG Module for MPLS MSD . . . . . . . . . . . . . . . . . . 3 | 2. YANG Module for MPLS MSD . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 3. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 8 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 9 | 6.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 1. Overview | 1. Overview | |||
| YANG [RFC6020] [RFC7950] is a data definition language used to define | YANG [RFC7950] is a data definition language used to define the | |||
| the contents of a conceptual data store that allows networked devices | contents of a conceptual data store that allows networked devices to | |||
| to be managed using NETCONF [RFC6241]. YANG is proving relevant | be managed using NETCONF [RFC6241]. YANG is proving relevant beyond | |||
| beyond its initial confines, as bindings to other interfaces (e.g., | its initial confines, as bindings to other interfaces (e.g., ReST) | |||
| ReST) and encodings other than XML (e.g., JSON) are being defined. | and encodings other than XML (e.g., JSON) are being defined. | |||
| Furthermore, YANG data models can be used as the basis for | Furthermore, YANG data models can be used as the basis for | |||
| implementation of other interfaces, such as CLI and programmatic | implementation of other interfaces, such as CLI and programmatic | |||
| APIs. | APIs. | |||
| This document defines a YANG data module augmenting the IETF MPLS | This document defines a YANG data module augmenting the IETF MPLS | |||
| YANG model [RFC8960], which itself augments [RFC8349], to provide | YANG model [RFC8960], which itself augments [RFC8349], to provide | |||
| operational state for various MSDs[RFC8662]. | operational state for various MSDs[RFC8662]. | |||
| The augmentation defined in this document requires support for the | The augmentation defined in this document requires support for the | |||
| MPLS base model[RFC8960] which defines basic MPLS configuration and | MPLS base model[RFC8960] which defines basic MPLS configuration and | |||
| skipping to change at page 3, line 22 ¶ | skipping to change at page 3, line 22 ¶ | |||
| +--ro msd | +--ro msd | |||
| +--ro node-msds* [msd-type] | +--ro node-msds* [msd-type] | |||
| | +--ro msd-type identityref | | +--ro msd-type identityref | |||
| | +--ro msd-value? uint8 | | +--ro msd-value? uint8 | |||
| +--ro link-msds* [interface] | +--ro link-msds* [interface] | |||
| +--ro interface if:interface-ref | +--ro interface if:interface-ref | |||
| +--ro link-msd* [msd-type] | +--ro link-msd* [msd-type] | |||
| +--ro msd-type identityref | +--ro msd-type identityref | |||
| +--ro msd-value? uint8 | +--ro msd-value? uint8 | |||
| <CODE BEGINS> file "ietf-mpls-msd@2021-02-04.yang" | <CODE BEGINS> file "ietf-mpls-msd@2021-08-01.yang" | |||
| module ietf-mpls-msd { | module ietf-mpls-msd { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-msd"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-msd"; | |||
| prefix mpls-msd; | prefix mpls-msd; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix rt; | prefix rt; | |||
| reference "RFC 8349: A YANG Data Model for Routing | reference | |||
| Management (NMDA Version)"; | "RFC 8349: A YANG Data Model for Routing | |||
| Management (NMDA Version)"; | ||||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| reference "RFC 8343: A YANG Data Model for Interface | reference | |||
| Management (NMDA Version)"; | "RFC 8343: A YANG Data Model for Interface | |||
| Management (NMDA Version)"; | ||||
| } | } | |||
| import ietf-mpls { | import ietf-mpls { | |||
| prefix mpls; | prefix mpls; | |||
| reference "RFC 8960: A YANG Data Model for MPLS Base"; | reference "RFC 8960: A YANG Data Model for MPLS Base"; | |||
| } | } | |||
| organization | organization | |||
| "IETF MPLS - MPLS Working Group"; | "IETF MPLS - MPLS Working Group"; | |||
| contact | contact | |||
| skipping to change at page 4, line 41 ¶ | skipping to change at page 4, line 42 ¶ | |||
| 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: YANG Data Model for Segment Routing."; | reference "RFC XXXX: YANG Data Model for Segment Routing."; | |||
| revision 2021-02-04 { | revision 2021-08-01 { | |||
| description | description | |||
| "Initial Version"; | "Initial Version"; | |||
| reference "RFC XXXX: YANG Data Model for Segment Routing."; | reference "RFC XXXX: YANG Data Model for Segment Routing."; | |||
| } | } | |||
| identity msd-base-type { | identity msd-base-type { | |||
| description | description | |||
| "Base identity for MSD Type"; | "Base identity for MSD Type"; | |||
| } | } | |||
| identity base-mpls-msd { | identity base-mpls-msd { | |||
| base msd-base-type; | base msd-base-type; | |||
| description | description | |||
| "Base MPLS Imposition MSD."; | "Base MPLS Imposition MSD."; | |||
| reference | reference | |||
| "RFC 8491: Singling MSD using IS-IS."; | "RFC 8491: Singling MSD using IS-IS."; | |||
| } | } | |||
| identity erld-msd { | identity erld-msd { | |||
| base msd-base-type; | base msd-base-type; | |||
| skipping to change at page 5, line 31 ¶ | skipping to change at page 5, line 34 ¶ | |||
| grouping max-sid-depth { | grouping max-sid-depth { | |||
| description | description | |||
| "Maximum SID Depth (MSD) grouping."; | "Maximum SID Depth (MSD) grouping."; | |||
| list node-msds { | list node-msds { | |||
| key "msd-type"; | key "msd-type"; | |||
| leaf msd-type { | leaf msd-type { | |||
| type identityref { | type identityref { | |||
| base msd-base-type; | base msd-base-type; | |||
| } | } | |||
| description | description | |||
| "MSD-Types"; | "MSD types"; | |||
| } | } | |||
| leaf msd-value { | leaf msd-value { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "MSD value, in the range of 0-255."; | "MSD value, in the range of 0-255."; | |||
| } | } | |||
| description | description | |||
| "Node MSD is the smallest link MSD supported by | "Node MSD is the smallest link MSD supported by | |||
| the node."; | the node."; | |||
| } | } | |||
| skipping to change at page 6, line 8 ¶ | skipping to change at page 6, line 10 ¶ | |||
| description | description | |||
| "Reference to device interface."; | "Reference to device interface."; | |||
| } | } | |||
| list link-msd { | list link-msd { | |||
| key "msd-type"; | key "msd-type"; | |||
| leaf msd-type { | leaf msd-type { | |||
| type identityref { | type identityref { | |||
| base msd-base-type; | base msd-base-type; | |||
| } | } | |||
| description | description | |||
| "MSD-Types"; | "MSD type"; | |||
| } | } | |||
| leaf msd-value { | leaf msd-value { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "MSD value, in the range of 0-255."; | "MSD value, in the range of 0-255."; | |||
| } | } | |||
| description | description | |||
| "List of link MSDs"; | "List of link MSDs"; | |||
| } | } | |||
| description | description | |||
| skipping to change at page 6, line 45 ¶ | skipping to change at page 6, line 47 ¶ | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 3. Security Considerations | 3. Security Considerations | |||
| The YANG modules specified in this document define a schema for data | The YANG modules specified in this document define a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC5246]. | [RFC8446]. | |||
| The NETCONF access control model [RFC6536] provides the means to | The NETCONF Access Control Model (NACM) [RFC8341] provides the means | |||
| restrict access for particular NETCONF or RESTCONF users to a pre- | to restrict access for particular NETCONF or RESTCONF users to a pre- | |||
| configured subset of all available NETCONF or RESTCONF protocol | configured subset of all available NETCONF or RESTCONF protocol | |||
| operations and content. | operations and content. | |||
| There are a number of data nodes defined in the modules that are | There are a number of data nodes defined in the modules that 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. | |||
| Some of the readable data nodes in the modules may be considered | Some of the readable data nodes in the modules may be considered | |||
| sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus | |||
| important to control read access (e.g., via get, get-config, or | important to control read access (e.g., via get, get-config, or | |||
| notification) to these data nodes. The exposure of the Link State | notification) to these data nodes. These are the subtrees and data | |||
| Database (LSDB) will expose the detailed topology of the network. | nodes and their sensitivity/vulnerability: | |||
| This may be undesirable since both due to the fact that exposure may | ||||
| facilitate other attacks. Additionally, network operators may | /rt:routing/mpls:mpls/msd/node-msds | |||
| consider their topologies to be sensitive confidential data. | ||||
| /rt:routing/mpls:mpls/msd/link-msds | ||||
| Exposure of the node's maximum SID depth may be useful in mounting | ||||
| a Denial-of-Service (DoS) attach by sending packets to the node | ||||
| that the router can't process. | ||||
| 4. IANA Considerations | 4. IANA Considerations | |||
| This document registers URIs in the IETF XML registry [RFC3688]. | This document registers URIs in the IETF XML registry [RFC3688]. | |||
| Following the format in [RFC3688], the following registrations is | Following the format in [RFC3688], the following registrations is | |||
| requested to be made: | requested to be made: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-mpls-msd | URI: urn:ietf:params:xml:ns:yang:ietf-mpls-msd | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| skipping to change at page 8, line 14 ¶ | skipping to change at page 8, line 18 ¶ | |||
| [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, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | ||||
| (TLS) Protocol Version 1.2", RFC 5246, | ||||
| DOI 10.17487/RFC5246, August 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5246>. | ||||
| [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, | |||
| <https://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, | |||
| <https://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, | |||
| <https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Protocol (NETCONF) Access Control Model", RFC 6536, | ||||
| DOI 10.17487/RFC6536, March 2012, | ||||
| <https://www.rfc-editor.org/info/rfc6536>. | ||||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Access Control Model", STD 91, RFC 8341, | ||||
| DOI 10.17487/RFC8341, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8341>. | ||||
| [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8446>. | ||||
| [RFC8476] Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, | [RFC8476] Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, | |||
| "Signaling Maximum SID Depth (MSD) Using OSPF", RFC 8476, | "Signaling Maximum SID Depth (MSD) Using OSPF", RFC 8476, | |||
| DOI 10.17487/RFC8476, December 2018, | DOI 10.17487/RFC8476, December 2018, | |||
| <https://www.rfc-editor.org/info/rfc8476>. | <https://www.rfc-editor.org/info/rfc8476>. | |||
| [RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, | [RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, | |||
| "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>. | |||
| End of changes. 22 change blocks. | ||||
| 38 lines changed or deleted | 46 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/ | ||||