| < draft-ietf-isis-segment-routing-msd-17.txt | draft-ietf-isis-segment-routing-msd-18.txt > | |||
|---|---|---|---|---|
| IS-IS Working Group J. Tantsura | IS-IS Working Group J. Tantsura | |||
| Internet-Draft Nuage Networks | Internet-Draft Nuage Networks | |||
| Intended status: Standards Track U. Chunduri | Intended status: Standards Track U. Chunduri | |||
| Expires: March 30, 2019 Huawei Technologies | Expires: April 7, 2019 Huawei Technologies | |||
| S. Aldrin | S. Aldrin | |||
| Google, Inc | Google, Inc | |||
| L. Ginsberg | L. Ginsberg | |||
| Cisco Systems | Cisco Systems | |||
| September 26, 2018 | October 4, 2018 | |||
| Signaling MSD (Maximum SID Depth) using IS-IS | Signaling MSD (Maximum SID Depth) using IS-IS | |||
| draft-ietf-isis-segment-routing-msd-17 | draft-ietf-isis-segment-routing-msd-18 | |||
| Abstract | Abstract | |||
| This document defines a way for an Intermediate System to | This document defines a way for an Intermediate System to | |||
| Intermediate System (IS-IS) router to advertise multiple types of | Intermediate System (IS-IS) router to advertise multiple types of | |||
| supported Maximum SID Depths (MSDs) at node and/or link granularity. | supported Maximum SID Depths (MSDs) at node and/or link granularity. | |||
| Such advertisements allow entities (e.g., centralized controllers) to | Such advertisements allow entities (e.g., centralized controllers) to | |||
| determine whether a particular SID stack can be supported in a given | determine whether a particular SID (Segment ID) stack can be | |||
| network. This document only defines one type of MSD (Base MPLS | supported in a given network. This document only defines one type of | |||
| Imposition), but defines an encoding that can support other MSD | MSD (Base MPLS Imposition), but defines an encoding that can support | |||
| types. This document focuses on MSD use in a Segment Routing enabled | other MSD types. This document focuses on MSD use in a Segment | |||
| network, but MSD may also be useful when Segment Routing is not | Routing enabled network, but MSD may also be useful when Segment | |||
| enabled. | Routing is not enabled. | |||
| 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 March 30, 2019. | This Internet-Draft will expire on April 7, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 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 | |||
| 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.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Node MSD Advertisement . . . . . . . . . . . . . . . . . . . 4 | 2. Node MSD Advertisement . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Link MSD Advertisement . . . . . . . . . . . . . . . . . . . 5 | 3. Link MSD Advertisement . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Procedures for using Node and Link MSD Advertisements . . . . 6 | 4. Procedures for Defining and Using Node and Link MSD | |||
| Advertisements . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
| 5. Base MPLS Imposition MSD . . . . . . . . . . . . . . . . . . 6 | 5. Base MPLS Imposition MSD . . . . . . . . . . . . . . . . . . 6 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 9 | 10.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 1. Introduction | 1. Introduction | |||
| When Segment Routing (SR) paths are computed by a centralized | When Segment Routing (SR) paths are computed by a centralized | |||
| controller, it is critical that the controller learns the Maximum SID | controller, it is critical that the controller learns the Maximum SID | |||
| Depth (MSD) that can be imposed at each node/link of a given SR path | Depth (MSD) that can be imposed at each node/link of a given SR path | |||
| to ensure that the Segment Identifier (SID) stack depth of a computed | to ensure that the Segment Identifier (SID) stack depth of a computed | |||
| path does not exceed the number of SIDs the node is capable of | path does not exceed the number of SIDs the node is capable of | |||
| imposing. | imposing. | |||
| [I-D.ietf-pce-segment-routing] defines how to signal MSD in the Path | [I-D.ietf-pce-segment-routing] defines how to signal MSD in the Path | |||
| Computation Element Protocol (PCEP). However, if PCEP is not | Computation Element communication Protocol (PCEP). However, if PCEP | |||
| supported/configured on the head-end of an SR tunnel or a Binding-SID | is not supported/configured on the head-end of an SR tunnel or a | |||
| anchor node and controller does not participate in IGP routing, it | Binding-SID anchor node and controller does not participate in IGP | |||
| has no way to learn the MSD of nodes and links. BGP-LS (Distribution | routing, it has no way to learn the MSD of nodes and links. BGP-LS | |||
| of Link-State and TE Information using Border Gateway Protocol) | (Distribution of Link-State and TE Information using Border Gateway | |||
| Protocol) [RFC7752] defines a way to expose topology and associated | ||||
| [RFC7752] defines a way to expose topology and associated attributes | attributes and capabilities of the nodes in that topology to a | |||
| and capabilities of the nodes in that topology to a centralized | centralized controller. MSD signaling by BGP-LS has been defined in | |||
| controller. MSD signaling by BGP-LS has been defined in | ||||
| [I-D.ietf-idr-bgp-ls-segment-routing-msd]. Typically, BGP-LS is | [I-D.ietf-idr-bgp-ls-segment-routing-msd]. Typically, BGP-LS is | |||
| configured on a small number of nodes that do not necessarily act as | configured on a small number of nodes that do not necessarily act as | |||
| head-ends. In order for BGP-LS to signal MSD for all the nodes and | head-ends. In order for BGP-LS to signal MSD for all the nodes and | |||
| links in the network MSD is relevant, MSD capabilities SHOULD be | links in the network MSD is relevant, MSD capabilities SHOULD be | |||
| advertised by every Intermediate System to Intermediate System(IS-IS) | advertised by every Intermediate System to Intermediate System(IS-IS) | |||
| router in the network. | router in the network. | |||
| Other types of MSD are known to be useful. For example, | Other types of MSD are known to be useful. For example, | |||
| [I-D.ietf-isis-mpls-elc] defines Readable Label Depth Capability | [I-D.ietf-isis-mpls-elc] defines Readable Label Depth Capability | |||
| (RLDC) that is used by a head-end to insert an Entropy Label (EL) at | (RLDC) that is used by a head-end to insert an Entropy Label (EL) at | |||
| skipping to change at page 3, line 42 ¶ | skipping to change at page 3, line 42 ¶ | |||
| 1.1. Terminology | 1.1. Terminology | |||
| BMI: Base MPLS Imposition is the number of MPLS labels which can be | BMI: Base MPLS Imposition is the number of MPLS labels which can be | |||
| imposed inclusive of all service/transport/special labels | imposed inclusive of all service/transport/special labels | |||
| MSD: Maximum SID Depth - the number of SIDs supported by a node or a | MSD: Maximum SID Depth - the number of SIDs supported by a node or a | |||
| link on a node | link on a node | |||
| SID: Segment Identifier as defined in [RFC8402] | SID: Segment Identifier as defined in [RFC8402] | |||
| Label Imposition: Imposition is the act of modifying and/or adding | ||||
| labels to the outgoing label stack associated with a packet. This | ||||
| includes: | ||||
| o replacing the label at the top of the label stack with a new label | ||||
| o pushing one or more new labels onto the label stack | ||||
| The number of labels imposed is then the sum of the number of labels | ||||
| which are replaced and the number of labels which are pushed. See | ||||
| [RFC3031] for further details. | ||||
| 1.2. Requirements Language | 1.2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here . | capitals, as shown here . | |||
| 2. Node MSD Advertisement | 2. Node MSD Advertisement | |||
| skipping to change at page 5, line 41 ¶ | skipping to change at page 6, line 7 ¶ | |||
| length of value field. | length of value field. | |||
| Value: consists of one or more pairs of a 1 octet MSD-Type and 1 | Value: consists of one or more pairs of a 1 octet MSD-Type and 1 | |||
| octet MSD-Value. | octet MSD-Value. | |||
| MSD-Type is a value defined in the MSD-Types registry created by the | MSD-Type is a value defined in the MSD-Types registry created by the | |||
| IANA Section of this document. | IANA Section of this document. | |||
| MSD-Value is a number in the range of 0-255. For all MSD-Types, 0 | MSD-Value is a number in the range of 0-255. For all MSD-Types, 0 | |||
| represents lack of the ability to support SID stack of any depth; any | represents lack of the ability to support SID stack of any depth; any | |||
| other value represents that of the link. | other value represents that of the particular link when used as an | |||
| outgoing interface. | ||||
| This sub-TLV is optional. | This sub-TLV is optional. | |||
| If multiple Link MSD advertisements for the same MSD-Type and the | If multiple Link MSD advertisements for the same MSD-Type and the | |||
| same link are received, the procedure used to select which copy is | same link are received, the procedure used to select which copy is | |||
| used is undefined. | used is undefined. | |||
| 4. Procedures for using Node and Link MSD Advertisements | If the advertising router performs label imposition in the context of | |||
| the ingress interface, it is not possible to meaningfully advertise | ||||
| per link values. In such a case only the Node MSD SHOULD be | ||||
| advertised. | ||||
| 4. Procedures for Defining and Using Node and Link MSD Advertisements | ||||
| When Link MSD is present for a given MSD-type, the value of the Link | When Link MSD is present for a given MSD-type, the value of the Link | |||
| MSD MUST take precedence over the Node MSD. When a Link MSD-type is | MSD MUST take precedence over the Node MSD. When a Link MSD-type is | |||
| not signaled but the Node MSD-type is, then the Node MSD-type value | not signaled but the Node MSD-type is, then the Node MSD-type value | |||
| MUST be considered as the MSD value for that link. | MUST be considered as the MSD value for that link. | |||
| In order to increase flooding efficiency, it is RECOMMENDED that | In order to increase flooding efficiency, it is RECOMMENDED that | |||
| routers with homogenous link MSD values advertise just the Node MSD | routers with homogenous link MSD values advertise just the Node MSD | |||
| value. | value. | |||
| skipping to change at page 6, line 28 ¶ | skipping to change at page 6, line 44 ¶ | |||
| only be inferred that the advertising node does not support | only be inferred that the advertising node does not support | |||
| advertisement of that MSD-type. However, in some cases the lack of | advertisement of that MSD-type. However, in some cases the lack of | |||
| advertisement might imply that the functionality associated with the | advertisement might imply that the functionality associated with the | |||
| MSD-type is not supported. The correct interpretation MUST be | MSD-type is not supported. The correct interpretation MUST be | |||
| specified when an MSD-type is defined. | specified when an MSD-type is defined. | |||
| 5. Base MPLS Imposition MSD | 5. Base MPLS Imposition MSD | |||
| Base MPLS Imposition MSD (BMI-MSD) signals the total number of MPLS | Base MPLS Imposition MSD (BMI-MSD) signals the total number of MPLS | |||
| labels which can be imposed, including all service/transport/special | labels which can be imposed, including all service/transport/special | |||
| labels. The value advertised MUST indicate what can be imposed under | labels. | |||
| all conditions e.g., if label popping/swapping affects the number of | ||||
| labels which can be imposed this MUST be accounted for in the value | ||||
| which is advertised. | ||||
| If the advertising router performs label imposition in the context of | ||||
| the ingress interface, it is not possible to meaningfully advertise | ||||
| per link values. In such a case only the Node MSD SHOULD be | ||||
| advertised. | ||||
| Absence of BMI-MSD advertisements indicates solely that the | Absence of BMI-MSD advertisements indicates solely that the | |||
| advertising node does not support advertisement of this capability. | advertising node does not support advertisement of this capability. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document requests IANA to allocate a sub-TLV type for the new | This document requests IANA to allocate a sub-TLV type for the new | |||
| sub TLV proposed in Section 2 of this document from IS-IS Router | sub TLV proposed in Section 2 of this document from IS-IS Router | |||
| Capability TLV Registry as defined by [RFC7981]. | Capability TLV Registry as defined by [RFC7981]. | |||
| skipping to change at page 8, line 13 ¶ | skipping to change at page 8, line 23 ¶ | |||
| Figure 6: MSD-Types Codepoints Registry | Figure 6: MSD-Types Codepoints Registry | |||
| General guidance for the Designated Experts is as defined in | General guidance for the Designated Experts is as defined in | |||
| [RFC7370] | [RFC7370] | |||
| 7. Security Considerations | 7. Security Considerations | |||
| Security considerations as specified by [RFC7981] are applicable to | Security considerations as specified by [RFC7981] are applicable to | |||
| this document. | this document. | |||
| Advertisement of the additional information defined in this document | Advertisement of an incorrect MSD value may have negative | |||
| that is false, e.g., an MSD that is incorrect, may result in a path | consequences. If the value is smaller than supported, path | |||
| computation failing, having a service unavailable, or calculation of | computation may fail to compute a viable path. If the value is | |||
| a path that cannot be supported by the head-end (the node performing | larger than supported, an attempt to instantiate a path that can't be | |||
| the imposition). | supported by the head-end (the node performing the SID imposition) | |||
| may occur. | ||||
| The presence of this information also may inform an attacker of how | The presence of this information also may inform an attacker of how | |||
| to induce any of the aforementioned conditions. | to induce any of the aforementioned conditions. | |||
| 8. Contributors | 8. Contributors | |||
| The following people contributed to this document: | The following people contributed to this document: | |||
| Peter Psenak | Peter Psenak | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at page 9, line 4 ¶ | |||
| Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
| 9. Acknowledgements | 9. Acknowledgements | |||
| The authors would like to thank Acee Lindem, Ketan Talaulikar, | The authors would like to thank Acee Lindem, Ketan Talaulikar, | |||
| Stephane Litkowski and Bruno Decraene for their reviews and valuable | Stephane Litkowski and Bruno Decraene for their reviews and valuable | |||
| comments. | comments. | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [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>. | |||
| [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | ||||
| Label Switching Architecture", RFC 3031, | ||||
| DOI 10.17487/RFC3031, January 2001, | ||||
| <https://www.rfc-editor.org/info/rfc3031>. | ||||
| [RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints | [RFC7370] Ginsberg, L., "Updates to the IS-IS TLV Codepoints | |||
| Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, | Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014, | |||
| <https://www.rfc-editor.org/info/rfc7370>. | <https://www.rfc-editor.org/info/rfc7370>. | |||
| [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions | [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions | |||
| for Advertising Router Information", RFC 7981, | for Advertising Router Information", RFC 7981, | |||
| DOI 10.17487/RFC7981, October 2016, | DOI 10.17487/RFC7981, October 2016, | |||
| <https://www.rfc-editor.org/info/rfc7981>. | <https://www.rfc-editor.org/info/rfc7981>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| End of changes. 18 change blocks. | ||||
| 41 lines changed or deleted | 55 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/ | ||||