Internet DRAFT - draft-liu-spring-sr-sfc-metadata
draft-liu-spring-sr-sfc-metadata
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,
<https://www.ietf.org/archive/id/draft-ietf-spring-sr-
service-programming-05.txt>.
[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, <https://www.ietf.org/archive/id/draft-xu-mpls-
payload-protocol-identifier-09.txt>.
[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,
<https://www.rfc-editor.org/info/rfc4928>.
[RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating
and Retiring Special-Purpose MPLS Labels", RFC 7274,
DOI 10.17487/RFC7274, June 2014,
<https://www.rfc-editor.org/info/rfc7274>.
[RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function
Chaining (SFC) Architecture", RFC 7665,
DOI 10.17487/RFC7665, October 2015,
<https://www.rfc-editor.org/info/rfc7665>.
[RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed.,
"Network Service Header (NSH)", RFC 8300,
DOI 10.17487/RFC8300, January 2018,
<https://www.rfc-editor.org/info/rfc8300>.
[RFC8393] Farrel, A. and J. Drake, "Operating the Network Service
Header (NSH) with Next Protocol "None"", RFC 8393,
DOI 10.17487/RFC8393, May 2018,
<https://www.rfc-editor.org/info/rfc8393>.
[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,
<https://www.rfc-editor.org/info/rfc8595>.
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,
<https://www.rfc-editor.org/info/rfc8660>.
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]