Path Segment in MPLS Based Segment Routing Network
draft-ietf-spring-mpls-path-segment-11
The information below is for an old version of the document.
| Document | Type |
This is an older version of an Internet-Draft that was ultimately published as RFC 9545.
|
|
|---|---|---|---|
| Authors | Weiqiang Cheng , Han Li , Cheng Li , Rakesh Gandhi , Royi Zigler | ||
| Last updated | 2023-08-29 (Latest revision 2023-07-31) | ||
| Replaces | draft-cheng-spring-mpls-path-segment | ||
| RFC stream | Internet Engineering Task Force (IETF) | ||
| Formats | |||
| Reviews | |||
| Additional resources | Mailing list discussion | ||
| Stream | WG state | Submitted to IESG for Publication | |
| Document shepherd | Bruno Decraene | ||
| Shepherd write-up | Show Last changed 2021-12-15 | ||
| IESG | IESG state | Became RFC 9545 (Proposed Standard) | |
| Consensus boilerplate | Yes | ||
| Telechat date | (None) | ||
| Responsible AD | Jim Guichard | ||
| Send notices to | james.n.guichard@futurewei.com, bruno.decraene@orange.com | ||
| IANA | IANA review state | Version Changed - Review Needed |
draft-ietf-spring-mpls-path-segment-11
SPRING Working Group W. Cheng
Internet-Draft H. Li
Intended status: Standards Track China Mobile
Expires: 1 March 2024 C. Li
Huawei Technologies Co., Ltd
R. Gandhi
Cisco Systems, Inc.
R. Zigler
Broadcom
29 August 2023
Path Segment in MPLS Based Segment Routing Network
draft-ietf-spring-mpls-path-segment-11
Abstract
A Segment Routing (SR) path is identified by an SR segment list. A
sub-set of segments from the segment list cannot distinguish one SR
path from another as they may be partially congruent. SR path
identification is a pre-requisite for various use-cases such as
Performance Measurement (PM), and end-to-end 1+1 path protection.
In SR for MPLS data plane (SR-MPLS), an Egress node can not determine
on which SR path a packet traversed the network from the label stack
because the segment identifiers are stripped from the label stack as
the packet transits the network.
This document defines Path Segment to identify an SR path on the
egress node of the path.
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 1 March 2024.
Cheng, et al. Expires 1 March 2024 [Page 1]
Internet-Draft Path Segment in SR-MPLS August 2023
Copyright Notice
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
1.2. Abbreviations and Terms . . . . . . . . . . . . . . . . . 3
2. Path Segment . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1. Path Segment for Performance Measurement . . . . . . . . 6
3.2. Path Segment for Bidirectional SR Path . . . . . . . . . 7
3.3. Path Segment for End-to-end Path Protection . . . . . . . 7
3.4. Nesting of Path Segments . . . . . . . . . . . . . . . . 7
4. Security Considerations . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.1. Normative References . . . . . . . . . . . . . . . . . . 9
6.2. Informative References . . . . . . . . . . . . . . . . . 9
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 10
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction
Segment Routing (SR) [RFC8402] leverages the source-routing paradigm
to steer packets from a source node through a controlled set of
instructions, called segments, by prepending the packet with an SR
header in the MPLS data plane SR-MPLS [RFC8660] through a label stack
to construct an SR path.
In an SR-MPLS network, when a packet is transmitted along an SR path,
the labels in the MPLS label stack will be swapped or popped. So
that no label or only the last label (e.g. a service label or an
Explicit-Null label) may be left in the MPLS label stack when the
packet reaches the egress node. Thus, the egress node cannot use the
SR label stack to determine along which SR path the packet came.
Cheng, et al. Expires 1 March 2024 [Page 2]
Internet-Draft Path Segment in SR-MPLS August 2023
However, to support various use-cases in SR-MPLS networks, like end-
to-end 1+1 path protection (Live-Live case) Section 3.3,
bidirectional path Section 3.2, or Performance Measurement (PM)
Section 3.1, the ability to implement path identification on the
egress node is a pre-requisite.
Therefore, this document introduces a new segment type that is
referred to as the Path Segment. A Path Segment is defined to
uniquely identify an SR path on the egress node of the path. It MAY
be used by the egress nodes for path identification hence to support
various use-cases including SR path PM, end-to-end 1+1 SR path
protection, and bidirectional SR paths correlation. Note that, Per-
path states will be maintained in the egress node due to the
requirements in these use cases, though in normal cases that the per-
path states will be maintained in the ingress node only in the SR
architecture.
1.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.
1.2. Abbreviations and Terms
DM: Delay Measurement.
LM: Loss Measurement.
MPLS: Multiprotocol Label Switching.
MSD: Maximum SID Depth.
PM: Performance Measurement.
PSID: Path Segment ID.
SID: Segment ID.
SL: Segment List.
SR: Segment Routing.
SRLB: SR Local Block
SRGB: SR Global Block
Cheng, et al. Expires 1 March 2024 [Page 3]
Internet-Draft Path Segment in SR-MPLS August 2023
SR-MPLS: Instantiation of SR on the MPLS data plane.
Sub-Path: A sub-path is a part of the a path, which contains a sub-
set of the nodes and links of the path.
2. Path Segment
A Path Segment Identifier(PSID) is a single label that is assigned
from the Segment Routing Local Block (SRLB) [RFC8402] or Segment
Routing Global Block (SRGB) [RFC8402] or dynamic MPLS label pool of
the egress node of an SR path. Whether a PSID is allocated from the
SRLB, SRGB, or a dynamic range depends on specific use cases. If the
PSID is only used by the egress node to identify an SR path, the
SRLB, SRGB or dynamic MPLS label pool can be used. Three use cases
are introduced in Section 5, 6, and 7 of this document.
The term of SR path used in this document is a path described by a
Segment-List (SL). A PSID is used to identify a Segment List.
However, one PSID can be used to identify multiple Segment Lists in
some use cases if needed. For example, all the Segment lists in a
Candidate path can use a single PSID, and all the Segment Lists in an
SR policy can share the same PSID, if customers would like to
aggregate the data among the Segment Lists. How to use the PSID to
Segment Lists depends on the requirements of the use cases.
When a PSID is used, the PSID MUST be inserted at the ingress node
and MUST immediately follow the last label of the SR path, in other
words, inserted after the routing segment (adjacency/node/prefix
segment) pointing to the egress node of the SR path. Otherwise, the
PSID may be processed by an intermediate node, which may cause error
in forwarding because of mis-matching if the PSID is allocated from a
SRLB.
The value of the TTL field in the MPLS label stack entry containing
the PSID can be set to any value including 0, or the same value as
the TTL of the last label stack entry for the last segment in the SR
path. If the Path Segment is the bottom label, the S bit MUST be
set.
A PSID can be used in the case of Penultimate Hop Popping (PHP),
where some labels are be popped off at the penultimate hop of an SR
path. As per regular MPLS processing, the label below (including the
PSID in this case) will not be popped by the penultimate node.
The egress node MUST pop the PSID. The egress node MAY use the PSID
for further processing. For example, when performance measurement is
enabled on the SR path, it can trigger packet counting or
timestamping.
Cheng, et al. Expires 1 March 2024 [Page 4]
Internet-Draft Path Segment in SR-MPLS August 2023
The addition of the PSID will require the egress to read and process
the PSID label in addition to the regular processing (such as a below
MPLS label or the MPLS payload). The additional processing required,
may have an impact on forwarding performance。
Generic Associated Label (GAL) MAY be used for Operations,
Administration and Maintenance (OAM) in MPLS networks. As per
[RFC5586], when GAL is used, the ACH appears immediately after the
bottom of the label stack.
If Entropy Label is also used on this egress node, as per [RFC6790]
the Entropy label Indicator (ELI) and Entropy Label (EL) would be
placed before the tunnel label and hence does not interfere with the
PSID which is placed below.
The SR path computation needs to know the Maximum SID Depth (MSD)
that can be imposed at the ingress node of a given SR path [RFC8664].
This ensures that the SID stack depth of a computed path does not
exceed the number of SIDs the node is capable of imposing. As per
RFC8491 the MSD signals the total number of MPLS labels that can be
imposed. This includes the PSID.
The label stack with Path Segment is shown in Figure 1:
+--------------------+
| ... |
+--------------------+
| Label 1 |
+--------------------+
| Label 2 |
+--------------------+
| ... |
+--------------------+
| Label n |
+--------------------+
| PSID |
+--------------------+
~ Payload ~
+--------------------+
Figure 1: Label Stack with Path Segment
Where:
* The Labels 1 to n are the segment label stack used to direct how
to steer the packets along the SR path.
Cheng, et al. Expires 1 March 2024 [Page 5]
Internet-Draft Path Segment in SR-MPLS August 2023
* The PSID identifies the SR path in the context of the egress node
of the SR path.
There may be multiple paths (or sub-path(s)) carried in the label
stack, for each path (or sub-path), there may be a corresponding Path
Segment carried. A use case can be found in Section 3.4.
Signaling of the PSID between the egress, ingress and possibly a
centralized controller is out of the scope of this document.
3. Use cases
This section describes use cases which can leveage the Path Segment.
3.1. Path Segment for Performance Measurement
As defined in [RFC7799], performance measurement can be classified
into Passive, Active, and Hybrid measurement. Since Path Segment is
encoded in the SR-MPLS Label Stack as shown in Figure 1, existing
implementation on the egress node can be leveraged for measuring
packet counts using the incoming SID (the PSID).
For Passive performance measurement, path identification at the
measuring points is the pre-requisite. Path Segment can be used by
the measuring points (e.g., the ingress and egress nodes of the SR
path or a centralized controller) to correlate the packet counts and
timestamps from the ingress and egress nodes for a specific SR path,
then packet loss and delay can be calculated for the end-to-end path,
respectively.
Path Segment can also be used for Active performance measurement for
an SR path in SR-MPLS networks for collecting packet counters and
timestamps from the egress node using probe messages.
Path Segment can also be used for In-situ OAM for SR-MPLS to identify
the SR Path associated with the in-situ data fields in the data
packets on the egress node.
Path Segment can also be used for In-band PM for SR-MPLS to identify
the SR Path associated with the collected performance metrics.
Cheng, et al. Expires 1 March 2024 [Page 6]
Internet-Draft Path Segment in SR-MPLS August 2023
3.2. Path Segment for Bidirectional SR Path
In some scenarios, for example, mobile backhaul transport networks,
there are requirements to support bidirectional paths, and the path
is normally treated as a single entity. Forward and reverse
directions of the path have the same fate, for example, failure in
one direction will result in switching traffic at both directions.
MPLS supports this by introducing the concepts of co-routed
bidirectional LSP and associated bidirectional LSP [RFC5654].
In the current SR architecture, an SR path is a unidirectional path
[RFC8402]. In order to support bidirectional SR paths, a
straightforward way is to bind two unidirectional SR paths to a
single bidirectional SR path. Path Segments can then be used to
identify and correlate the traffic for the two unidirectional SR
paths at both ends of the bidirectional path.
3.3. Path Segment for End-to-end Path Protection
For end-to-end 1+1 path protection (i.e., Live-Live case), the egress
node of the path needs to know the set of paths that constitute the
primary and the secondaries, in order to select the primary path
packets for onward transmission, and to discard the packets from the
secondaries [RFC4426].
To do this in Segment Routing, each SR path needs a path identifier
that is unique at the egress node. For SR-MPLS, this can be the Path
Segment label allocated by the egress node.
There then needs to be a method of binding this SR path identifiers
into equivalence groups such that the egress node can determine for
example, the set of packets that represent a single primary path.
This equivalence group can be instantiated in the network by an SDN
controller using the Path Segments of the SR paths.
3.4. Nesting of Path Segments
Binding SID (BSID) [RFC8402] can be used for SID list compression.
With BSID, an end-to-end SR path can be split into several sub-paths,
each sub-path is identified by a BSID. Then an end-to-end SR path
can be identified by a list of BSIDs, therefore, it can provide
better scalability.
Cheng, et al. Expires 1 March 2024 [Page 7]
Internet-Draft Path Segment in SR-MPLS August 2023
BSID and PSID can be combined to achieve both sub-path and end-to-end
path monitoring. A reference model for such a combination in
(Figure 2) shows an end-to-end path (A->D) that spans three domains
(Access, Aggregation and Core domain) and consists of three sub-
paths, one in each sub-domain (sub-path (A->B), sub-path (B->C) and
sub-path (C->D)). Each sub-path is associated with a BSID and a
s-PSID.
The SID list of the end-to-end path can be expressed as <BSID1,
BSID2, ..., BSIDn, e-PSID>, where the e-PSID is the PSID of the end-
to-end path. The SID list of a sub-path can be expressed as <SID1,
SID2, ...SIDn, s-PSID>, where the s-PSID is the PSID of the sub-path.
Figure 2 shows the details of the label stacks when PSID and BSID are
used to support both sub-path and end-to-end path monitoring in a
multi-domain scenario.
/--------\ /--------\ /--------\
/ \ / \ / \
A{ Access }B{ Aggregation }C{ Core }D
\ / \ / \ /
\--------/ \--------/ \--------/
Sub-path(A->B) Sub-path(B->C) Sub-path(C->D)
|<--------------->|<-------------->|<-------------->|
E2E Path(A->D)
|<------------------------------------------------->|
+------------+
~A->B SubPath~
+------------+ +------------+
|s-PSID(A->B)| ~B->C SubPath~
+------------+ +------------+
| BSID(B->C) | |s-PSID(B->C)|
+------------+ +------------+ +------------+
| BSID(C->D) | | BSID(C->D) | ~C->D SubPath~
+------------+ +------------+ +------------+ +------------+
|e-PSID(A->D)| |e-PSID(A->D)| |e-PSID(A->D)| |e-PSID(A->D)|
+------------+ +------------+ +------------+ +------------+
Figure 2: Nesting of Path Segments
4. Security Considerations
A Path Segment in SR-MPLS is a label similar to other labels/Segment,
such as a VPN label or a Prefix SID, defined in MPLS and SR-MPLS.
The data plane processing of a PSID is a local implementation of an
ingress node, or an egress node, which follows the same logic of
existing MPLS dataplane.
Cheng, et al. Expires 1 March 2024 [Page 8]
Internet-Draft Path Segment in SR-MPLS August 2023
A Path Segment is used within an SR-MPLS domain [RFC8402] and should
not leak outside the domain, therefore no new security threats are
introduced comparing to current SR-MPLS. The security consideration
of SR-MPLS, such as boundary filtering described in Section 8.1 of
[RFC8402] applies to this document.
A PSID is allocated by an egress node and distributed to an ingress.
The distribution is performed within an SR trusted domain. However,
the mechanism of distributing a PSID is out of the scope of this
document, and its security consideration will be described in other
documents.
5. IANA Considerations
This document does not require any IANA actions.
6. References
6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
[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, <https://www.rfc-editor.org/rfc/rfc8402>.
[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/rfc/rfc8660>.
6.2. Informative References
[RFC4426] Lang, J., Ed., Rajagopalan, B., Ed., and D. Papadimitriou,
Ed., "Generalized Multi-Protocol Label Switching (GMPLS)
Recovery Functional Specification", RFC 4426,
DOI 10.17487/RFC4426, March 2006,
<https://www.rfc-editor.org/rfc/rfc4426>.
Cheng, et al. Expires 1 March 2024 [Page 9]
Internet-Draft Path Segment in SR-MPLS August 2023
[RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed.,
"MPLS Generic Associated Channel", RFC 5586,
DOI 10.17487/RFC5586, June 2009,
<https://www.rfc-editor.org/rfc/rfc5586>.
[RFC5654] Niven-Jenkins, B., Ed., Brungard, D., Ed., Betts, M., Ed.,
Sprecher, N., and S. Ueno, "Requirements of an MPLS
Transport Profile", RFC 5654, DOI 10.17487/RFC5654,
September 2009, <https://www.rfc-editor.org/rfc/rfc5654>.
[RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and
L. Yong, "The Use of Entropy Labels in MPLS Forwarding",
RFC 6790, DOI 10.17487/RFC6790, November 2012,
<https://www.rfc-editor.org/rfc/rfc6790>.
[RFC7799] Morton, A., "Active and Passive Metrics and Methods (with
Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799,
May 2016, <https://www.rfc-editor.org/rfc/rfc7799>.
[RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "Path Computation Element Communication
Protocol (PCEP) Extensions for Segment Routing", RFC 8664,
DOI 10.17487/RFC8664, December 2019,
<https://www.rfc-editor.org/rfc/rfc8664>.
Acknowledgements
The authors would like to thank Adrian Farrel, Stewart Bryant,
Shuangping Zhan, Alexander Vainshtein, Andrew G. Malis, Ketan
Talaulikar, Shraddha Hegde, and Loa Andersson for their review,
suggestions and comments to this document.
The authors would like to acknowledge the contribution from Alexander
Vainshtein on "Nesting of Path Segments".
Contributors
The following people have substantially contributed to this document.
Mach(Guoyi) Chen
Huawei Technologies Co., Ltd
Email: mach.chen@huawei.com
Lei Wang
China Mobile
Email: wangleiyj@chinamobile.com
Cheng, et al. Expires 1 March 2024 [Page 10]
Internet-Draft Path Segment in SR-MPLS August 2023
Aihua Liu
ZTE Corp
Email: liu.aihua@zte.com.cn
Greg Mirsky
ZTE Corp
Email: gregimirsky@gmail.com
Gyan S. Mishra
Verizon Inc.
Email: gyan.s.mishra@verizon.com
Authors' Addresses
Weiqiang Cheng
China Mobile
Email: chengweiqiang@chinamobile.com
Han Li
China Mobile
Email: lihan@chinamobile.com
Cheng Li
Huawei Technologies Co., Ltd
China
Email: c.l@huawei.com
Rakesh Gandhi
Cisco Systems, Inc.
Canada
Email: rgandhi@cisco.com
Royi Zigler
Broadcom
Email: royi.zigler@broadcom.com
Cheng, et al. Expires 1 March 2024 [Page 11]