SPRING W. Cheng Internet-Draft China Mobile Intended status: Informational S. Steffann Expires: May 17, 2021 SJM Steffann Consultancy November 13, 2020 Compressed SRv6 SID List Requirements draft-srcompdt-spring-compression-requirement-01 Abstract This document specifies requirements for solutions to compress SRv6 SID lists. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on May 17, 2021. Copyright Notice Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Cheng & Steffann Expires May 17, 2021 [Page 1] Internet-Draft SRCOMP Requirements November 2020 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions used in this document . . . . . . . . . . . . . . 3 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 3. SRv6 SID List Compression Requirements . . . . . . . . . . . 4 3.1. Dataplane Efficiency and Performance Requirements . . . . 4 3.1.1. Encapsulation Header Size . . . . . . . . . . . . . . 4 3.1.2. Forwarding Efficiency . . . . . . . . . . . . . . . . 5 3.1.3. State Efficiency . . . . . . . . . . . . . . . . . . 5 4. SRv6 Specific Requirements . . . . . . . . . . . . . . . . . 5 4.1. Functional Requirements . . . . . . . . . . . . . . . . . 5 4.1.1. SID list length . . . . . . . . . . . . . . . . . . . 5 4.1.2. SID summarization . . . . . . . . . . . . . . . . . . 6 4.2. Operational Requirements . . . . . . . . . . . . . . . . 6 4.2.1. Lossless Compression . . . . . . . . . . . . . . . . 6 4.3. Scalability Requirements . . . . . . . . . . . . . . . . 6 4.3.1. Adjacency segment scale . . . . . . . . . . . . . . . 6 4.3.2. Prefix segment scale . . . . . . . . . . . . . . . . 7 4.3.3. Service Scale . . . . . . . . . . . . . . . . . . . . 7 5. Protocol Design Requirements . . . . . . . . . . . . . . . . 7 5.1. SRv6 Base Coexistence . . . . . . . . . . . . . . . . . . 7 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 Appendix A. Proposed Requirements . . . . . . . . . . . . . . . 10 A.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 10 A.2. Requirements . . . . . . . . . . . . . . . . . . . . . . 10 A.2.1. SRv6 Based . . . . . . . . . . . . . . . . . . . . . 10 A.2.2. SRv6 Functionality . . . . . . . . . . . . . . . . . 11 A.2.3. Heterogeneous SID lists . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 1. Introduction The SPRING working group defined SRv6, with [RFC8402] describing how the Segment Routing (SR) architecture is instantiated on two data- planes: SR over MPLS (SR-MPLS) and SR over IPv6 (SRv6). SRv6 uses a routing header called the SR Header (SRH) [RFC8754] and defines SRv6 SID behaviors and a registry for identifying them in [I-D.ietf-spring-srv6-network-programming]. SRv6 is a proposed standard and is deployed today. The SPRING working group has observed that some use cases, such as strict path TE, may require long SRv6 SID lists. There are several Cheng & Steffann Expires May 17, 2021 [Page 2] Internet-Draft SRCOMP Requirements November 2020 proposed methods to reduce the resulting SRv6 encapsulation size by compressing the SID list. The SPRING working group formed a design team to define requirements for, and analyze proposals to, compress SRv6 SID lists. It is a goal of the design team to identify the requirements for proposals to SR over IPv6 SID list compression. For each requirement, a description, rationale and metrics are described. The design team will produce a separate document to analyze the proposals. This document is a draft; additional requirements are under review, additional requirements will be added, and current requirements may change. Appendix A contains a subset of requirements without unanimous consensus. Additional requirements without unanimous consensus are not in the appendix. 2. Conventions used in this document 2.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2.2. Terminology SR: Segment Routing SRH: Segment Routing Header MPLS: Multiprotocol Label Switching SR-MPLS: Segment Routing over MPLS data plane SID: Segment Identifier SRv6: Segment Routing over IPv6 SRv6 SID List: A list of SRv6 SIDs Compression proposal: A proposal to compress SRv6 SID lists Cheng & Steffann Expires May 17, 2021 [Page 3] Internet-Draft SRCOMP Requirements November 2020 SRv6 base: SRv6 as defined in [RFC8402], [RFC8754], [I-D.ietf-spring-srv6-network-programming] SID numbering space: may be implemented as o a single IGP instance o a single IGP level or area o two or more autonomous systems that coordinate SID numbering space o two or more IGP instances that coordinate SID numbering space SRv6 Encapsulation Header: The IPv6 header, and any extension headers preceding a payload, used to implement a SRv6 base or compression proposal. 3. SRv6 SID List Compression Requirements 3.1. Dataplane Efficiency and Performance Requirements 3.1.1. Encapsulation Header Size Description: The compression proposal MUST reduce the size of the SRv6 encapsulation header. Rationale: A smaller SRv6 encapsulation results in better MTU efficiency. Metric: Compression is the ratio of the IPv6 encapsulation size of SRv6 as defined in [RFC8402], [RFC8754], [I-D.ietf-spring-srv6-network-programming] vs the IPv6 encapsulation size of a given proposal. The encapsulation savings of a compression proposal vs the SRv6 base is a useful measurement to compare proposals. The encapsulation metric (E) records the number of bytes required for a proposal to encapsulate a packet given a specific segment list. o E(proposal, segment list). The encapsulation savings(ES)records the encapsulation savings for a proposal to encapsulate a packet given a specific segment list. o ES(proposal, segment list) = 1 - E(proposal, segment list)/E(SRv6 base, segment list). Cheng & Steffann Expires May 17, 2021 [Page 4] Internet-Draft SRCOMP Requirements November 2020 3.1.2. Forwarding Efficiency Description: The compression proposal SHOULD minimize the number of required hardware resources accessed to process a segment. Rationale: Efficiency in bits on the wire and processing efficiency are both important. Optimizing one at the expense of the other may lead to significant performance impact. Metric: The data plane efficiency metric (D) records the data plane forwarding efficiency of the proposed solution. Two metrics are used and recorded at each segment endpoint: o D.PRS(segment list): number of headers parsed during processing of the segment list, starting from and including the IPv6 header. o D.LKU(segment list): number of FIB lookups during processing of the segment list. The type of lookup is also recorded as longest prefix match (LPM) or exact match (EM) 3.1.3. State Efficiency Description: The compression proposal SHOULD minimize the amount of additional forwarding state stored at a node. Rationale: Additional state increases the complexity of the control plane and data plane. It can also result in an increase in memory usage. Metric: The state efficiency metric (S) records the amount of additional forwarding state required by the proposed solution. o S(node parameters): the number of additional forwarding states that need to be stored at a node, given a set of node parameters consisting of the number of nodes in the network, number of local interfaces, number of adjacencies. The forwarding state is counted as entries required in a Forwarding Information Base (FIB) at a node. 4. SRv6 Specific Requirements 4.1. Functional Requirements 4.1.1. SID list length Description: The compression proposal MUST be able to represent SR paths that contain up to 16 segments. Cheng & Steffann Expires May 17, 2021 [Page 5] Internet-Draft SRCOMP Requirements November 2020 Rationale: Strict TE paths require SID list lengths proportional to the diameter of the SR domain. Metric: The compression proposal must be able to steer a packet through an SR path that contains up to sixteen segments. 4.1.2. SID summarization Description: The solution MUST be compatible with segment summarization. Rationale: Summarization of segments is a key benefit of SRv6 vs SR MPLS. In interdomain deployments, any node can reach any other node via a single prefix segment. Without summarization, border router SIDs must be leaked, and an additional global prefix segment is required for each domain border to be traversed. Metric: A solution supports summarization when segments can be summarized for advertisement into other IGP domains or levels. 4.2. Operational Requirements 4.2.1. Lossless Compression Description: The segments of the compressed SID list MUST be equivalent to the original SID List. For example, a strict path TE SID List is not compressed to a loose path TE SID list. Rationale: In SRv6, we can represent a path to meet certain objectives. A compression proposal needs to support the objectives with the same path. Metric: Information present in the pre-compression segment list MUST also be present in the post-compression SID list. 4.3. Scalability Requirements 4.3.1. Adjacency segment scale Description: The compression proposal MUST be capable of representing 65000 adjacency segments per node Rationale: Typically, network operators deploy networks with tens or hundreds of adjacency segments per node, but some network operators may deploy networks that use more adjacency segments per node. Metric: A proposal that allows 65000 adjacency segments per node satisfies this requirement. Cheng & Steffann Expires May 17, 2021 [Page 6] Internet-Draft SRCOMP Requirements November 2020 4.3.2. Prefix segment scale Description: The compression proposal MUST be capable of representing 1 million prefix segments per SID numbering space. Rationale: Typically, network operators deploy networks with thousands of prefix segments per SID numbering space, but some network operators may deploy networks that use more prefix segments per SID numbering space. Metric: A proposal that allows 1 million prefix segments per SID numbering space satisfies this requirement. 4.3.3. Service Scale Description: The compression proposal MUST be capable of representing 1 million services per node. Rationale: Typically, network operators deploy networks with tens to hundreds of thousands of services per node, but some network operators may deploy networks that use more services per node. Metric: A proposal that allows 1 million services per node satisfies this requirement. 5. Protocol Design Requirements 5.1. SRv6 Base Coexistence Description: The compression proposal MUST support deployment in existing SRv6 networks. Rationale: SRv6 is deployed today. A compression proposal that interoperates well with SRv6, as deployed, will reduce the overhead and simplify operations. For Network operators who would migrate to compressed SRv6 SID lists, the migration is expected to gradually occur over a period of time as they upgrade networks, domains, device families and software instances. Metric: A compliant compression proposal provides the following o Supports simultaneous deployment at a node with current SRv6 SIDs. o Supports simultaneous deployment at a node with current SRv6 control plane. o Supports simultaneous operation of current SRv6 paths with compressed paths. Cheng & Steffann Expires May 17, 2021 [Page 7] Internet-Draft SRCOMP Requirements November 2020 o Supports the behaviors in [I-D.ietf-spring-srv6-network-programming]. o Does not require removal of existing IPv6 address planning. 6. IANA Considerations This document has no requests to IANA. 7. Security Considerations TBD 8. Contributors The following individuals contributed to this draft Chongfeng Xie, China Telecom, xiechf@chinatelecom.cn Ron Bonica, Juniper Networks, rbonica@juniper.net Darren Dukes, Cisco Systems, ddukes@cisco.com Cheng Li, Huawei, c.l@huawei.com Peng Shaofu, ZTE, peng.shaofu@zte.com.cn Wim Henderickx, Nokia, wim.henderickx@nokia.com 9. Normative References [I-D.ietf-6man-spring-srv6-oam] Ali, Z., Filsfils, C., Matsushima, S., Voyer, D., and M. Chen, "Operations, Administration, and Maintenance (OAM) in Segment Routing Networks with IPv6 Data plane (SRv6)", draft-ietf-6man-spring-srv6-oam-08 (work in progress), October 2020. [I-D.ietf-bess-srv6-services] Dawra, G., Filsfils, C., Talaulikar, K., Raszuk, R., Decraene, B., Zhuang, S., and J. Rabadan, "SRv6 BGP based Overlay services", draft-ietf-bess-srv6-services-05 (work in progress), November 2020. Cheng & Steffann Expires May 17, 2021 [Page 8] Internet-Draft SRCOMP Requirements November 2020 [I-D.ietf-idr-bgpls-srv6-ext] Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., daniel.bernier@bell.ca, d., and B. Decraene, "BGP Link State Extensions for SRv6", draft-ietf-idr-bgpls- srv6-ext-04 (work in progress), November 2020. [I-D.ietf-lsr-flex-algo] Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex- algo-13 (work in progress), October 2020. [I-D.ietf-lsr-isis-srv6-extensions] Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and Z. Hu, "IS-IS Extension to Support Segment Routing over IPv6 Dataplane", draft-ietf-lsr-isis-srv6-extensions-11 (work in progress), October 2020. [I-D.ietf-rtgwg-segment-routing-ti-lfa] Litkowski, S., Bashandy, A., Filsfils, C., Decraene, B., Francois, P., Voyer, D., Clad, F., and P. Camarillo, "Topology Independent Fast Reroute using Segment Routing", draft-ietf-rtgwg-segment-routing-ti-lfa-04 (work in progress), August 2020. [I-D.ietf-spring-segment-routing-policy] Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and P. Mattes, "Segment Routing Policy Architecture", draft- ietf-spring-segment-routing-policy-09 (work in progress), November 2020. [I-D.ietf-spring-sr-service-programming] Clad, F., Xu, X., Filsfils, C., daniel.bernier@bell.ca, d., Li, C., Decraene, B., Ma, S., Yadlapalli, C., Henderickx, W., and S. Salsano, "Service Programming with Segment Routing", draft-ietf-spring-sr-service- programming-03 (work in progress), September 2020. [I-D.ietf-spring-srv6-network-programming] Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., Matsushima, S., and Z. Li, "SRv6 Network Programming", draft-ietf-spring-srv6-network-programming-24 (work in progress), October 2020. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . Cheng & Steffann Expires May 17, 2021 [Page 9] Internet-Draft SRCOMP Requirements November 2020 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, July 2018, . [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, . Appendix A. Proposed Requirements This appendix contains requirements that the design team discussed but could not be agreed upon. A.1. Introduction It is a goal of the design team to identify solutions to SRv6 SID list compression that are based on the SRv6 standards. As such, this document provides requirements for SRv6 SID list compression solutions that utilize the existing SRv6 data plane and control plane. It is also a goal of the design team to consider proposals that are not based on the SRv6 data plane and control plane. As such, this document includes requirements to evaluate whether a compression proposal provides all the functionality of SRv6 (section "SRv6 Functionality") in addition to satisfying compression specific requirements. A.2. Requirements A.2.1. SRv6 Based Description: A solution to compress SRv6 SID Lists SHOULD be based on the SRv6 architecture, control plane and data plane. Rationale: A compression proposal built on existing IETF standards is preferable to creating new standards with equivalent functionality and performance. Metric: The utilization metric (U) records whether a proposal utilizes the SRv6 specifications. Cheng & Steffann Expires May 17, 2021 [Page 10] Internet-Draft SRCOMP Requirements November 2020 Utilization is recorded in a table, with a column per proposal and rows consisting of the following metrics: o U.RFC8402: utilizes [RFC8402]. o U.RFC8754: utilizes [RFC8754]. o U.PGM: utilizes [I-D.ietf-spring-srv6-network-programming]. o U.IGP: utilizes [I-D.ietf-lsr-isis-srv6-extensions]. o U.BGP: utilizes [I-D.ietf-bess-srv6-services]. o U.POL: utilizes [I-D.ietf-spring-segment-routing-policy]. o U.BLS: utilizes [I-D.ietf-idr-bgpls-srv6-ext]. o U.SVC: utilizes [I-D.ietf-spring-sr-service-programming]. o U.OAM: utilizes [I-D.ietf-6man-spring-srv6-oam]. o U.ALG: utilizes [I-D.ietf-lsr-flex-algo]. o U.TOT: the total number of specifications utilized. Each cell contains "yes" for utilizes, or "no" for does not utilize. U.TOT counts the number of "yes" in each column. A.2.2. SRv6 Functionality Description: A solution to compress an SRv6 SID list MUST support the functionality of SRv6. This requirement and set of metrics is meant to assess whether a proposal that is not fully SRv6 based, as evaluated in section "SRv6 Based", provides equivalent functionality to SRv6. Such a proposal may utilize different control planes and or data planes. Rationale: Operators require SRv6 functionality. Evaluating the extent to which a proposal supports SRv6 functionality is important for operators and implementors to understand the impact on network operations. Metric: The Functionality metric (F) records whether a proposal supports SRv6 functionality and how the functionality is provided. Functionality is recorded in a table with columns for each proposal and rows consisting of the following metrics: Cheng & Steffann Expires May 17, 2021 [Page 11] Internet-Draft SRCOMP Requirements November 2020 o F.SID: Supports SRv6 SIDs described in [RFC8402] o F.SCOPE: Supports globally and locally scoped SIDs described in [RFC8402] o F.PFX: Supports prefix SIDs described in [RFC8402] and [I-D.ietf-spring-srv6-network-programming] o F.ADJ: Supports adjacency SIDs described in [RFC8402] and [I-D.ietf-spring-srv6-network-programming] o F.BIND: Supports binding SIDs described in [RFC8402] and [I-D.ietf-spring-srv6-network-programming] o F.PEER: Supports BGP peering SIDs described in [RFC8402] and [I-D.ietf-spring-srv6-network-programming] o F.SVC: Supports L3 and L2 VPN service SIDs described in [I-D.ietf-spring-srv6-network-programming] o F.ALG: Supports flexible algorithms described in [I-D.ietf-lsr-flex-algo] o F.TILFA: Supports TI-LFA as described in [I-D.ietf-rtgwg-segment-routing-ti-lfa] o F.SEC: Supports securing an SR domain with ingress filtering as defined in [RFC8754] o F.IGP: Supports distributing topological SIDs and behaviors via ISIS as described in [I-D.ietf-lsr-isis-srv6-extensions] o F.BGP: Supports BGP VPNs as described in [I-D.ietf-bess-srv6-services] o F.POL: Supports SR policies and steering traffic over those policies as described in [I-D.ietf-spring-segment-routing-policy] o F.BLS: Supports Link State distribution via BGP as described in [I-D.ietf-idr-bgpls-srv6-ext] o F.SFC: Supports stateless service programming as described in [I-D.ietf-spring-sr-service-programming] o F.PING: Supports pinging a SID to verify the SID is implemented as described in [I-D.ietf-6man-spring-srv6-oam] Cheng & Steffann Expires May 17, 2021 [Page 12] Internet-Draft SRCOMP Requirements November 2020 o F.TOT: The total number of SRv6 functionality metrics supported by a proposal Each cell contains the specification name documenting the functionality. F.TOT counts the number of specifications in each column. A.2.3. Heterogeneous SID lists Description: The compression proposal SHOULD support a combination of compressed and non-compressed segments in a single path. Rationale: Support of SID lists with compressed and non-compressed SIDs reduces encapsulation size when not all SRv6 nodes deploy the compression proposal or 128-bit SIDs are required. Metric: A compliant compression proposal supports both: o classic 128-bit SRv6 SIDs in the IPv6 Destination Address field o segment lists (i.e., paths) with both compressed and 128-bit SRv6 SIDs. Authors' Addresses Weiqiang Cheng China Mobile Email: chengweiqiang@chinamobile.com Sanders Steffann SJM Steffann Consultancy Email: sander@steffann.nl Cheng & Steffann Expires May 17, 2021 [Page 13]