rfc9545.original   rfc9545.txt 
SPRING Working Group W. Cheng, Ed. Internet Engineering Task Force (IETF) W. Cheng, Ed.
Internet-Draft H. Li Request for Comments: 9545 H. Li
Intended status: Standards Track China Mobile Category: Standards Track China Mobile
Expires: 2 June 2024 C. Li, Ed. ISSN: 2070-1721 C. Li, Ed.
Huawei Technologies Huawei Technologies
R. Gandhi R. Gandhi
Cisco Systems, Inc. Cisco Systems, Inc.
R. Zigler R. Zigler
Broadcom Broadcom
30 November 2023 February 2024
Path Segment Identifier in MPLS Based Segment Routing Network Path Segment Identifier in MPLS-Based Segment Routing Networks
draft-ietf-spring-mpls-path-segment-22
Abstract Abstract
A Segment Routing (SR) path is identified by an SR segment list. A A Segment Routing (SR) path is identified by an SR segment list. A
sub-set of segments from the segment list cannot be leveraged to subset of segments from the segment list cannot be leveraged to
distinguish one SR path from another as they may be partially distinguish one SR path from another as they may be partially
congruent. SR path identification is a pre-requisite for various congruent. SR path identification is a prerequisite for various use
use-cases such as Performance Measurement, and end-to-end 1+1 path cases such as performance measurement and end-to-end 1+1 path
protection. protection.
In SR for MPLS data plane (SR-MPLS), an Egress node cannot determine In an SR over MPLS (SR-MPLS) data plane, an egress node cannot
on which SR path a packet traversed the network from the label stack determine on which SR path a packet traversed the network from the
because the segment identifiers are removed from the label stack as label stack because the segment identifiers are removed from the
the packet transits the network. label stack as the packet transits the network.
This document defines Path Segment Identifier(PSID) to identify an SR This document defines a Path Segment Identifier (PSID) to identify an
path on the egress node of the path. SR path on the egress node of the path.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
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 This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 2 June 2024. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9545.
Copyright Notice Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the Copyright (c) 2024 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language
1.2. Abbreviations and Terms . . . . . . . . . . . . . . . . . 3 1.2. Abbreviations and Terms
2. Path Segment . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Path Segment
2.1. Equal-Cost Multipath(ECMP) Considerations . . . . . . . . 5 2.1. Equal-Cost Multipath (ECMP) Considerations
3. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Use Cases
3.1. PSID for Performance Measurement . . . . . . . . . . . . 6 3.1. PSID for Performance Measurement
3.2. PSID for Bidirectional SR Path . . . . . . . . . . . . . 7 3.2. PSID for Bidirectional SR Paths
3.3. PSID for End-to-end Path Protection . . . . . . . . . . . 7 3.3. PSID for End-to-End Path Protection
3.4. Nesting of PSIDs . . . . . . . . . . . . . . . . . . . . 7 3.4. Nesting of PSIDs
4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 4. Security Considerations
5. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 5. IANA Considerations
5.1. Huawei Technologies . . . . . . . . . . . . . . . . . . . 10 6. References
5.2. ZTE Corp . . . . . . . . . . . . . . . . . . . . . . . . 10 6.1. Normative References
5.3. New H3C Technologies . . . . . . . . . . . . . . . . . . 11 6.2. Informative References
5.4. Spirent Communications . . . . . . . . . . . . . . . . . 11 Acknowledgements
5.5. Fiberhome . . . . . . . . . . . . . . . . . . . . . . . . 12 Contributors
5.6. Interoperability Test . . . . . . . . . . . . . . . . . . 12 Authors' Addresses
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.1. Normative References . . . . . . . . . . . . . . . . . . 13
7.2. Informative References . . . . . . . . . . . . . . . . . 13
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 16
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
Segment Routing (SR) [RFC8402] leverages the source-routing paradigm Segment Routing (SR) [RFC8402] leverages the source-routing paradigm
to steer packets from a source node through a controlled set of to steer packets from a source node through a controlled set of
instructions, called segments, by prepending the packet with an SR instructions, called "segments", by prepending the packet with an SR
header. In the MPLS data plane SR-MPLS [RFC8660] the SR header is header. In SR with the MPLS data plane [RFC8660], the SR header is
instantiated through a label stack. instantiated through a label stack.
In an SR-MPLS network, when a packet is transmitted along 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. The the labels in the MPLS label stack will be swapped or popped. The
result of this is that no label or only the last label may be left in result of this is that no label or only the last label may be left in
the MPLS label stack when the packet reaches the egress node. Thus, the MPLS label stack when the packet reaches the egress node. Thus,
the egress node cannot use the SR label stack to determine along the egress node cannot use the SR label stack to determine along
which SR path the packet came. which SR path the packet came.
However, identifying a path on the egress node is a pre-requisite for However, identifying a path on the egress node is a prerequisite for
various use-cases in SR-MPLS networks, such as Performance various use cases in SR-MPLS networks, such as performance
Measurement (Section 3.1), bidirectional path (Section 3.2), and end- measurement (Section 3.1), bidirectional paths (Section 3.2), and
to-end 1+1 path protection (Live-Live case) (Section 3.3). end-to-end 1+1 path protection (a Live-Live case) (Section 3.3).
Therefore, this document defines a new segment type, referred to Therefore, this document defines a new segment type, referred to
herein as a Path Segment. A Path Segment is defined to uniquely herein as a "Path Segment". A Path Segment is defined to uniquely
identify an SR path on the egress node of the path. It MAY be used identify an SR path on the egress node of the path. It MAY be used
by the egress node for path identification. Note that, per-path by the egress node for path identification. Note that per-path state
state will be maintained in the egress node due to the requirements will be maintained in the egress node due to the requirements in the
in the aforementioned use cases, though in normal cases that the per- aforementioned use cases, though in normal cases, the per-path state
path state will be maintained in the ingress node only. will be maintained in the ingress node only.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
1.2. Abbreviations and Terms 1.2. Abbreviations and Terms
MPLS: Multiprotocol Label Switching. MPLS: Multiprotocol Label Switching
SR: Segment Routing. PSID: Path Segment Identifier
SID: Segment Identifier. SID: Segment Identifier
SR-MPLS: Instantiation of SR on the MPLS data plane. SR: Segment Routing
SR path: A SR path is a path described by a Segment-List. SR-MPLS: SR over MPLS
Sub-Path: A sub-path is a part of a path, which contains a sub-set of SR path: A path described by a segment list.
the nodes and links of the path.
PSID: Path Segment Identifier. Sub-Path: A part of a path, which contains a subset of the nodes and
links of the path.
2. Path Segment 2. Path Segment
A Path Segment is a Local Segment [RFC8402] which uniquely identifies A Path Segment is a local segment [RFC8402] that uniquely identifies
an SR path on the egress node. A Path Segment Identifier(PSID) is a an SR path on the egress node. A Path Segment Identifier (PSID) is a
single label that is assigned from the Segment Routing Local Block single label that is assigned from the Segment Routing Local Block
(SRLB) [RFC8402] of the egress node of an SR path. (SRLB) [RFC8402] of the egress node of an SR path.
A PSID is used to identify a Segment List. However, one PSID can be 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. used to identify multiple segment lists in some use cases if needed.
For example, one single PSID MAY be used to identify some or all For example, one single PSID MAY be used to identify some or all
Segment lists in a Candidate path or an SR policy, if an operator segment lists in a candidate path or an SR policy if an operator
would like to aggregate these Segment Lists in operation. would like to aggregate these segment lists in operation.
When a PSID is used, the PSID can be inserted at the ingress node and When a PSID is used, the PSID can be inserted at the ingress node and
MUST immediately follow the last label of the SR path, in other MUST immediately follow the last label of the SR path; in other
words, inserted after the routing segment (adjacency/node/prefix words, it must be inserted after the routing segment (adjacency,
segment) pointing to the egress node of the SR path. Therefore, a node, or prefix segment) that is pointing to the egress node of the
PSID will not be the top label in the label stack when received on an SR path. Therefore, a PSID will not be the top label in the label
intermediate node of the associated path, but it can be the top label stack when received on an intermediate node of the associated path,
in the label stack on the penultimate node. but it can be the top label in the label stack on the penultimate
node.
The value of the TTL field in the MPLS label stack entry containing a The value of the TTL field in the MPLS label stack entry containing a
PSID can be set to any value except 0. If a PSID is the bottom PSID can be set to any value except 0. If a PSID is the bottom
label, the S bit MUST be set, and if the PSID is NOT the bottom label, the S bit MUST be set, and if the PSID is NOT the bottom
label, the S bit MUST be 0. label, the S bit MUST be 0.
The egress node MUST pop the PSID. The egress node MAY use the PSID The egress node MUST pop the PSID. The egress node MAY use the PSID
for further processing. For example, when performance measurement is for further processing. For example, when performance measurement is
enabled on the SR path, it can trigger packet counting or enabled on the SR path, it can trigger packet counting or
timestamping. timestamping.
The addition of the PSID will require the egress to read and process The addition of the PSID will require the egress to read and process
the PSID label in addition to the regular processing. This the PSID label in addition to the regular processing. This
additional processing may have an impact on forwarding performance. additional processing may have an impact on forwarding performance.
Behavior relating to the use of explicit null directly preceding the Behavior relating to the use of explicit null directly preceding the
PSID is undefined in this document. PSID is undefined in this document.
Generic Associated Channel Label (GAL) MAY be used for Operations, A Generic Associated Channel Label (GAL) MAY be used for Operations,
Administration and Maintenance (OAM) in MPLS networks. As per Administration, and Maintenance (OAM) in MPLS networks. As per
[RFC5586], when GAL is used, the ACH appears immediately after the [RFC5586], when a GAL is used, the Associated Channel Header (ACH)
bottom of the label stack. appears immediately after the bottom of the label stack.
The SR path computation needs to know the Maximum SID Depth (MSD) 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]. 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 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 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 [RFC8491], the MSD signals the total number of MPLS labels that can
imposed, where the total number of MPLS labels includes the PSID. be imposed, where the total number of MPLS labels includes the PSID.
An example label stack with PSID is shown in Figure 1: An example label stack with a PSID is shown in Figure 1:
+--------------------+ +--------------------+
| ... | | ... |
+--------------------+ +--------------------+
| Label 1 | | Label 1 |
+--------------------+ +--------------------+
| Label 2 | | Label 2 |
+--------------------+ +--------------------+
| ... | | ... |
+--------------------+ +--------------------+
| Label n | | Label n |
+--------------------+ +--------------------+
| PSID | | PSID |
+--------------------+ +--------------------+
~ Payload ~ ~ Payload ~
+--------------------+ +--------------------+
Figure 1: Label Stack with PSID Figure 1: Label Stack with a PSID
Where: Where:
* The Labels 1 to n are the segment label stack used to direct how * The Labels 1 to n are the segment label stack used to direct how
to steer the packets along the SR path. to steer the packets along the SR path.
* The PSID identifies the SR path in the context of the egress node * The PSID identifies the SR path in the context of the egress node
of the SR path. of the SR path.
Signaling of the PSID between the egress node, the ingress node and The signaling of the PSID between the egress node, the ingress node,
possibly a centralized controller is out of the scope of this and possibly a centralized controller is out of the scope of this
document. document.
2.1. Equal-Cost Multipath(ECMP) Considerations 2.1. Equal-Cost Multipath (ECMP) Considerations
If Entropy Label(EL) is also used on the egress node, as per If an Entropy Label (EL) is also used on the egress node, as per
[RFC6790] the Entropy label Indicator (ELI) and Entropy Label (EL) [RFC6790], the EL and Entropy Label Indicator (ELI) would be placed
would be placed before the tunnel label and hence does not interfere before the tunnel label; hence, they do not interfere with the PSID,
with the PSID which is placed below. which is placed below.
It is worthy to note that in case of ECMP, with or without the use of It is worthy to note that in the case of ECMP, with or without the
EL, the SR packets may be forwarded over multiple paths. In this use of an EL, the SR packets may be forwarded over multiple paths.
case, the SID list cannot directly reflect the actual forwarding path In this case, the SID list cannot directly reflect the actual
and the PSID can only identify the SID list rather than the actual forwarding path and the PSID can only identify the SID list rather
forwarding path. than the actual forwarding path.
Also, similar to Synonymous Flow Labels(SFL) [RFC8957], the Also, similar to a Synonymous Flow Label (SFL) [RFC8957], the
introduction of an PSID to an existing flow may cause that flow to introduction of a PSID to an existing flow may cause that flow to
take a different path through the network under conditions of Equal- take a different path through the network under the conditions of
Cost Multipath. This, in turn, may invalidate certain uses of the ECMP. In turn, this may invalidate certain uses of the PSID, such as
PSID, such as performance measurement applications. Therefore, the performance measurement applications. Therefore, the considerations
considerations as per section 5 in [RFC8957] of SFL also apply to of SFLs as per Section 5 of [RFC8957] also apply to PSIDs in
PSID in implementation. implementation.
3. Use cases 3. Use Cases
This section describes use cases which can leverage the PSID. The This section describes use cases that can leverage the PSID. The
content is for informative purpose, and the detailed solutions might content is for informative purposes, and the detailed solutions might
be defined in other documents in the future. be defined in other documents in the future.
3.1. PSID for Performance Measurement 3.1. PSID for Performance Measurement
As defined in [RFC7799], performance measurement can be classified As defined in [RFC7799], performance measurement can be classified
into Passive, Active, and Hybrid measurement. Since a PSID is into Passive, Active, and Hybrid measurements. Since a PSID is
encoded in the SR-MPLS Label Stack as shown in Figure 1, existing encoded in the SR-MPLS label stack, as shown in Figure 1, existing
implementation on the egress node can leverage PSID for measuring implementations on the egress node can leverage a PSID for measuring
packet counts. packet counts.
For Passive performance measurement, path identification at the For Passive performance measurement, path identification at the
measuring points is the pre-requisite. PSID can be used by the measuring points is the prerequisite. A PSID can be used by the
measuring points (e.g., the ingress and egress nodes of the SR path measuring points (e.g., the ingress and egress nodes of the SR path
or a centralized controller) to correlate the packet counts and or a centralized controller) to correlate the packet counts and
timestamps from the ingress and egress nodes for a specific SR path, 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, then, packet loss and delay can be calculated for the end-to-end
respectively. path, respectively.
Furthermore, PSID can also be used for: Furthermore, a PSID can also be used for:
* Active Performance Measurement for an SR path in SR-MPLS networks * Active performance measurement for an SR path in SR-MPLS networks
for collecting packet counters and timestamps from the egress node for collecting packet counters and timestamps from the egress node
using probe messages. using probe messages.
* In-situ OAM[RFC9197] for SR-MPLS to identify the SR Path * In situ OAM [RFC9197] for SR-MPLS to identify the SR path
associated with the in-situ data fields in the data packets on the associated with the in situ data fields in the data packets on the
egress node. egress node.
* In-band Performance Measurement for SR-MPLS to identify the SR * In-band performance measurement for SR-MPLS to identify the SR
Path associated with the collected performance metrics. path associated with the collected performance metrics.
3.2. PSID for Bidirectional SR Path 3.2. PSID for Bidirectional SR Paths
In some scenarios, for example, mobile backhaul transport networks, In some scenarios (e.g., mobile backhaul transport networks), there
there are requirements to support bidirectional paths[RFC6965], and are requirements to support bidirectional paths [RFC6965], and the
the path is normally treated as a single entity. Forward and reverse path is normally treated as a single entity. Forward and reverse
directions of the path have the same fate, for example, failure in directions of the path have the same fate; for example, failure in
one direction will result in switching traffic at both directions. one direction will result in switching traffic at both directions.
MPLS supports this by introducing the concepts of co-routed MPLS supports this by introducing the concepts of a co-routed
bidirectional LSP and associated bidirectional LSP [RFC5654]. bidirectional Label Switched Path (LSP) and an associated
bidirectional LSP [RFC5654].
In the current SR architecture, an SR path is a unidirectional path In the current SR architecture, an SR path is a unidirectional path
[RFC8402]. In order to support bidirectional SR paths, a [RFC8402]. In order to support bidirectional SR paths, a
straightforward way is to bind two unidirectional SR paths to a straightforward way is to bind two unidirectional SR paths to a
single bidirectional SR path. PSIDs can be used to identify and single bidirectional SR path. PSIDs can be used to identify and
correlate the traffic for the two unidirectional SR paths at both correlate the traffic for the two unidirectional SR paths at both
ends of the bidirectional path. ends of the bidirectional path.
The mechanism of constructing bidirectional path using PSID is out of The mechanism of constructing bidirectional paths using a PSID is out
the scope of this document and has been described in several of the scope of this document and has been described in several
documents, such as [I-D.ietf-pce-sr-bidir-path] and documents, such as [BIDIR-PATH] and [SR-EXTENSIONS].
[I-D.ietf-idr-sr-policy-path-segment].
3.3. PSID for End-to-end Path Protection 3.3. PSID for End-to-End Path Protection
For end-to-end 1+1 path protection (i.e., Live-Live case), the egress For end-to-end 1+1 path protection (i.e., a Live-Live case), the
node of the path needs to know the set of paths that constitute the egress node of the path needs to know the set of paths that
primary and the secondaries, in order to select the primary path constitute the primary and the secondaries in order to select the
packets for onward transmission, and to discard the packets from the primary path packets for onward transmission and to discard the
secondaries [RFC4426]. packets from the secondaries [RFC4426].
To do this in Segment Routing, each SR path needs a path identifier To do this in SR, each SR path needs a path identifier that is unique
that is unique at the egress node. For SR-MPLS, this can be the Path at the egress node. For SR-MPLS, this can be the Path Segment label
Segment label allocated by the egress node. allocated by the egress node.
The detailed solution of using PSID in end-to-end 1+1 path protection The detailed solution of using a PSID in end-to-end 1+1 path
is out of the scope of this document. protection is out of the scope of this document.
3.4. Nesting of PSIDs 3.4. Nesting of PSIDs
Binding SID (BSID) [RFC8402] can be used for SID list compression. A Binding SID (BSID) [RFC8402] can be used for SID list compression.
With BSID, an end-to-end SR path in a trusted domain can be split With a BSID, an end-to-end SR path in a trusted domain can be split
into several sub-paths, each sub-path is identified by a BSID. Then into several sub-paths, where each sub-path is identified by a BSID.
an end-to-end SR path can be identified by a list of BSIDs, Then, an end-to-end SR path can be identified by a list of BSIDs;
therefore, it can provide better scalability. therefore, it can provide better scalability.
BSID and PSID can be combined to achieve both sub-path and end-to-end A BSID and a PSID can be combined to achieve both sub-path and end-
path monitoring. A reference model for such a combination in to-end path monitoring. A reference model for such a combination
(Figure 2) shows an end-to-end path (A->D) in a trusted domain that (Figure 2) shows an end-to-end path (A->D) in a trusted domain that
spans three subdomains (Access, Aggregation and Core domain) and spans three subdomains (the Access, Aggregation, and Core domains)
consists of three sub-paths, one in each subdomain (sub-path (A->B), and consists of three sub-paths, one in each subdomain (sub-path
sub-path (B->C) and sub-path (C->D)). (A->B), sub-path (B->C), and sub-path (C->D)).
The SID list of a sub-path can be expressed as <SID1, SID2, ...SIDn, The SID list of a sub-path can be expressed as <SID1, SID2, ...,
s-PSID>, where the s-PSID is the PSID of the sub-path. Each sub-path SIDn, s-PSID>, where the s-PSID is the PSID of the sub-path. Each
is associated with a BSID and an s-PSID. sub-path is associated with a BSID and an s-PSID.
The SID list of the end-to-end path can be expressed as <BSID1, 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- BSID2, ..., BSIDn, e-PSID>, where the e-PSID is the PSID of the end-
to-end path. to-end path.
Figure 2 shows the details of the label stacks when PSID and BSID are Figure 2 shows the details of the label stacks when a PSID and a BSID
used to support both sub-path and end-to-end path monitoring in a are used to support both sub-path and end-to-end path monitoring in a
multi-domain scenario. multi-domain scenario.
/--------\ /--------\ /--------\ /--------\ /--------\ /--------\
/ \ / \ / \ / \ / \ / \
A{ Access }B{ Aggregation }C{ Core }D A{ Access }B{ Aggregation }C{ Core }D
\ / \ / \ / \ / \ / \ /
\--------/ \--------/ \--------/ \--------/ \--------/ \--------/
Sub-path(A->B) Sub-path(B->C) Sub-path(C->D) sub-path(A->B) sub-path(B->C) sub-path(C->D)
|<--------------->|<-------------->|<-------------->| |<--------------->|<-------------->|<-------------->|
E2E Path(A->D) E2E Path(A->D)
|<------------------------------------------------->| |<------------------------------------------------->|
+------------+ +-------------+
~A->B SubPath~ ~A->B sub-path~
+------------+ +------------+ +-------------+ +-------------+
|s-PSID(A->B)| ~B->C SubPath~ |s-PSID(A->B) | ~B->C sub-path~
+------------+ +------------+ +------------+ +-------------+ +-------------+ +-------------+
| BSID(B->C) | |s-PSID(B->C)| ~C->D SubPath~ | BSID(B->C) | |s-PSID(B->C) | ~C->D sub-path~
+------------+ +------------+ +------------+ +-------------+ +-------------+ +-------------+
| BSID(C->D) | | BSID(C->D) | |s-PSID(C->D)| | BSID(C->D) | | BSID(C->D) | |s-PSID(C->D) |
+------------+ +------------+ +------------+ +------------+ +-------------+ +-------------+ +-------------+ +------------+
|e-PSID(A->D)| |e-PSID(A->D)| |e-PSID(A->D)| |e-PSID(A->D)| |e-PSID(A->D) | |e-PSID(A->D) | |e-PSID(A->D) | |e-PSID(A->D)|
+------------+ +------------+ +------------+ +------------+ +-------------+ +-------------+ +-------------+ +------------+
Figure 2: Nesting of PSIDs Figure 2: Nesting of PSIDs
4. Security Considerations 4. Security Considerations
A PSID in SR-MPLS is a local label similar to other labels/Segment, A PSID in SR-MPLS is a local label similar to other labels and
such as a VPN label, defined in MPLS and SR-MPLS. The data plane segments, such as a VPN label, defined in MPLS and SR-MPLS. The data
processing of a PSID is a local implementation of an ingress node, or plane processing of a PSID is a local implementation of an ingress
an egress node, which follows the same logic of existing MPLS node or an egress node, which follows the same logic of an existing
dataplane. As per definition of PSID, only the egress node and the MPLS data plane. As per the definition of a PSID, only the egress
ingress node of the associated path will learn the information of node and the ingress node of the associated path will learn the
PSID. The intermediate nodes of this path will not learn it. information of a PSID. The intermediate nodes of this path will not
learn it.
A PSID may be used on an ingress node that is not the ingress of the A PSID may be used on an ingress node that is not the ingress of the
associated path, if the associated label stack with PSID is part of a associated path if the associated label stack with the PSID is part
deeper label stack which represents a longer path. For example the of a deeper label stack that represents a longer path. For example,
case described in Section 3.4 and the related BSID is not used while the case described in Section 3.4 and the related BSID are not used
the original label stack of sub-path is inserted as a part of the while the original label stack of a sub-path is inserted as a part of
whole label stack. In this case, the PSID must be distributed in a the whole label stack. In this case, the PSID must be distributed in
trusted domain under the considerations defined in Section 8.1 of a trusted domain under the considerations defined in Section 8.1 of
[RFC8402]. [RFC8402].
A PSID is used within an SR-MPLS trusted domain [RFC8402] and must A PSID is used within an SR-MPLS trusted domain [RFC8402] and must
not leak outside the domain, therefore no new security threats are not leak outside the domain; therefore, no new security threats are
introduced comparing to current SR-MPLS. As per [RFC8402], SR domain introduced compared to current SR-MPLS. As per [RFC8402], SR domain
boundary routers MUST filter any external traffic destined to a label boundary routers MUST filter any external traffic destined to a label
associated with a segment within the trusted domain, this applies to associated with a segment within the trusted domain; this applies to
PSID as well. Other security considerations of SR-MPLS, described in a PSID as well. Other security considerations of SR-MPLS described
Section 8.1 of [RFC8402] applies to this document. in Section 8.1 of [RFC8402] apply to this document.
The distribution of a PSID from an egress node to an ingress nodes is The distribution of a PSID from an egress node to an ingress node is
performed within an SR trusted domain, and it is out of the scope of performed within an SR-trusted domain, and it is out of the scope of
this document. The details of the mechanism and related security this document. The details of the mechanism and related security
considerations will be described in other documents. considerations will be described in other documents.
5. Implementation Status 5. IANA Considerations
[Note to the RFC Editor - remove this section before publication, as
well as remove the reference to [RFC7942].
This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in [RFC7942].
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.
According to [RFC7942], "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".
5.1. Huawei Technologies
* Organization: Huawei Technologies.
* Implementation: Huawei PTN7900 Series Routers implementation of
SR-TP[HW-IMP].
* Description: SR-TP is a feature of Huawei PTN7900 series Routers,
which uses PSIDs to associate with paths and build up
bidirectional paths. Huawei PTN7900 Series Routers with version
V100R018C00 and above have commercially implemented the definition
of PSID and use cases which is defined in section 2 and
Section 3.2 in this document, including all the "MUST" and
"SHOULD" clauses, while other use cases for PSID in section 3 are
not yet implemented. For control plane, PTN7900 Series Routers
support configuring PSID using NETCONF.
* Maturity Level: Product
* Coverage: Partial, section 2 and use case section 3.2.
* Version: Draft-12
* Licensing: N/A
* Implementation experience: Nothing specific.
* Contact: li.fan@huawei.com
* Last updated: September 14, 2023
5.2. ZTE Corp
* Organization: ZTE Corporation.
* Implementation: ZTE's SPN implementation of PSID[ZTE-IMP].
* Description: The feature of SR-MPLS PSID has been implemented in
ZTE SPN products and follows the definition and mechanism as
defined in section 2 and Section 3.2 including all the "MUST" and
"SHOULD" clauses while other use cases for PSID in section 3 are
not yet implemented.
* Maturity Level: Product
* Coverage: Partial,section 2 and use case section 3.2.
* Version: Draft-12
* Licensing: N/A
* Implementation experience: Nothing specific.
* Contact: liu.aihua@zte.com.cn
* Last updated: September 21, 2023
5.3. New H3C Technologies
* Organization: New H3C Technologies.
* Implementation: H3C CR16000, CR19000 series routers implementation
of PSID.
* Description: Section 2 and Section 3.2 including all the "MUST"
and "SHOULD" clauses have been implemented in above-mentioned New
H3C Products(running Version 7.1.086 and above) for testing, while
other use cases for PSID in section 3 are not yet implemented.
* Maturity Level: Beta
* Coverage: Partial, section 2 and use case section 3.2.
* Version: Draft-12
* Licensing: N/A
* Implementation experience: Nothing specific.
* Contact: linchangwang.04414@h3c.com
* Last updated: September 13, 2023
5.4. Spirent Communications
* Organization: Spirent Communications
* Implementation: Spirent Testcenter Product Family implementation
of SR-TP test capability[SP-IMP].
* Description: Spirent Testcenter product family implements SR-MPLS
PSID test capabilities on the versions above Spirent Testcenter
4.85. Spirent Testcenter fully support testing all clauses
defined in section 2 and Section 3.1,3.2,3.4 , including all the
"MUST" and "SHOULD" clauses, and partially support the test of
clauses in section 3.3.
* Maturity Level: Production
* Coverage: fully cover section 2 and use case section 3.1,3.2, 3.4,
partially cover section 3.3
* Version: Draft-12
* Licensing: N/A
* Implementation experience: Nothing specific.
* Contact: junqi.zhao@spirent.com
* Last updated: September 21, 2023
5.5. Fiberhome
* Organization: Fiberhome Corporation.
* Implementation: Fiberhome SPN series of products (Citrans
650/690E) implementation of PSID[FH-IMP].
* Description: SR-TP is a feature of SPN products, which realizes a
controllable L3 tunnel, builds the end-to-end L3 deployment
business model. The PSID follows the definition and mechanism as
defined in section 2 and Section 3.2 including all the "MUST" and
"SHOULD" clauses had been implemented, while other use cases for
PSID in section 3 are not yet implemented.
* Maturity Level: Product
* Coverage: Partial,section 2 and use case section 3.2.
* Version: Draft-12
* Licensing: N/A
* Implementation experience: Nothing specific.
* Contact: zhhan@fiberhome.com
* Last updated: September 21, 2023
5.6. Interoperability Test
[Note to the RFC Editor - remove this section before publication, as
well as remove the reference to [RFC7942].
The Interoperability test of PSID had been done among products from
several vendors, including Huawei(PTN7900, V100R018C00), ZTE(ZXCTN
6180, Ver 4.00.00), FiberHome(Citrans 650/690E) , Spirent (Chassis:
SPT-N4U-220.Test. Module: PX3-QSFP28-12-225A. Version: 4.86) and
Nokia in 2018[INTEROP-TEST]. Note that PSID is a key feature of
Layer3 in SPN architecture [SPN-L3]. This is reported by Weiqiang
Cheng from China Mobile at September, 21, 2023.
6. IANA Considerations
This document does not require any IANA actions. This document has no IANA actions.
7. References 6. References
7.1. Normative References 6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/rfc/rfc8402>. July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing with the MPLS Data Plane", RFC 8660, Routing with the MPLS Data Plane", RFC 8660,
DOI 10.17487/RFC8660, December 2019, DOI 10.17487/RFC8660, December 2019,
<https://www.rfc-editor.org/rfc/rfc8660>. <https://www.rfc-editor.org/info/rfc8660>.
7.2. Informative References
[FH-IMP] "Fiberhome Routers", 21 September 2021,
<https://www.fiberhome.com/operator/product/
products/294.aspx.html>.
[HW-IMP] "Huawei PTN7900 Routers", 21 September 2021,
<https://carrier.huawei.com/en/products/fixed-network/
carrier-ip/router/ptn/ptn7900>.
[I-D.ietf-idr-sr-policy-path-segment] 6.2. Informative References
Li, C., Li, Z., Yin, Y., Cheng, W., and K. Talaulikar, "SR
Policy Extensions for Path Segment and Bidirectional
Path", Work in Progress, Internet-Draft, draft-ietf-idr-
sr-policy-path-segment-08, 16 August 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-
policy-path-segment-08>.
[I-D.ietf-pce-sr-bidir-path] [BIDIR-PATH]
Li, C., Chen, M., Cheng, W., Gandhi, R., and Q. Xiong, Li, C., Chen, M., Cheng, W., Gandhi, R., and Q. Xiong,
"Path Computation Element Communication Protocol (PCEP) "Path Computation Element Communication Protocol (PCEP)
Extensions for Associated Bidirectional Segment Routing Extensions for Associated Bidirectional Segment Routing
(SR) Paths", Work in Progress, Internet-Draft, draft-ietf- (SR) Paths", Work in Progress, Internet-Draft, draft-ietf-
pce-sr-bidir-path-12, 9 September 2023, pce-sr-bidir-path-13, 13 February 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-pce-sr- <https://datatracker.ietf.org/doc/html/draft-ietf-pce-sr-
bidir-path-12>. bidir-path-13>.
[INTEROP-TEST]
China Mobile, "Adhering to Innovation-Driven Development
and Focusing on Technological Breakthroughs--China Mobile
Research Institute Accelerates 5G R&D and Tests", 30 May
2019, <http://www.cww.net.cn/web/news/channel/
articleinfo.action?id=452789>.
[RFC4426] Lang, J., Ed., Rajagopalan, B., Ed., and D. Papadimitriou, [RFC4426] Lang, J., Ed., Rajagopalan, B., Ed., and D. Papadimitriou,
Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Ed., "Generalized Multi-Protocol Label Switching (GMPLS)
Recovery Functional Specification", RFC 4426, Recovery Functional Specification", RFC 4426,
DOI 10.17487/RFC4426, March 2006, DOI 10.17487/RFC4426, March 2006,
<https://www.rfc-editor.org/rfc/rfc4426>. <https://www.rfc-editor.org/info/rfc4426>.
[RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed.,
"MPLS Generic Associated Channel", RFC 5586, "MPLS Generic Associated Channel", RFC 5586,
DOI 10.17487/RFC5586, June 2009, DOI 10.17487/RFC5586, June 2009,
<https://www.rfc-editor.org/rfc/rfc5586>. <https://www.rfc-editor.org/info/rfc5586>.
[RFC5654] Niven-Jenkins, B., Ed., Brungard, D., Ed., Betts, M., Ed., [RFC5654] Niven-Jenkins, B., Ed., Brungard, D., Ed., Betts, M., Ed.,
Sprecher, N., and S. Ueno, "Requirements of an MPLS Sprecher, N., and S. Ueno, "Requirements of an MPLS
Transport Profile", RFC 5654, DOI 10.17487/RFC5654, Transport Profile", RFC 5654, DOI 10.17487/RFC5654,
September 2009, <https://www.rfc-editor.org/rfc/rfc5654>. September 2009, <https://www.rfc-editor.org/info/rfc5654>.
[RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and
L. Yong, "The Use of Entropy Labels in MPLS Forwarding", L. Yong, "The Use of Entropy Labels in MPLS Forwarding",
RFC 6790, DOI 10.17487/RFC6790, November 2012, RFC 6790, DOI 10.17487/RFC6790, November 2012,
<https://www.rfc-editor.org/rfc/rfc6790>. <https://www.rfc-editor.org/info/rfc6790>.
[RFC6965] Fang, L., Ed., Bitar, N., Zhang, R., Daikoku, M., and P. [RFC6965] Fang, L., Ed., Bitar, N., Zhang, R., Daikoku, M., and P.
Pan, "MPLS Transport Profile (MPLS-TP) Applicability: Use Pan, "MPLS Transport Profile (MPLS-TP) Applicability: Use
Cases and Design", RFC 6965, DOI 10.17487/RFC6965, August Cases and Design", RFC 6965, DOI 10.17487/RFC6965, August
2013, <https://www.rfc-editor.org/rfc/rfc6965>. 2013, <https://www.rfc-editor.org/info/rfc6965>.
[RFC7799] Morton, A., "Active and Passive Metrics and Methods (with [RFC7799] Morton, A., "Active and Passive Metrics and Methods (with
Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799, Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799,
May 2016, <https://www.rfc-editor.org/rfc/rfc7799>. May 2016, <https://www.rfc-editor.org/info/rfc7799>.
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running
Code: The Implementation Status Section", BCP 205,
RFC 7942, DOI 10.17487/RFC7942, July 2016,
<https://www.rfc-editor.org/rfc/rfc7942>.
[RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, [RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg,
"Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491, "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491,
DOI 10.17487/RFC8491, November 2018, DOI 10.17487/RFC8491, November 2018,
<https://www.rfc-editor.org/rfc/rfc8491>. <https://www.rfc-editor.org/info/rfc8491>.
[RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "Path Computation Element Communication and J. Hardwick, "Path Computation Element Communication
Protocol (PCEP) Extensions for Segment Routing", RFC 8664, Protocol (PCEP) Extensions for Segment Routing", RFC 8664,
DOI 10.17487/RFC8664, December 2019, DOI 10.17487/RFC8664, December 2019,
<https://www.rfc-editor.org/rfc/rfc8664>. <https://www.rfc-editor.org/info/rfc8664>.
[RFC8957] Bryant, S., Chen, M., Swallow, G., Sivabalan, S., and G. [RFC8957] Bryant, S., Chen, M., Swallow, G., Sivabalan, S., and G.
Mirsky, "Synonymous Flow Label Framework", RFC 8957, Mirsky, "Synonymous Flow Label Framework", RFC 8957,
DOI 10.17487/RFC8957, January 2021, DOI 10.17487/RFC8957, January 2021,
<https://www.rfc-editor.org/rfc/rfc8957>. <https://www.rfc-editor.org/info/rfc8957>.
[RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, [RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi,
Ed., "Data Fields for In Situ Operations, Administration, Ed., "Data Fields for In Situ Operations, Administration,
and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197,
May 2022, <https://www.rfc-editor.org/rfc/rfc9197>. May 2022, <https://www.rfc-editor.org/info/rfc9197>.
[SP-IMP] "Spirent Devices", 21 September 2021,
<https://www.spirent.com/assets/u/flexe-test-solution-for-
5g-backhaul>.
[SPN-L3] China Mobile, "The-transport-network-consi-deration-for-
5G-in-CMCC", 1 December 2018, <https://opennetworking.org/
wp-content/uploads/2018/12/The-transport-network-consi-
deration-for-5G-in-CMCC.pdf>.
[ZTE-IMP] "ZTE ZXCTN-6700 Routers", 21 September 2021, [SR-EXTENSIONS]
<https://www.zte.com.cn/china/product_index/ip_network/ Li, C., Li, Z., Yin, Y., Cheng, W., and K. Talaulikar, "SR
item01/zxctn-6700/zxctn_6700.html>. Policy Extensions for Path Segment and Bidirectional
Path", Work in Progress, Internet-Draft, draft-ietf-idr-
sr-policy-path-segment-08, 16 August 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-
policy-path-segment-08>.
Acknowledgements Acknowledgements
The authors would like to thank Adrian Farrel, Stewart Bryant, The authors would like to thank Adrian Farrel, Stewart Bryant,
Shuangping Zhan, Alexander Vainshtein, Andrew G. Malis, Ketan Shuangping Zhan, Alexander Vainshtein, Andrew G. Malis, Ketan
Talaulikar, Shraddha Hegde, Xinyue Zhang, Loa Andersson and Bruno Talaulikar, Shraddha Hegde, Xinyue Zhang, Loa Andersson, and Bruno
Decraene for their review, suggestions, comments and contributions to Decraene for their review, suggestions, comments, and contributions
this document. to this document.
The authors would like to acknowledge the contribution from Alexander The authors would like to acknowledge the contribution from Alexander
Vainshtein on "Nesting of PSIDs". Vainshtein on "Nesting of PSIDs" (Section 3.4).
Contributors Contributors
The following people have substantially contributed to this document. The following people have substantially contributed to this document.
Mach(Guoyi) Chen Mach(Guoyi) Chen
Huawei Technologies Co., Ltd Huawei Technologies Co., Ltd.
Email: mach.chen@huawei.com Email: mach.chen@huawei.com
Lei Wang Lei Wang
China Mobile China Mobile
Email: wangleiyj@chinamobile.com Email: wangleiyj@chinamobile.com
Aihua Liu Aihua Liu
ZTE Corp ZTE Corp.
Email: liu.aihua@zte.com.cn Email: liu.aihua@zte.com.cn
Greg Mirsky Greg Mirsky
ZTE Corp ZTE Corp.
Email: gregimirsky@gmail.com Email: gregimirsky@gmail.com
Gyan S. Mishra Gyan S. Mishra
Verizon Inc. Verizon Inc.
Email: gyan.s.mishra@verizon.com Email: gyan.s.mishra@verizon.com
Authors' Addresses Authors' Addresses
Weiqiang Cheng (editor) Weiqiang Cheng (editor)
China Mobile China Mobile
 End of changes. 94 change blocks. 
450 lines changed or deleted 232 lines changed or added

This html diff was produced by rfcdiff 1.48.