SPRING Working Group Yao. Liu Internet-Draft ZTE Corporation Intended status: Standards Track 15 September 2021 Expires: 19 March 2022 Metadata in SR-MPLS Service Programming draft-liu-spring-sr-sfc-metadata-01 Abstract This document proposes methods to carry metadata in SR service programming with SR-MPLS data plane. 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 19 March 2022. Copyright Notice Copyright (c) 2021 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. Liu Expires 19 March 2022 [Page 1] Internet-Draft SR based SFC Metadata September 2021 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Metadata in SR-MPLS Data Plane . . . . . . . . . . . . . . . 3 2.1. the RFC8595 Method . . . . . . . . . . . . . . . . . . . 3 2.1.1. Indicating Metadata in User Data Packets . . . . . . 3 2.1.2. In-Band Programming of Metadata . . . . . . . . . . . 4 2.2. Per Packet Metadata . . . . . . . . . . . . . . . . . . . 4 3. Security Considerations . . . . . . . . . . . . . . . . . . . 6 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.1. Normative References . . . . . . . . . . . . . . . . . . 6 5.2. Informative References . . . . . . . . . . . . . . . . . 7 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7 1. Introduction Service Function Chaining (SFC)[RFC7665] provides support for the creation of composite services that consist of an ordered set of Service Functions (SF) that are to be applied to packets and/or frames selected as a result of classification. [I-D.ietf-spring-sr-service-programming] describes how a service can be associated with a SID and how to achieve service function chaining in SR-enabled MPLS and IPv6 networks. Metadata is defined in [RFC7665] as providing the ability to exchange context information between classifiers and SFs, and among SFs. In the context of Service Function Chaining, metadata provides contextual information about the data packets which traverse a Service Function Chain. For service programming with the SR-MPLS data plane, [I-D.ietf-spring-sr-service-programming] proposes that a SRH inserted between the last MPLS label and the MPLS payload can be used as a metadata container. The SRH does not carry any segment but only the mandatory header fields required for transporting the metadata, which means a new header needs to be defined based on the SRH to carry the metadata. As for the indication the presence of metadata, [I-D.ietf-spring-sr-service-programming] provides two possible methods, one is to add the indication about the presence of metadata in the semantic of the service SIDs, another is to introduce a protocol identifier field within the MPLS packet as described in [I-D.xu-mpls-payload-protocol-identifier]. To summarize, there're requirements to carry metadata in SR service programming with SR-MPLS data plane and the methods need to be standardized. Liu Expires 19 March 2022 [Page 2] Internet-Draft SR based SFC Metadata September 2021 To carry metadata in SR-MPLS service programming scenario, this document proposes how to utilize the existing mechanism, and considering the ongoing work in MPLS OPEN DT, a new method is introduced as well. 2. Metadata in SR-MPLS Data Plane 2.1. the RFC8595 Method [RFC8595] provides method to realize SFC in an MPLS network by means of using a logical representation of the Network Service Header (NSH) in an MPLS label stack. [RFC8595] chapter 12 describes how metadata is associated with user data packets or programmed in-band by introducing new eSPL and Metadata Label. As specified in [RFC8595], the methods can only be used for carrying metadata that is "per-SFP" or "per-flow" [RFC8393], but cannot support "per-packet" metadata, where the metadata needs to be carried with payload in each packets. If it's not required to carry metadata and payload together in the packet, similar approaches MAY be used for SR-MPLS service programming. The main ideas of the approaches are described in section 2.1.1 and section 2.1.2 2.1.1. Indicating Metadata in User Data Packets +-------------------+ ~ Other Labels ~ +-------------------+ ------------ | Extension = 15 | +-------------------+ | MLI=16 | Metadata +-------------------+ Label Triple | Metadata Label | +-------------------+ ------------ ~ Other ~ | Metadata | ~ Label Triples ~ +-------------------+ | | ~ Payload ~ | | +-------------------+ Figure 1: Figure 1: Indicating Metadata in User Data Packets Liu Expires 19 March 2022 [Page 3] Internet-Draft SR based SFC Metadata September 2021 An extended special-purpose label called the Metadata Label Indicator (MLI) (value 16) is defined in [RFC8595]to indicate the presence of the Metadata Label. The Metadata Label value is an index into a table of metadata that is programmed into the network using in-band or out-of-band mechanisms. The metadata itself is not carried in the packet. If this method is used for SR-MPLS service programming, the Metadata Label Triples(i.e, <15,MLI, Metadata Label>) SHOULD be placed at the bottom of the label stack. 2.1.2. In-Band Programming of Metadata +-------------------+ ~ Other Labels ~ +-------------------+ | Extension = 15 | +-------------------+ | MPI=17 | +-------------------+ | Metadata Label | +-------------------+ | | ~ Metadata ~ | | +-------------------+ Figure 2: Figure 2: In-Band Programming of Metadata An extended special-purpose label called the Metadata Present Indicator (MPI) (value 17) is defined in [RFC8595]to indicate the presence of the Metadata Label and the metadata field. If this method is used for SR-MPLS service programming, the Metadata Label Triple(i.e, <15,MPI, Metadata Label>) SHOULD be placed in the bottom of the label stack. Instead of user payload data, metadata is included after the bottom of the MPLS label stack. The metadata is formatted as a TLV as defined in [RFC8595]. 2.2. Per Packet Metadata The methods described above can only partially meet the requirements of carrying metadata in SR-MPLS service programming. How to carry the metadata in the user data packets still needs to be solved. Liu Expires 19 March 2022 [Page 4] Internet-Draft SR based SFC Metadata September 2021 This section proposes a method to fulfill the requirements to carry metadata with/without the user payload in the packets for SR-MPLS traffic. Note:There's a an ongoing work in MPLS OPEN DT to figure out the format and processing procedure of the indicator in the label stack and the data carried in/after the bottom of stack. So the method introduced in this section will be modified in the future version to follow the specification of the DT. Firstly, an indicator in the label stack is needed to indicate the presence of metadata after the bottom of stack. This indicator may be an SPL or eSPL. The metadata can be carried for SR-MPLS traffic between the last MPLS label and the MPLS payload, or it can also be carried after the BOS without the payload. In the latter case, the method introduced in section 2.1.2 are no longer necessary. Two types of metadata for SR-MPLS service programming are required: fixed-length metadata and variable-length metadata. The format of fixed-length metadata field is shown in figure 3, where: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Next Header | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | Service Metadata | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: Figure 3: Fixed-Length Service Metadata Length: 14. Next Header: This field identifies the type of the header immediately following the metadata field Service Metadata: 14-octet field to carry metadata. The variable-length metadata is a container to carry Service Metadata in the form of Variable-Length Metadata as defined in [RFC8300] for NSH MD Type 2. The format is shown in figure 4, where: Liu Expires 19 March 2022 [Page 5] Internet-Draft SR based SFC Metadata September 2021 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Next Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| // Service Metadata // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Figure 4: Variable-Length Service Metadata Length: The total length of the Variable-Length Metadata field. Next Header: This field identifies the type of the header immediately following the metadata field Service Metadata: a list of Service Metadata TLV as defined in [RFC8300] for NSH MD Type 2. A potential requirement is to carry the service function path(SFP) identifier in the packets for SR-MPLS service programming. One possible solution is to carry it in the metadata, another is to carry in the label stack. This will discussed in future versions. 3. Security Considerations This document does not change the underlying security issues inherent in [I-D.ietf-spring-sr-service-programming]. 4. IANA Considerations TBD 5. References 5.1. Normative References [I-D.ietf-spring-sr-service-programming] Clad, F., Xu, X., Filsfils, C., Bernier, D., Li, C., Decraene, B., Ma, S., Yadlapalli, C., Henderickx, W., and S. Salsano, "Service Programming with Segment Routing", Work in Progress, Internet-Draft, draft-ietf-spring-sr- service-programming-05, 10 September 2021, . [I-D.xu-mpls-payload-protocol-identifier] Xu, X., Assarpour, H., Ma, S., and F. Clad, "MPLS Payload Protocol Identifier", Work in Progress, Internet-Draft, Liu Expires 19 March 2022 [Page 6] Internet-Draft SR based SFC Metadata September 2021 draft-xu-mpls-payload-protocol-identifier-09, 2 September 2021, . [RFC4928] Swallow, G., Bryant, S., and L. Andersson, "Avoiding Equal Cost Multipath Treatment in MPLS Networks", BCP 128, RFC 4928, DOI 10.17487/RFC4928, June 2007, . [RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating and Retiring Special-Purpose MPLS Labels", RFC 7274, DOI 10.17487/RFC7274, June 2014, . [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015, . [RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, January 2018, . [RFC8393] Farrel, A. and J. Drake, "Operating the Network Service Header (NSH) with Next Protocol "None"", RFC 8393, DOI 10.17487/RFC8393, May 2018, . [RFC8595] Farrel, A., Bryant, S., and J. Drake, "An MPLS-Based Forwarding Plane for Service Function Chaining", RFC 8595, DOI 10.17487/RFC8595, June 2019, . 5.2. Informative References [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing with the MPLS Data Plane", RFC 8660, DOI 10.17487/RFC8660, December 2019, . Author's Address Liu Expires 19 March 2022 [Page 7] Internet-Draft SR based SFC Metadata September 2021 Liu Yao ZTE Corporation Nanjing China Email: liu.yao71@zte.com.cn Liu Expires 19 March 2022 [Page 8]