Internet-Draft | SRCOMP Requirements | April 2023 |
Cheng, et al. | Expires 5 October 2023 | [Page] |
This document specifies requirements for solutions to compress SRv6 SID lists.¶
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 5 October 2023.¶
Copyright (c) 2023 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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
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 [RFC8986]. 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 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 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.¶
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.¶
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.¶
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¶
SRv6 base: SRv6 as defined in [RFC8402], [RFC8754], [RFC8986]¶
SID numbering space: may be implemented as¶
SRv6 Encapsulation Header: The IPv6 header, and any extension headers preceding a payload, used to implement a SRv6 base or compression proposal.¶
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], [RFC8986] 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.¶
The encapsulation savings(ES)records the encapsulation savings for a proposal to encapsulate a packet given a specific segment list.¶
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:¶
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.¶
Description: A solution to compress SRv6 SID Lists SHOULD be based on the SRv6 architecture, control plane and data plane. The compression solution MAY be based on a different data plane and control plane, provided that it derives sufficient benefit.¶
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.¶
Utilization is recorded in a table, with a column per proposal and rows consisting of the following metrics:¶
Each cell contains "yes" for utilizes, or "no" for does not utilize.¶
Description: A solution to compress an SRv6 SID list MUST support the functionality of SRv6. This requirement ensures no SRv6 functionality is lost. It is particularly important to understand how a proposal, as evaluated in section "SRv6 Based", provides this functionality.¶
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:¶
Each cell contains the specification name documenting the functionality.¶
Description: The compression proposal SHOULD support a combination of compressed and non-compressed segments in a single path. As an example, a solution may satisfy this requirement without being SRv6 based by using a binding SID to impose an additional SRv6 header (IPv6 header plus optional SRH) with non-compressed SID.¶
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:¶
Description: The compression proposal MUST be able to represent SR paths that contain up to 16 segments.¶
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.¶
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.¶
Description: A path traversed using a compessed SID list MUST always be the same as the path traversed using the uncompressed SID list if no compression was applied.¶
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.¶
Description:The compression mechanism MUST NOT cause the loss of non-routing information when delivering a packet from the SR ingress node to the egress/penultimate SR node¶
Rationale: SRv6 ingress nodes encode non-routing information in the IPv6 header chain. This information can be encoded in the following fields:¶
Some of these fields are mutable (e.g., Hop Count) while others are immutable (e.g., Fragment Extension Header).¶
Some of these fields contain information that is required by every node along a packet's delivery path (e.g., Hop Count). Others contain information that is required only by the packet's ultimate destination (e.g., Fragment Extension Header).¶
Therefore, the compression mechanism MUST NOT prevent this information from being delivered, in an IPv6 header chain, to any node that needs it.¶
Metric: The SR source node encapsulates its payload (e.g.., Ethernet, IP, TCP) in an IPv6 header. The SRv6 header contains both routing and non-routing information. The compression mechanism MUST NOT cause the loss of non-routing information when delivering a packet from the SR ingress node to the egress/penultimate SR node.¶
Description: Network operators require addressing plan flexibility, The compression mechanism MUST support flexible IPv6 address planning, it MUST support deployment by using GUA from different address blocks.¶
Rationale: The address planning of the network may vary based on the addressing scheme of the operator, so the solution MUST support a flexible addressing scheme. Operators need to deploy the solution based on their own address planning.¶
Metric: The compression proposal supports locators drawn from different prefixes with the solutions analysis indicating efficiency.¶
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.¶
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.¶
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.¶
Description: The compression proposal SHOULD be able to support multiple levels of compression.¶
Rationale: The compression proposal will be deployed in networks of varying size with SID numbering spaces of varying size. Network and service scale can directly impact SID length and the ability of a proposal to compress the SID list.¶
Metric: A compression proposal that supports relatively better compression for smaller SID numbering spaces and service scale satisfies this requirement.¶
Description: The compression proposal MUST support simultaneous deployment with 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¶
Description: The compression solution SHOULD be able to address security issues that it introduces, using existing security mechanisms.¶
Rationale: It is important to identify security issues and how to address them in any specification.¶
Metric: A compression solution that does not introduce unresolved security issues meets this requirement.¶
Description: A compression solution must not require nodes outside the SR domain to know SID values within the SR domain, and it must provide the ability to block nodes outside an SR domain from accessing SIDS.¶
Rationale: The unauthorized use of SIDs within the SR domain by nodes outside the domain can disrupt an operators' network.¶
Metric: A compliant solution describes how access to SIDs within the SR domain is denied to nodes outside the SR domain.¶
This document has no requests to IANA.¶
The following individuals contributed to this draft¶
Sanders Steffann, SJM Steffann Consultancy, [email protected]¶
This appendix contains requirements that the design team discussed but could not be agreed upon.¶
Description: The compression mechanism requires every node along the packet's delivery path to be IPv6-capable. It MUST not require any node along the packet's forwarding path to support any other forwarding plane (e.g., IPv4, MPLS)¶
Rational: According to RFC 8402, SRv6 is an instantiation of the SR Architecture over the IPv6 data plane.¶
Metric: A compliant solution requires every node along the packet's delivery path to be IPv6-capable. It does not require any node along the packet's forwarding path to support any other forwarding plane (e.g., IPv4, MPLS)¶
Description: The compression mechanism SHOULD support point-to-multipoint SR paths.¶
Rationale: Many VPN services require point-to-multipoint SR paths.¶
Metric: A compliant proposal can encode a multicast address in the ultimate segment of the segment list.¶
Description: The compression mechanism MUST be parsable. That is, the node that consumes the compressed SID list must be able to decode the active and next segment. Parsing information MAY be conveyed in either the forwarding or control plane.¶
Rationale: Failure to parse the compressed SID list leads to undesired behaviors.¶
Metric: In the nominal case the producer and consumer of the SID list agree on the active segment and next segment. In forseeable failure modes it is possible to determine why the producer and consumer don't agree.¶