SR-MPLS Path Segment ID: Path Segment Identifier in MPLS-Based Segment Routing Networks
A single extra MPLS label that tells the last router on a Segment Routing path which path a packet took.
Cheng, W., Ed., Li, H., Li, C., Ed., Gandhi, R., and R. Zigler, "Path Segment Identifier in MPLS-Based Segment Routing Networks", RFC 9545, DOI 10.17487/RFC9545, February 2024, <https://www.rfc-editor.org/info/rfc9545>.
@misc{rfc9545,
series = {Request for Comments},
number = 9545,
howpublished = {RFC 9545},
publisher = {RFC Editor},
doi = {10.17487/RFC9545},
url = {https://www.rfc-editor.org/info/rfc9545},
author = {W. Cheng and H. Li and C. Li and R. Gandhi and R. Zigler},
title = {{Path Segment Identifier in MPLS-Based Segment Routing Networks}},
pagetotal = 11,
year = 2024,
month = feb,
} RFC text
Contents
Internet Engineering Task Force (IETF) W. Cheng, Ed.
Request for Comments: 9545 H. Li
Category: Standards Track China Mobile
ISSN: 2070-1721 C. Li, Ed.
Huawei Technologies
R. Gandhi
Cisco Systems, Inc.
R. Zigler
Broadcom
February 2024
Path Segment Identifier in MPLS-Based Segment Routing Networks
Abstract
A Segment Routing (SR) path is identified by an SR segment list. A
subset of segments from the segment list cannot be leveraged to
distinguish one SR path from another as they may be partially
congruent. SR path identification is a prerequisite for various use
cases such as performance measurement and end-to-end 1+1 path
protection.
In an SR over MPLS (SR-MPLS) data plane, an egress node cannot
determine on which SR path a packet traversed the network from the
label stack because the segment identifiers are removed from the
label stack as the packet transits the network.
This document defines a Path Segment Identifier (PSID) to identify an
SR path on the egress node of the path.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
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 (c) 2024 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
1.1. Requirements Language
1.2. Abbreviations and Terms
2. Path Segment
2.1. Equal-Cost Multipath (ECMP) Considerations
3. Use Cases
3.1. PSID for Performance Measurement
3.2. PSID for Bidirectional SR Paths
3.3. PSID for End-to-End Path Protection
3.4. Nesting of PSIDs
4. Security Considerations
5. IANA Considerations
6. References
6.1. Normative References
6.2. Informative References
Acknowledgements
Contributors
Authors' Addresses
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 SR with the MPLS data plane [RFC8660], the SR header is
instantiated through a label stack.
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
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 egress node cannot use the SR label stack to determine along
which SR path the packet came.
However, identifying a path on the egress node is a prerequisite for
various use cases in SR-MPLS networks, such as performance
measurement (Section 3.1), bidirectional paths (Section 3.2), and
end-to-end 1+1 path protection (a Live-Live case) (Section 3.3).
Therefore, this document defines a new segment type, referred to
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
by the egress node for path identification. Note that per-path state
will be maintained in the egress node due to the requirements in the
aforementioned use cases, though in normal cases, the per-path state
will be maintained in the ingress node only.
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
MPLS: Multiprotocol Label Switching
PSID: Path Segment Identifier
SID: Segment Identifier
SR: Segment Routing
SR-MPLS: SR over MPLS
SR path: A path described by a segment list.
Sub-Path: A part of a path, which contains a subset of the nodes and
links of the path.
2. Path Segment
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
single label that is assigned from the Segment Routing Local Block
(SRLB) [RFC8402] of the egress node of an SR path.
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, one single PSID MAY be used to identify some or all
segment lists in a candidate path or an SR policy if an operator
would like to aggregate these segment lists in operation.
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
words, it must be inserted after the routing segment (adjacency,
node, or prefix segment) that is pointing to the egress node of the
SR path. Therefore, a PSID will not be the top label in the label
stack when received on an intermediate node of the associated path,
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
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 0.
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.
The addition of the PSID will require the egress to read and process
the PSID label in addition to the regular processing. This
additional processing may have an impact on forwarding performance.
Behavior relating to the use of explicit null directly preceding the
PSID is undefined in this document.
A Generic Associated Channel Label (GAL) MAY be used for Operations,
Administration, and Maintenance (OAM) in MPLS networks. As per
[RFC5586], when a GAL is used, the Associated Channel Header (ACH)
appears immediately after the bottom of the label stack.
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, where the total number of MPLS labels includes the PSID.
An example label stack with a PSID is shown in Figure 1:
+--------------------+
| ... |
+--------------------+
| Label 1 |
+--------------------+
| Label 2 |
+--------------------+
| ... |
+--------------------+
| Label n |
+--------------------+
| PSID |
+--------------------+
~ Payload ~
+--------------------+
Figure 1: Label Stack with a PSID
Where:
* The Labels 1 to n are the segment label stack used to direct how
to steer the packets along the SR path.
* The PSID identifies the SR path in the context of the egress node
of the SR path.
The signaling of the PSID between the egress node, the ingress node,
and possibly a centralized controller is out of the scope of this
document.
2.1. Equal-Cost Multipath (ECMP) Considerations
If an Entropy Label (EL) is also used on the egress node, as per
[RFC6790], the EL and Entropy Label Indicator (ELI) would be placed
before the tunnel label; hence, they do not interfere with the PSID,
which is placed below.
It is worthy to note that in the case of ECMP, with or without the
use of an EL, the SR packets may be forwarded over multiple paths.
In this case, the SID list cannot directly reflect the actual
forwarding path and the PSID can only identify the SID list rather
than the actual forwarding path.
Also, similar to a Synonymous Flow Label (SFL) [RFC8957], the
introduction of a PSID to an existing flow may cause that flow to
take a different path through the network under the conditions of
ECMP. In turn, this may invalidate certain uses of the PSID, such as
performance measurement applications. Therefore, the considerations
of SFLs as per Section 5 of [RFC8957] also apply to PSIDs in
implementation.
3. Use Cases
This section describes use cases that can leverage the PSID. The
content is for informative purposes, and the detailed solutions might
be defined in other documents in the future.
3.1. PSID for Performance Measurement
As defined in [RFC7799], performance measurement can be classified
into Passive, Active, and Hybrid measurements. Since a PSID is
encoded in the SR-MPLS label stack, as shown in Figure 1, existing
implementations on the egress node can leverage a PSID for measuring
packet counts.
For Passive performance measurement, path identification at 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
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.
Furthermore, a PSID 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.
* 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
egress node.
* In-band performance measurement for SR-MPLS to identify the SR
path associated with the collected performance metrics.
3.2. PSID for Bidirectional SR Paths
In some scenarios (e.g., mobile backhaul transport networks), there
are requirements to support bidirectional paths [RFC6965], 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 a co-routed
bidirectional Label Switched Path (LSP) and an 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. PSIDs can be used to identify and
correlate the traffic for the two unidirectional SR paths at both
ends of the bidirectional path.
The mechanism of constructing bidirectional paths using a PSID is out
of the scope of this document and has been described in several
documents, such as [BIDIR-PATH] and [SR-EXTENSIONS].
3.3. PSID for End-to-End Path Protection
For end-to-end 1+1 path protection (i.e., a 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 SR, 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.
The detailed solution of using a PSID in end-to-end 1+1 path
protection is out of the scope of this document.
3.4. Nesting of PSIDs
A Binding SID (BSID) [RFC8402] can be used for SID list compression.
With a BSID, an end-to-end SR path in a trusted domain can be split
into several sub-paths, where 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.
A BSID and a PSID can be combined to achieve both sub-path and end-
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
spans three subdomains (the Access, Aggregation, and Core domains)
and consists of three sub-paths, one in each subdomain (sub-path
(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, s-PSID>, where the s-PSID is the PSID of the sub-path. Each
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,
BSID2, ..., BSIDn, e-PSID>, where the e-PSID is the PSID of the end-
to-end path.
Figure 2 shows the details of the label stacks when a PSID and a 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 sub-path~
+-------------+ +-------------+
|s-PSID(A->B) | ~B->C sub-path~
+-------------+ +-------------+ +-------------+
| BSID(B->C) | |s-PSID(B->C) | ~C->D sub-path~
+-------------+ +-------------+ +-------------+
| 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)|
+-------------+ +-------------+ +-------------+ +------------+
Figure 2: Nesting of PSIDs
4. Security Considerations
A PSID in SR-MPLS is a local label similar to other labels and
segments, such as a VPN label, 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 an existing
MPLS data plane. As per the definition of a PSID, only the egress
node and the ingress node of the associated path will learn the
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
associated path if the associated label stack with the PSID is part
of a deeper label stack that represents a longer path. For example,
the case described in Section 3.4 and the related BSID are not used
while the original label stack of a sub-path is inserted as a part of
the whole label stack. In this case, the PSID must be distributed in
a trusted domain under the considerations defined in Section 8.1 of
[RFC8402].
A PSID is used within an SR-MPLS trusted domain [RFC8402] and must
not leak outside the domain; therefore, no new security threats are
introduced compared to current SR-MPLS. As per [RFC8402], SR domain
boundary routers MUST filter any external traffic destined to a label
associated with a segment within the trusted domain; this applies to
a PSID as well. Other security considerations of SR-MPLS described
in Section 8.1 of [RFC8402] apply to this document.
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
this document. The details of the mechanism and related security
considerations will be described in other documents.
5. IANA Considerations
This document has no 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/info/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/info/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/info/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/info/rfc8660>.
6.2. Informative References
[BIDIR-PATH]
Li, C., Chen, M., Cheng, W., Gandhi, R., and Q. Xiong,
"Path Computation Element Communication Protocol (PCEP)
Extensions for Associated Bidirectional Segment Routing
(SR) Paths", Work in Progress, Internet-Draft, draft-ietf-
pce-sr-bidir-path-13, 13 February 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-pce-sr-
bidir-path-13>.
[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/info/rfc4426>.
[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/info/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/info/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/info/rfc6790>.
[RFC6965] Fang, L., Ed., Bitar, N., Zhang, R., Daikoku, M., and P.
Pan, "MPLS Transport Profile (MPLS-TP) Applicability: Use
Cases and Design", RFC 6965, DOI 10.17487/RFC6965, August
2013, <https://www.rfc-editor.org/info/rfc6965>.
[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/info/rfc7799>.
[RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg,
"Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491,
DOI 10.17487/RFC8491, November 2018,
<https://www.rfc-editor.org/info/rfc8491>.
[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/info/rfc8664>.
[RFC8957] Bryant, S., Chen, M., Swallow, G., Sivabalan, S., and G.
Mirsky, "Synonymous Flow Label Framework", RFC 8957,
DOI 10.17487/RFC8957, January 2021,
<https://www.rfc-editor.org/info/rfc8957>.
[RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi,
Ed., "Data Fields for In Situ Operations, Administration,
and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197,
May 2022, <https://www.rfc-editor.org/info/rfc9197>.
[SR-EXTENSIONS]
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-09, 19 February 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-
policy-path-segment-09>.
Acknowledgements
The authors would like to thank Adrian Farrel, Stewart Bryant,
Shuangping Zhan, Alexander Vainshtein, Andrew G. Malis, Ketan
Talaulikar, Shraddha Hegde, Xinyue Zhang, Loa Andersson, and Bruno
Decraene for their review, suggestions, comments, and contributions
to this document.
The authors would like to acknowledge the contribution from Alexander
Vainshtein on "Nesting of PSIDs" (Section 3.4).
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
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 (editor)
China Mobile
Email: chengweiqiang@chinamobile.com
Han Li
China Mobile
Email: lihan@chinamobile.com
Cheng Li (editor)
Huawei Technologies
China
Email: c.l@huawei.com
Rakesh Gandhi
Cisco Systems, Inc.
Canada
Email: rgandhi@cisco.com
Royi Zigler
Broadcom
Email: royi.zigler@broadcom.com
AI ELI5
On this page
§1Why Paths Need an Identifier
In Segment Routing (SR), a source node steers a packet by prepending a list of instructions called segments. With the MPLS data plane, that list is a stack of MPLS labels. As the packet moves, labels are swapped or popped, so when it reaches the egress node, no label or only the last label may be left.
That means the egress node cannot use the label stack to learn which SR path the packet followed. A subset of segments cannot tell two paths apart either, because paths can be partly congruent. Yet several use cases need that knowledge: performance measurement, bidirectional paths and end-to-end 1+1 path protection.
RFC 9545 therefore defines a new segment type, the Path Segment, that uniquely identifies an SR path at its egress node. Using it is optional for the egress node (MAY). The RFC notes that per-path state must then be kept at the egress node, whereas normally only the ingress node keeps it.
When a parcel arrives at the last depot, the shipping labels have been peeled off along the way. The depot cannot tell which route it came by, so we add one more sticker that names the route.
§2The Path Segment and the PSID
A Path Segment is a local segment that identifies an SR path on the egress node. Its identifier, the PSID, is a single label assigned from the Segment Routing Local Block (SRLB) of the egress node.
A PSID normally identifies one segment list. One PSID can also identify several segment lists, for example some or all segment lists of a candidate path or SR policy, if an operator wants to aggregate them.
How the PSID is signaled between the egress node, the ingress node and possibly a central controller is out of scope for this document.
Each last stop hands out its own numbered tickets, and a ticket only means something at that stop. One ticket can even cover several similar routes if the bus company wants.
§3Where the PSID Goes in the Label Stack
The ingress node inserts the PSID so that it MUST immediately follow the last label of the SR path, meaning after the adjacency, node or prefix segment that points to the egress node. As a result the PSID is never the top label at an intermediate node, though it can be the top label on the penultimate node.
- The TTL of the label stack entry can be any value except
0. - If the PSID is the bottom label, the S bit
MUSTbe set; otherwise the S bitMUSTbe0. - The egress node
MUSTpop the PSID andMAYuse it for further processing, such as triggering packet counting or timestamping when performance measurement is on.
Reading the extra label may affect forwarding performance. Behavior when an explicit null label directly precedes the PSID is undefined here. The Maximum SID Depth (MSD) that a node can impose counts the PSID among the total MPLS labels. If a Generic Associated Channel Label is used for OAM, the Associated Channel Header still comes right after the bottom of the stack.
The extra ticket goes at the very end of the list of directions, just before the parcel itself. Stops in the middle never see it on top, and the last stop tears it off.
- Label 1 ... Label nSegment labels that steer the packet along the SR path
- PSIDIdentifies the SR path at the egress node; placed after the last path label
- PayloadThe packet being carried
§4Equal-Cost Multipath Considerations
An Entropy Label (EL) and its indicator, if used, sit before the tunnel label, so they do not interfere with the PSID below them.
With ECMP, SR packets may be forwarded over several paths. The segment list then does not directly reflect the actual forwarding path, so a PSID identifies the segment list, not the physical path taken.
As with a Synonymous Flow Label, adding a PSID to an existing flow may make that flow take a different path under ECMP, which can invalidate uses such as performance measurement. The RFC says the considerations in Section 5 of RFC 8957 therefore also apply to PSIDs.
If a road splits into several equal lanes, your ticket names the route you planned, not necessarily the lane you drove in. Adding a ticket can even change which lane the packet gets sent down.
§5Use Cases
This section is informative; detailed solutions may appear in other documents.
Performance measurement. Measuring points such as the ingress and egress nodes, or a controller, can use the PSID to match packet counts and timestamps for one SR path, and so calculate loss and delay end to end. The PSID can also support active measurement with probes, in situ OAM data (RFC 9197) and in-band performance measurement.
Bidirectional paths. An SR path is unidirectional, so a bidirectional path can bind two unidirectional ones. PSIDs identify and correlate the traffic of the two directions at both ends. How to build such paths is out of scope.
1+1 path protection. In the Live-Live case the egress node must know which paths are primary and secondary, so it can forward primary packets and discard the others. This needs a path identifier unique at the egress node, which can be the Path Segment label it allocated.
The ticket number lets both ends of a trip count parcels and compare notes, pair a trip there with a trip back, and spot which of two copies sent by different routes to keep.
- Performance measurementCorrelate packet counts and timestamps from ingress and egress for one path.
- Bidirectional pathsCorrelate the traffic of two unidirectional SR paths.
- 1+1 path protectionLet the egress tell primary and secondary paths apart.
§6Nesting of PSIDs
A Binding SID (BSID) can compress a SID list by splitting an end-to-end path in a trusted domain into sub-paths, each identified by a BSID. A BSID and a PSID can be combined to monitor both sub-paths and the whole path.
The RFC's reference model has an end-to-end path from A to D across Access, Aggregation and Core subdomains, made of sub-paths A to B, B to C and C to D. The SID list of a sub-path is <SID1, SID2, ..., SIDn, s-PSID>, and the SID list of the end-to-end path is <BSID1, BSID2, ..., BSIDn, e-PSID>. Each sub-path has a BSID and an s-PSID, and the e-PSID stays at the bottom of the stack along the whole way.
A long trip can be split into legs, each with its own ticket, while one big ticket for the whole trip stays with you from start to finish.
§7Security Considerations
A PSID is a local label like a VPN label, and its processing follows the same logic as the existing MPLS data plane. Only the egress and ingress nodes of the path learn it; intermediate nodes do not.
A PSID is used inside an SR-MPLS trusted domain and must not leak outside it, so the RFC says it introduces no new threats compared with current SR-MPLS. Domain boundary routers MUST filter external traffic aimed at a label of a segment inside the domain, and that applies to a PSID too. The other considerations in Section 8.1 of RFC 8402 also apply.
Distributing a PSID from egress to ingress happens inside the trusted domain and is out of scope. This document has no IANA actions.
The ticket numbers are internal to the bus company, so the gates at the edge must turn away outsiders who try to use them.