rfc9716.original   rfc9716.txt 
Routing area S. Hegde Internet Engineering Task Force (IETF) S. Hegde
Internet-Draft Juniper Networks Inc. Request for Comments: 9716 Juniper Networks, Inc.
Intended status: Standards Track K. Arora Category: Standards Track K. Arora
Expires: 28 December 2024 Individual Contributor ISSN: 2070-1721 Individual Contributor
M. Srivastava M. Srivastava
Juniper Networks Inc. Juniper Networks, Inc.
S. Ninan S. Ninan
Ciena Ciena
N. Kumar N. Kumar
Oracle Oracle
26 June 2024 January 2025
Path Monitoring System/Head-end based MPLS Ping and Traceroute in Inter- Mechanisms for MPLS Ping and Traceroute Procedures in Inter-Domain
domain Segment Routing Networks Segment Routing Networks
draft-ietf-mpls-spring-inter-domain-oam-20
Abstract Abstract
The Segment Routing (SR) architecture leverages source routing and The Segment Routing (SR) architecture leverages source routing and
can be directly applied to the use of an MPLS data plane. An SR-MPLS can be directly applied to the use of an MPLS data plane. A Segment
network may consist of multiple IGP domains or multiple Autonomous Routing over MPLS (SR-MPLS) network may consist of multiple IGP
Systems (ASes) under the control of the same organization. It is domains or multiple Autonomous Systems (ASes) under the control of
useful to have the Label Switched Path (LSP) ping and traceroute the same organization. It is useful to have the Label Switched Path
procedures when an SR end-to-end path traverses multiple ASes or IGP (LSP) ping and traceroute procedures when an SR end-to-end path
domains. This document outlines mechanisms to enable efficient LSP traverses multiple ASes or IGP domains. This document outlines
ping and traceroute in inter-AS and inter-domain SR-MPLS networks mechanisms to enable efficient LSP ping and traceroute procedures in
through a straightforward extension to the Operations, inter-AS and inter-domain SR-MPLS networks. This is achieved through
Administration, and Maintenance (OAM) protocol, relying solely on a straightforward extension to the Operations, Administration, and
data plane forwarding for handling echo replies on transit nodes. Maintenance (OAM) protocol, relying solely on data plane forwarding
for handling echo replies on transit nodes.
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 28 December 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/rfc9716.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2025 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. Definition of Domain . . . . . . . . . . . . . . . . . . 5 1.1. Definition of Domain
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 5 1.2. Requirements Language
2. Inter-domain Networks with Multiple IGPs . . . . . . . . . . 5 2. Inter-Domain Networks with Multiple IGPs
3. Reply Path TLV . . . . . . . . . . . . . . . . . . . . . . . 6 3. Reply Path TLV
4. Segment Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . 7 4. Segment Sub-TLV
4.1. Type-A: SID only, in the form of MPLS Label . . . . . . . 7 4.1. Type-A: SID Only, in the Form of an MPLS Label
4.2. Type-C: IPv4 Node Address with Optional SID for 4.2. Type-C: IPv4 Node Address with an Optional SID for SR-MPLS
SR-MPLS . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3. Type-D: IPv6 Node Address with an Optional SID for SR-MPLS
4.3. Type D: IPv6 Node Address with Optional SID for SR 4.4. Segment Flags
MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5. Detailed Procedures
4.4. Segment Flags . . . . . . . . . . . . . . . . . . . . . . 11 5.1. Sending an Echo Request
5. Detailed Procedures . . . . . . . . . . . . . . . . . . . . . 11 5.2. Receiving an Echo Request
5.1. Sending an Echo Request . . . . . . . . . . . . . . . . . 11 5.3. Sending an Echo Reply
5.2. Receiving an Echo Request . . . . . . . . . . . . . . . . 12 5.4. Receiving an Echo Reply
5.3. Sending an Echo Reply . . . . . . . . . . . . . . . . . . 12 5.5. Building a Reply Path TLV Dynamically
5.4. Receiving an Echo Reply . . . . . . . . . . . . . . . . . 13 5.5.1. Procedures to Build the Return Path
5.5. Building Reply Path TLV Dynamically . . . . . . . . . . . 13 6. Security Considerations
5.5.1. The Procedures to Build the Return Path . . . . . . . 14 7. IANA Considerations
6. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7.1. Segment Sub-TLV
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 7.2. New Registry for Segment ID Sub-TLV Flags
7.1. Segment Sub-TLV . . . . . . . . . . . . . . . . . . . . . 16 7.3. Reply Path Return Codes Registry
7.2. New Registry for Segment Sub-TLV Flags . . . . . . . . . 16 8. References
7.3. Reply Path Return Codes Registry . . . . . . . . . . . . 17 8.1. Normative References
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 8.2. Informative References
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 Appendix A. Examples
9.1. Juniper Networks . . . . . . . . . . . . . . . . . . . . 18 A.1. Detailed Example
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 A.1.1. Procedures for Segment Routing LSP Ping
11. APPENDIX . . . . . . . . . . . . . . . . . . . . . . . . . . 18 A.1.2. Procedures for SR LSP Traceroute
11.1. Detailed Example . . . . . . . . . . . . . . . . . . . . 19 A.1.3. Procedures for Building Reply Path TLV Dynamically
11.1.1. Procedures for Segment Routing LSP ping . . . . . . 19 Acknowledgments
11.1.2. Procedures for SR LSP traceroute . . . . . . . . . . 20 Contributors
11.1.3. Procedures for building Reply Path TLV Authors' Addresses
dynamically . . . . . . . . . . . . . . . . . . . . . 23
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 24
12.1. Normative References . . . . . . . . . . . . . . . . . . 24
12.2. Informative References . . . . . . . . . . . . . . . . . 24
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction 1. Introduction
Many network deployments have built their networks consisting of Many network deployments have built their networks consisting of
multiple ASes either for the ease of operations or as a result of multiple ASes either for the ease of operations or as a result of
network mergers and acquisitions. SR can be deployed in such network mergers and acquisitions. SR can be deployed in such
scenarios to provide end-to-end paths, traversing multiple Autonomous scenarios to provide end-to-end paths, traversing multiple Autonomous
systems (ASes). Systems (ASes).
[RFC8660] specifies SR with an MPLS data plane. [RFC8402] describes [RFC8660] specifies SR with an MPLS data plane. [RFC8402] describes
BGP Peering Segments, and [RFC9087] describes Centralized BGP Egress BGP peering segments, and [RFC9087] describes centralized BGP Egress
Peer Engineering, which will help in steering packets from one AS to Peer Engineering, which will help in steering packets from one AS to
another. By utilizing these SR capabilities, it is possible to another. By utilizing these SR capabilities, it is possible to
create paths that span multiple ASes. create paths that span multiple ASes.
+----------------+ +----------------+
| Controller/PMS | | Controller/PMS |
+----------------+ +----------------+
|---AS1-----| |------AS2------| |----AS3---| |---AS1-----| |----AS2----| |----AS3---|
ASBR2----ASBR3 ASBR5------ASBR7 ASBR2----ASBR3 ASBR5------ASBR7
/ \ / \ / \ / \
/ \ / \ / \ / \
PE1----P1---P2 P3---P4---PE4 P5---P6--PE5 PE1----P1---P2 P3---P4---PE4 P5---P6--PE5
\ / \ / \ / \ /
\ / \ / \ / \ /
ASBR1----ASBR4 ASBR6------ASBR8 ASBR1----ASBR4 ASBR6------ASBR8
Autonomous System: AS1, AS2, AS3 Figure 1: Inter-AS Segment Routing Topology
Provider Edge: PE1, PE4, PE5
Provider: P1, P2, P3, P4, P5, P6
AS Boundary Router: ASBR1, ASBR2, ASBR3, ASBR4,
ASBR5, ASBR6, ASBR7, ASBR8
Figure 1: Inter-AS Segment Routing Topology Autonomous System: AS1, AS2, AS3
Provider Edge: PE1, PE4, PE5
Provider: P1, P2, P3, P4, P5, P6
Autonomous System Boundary Router: ASBR1, ASBR2, ASBR3, ASBR4,
ASBR5, ASBR6, ASBR7, ASBR8
For example, Figure 1 describes an inter-AS network scenario For example, Figure 1 describes an inter-AS network scenario
consisting of ASes AS1, AS2 and AS3. AS1, AS2, and AS3 are SR consisting of ASes AS1, AS2, and AS3. AS1, AS2, and AS3 are SR
enabled and the egress links have PeerNode SID/PeerAdj SID/ PeerSet enabled, and the egress links have the following Segment Identifiers
SID configured and advertised via [RFC9086]. PeerNode SID/PeerAdj (SIDs) configured and advertised via [RFC9086]: PeerNode SID, PeerAdj
SID/PeerSet SID are referred to as Egress Peer Engineering SIDs (EPE- SID, and PeerSet SID. The PeerNode SID, PeerAdj SID, and PeerSet SID
SIDs) in this document. The controller or the head-end can build an are referred to as Egress Peer Engineering SIDs (EPE-SIDs) in this
end-to-end Traffic-Engineered path consisting of Node-SIDs, document. The controller or the head-end can build an end-to-end
Adjacency-SIDs, and EPE-SIDs. It is useful for operators to be able traffic-engineered path consisting of Node-SIDs, Adjacency-SIDs, and
to perform LSP ping and traceroute procedures on these inter-AS SR- EPE-SIDs. It is useful for operators to be able to perform LSP ping
MPLS paths, to detect and diagnose failed deliveries and to determine and traceroute procedures on these inter-AS SR-MPLS paths, to detect
the actual path that traffic takes through the network. LSP ping/ and diagnose failed deliveries, and to determine the actual path that
traceroute procedures use IP connectivity for echo reply to reach the traffic takes through the network. LSP ping and traceroute
head-end. In inter-AS networks, IP connectivity may not be there procedures use IP connectivity for echo replies to reach the head-
from each router in the path. For example, in Figure 1, P3 and P4 end. In inter-AS networks, IP connectivity may not be there from
may not have IP connectivity for PE1. each router in the path. For example, in Figure 1, P3 and P4 may not
have IP connectivity for PE1.
It is not always possible to carry out LSP ping and traceroute It is not always possible to carry out LSP ping and traceroute
functionality on these paths to verify basic connectivity and fault functionality on these paths to verify basic connectivity and fault
isolation using existing LSP ping and traceroute mechanisms([RFC8287] isolation using existing LSP ping and traceroute mechanisms (see
and [RFC8029]). That is because there might not always be IP [RFC8287] and [RFC8029]). That is because there might not always be
connectivity from a responding node back to the source address of the IP connectivity from a responding node back to the source address of
ping packet when the responding node is in a different AS from the the ping packet when the responding node is in a different AS from
source of the ping. the source of the ping.
[RFC8403] describes mechanisms to carry out MPLS ping/traceroute from [RFC8403] describes mechanisms to carry out MPLS ping and traceroute
a Path Monitoring System (PMS). It is possible to build GRE tunnels from a Path Monitoring System (PMS). It is possible to build GRE
or static routes to each router in the network to get IP connectivity tunnels or static routes to each router in the network to get IP
for the reverse path. This mechanism is operationally very heavy and connectivity for the reverse path. This mechanism is operationally
requires the PMS to be capable of building a huge number of GRE very heavy and requires the PMS to be capable of building a huge
tunnels or installing the necessary static routes, which may not be number of GRE tunnels or installing the necessary static routes,
feasible. which may not be feasible.
[RFC7743] describes an Echo-relay based solution based on advertising [RFC7743] describes an Echo-relay-based solution that is predicated
a new Relay Node Address Stack TLV containing a stack of Echo-relay on advertising a new Relay Node Address Stack TLV containing a stack
IP addresses. These mechanisms can be applied to SR networks as of Echo-relay IP addresses. These mechanisms can be applied to SR
well. The [RFC7743] mechanism requires the return ping packet to be networks as well. The mechanism from [RFC7743] requires the return
processed on the slow path or as a bump-in-the-wire on every relay ping packet to be processed on the slow path or as a bump-in-the-wire
node. The motivation of the current document is to provide an on every relay node. The motivation of the current document is to
alternate mechanism for ping/traceroute in inter-domain SR networks. provide an alternate mechanism for ping and traceroute in inter-
The definition of the term "domain" as applicable to this document is domain SR networks. The definition of the term "domain" as
defined in Section 1.1. applicable to this document is defined in Section 1.1.
This document describes a new mechanism that is efficient and simple This document describes a new mechanism that is efficient and simple
and can be easily deployed in SR-MPLS networks. This mechanism uses and can be easily deployed in SR-MPLS networks. This mechanism uses
MPLS paths and no changes are required in the forwarding path. Any MPLS paths, and no changes are required in the forwarding path. Any
MPLS-capable node will be able to forward the echo-reply packet in MPLS-capable node will be able to forward the echo-reply packet in
the fast path. The current document describes a mechanism that uses the fast path. The current document describes a mechanism that uses
the Reply Path TLV [RFC7110] to convey the reverse path. Three new the Reply Path TLV [RFC7110] to convey the reverse path. Three new
sub-TLVs are defined for the Reply path TLV that facilitate encoding sub-TLVs are defined for the Reply Path TLV that facilitate encoding
SR label stack. The return path can either be derived by a smart SR label stacks. The return path can either be derived by a smart
application or a controller that has a full topology view or end-to- application or a controller that has a full topology view or end-to-
end view of a section of the topology. This document also proposes end view of a section of the topology. This document also proposes
mechanisms to derive the return path dynamically during traceroute mechanisms to derive the return path dynamically during traceroute
procedures. procedures.
This document focuses on the inter-domain use case. The protocol This document focuses on the inter-domain use case. The protocol
extensions described may also indicate the return path for other use extensions described may also indicate the return path for other use
cases, which are outside the scope of this document and are not cases, which are outside the scope of this document and are not
further detailed here. The SRv6 data plane is also not covered in further detailed here. The SRv6 data plane is also not covered in
this document this document.
1.1. Definition of Domain 1.1. Definition of Domain
In this document, the term "domain" refers to an IGP domain where In this document, the term "domain" refers to an IGP domain where
every node is visible to every other node for the purpose of shortest every node is visible to every other node for the purpose of shortest
path computation, implying an IGP area or level. An Autonomous path computation, implying an IGP area or level. An Autonomous
System (AS) comprises one or more IGP domains. The procedures System (AS) comprises one or more IGP domains. The procedures
described herein are applicable to paths constructed across multiple described herein are applicable to paths constructed across multiple
domains, including both inter-area and inter-AS paths. These domains, including both inter-area and inter-AS paths. These
procedures and deployment scenarios are relevant for inter-AS paths procedures and deployment scenarios are relevant for inter-AS paths
where the participating ASes are under closely coordinating where the participating ASes are under closely coordinating
administrations or single ownership. This document pertains to SR- administrations or single ownership. This document pertains to SR-
MPLS networks where all nodes within each domain are SR-capable. It MPLS networks where all nodes within each domain are SR capable. It
also applies to SR-MPLS networks where SR functions as an overlay also applies to SR-MPLS networks where SR functions as an overlay
with SR-incapable underlay nodes. In such networks, the traceroute with SR-incapable underlay nodes. In such networks, the traceroute
procedure is executed only on the overlay SR nodes. procedure is executed only on the overlay SR nodes.
1.2. Requirements Language 1.2. 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 BCP "OPTIONAL" in this document are to be interpreted as described in
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.
2. Inter-domain Networks with Multiple IGPs 2. Inter-Domain Networks with Multiple IGPs
When the network consists of a large number of nodes, the nodes are When the network consists of a large number of nodes, the nodes are
segregated into multiple IGP domains as shown in Figure 2. The segregated into multiple IGP domains as shown in Figure 2. The
connectivity to the remote PEs can be achieved using BGP-Labeled connectivity to the remote PEs can be achieved by BGP advertisements
Unicast (BGP-LU) [RFC8277] or by stacking the labels for each domain with an MPLS label bound to the prefix as described in [RFC8277] or
as described in [RFC8604]. by building paths using a list of segments as described in [RFC8604].
|-Domain 1|-------Domain 2-----|--Domain 3-| |-Domain 1|-------Domain 2-----|--Domain 3-|
PE1------ABR1--------P--------ABR2------PE4 PE1------ABR1--------P--------ABR2------PE4
\ / \ /\ / \ / \ /\ /
-------- ----------------- ------- -------- ----------------- -------
BGP-LU BGP-LU BGP-LU BGP-LU BGP-LU BGP-LU
Figure 2: Inter-domain Networks with Multiple IGPs Figure 2: Inter-Domain Networks with Multiple IGPs
It is useful to support MPLS ping and traceroute mechanisms for these It is useful to support MPLS ping and traceroute mechanisms for these
networks. The procedures described in this document for constructing networks. The procedures described in this document for constructing
Reply Path TLV and its use in echo reply are equally applicable to the Reply Path TLV and its use in echo replies are equally applicable
networks consisting of multiple IGP domains that use BGP-LU or label to networks consisting of multiple IGP domains that use BGP-Labeled
stacking. Unicast (BGP-LU) or label stacking.
3. Reply Path TLV 3. Reply Path TLV
Reply Path (RP) TLV is defined in [RFC7110]. SR networks statically The Reply Path (RP) TLV is defined in [RFC7110]. SR networks
assign the labels to nodes and a PMS/head-end may know the entire statically assign the labels to nodes, and a PMS/head-end may know
Link State Database (LSDB) along with assigned SIDs. The reverse the entire Link State Database (LSDB) along with assigned SIDs. The
path can be built from the PMS/head-end by stacking segments for the reverse path can be built from the PMS/head-end by stacking segments
reverse path. Reply Path TLV as defined in [RFC7110] is used to for the reverse path. The Reply Path TLV as defined in [RFC7110] is
carry the return path. Reply mode 5, Reply via Specified Path is used to carry the return path. Reply Mode 5 (Reply via Specified
defined in section 4.1 of [RFC7110]. While using the procedures Path) is defined in Section 4.1 of [RFC7110]. While using the
described in this document, the reply mode is set to 5 (Reply via procedures described in this document, the Reply Mode is set to 5
Specified Path), and Reply Path TLV is included in the echo request (Reply via Specified Path), and the Reply Path TLV is included in the
message as described in [RFC7110]. The Reply Path TLV is constructed echo request message as described in [RFC7110]. The Reply Path TLV
as per Section 4.2 of [RFC7110]. This document defines three new is constructed as per Section 4.2 of [RFC7110]. This document
sub-TLVs to encode the SR path. defines three new sub-TLVs to encode the SR Path.
The type of segment that the head-end chooses to send in the Reply The type of segment that the head-end chooses to send in the Reply
Path TLV is governed by local policy. Implementations may provide Path TLV is governed by local policy. Implementations may provide
Command Line Interface (CLI) input parameters in the form of Labels/ Command Line Interface (CLI) input parameters in the form of labels,
IPv4 addresses/IPv6 addresses or a combination of these which get IPv4 addresses, IPv6 addresses, or a combination of these, which get
encoded in the Reply Path TLV. Implementations may also provide encoded in the Reply Path TLV. Implementations may also provide
mechanisms to acquire the LSDB of remote domains and compute the mechanisms to acquire the LSDB of remote domains and compute the
return path based on the acquired LSDB. For traceroute purposes, the return path based on the acquired LSDB. For traceroute purposes, the
return path will have to consider the reply being sent from every return path will have to consider the reply being sent from every
node along the path. The return path changes when the traceroute node along the path. The return path changes when the traceroute
progresses and crosses each domain. One of the ways this can be progresses and crosses each domain. One of the ways this can be
implemented on the head-end is to acquire the entire LSDB (of all implemented on the head-end is to acquire the entire LSDB (of all
domains) and build a return path for every node along the SR-MPLS domains) and build a return path for every node along the SR-MPLS
path based on the knowledge of the LSDB. Another mechanism is to use path based on the knowledge of the LSDB. Another mechanism is to use
a dynamically computed return path as described in Section 5.5 a dynamically computed return path as described in Section 5.5.
Some networks may consist of IPv4-only domains and IPv6-only domains. Some networks may consist of IPv4-only domains and IPv6-only domains.
Handling end-to-end MPLS OAM for such networks is out of the scope of Handling end-to-end MPLS OAM for such networks is out of the scope of
this document. It is recommended to use dual-stack in such cases and this document. It is recommended to use dual-stack in such cases and
use end-to-end IPv6 addresses for MPLS ping and traceroute use end-to-end IPv6 addresses for MPLS ping and traceroute
procedures. procedures.
4. Segment Sub-TLV 4. Segment Sub-TLV
Section 4 of [RFC9256] defines various segment types. The types of Section 4 of [RFC9256] defines various Segment Types. The types of
segments applicable to this document have been defined in this segments applicable to this document have been defined in this
section for the use of MPLS OAM. The intention was to keep the section for the use of MPLS OAM. The intention was to keep the
definitions as close to those in [RFC9256] as possible with definitions as close to those in [RFC9256] as possible, with
modifications only when needed. One or more Segment sub-TLVs can be modifications only when needed. One or more Segment sub-TLVs can be
included in the Reply Path TLV. The Segment sub-TLVs included in a included in the Reply Path TLV. The Segment sub-TLVs included in a
Reply Path TLV MAY be of different types. Reply Path TLV MAY be of different types.
The below types of Segment sub-TLVs apply to the Reply Path TLV. The The below types of Segment sub-TLVs apply to the Reply Path TLV. The
code points for the sub-TLVs are taken from the IANA registry common code points for the sub-TLVs are taken from the IANA registry common
to TLVs 1, 16, and 21. This document defines the Type-A, Type-C, and to TLVs 1, 16, and 21. This document defines the usage and
Type-D Segment sub-TLVs usage and processing when it appears in TLV processing of the Type-A, Type-C, and Type-D Segment sub-TLVs when
21(Reply Path TLV). If these sub-TLVs appear in TLVs 1 or 16, they appear in TLV 21 (Reply Path TLV). If these sub-TLVs appear in
appropriate error codes MUST be returned as defined in [RFC8029]. TLVs 1 or 16, appropriate error codes MUST be returned as defined in
[RFC8029].
Type-A: SID only, in the form of MPLS Label Type-A: SID only, in the form of an MPLS label
Type-C: IPv4 Node Address with optional SID Type-C: IPv4 Node Address with an optional SID
Type-D: IPv6 Node Address with optional SID for SR MPLS Type-D: IPv6 Node Address with an optional SID for SR-MPLS
4.1. Type-A: SID only, in the form of MPLS Label 4.1. Type-A: SID Only, in the Form of an MPLS Label
The Type A Segment Sub-TLV encodes a single SID in the form of an The Type-A Segment sub-TLV encodes a single SID in the form of an
MPLS label. The format is as follows: MPLS label. The format is as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | RESERVED | | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL | | Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Type-A Segment Sub-TLV Figure 3: Type-A Segment Sub-TLV
where: Where:
Type: 2 octects. Carries value TBD1(to be assigned by IANA from the Type: 2 octets. Carries value 46 (assigned by IANA from the "Sub-
registry "Sub-TLVs for TLV Types 1, 16, and 21"). TLVs for TLV Types 1, 16, and 21" registry).
Length: 2 octets. Carries value 8. The length value excludes the Length: 2 octets. Carries value 8. The length value excludes the
length of the Type and Length Fields. length of the Type and Length fields.
Flags: 1 octet of flags as defined in Section 4.4. Flags: 1 octet of flags as defined in Section 4.4.
RESERVED: 3 octets of reserved bits. MUST be set to zero when RESERVED: 3 octets of reserved bits. MUST be set to zero when
sending; MUST be ignored on receipt. sending; MUST be ignored on receipt.
Label: 20 bits of label value. Label: 20 bits of label value.
TC: 3 bits of traffic class. If the originator wants the receiver to TC: 3 bits of Traffic Class (TC). If the originator wants the
choose the TC value, it MUST set the Traffic Class (TC) field to receiver to choose the TC value, it MUST set the TC field to zero.
zero.
S: 1 bit Reserved.The S bit MUST be zero upon transmission, and MUST S: 1 bit Reserved. The S bit MUST be zero upon transmission and
be ignored upon reception. MUST be ignored upon reception.
TTL: 1 octet of TTL. If the originator wants the receiver to choose TTL: 1 octet of TTL. If the originator wants the receiver to choose
the TTL value, it MUST set the TTL field to 255. the TTL value, it MUST set the TTL field to 255.
The label, TC, S, and TTL collectively referred to as SID. The labels, TC, S, and TTL are collectively referred to as a SID.
The following applies to the Type-A Segment sub-TLV: The following applies to the Type-A Segment sub-TLV:
The receiver MAY override the originator's values for these fields. The receiver MAY override the originator's values for these fields.
This would be determined by local policy at the receiver. One This would be determined by local policy at the receiver. One
possible policy would be to override the fields only if the fields possible policy would be to override the fields only if the fields
have the default values specified above. have the default values specified above.
4.2. Type-C: IPv4 Node Address with Optional SID for SR-MPLS 4.2. Type-C: IPv4 Node Address with an Optional SID for SR-MPLS
The Type-C Segment sub-TLV encodes an IPv4 node address, SR The Type-C Segment sub-TLV encodes an IPv4 Node Address, SR
Algorithm, and an optional SID in the form of an MPLS label. The Algorithm, and an optional SID in the form of an MPLS label. The
format is as follows: format is as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | RESERVED (MBZ) | SR Algorithm | | Flags | RESERVED (MBZ) | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Type-C Segment Sub-TLV Figure 4: Type-C Segment Sub-TLV
where: Where:
Type: TBD2 (to be assigned by IANA from the registry "Sub-TLVs for Type: 47 (assigned by IANA from the "Sub-TLVs for TLV Types 1, 16,
TLV Types 1, 16, and 21"). and 21" registry).
Length: 2 octets. Caries value 8 when no optional SID is included or Length: 2 octets. Carries value 8 when no optional SID is included
value 12 when optional SID is included. or value 12 when the optional SID is included.
Flags: 1 octet of flags as defined in Section 4.4. Flags: 1 octet of flags as defined in Section 4.4.
RESERVED: 2 octets of reserved bits. MUST be set to zero when RESERVED: 2 octets of reserved bits. MUST be set to zero when
sending; MUST be ignored on receipt. sending; MUST be ignored on receipt.
SR Algorithm: 1 octet specifying SR Algorithm as described in section SR Algorithm: 1 octet. When the A-Flag (as defined in Section 4.4)
3.1.1 in [RFC8402] or Flexible algorithm as defined in [RFC9350], is present, this specifies the SR Algorithm as described in
when A-Flag as defined in Section 4.4 is present. SR Algorithm is Section 3.1.1 of [RFC8402] or the Flexible Algorithm as defined in
used by the receiver to derive the Label. When A-flag is unset, this [RFC9350]. The SR Algorithm is used by the receiver to derive the
field has no meaning and thus MUST be set to zero on transmission and label. When the A-Flag is unset, this field has no meaning and
ignored on receipt. thus MUST be set to zero (MBZ) on transmission and ignored on
receipt.
IPv4 Node Address: 4-octet IPv4 address representing a node. The IPv4 Node Address: 4-octet IPv4 address representing a node. The
IPv4 Node Address MUST be present. It should be a stable address IPv4 Node Address MUST be present. It should be a stable address
belonging to the node (eg:loopback address). belonging to the node (e.g., loopback address).
SID: optional: 4-octet field containing label, TC, S and TTL as SID: Optional 4-octet field containing the labels TC, S, and TTL as
defined in Section 4.1. When the SID field is present, it MUST be defined in Section 4.1. When the SID field is present, it MUST be
used for constructing the Reply Path. used for constructing the Reply Path.
4.3. Type D: IPv6 Node Address with Optional SID for SR MPLS 4.3. Type-D: IPv6 Node Address with an Optional SID for SR-MPLS
The Type-D Segment sub-TLV encodes an IPv6 node address, SR Algorithm The Type-D Segment sub-TLV encodes an IPv6 Node Address, SR
and an optional SID in the form of an MPLS label. The format is as Algorithm, and an optional SID in the form of an MPLS label. The
follows: format is as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | RESERVED(MBZ) | SR Algorithm | | Flags | RESERVED (MBZ) | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) // // IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Type-D Segment Sub-TLV Figure 5: Type-D Segment Sub-TLV
where: Where:
Type: TBD3 (to be assigned by IANA from the registry "Sub-TLVs for Type: 48 (assigned by IANA from the "Sub-TLVs for TLV Types 1, 16,
TLV Types 1, 16, and 21"). and 21" registry).
Length: 2 Octets. Caries value 20 when no optional SID is included Length: 2 octets. Carries value 20 when no optional SID is included
or value 24 when optional SID is included. or value 24 when the optional SID is included.
Flags: 1 octet of flags as defined in Section 4.4. Flags: 1 octet of flags as defined in Section 4.4.
RESERVED: 2-octets of reserved bits. MUST be set to zero when RESERVED: 2 octets of reserved bits. MUST be set to zero when
sending; MUST be ignored on receipt. sending; MUST be ignored on receipt.
SR Algorithm: 1 octet specifying SR-Algorithm as described in section SR Algorithm: 1 octet. When the A-Flag (as defined in Section 4.4)
3.1.1 in [RFC8402] or Flexible algorithm as defined in [RFC9350], is present, this specifies the SR Algorithm as described in
when A-Flag as defined in Section 4.4 is present. SR-Algorithm is Section 3.1.1 of [RFC8402] or the Flexible Algorithm as defined in
used by the receiver to derive the label. When A-flag is unset, this [RFC9350]. The SR Algorithm is used by the receiver to derive the
field has no meaning and thus MUST be set to zero (MBZ) on label. When the A-Flag is unset, this field has no meaning and
transmission and ignored on receipt. thus MUST be set to zero (MBZ) on transmission and ignored on
receipt.
IPv6 Node Address: 16-octet IPv6 address of one interface of a node. IPv6 Node Address: 16-octet IPv6 address of one interface of a node.
The IPv6 Node Address MUST be present. It should be a stable address The IPv6 Node Address MUST be present. It should be a stable
belonging to the node (eg:loopback address). address belonging to the node (e.g., loopback address).
SID: optional: 4-octet field containing label, TC, S and TTL as SID: Optional 4-octet field containing the labels TC, S, and TTL as
defined in Section 4.1. The SID is optional and specifies a 4-octet defined in Section 4.1. When the SID field is present, it MUST be
MPLS SID containing label, TC, S, and TTL as defined in Section 4.1. used for constructing the Reply Path.
When the SID field is present, it MUST be used for constructing the
Reply Path.
4.4. Segment Flags 4.4. Segment Flags
The Segment Types described above contain the following flags in the The Segment Types described above contain the following flags in the
"Flags" field (codes to be assigned by IANA from the new registry Flags field (codes assigned by IANA from the "Segment ID Sub-TLV
"Segment Sub-TLV Flags"): Flags" registry):
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| |A| | | | | | | | |A| | | | | | |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 6: Flags Figure 6: Flags
where: Where:
A-Flag: This flag indicates the presence of SR Algorithm ID in the A-Flag: This flag indicates the presence of an SR Algorithm ID in
"SR-Algorithm" field applicable to various segment Types. the SR Algorithm field applicable to various Segment Types.
Unused bits in the Flag octet MUST be set to zero upon transmission Unused bits in the Flag octet MUST be set to zero upon transmission
and MUST be ignored upon receipt. and MUST be ignored upon receipt.
The following applies to the Segment Flags: The following applies to the Segment Flags:
A-Flag applies to Segment Type-C and Type-D. If A-Flag appears with The A-Flag applies to Segment Type-C and Type-D. If the A-Flag
Type-A Segment Type, it MUST be ignored. appears with the Type-A Segment Type, it MUST be ignored.
5. Detailed Procedures 5. Detailed Procedures
This section uses the term "initiator" for the node that initiates This section uses the term "initiator" for the node that initiates
the MPLS ping or MPLS traceroute procedure. The term "responder" is the MPLS ping or the MPLS traceroute procedure. The term "responder"
used for the node that receives the echo request and sends the echo is used for the node that receives the echo request and sends the
reply. The term egress node is used to identify the last node where echo reply. The term "egress node" is used to identify the last node
the MPLS ping or traceroute is destined to. In an MPLS network any where the MPLS ping or traceroute is destined to. In an MPLS
node can be initiator or responder or egress. network, any node can be an initiator, responder, or egress.
5.1. Sending an Echo Request 5.1. Sending an Echo Request
In the inter-AS scenario, the procedures outlined in this document In the inter-AS scenario, the procedures outlined in this document
are employed to specify the return path when IP connectivity to the are employed to specify the return path when IP connectivity to the
initiator is unavailable. These procedures may also be utilized initiator is unavailable. These procedures may also be utilized
regardless of the availability of IP connectivity. The LSP ping regardless of the availability of IP connectivity. The LSP ping
initiator MUST set the Reply Mode of the echo request to 5 "Reply via initiator MUST set the Reply Mode of the echo request to 5 (Reply via
Specified Path", and a Reply Path TLV MUST be carried in the echo Specified Path), and a Reply Path TLV MUST be carried in the echo
request message correspondingly. The Reply Path TLV MUST contain the request message correspondingly. The Reply Path TLV MUST contain the
SR Path in the reverse direction encoded as an ordered list of SR Path in the reverse direction encoded as an ordered list of
segments. The first segment MUST correspond to the top segment in segments. The first segment MUST correspond to the top segment in
the MPLS header that the responder MUST use while sending the echo the MPLS header that the responder MUST use while sending the echo
reply. reply.
5.2. Receiving an Echo Request 5.2. Receiving an Echo Request
As described in [RFC7110], when Reply mode is set to 5 (Reply via As described in [RFC7110], when the Reply Mode is set to 5 (Reply via
Specified Path), the echo request must contain the Reply path TLV. Specified Path), the echo request must contain the Reply Path TLV.
Absence of Reply Path TLV is treated as a malformed echo request. The absence of the Reply Path TLV is treated as a malformed echo
When an echo request is received, if the responder does not support request. When an echo request is received, if the responder does not
the Reply Mode 5 defined in [RFC7110], an echo reply with the return support the Reply Mode 5 defined in [RFC7110], an echo reply with the
code set to "Malformed echo request received" and the Subcode set to Return Code set to "Malformed echo request received" and the Subcode
zero must be sent back to the initiator according to the rules of set to zero must be sent back to the initiator according to the rules
[RFC8029]. If the echo request message contains a malformed Segment of [RFC8029]. If the echo request message contains a malformed
sub-TLV, such as incorrect length field, an echo reply with return Segment sub-TLV, such as an incorrect length field, an echo reply
code set to "Malformed echo request received" and the Subcode set to must be sent back to the initiator with the Return Code set to
zero must be sent back to the initiator. "Malformed echo request received" and the Subcode set to zero.
When a Reply Path TLV is received, the responder that supports When a Reply Path TLV is received, the responder that supports
processing it, MUST use the segments in Reply Path TLV to build the processing it MUST use the segments in Reply Path TLV to build the
echo reply. The responder MUST follow the normal FEC validation echo reply. The responder MUST follow the normal Forwarding
procedures as described in [RFC8029] and [RFC8287] and this document Equivalence Class (FEC) validation procedures as described in
does not suggest any change to those procedures. When the echo reply [RFC8029] and [RFC8287] and this document does not suggest any change
has to be sent out the Reply Path TLV MUST be used to construct the to those procedures. When the echo reply has to be sent out, the
MPLS packet to send out. Reply Path TLV MUST be used to construct the MPLS packet to send out.
5.3. Sending an Echo Reply 5.3. Sending an Echo Reply
The echo reply message is sent as an MPLS packet with an MPLS label The echo reply message is sent as an MPLS packet with an MPLS label
stack. The echo reply message MUST be constructed as described in stack. The echo reply message MUST be constructed as described in
the [RFC8029]. An MPLS packet is constructed with an echo reply in [RFC8029]. An MPLS packet is constructed with an echo reply in the
the payload. The top label MUST be constructed from the first payload. The top label MUST be constructed from the first segment of
segment of the Reply Path TLV. The remaining labels MUST be the Reply Path TLV. The remaining labels MUST be constructed by
constructed by following the order of the segments from the Reply following the order of the segments from the Reply Path TLV. The
Path TLV. The MPLS header of the Echo Reply MUST be constructed from MPLS header of the echo reply MUST be constructed from the segments
the segments in Reply Path TLV and MUST NOT add any other label. The in the Reply Path TLV and MUST NOT add any other label. The S bit is
S bit is set for the bottom label as per MPLS specifications set for the bottom label as per the MPLS specifications [RFC3032].
[RFC3032] The responder MAY check the reachability of the top label The responder MAY check the reachability of the top label in its own
in its own Label Forwarding Information Base (LFIB) before sending Label Forwarding Information Base (LFIB) before sending the echo
the echo reply. If the top label is unreachable, the responder reply. If the top label is unreachable, the responder SHOULD send
SHOULD send the appropriate return code and follow procedures as per the appropriate Return Code and follow the procedures as per
section 5.2 of [RFC7110]. The exception case is when the responder Section 5.2 of [RFC7110]. The exception case is when the responder
does not have IP reachability to the originator, in which case it may does not have IP reachability to the originator, in which case, it
not be possible to send an Echo Reply at all. Even if sent (for may not be possible to send an echo reply at all. Even if sent (by
example by following a default route present on the responder), the following a default route present on the responder, for example), the
Echo Reply might not reach the originator. The node MAY provide echo reply might not reach the originator. The node MAY provide
necessary log information in case of unreachability. In certain necessary log information in case of unreachability. In certain
scenarios, the head-end MAY choose to send Type-C/Type-D segments scenarios, the head-end MAY choose to send Type-C/Type-D segments
consisting of IPv4 addresses or IPv6 addresses, when it is unable to consisting of IPv4 addresses or IPv6 addresses when it is unable to
derive the SID from available topology information. Optionally SID derive the SID from available topology information. Optionally, the
may also be associated with the Type-C/Type-D segment, if such SID may also be associated with the Type-C/Type-D segment, if such
information is available from the controller or via operator input. information is available from the controller or via operator input.
In such cases, the node sending the echo reply MUST derive the MPLS In such cases, the node sending the echo reply MUST derive the MPLS
labels based on Node-SIDs associated with the IPv4/IPv6 addresses. labels based on the Node-SIDs associated with the IPv4/IPv6
If optional MPLS SID is present in the Type-C/Type-D segments SID addresses. If an optional MPLS SID is present in the Type-C/Type-D
MUST be used to encode the echo reply with MPLS labels. If the MPLS segments, the SID MUST be used to encode the echo reply with MPLS
SID does not match with the IPv4 or IPv6 address field in the Type-C labels. If the MPLS SID does not match with the IPv4 or IPv6 address
or Type-D SID, log information should be generated. field in the Type-C or Type-D SID, log information should be
generated.
The reply path return code is set as described in section 7.4 of The Reply Path Return Code is set as described in Section 7.4 of
[RFC7110]. According to section 5.3 of [RFC7110], the Reply Path TLV [RFC7110]. According to Section 5.3 of [RFC7110], the Reply Path TLV
is included in an echo reply indicating the specified return path is included in an echo reply indicating the specified return path
that the echo reply message is required to follow. that the echo reply message is required to follow.
When the node is configured to dynamically create a return path for When the node is configured to dynamically create a return path for
the next echo request, the procedures described in Section 5.5 MUST the next echo request, the procedures described in Section 5.5 MUST
be used. The reply path return code MUST be set to TBA1 and the same be used. The Reply Path Return Code MUST be set to 0x0006, and the
Reply Path TLV or a new Reply Path TLV MUST be included in the echo same Reply Path TLV or a new Reply Path TLV MUST be included in the
reply. echo reply.
5.4. Receiving an Echo Reply 5.4. Receiving an Echo Reply
The rules and processes defined in Section 4.6 of [RFC8029] and The rules and processes defined in Section 4.6 of [RFC8029] and
Section 5.4 of [RFC7110] apply here. In addition, if the Reply Path Section 5.4 of [RFC7110] apply here. In addition, if the Reply Path
return code is "Use Reply Path TLV in the echo reply for building the Return Code is "Use Reply Path TLV from this echo reply for building
next echo request" (defined in this document), the Reply Path TLV the next echo request" (as defined in this document), the Reply Path
from the echo Reply MUST be sent in the next echo request with TTL TLV from the echo reply MUST be sent in the next echo request with
incremented by 1. If the initiator node does not support the return the TTL incremented by 1. If the initiator node does not support the
code "Use Reply Path TLV in the echo reply for building the next echo Return Code "Use Reply Path TLV from this echo reply for building the
request", log information should be generated indicating the return next echo request", log information should be generated indicating
code and the operator may choose to specify the return path the Return Code, and the operator may choose to specify the return
explicitly or use other mechanisms to verify the SR policy. If the path explicitly or use other mechanisms to verify the SR Policy. If
return code is TBA2, "Local policy does not allow dynamic Return Path the Return Code is 0x0007 "Local policy does not allow dynamic return
building", it indicates that the intermediate node does not support path building", it indicates that the intermediate node does not
building the dynamic return path. Log information should be support building the dynamic return path. Log information should be
generated on the initiator receiving this return code and the generated on the initiator receiving this Return Code, and the
operator may choose to specify the return path explicitly or use operator may choose to specify the return path explicitly or use
other mechanisms to verify the SR Policy. If the TTL is already 255, other mechanisms to verify the SR Policy. If the TTL is already 255,
the traceroute procedure MUST be ended with an appropriate log the traceroute procedure MUST be ended with an appropriate log
message. message.
5.5. Building Reply Path TLV Dynamically 5.5. Building a Reply Path TLV Dynamically
In some cases, the head-end may not have complete visibility of In some cases, the head-end may not have complete visibility of
Inter-AS/Inter-domain topology. In such cases, it can rely on inter-AS/inter-domain topology. In such cases, it can rely on
routers in the path to build the reverse path for MPLS traceroute routers in the path to build the reverse path for MPLS traceroute
procedures. For this purpose, the Reply Path TLV in the echo reply procedures. For this purpose, the Reply Path TLV in the echo reply
corresponds to the return path to be used in building the next echo corresponds to the return path to be used in building the next echo
request. A new return code "Use Reply Path TLV in the echo reply for request. A new Return Code "Use Reply Path TLV from this echo reply
building the next echo request" is defined in this document. for building the next echo request" is defined in this document.
Value Meaning +========+=========================================+
------ ---------------------- | Value | Meaning |
TBA1 Use Reply Path TLV in the echo reply +========+=========================================+
for building the next echo request. | 0x0006 | Use Reply Path TLV from this echo reply |
| | for building the next echo request |
+--------+-----------------------------------------+
5.5.1. The Procedures to Build the Return Path Table 1
To dynamically build the return Path for the traceroute procedures, 5.5.1. Procedures to Build the Return Path
To dynamically build the return path for the traceroute procedures,
the domain border nodes along the path being traced should support the domain border nodes along the path being traced should support
the procedures described in this section. Local policy on the domain the procedures described in this section. Local policy on the domain
border nodes should determine whether the domain border node border nodes should determine whether the domain border node
participates in building the return path dynamically during participates in building the return path dynamically during
traceroute. traceroute.
The head-end/PMS node may include its node label while initiating the The head-end/PMS node may include its node label while initiating the
traceroute procedure. When an Area Border Router (ABR) receives the traceroute procedure. When an Area Border Router (ABR) receives the
echo request, if the local policy implies building a dynamic return echo request, if the local policy implies building a dynamic return
path, ABR should include its Node label in the reply path TLV and path, the ABR should include its node label in the Reply Path TLV and
send it in the echo reply. If there is a Reply Path TLV included in send it in the echo reply. If there is a Reply Path TLV included in
the received echo request message, the ABR's node label is added the received echo request message, the ABR's node label is added
before the existing segments. The type of segment added is based on before the existing segments. The type of segment added is based on
local policy. In cases when SRGB is not uniform across the network local policy. In cases when the Segment Routing Global Block (SRGB)
which can be inferred from the LSDB, it is RECOMMENDED to add a is not uniform across the network, which can be inferred from the
Type-C or a Type-D segment, but implementations MAY safely use other LSDB, it is RECOMMENDED to add a Type-C or a Type-D segment.
approaches if they see benefits in doing so. If the existing segment However, implementations MAY safely use other approaches if they see
in the Reply Path TLV is a Type-C/Type-D segment, that segment should benefits in doing so. If the existing segment in the Reply Path TLV
be converted to a Type-A segment based on the ABR's own SRGB. This is a Type-C/Type-D segment, that segment should be converted to a
is because downstream nodes in the path will not know what SRGB to Type-A segment based on the ABR's own SRGB. This is because
use to translate the IP address to a label. As the ABR added its own downstream nodes in the path will not know what SRGB to use to
Node label, it is guaranteed that this ABR will be in the return path translate the IP address to a label. As the ABR added its own node
and will be forwarding the traffic based on the next label after its label, it is guaranteed that this ABR will be in the return path and
will be forwarding the traffic based on the next label after its
label. label.
When an ASBR receives an echo request from another AS, and the ASBR When an ASBR receives an echo request from another AS, and the ASBR
is configured to build the return path dynamically, the ASBR should is configured to build the return path dynamically, the ASBR should
build a Reply Path TLV and include it in the echo reply. The Reply build a Reply Path TLV and include it in the echo reply. The Reply
Path TLV should consist of its node label and an EPE-SID to the AS Path TLV should consist of its node label and an EPE-SID to the AS
from where the traceroute message was received. A Reply path return from where the traceroute message was received. A Reply Path Return
code of TBA1 MUST be set in the echo reply to indicate that the next Code of 0x0006 MUST be set in the echo reply to indicate that the
echo request MUST use the return Path from the Reply Path TLV in the next echo request MUST use the return path from the Reply Path TLV in
echo reply. ASBR should locally decide the outgoing interface for the echo reply. ASBR should locally decide the outgoing interface
the echo reply packet. Generally, remote ASBR will choose the for the echo reply packet. Generally, remote ASBR will choose the
interface on which the incoming OAM packet was received to send the interface on which the incoming OAM packet was received to send the
echo reply out. In case the ASBR identifies multiple paths to reach echo reply out. In case the ASBR identifies multiple paths to reach
the initiator, it MUST choose to send one such path in the Reply Path the initiator, it MUST choose to send one such path in the Reply Path
TLV. Reply Path TLV is built by adding two segment sub TLVs. The TLV. The Reply Path TLV is built by adding two Segment sub-TLVs.
top segment sub TLV consists of the ASBR's Node SID and the second The top Segment sub-TLV consists of the ASBR's Node-SID, and the
segment consists of the EPE-SID in the reverse direction to reach the second segment consists of the EPE-SID in the reverse direction to
AS from which the OAM packet was received. The type of segment reach the AS from which the OAM packet was received. The type of
chosen to build Reply Path TLV is a local policy. It is recommended segment chosen to build the Reply Path TLV is a local policy. It is
to use the Type-C/Type-D segment for the top segment when the SRGB is recommended to use the Type-C/Type-D segment for the top segment when
not guaranteed to be uniform in the domain. the SRGB is not guaranteed to be uniform in the domain.
Irrespective of which type of segment is included in the Reply Path Irrespective of which type of segment is included in the Reply Path
TLV, the responder to the echo requests MUST always translate the TLV, the responder to the echo requests MUST always translate the
Reply Path TLV to a label stack and build an MPLS header for the echo Reply Path TLV to a label stack and build an MPLS header for the echo
reply packet. This procedure can be applied to an end-to-end path reply packet. This procedure can be applied to an end-to-end path
consisting of multiple ASes. Each ASBR that receives an echo request consisting of multiple ASes. Each ASBR that receives an echo request
from another AS adds its Node-SID and EPE-SID on top of the existing from another AS adds its Node-SID and EPE-SID on top of the existing
segments in the Reply Path TLV. segments in the Reply Path TLV.
An ASBR that receives the echo request from a neighbor belonging to An ASBR that receives the echo request from a neighbor belonging to
the same AS, MUST look at the Reply Path TLV received in the echo the same AS MUST look at the Reply Path TLV received in the echo
request. If the Reply Path TLV consists of a Type-C/Type-D segment, request. If the Reply Path TLV consists of a Type-C/Type-D segment,
it MUST convert the Type-C/Type-D segment to a Type-A segment by it MUST convert the Type-C/Type-D segment to a Type-A segment by
deriving a label from its own SRGB. The ASBR MUST set the reply path deriving a label from its own SRGB. The ASBR MUST set the Reply Path
return code to TBA1 and send the newly constructed Reply Path TLV in Return Code to 0x0006 and send the newly constructed Reply Path TLV
the echo reply. in the echo reply.
Internal nodes or non-domain border nodes might not set the Reply Internal nodes or non-domain border nodes might not set the Reply
Path TLV return code to TBA1 in the echo reply message as there is no Path TLV Return Code to 0x0006 in the echo reply message as there is
change in the return Path. In these cases, the head-end node/PMS no change in the return path. In these cases, the head-end node/PMS
that initiates the traceroute procedure MUST continue to send the that initiates the traceroute procedure MUST continue to send the
previously sent Reply Path TLV in the echo request message in every previously sent Reply Path TLV in the echo request message in every
subsequent echo request. subsequent echo request.
Note that an ASBR's local policy may prohibit it from participating Note that an ASBR's local policy may prohibit it from participating
in the dynamic traceroute procedures. If such an ASBR is encountered in the dynamic traceroute procedures. If such an ASBR is encountered
in the forward path, dynamic return path-building procedures will in the forward path, dynamic return path building procedures will
fail. In such cases, an ASBR that supports this document MUST set fail. In such cases, an ASBR that supports this document MUST set
the return code TBA2 to indicate local policies do not allow the the Return Code to 0x0007 to indicate that local policies do not
dynamic return path building. allow the dynamic return path building.
Value Meaning +========+==========================================================+
------ --------------------------------------------------- | Value | Meaning |
TBA2 Local policy does not allow dynamic Return Path +========+==========================================================+
building. | 0x0007 | Local policy does not allow |
| | dynamic return path building |
+--------+----------------------------------------------------------+
Table 2
6. Security Considerations 6. Security Considerations
The procedures described in this document enable LSP ping and The procedures described in this document enable LSP ping and
traceroute to be executed across multiple IGP domains or multiple traceroute procedures to be executed across multiple IGP domains or
ASes that belong to the same administration or closely cooperating multiple ASes that belong to the same administration or closely
administrations. It is assumed that sharing domain internal cooperating administrations. It is assumed that sharing domain
information across such domains does not pose a security risk. internal information across such domains does not pose a security
However, procedures described in this document may be used by an risk. However, the procedures described in this document may be used
attacker to extract the domain's internal information. An operator by an attacker to extract the domain's internal information. An
MUST deploy appropriate filter policies as described in [RFC8029] to operator MUST deploy appropriate filter policies as described in
restrict the LSP ping/traceroute packets based on origin. It is also [RFC8029] to restrict the LSP ping and traceroute packets based on
RECOMMENDED that an operator deploy security mechanisms such as origin. It is also RECOMMENDED that an operator deploy security
MACsec [IEEE-802.1AE] on inter-domain links or security-vulnerable mechanisms such as Media Access Control Security (MACsec)
links to prevent spoofing attacks. [IEEE-802.1AE] on inter-domain links or security-vulnerable links to
prevent spoofing attacks.
All the security considerations defined in [RFC8029] will be All the security considerations defined in [RFC8029] will be
applicable for this document. Appropriate filter policies SHOULD be applicable for this document. Appropriate filter policies SHOULD be
applied at the edges to prevent attackers from getting into the applied at the edges to prevent attackers from getting into the
network. In the event of such a security breach, the network devices network. In the event of such a security breach, the network devices
MUST have mechanisms to prevent Denial-of-service attacks as MUST have mechanisms to prevent denial-of-service attacks as
described in [RFC8029]. described in [RFC8029].
7. IANA Considerations 7. IANA Considerations
7.1. Segment Sub-TLV 7.1. Segment Sub-TLV
IANA should assign three new sub-TLVs from the "sub-TLVs for TLV IANA has assigned three new sub-TLVs from the "Sub-TLVs for TLV Types
Types 1, 16, and 21" sub-registry of the "Multiprotocol Label 1, 16, and 21" registry of the "Multiprotocol Label Switching (MPLS)
Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" Label Switched Paths (LSPs) Ping Parameters" registry group.
registry.
Sub-Type Sub-TLV Name Reference +==========+=====================================+=============+
-------- ----------------- ------------ | Sub-Type | Sub-TLV Name | Reference |
TBD1 SID only in the form of MPLS Section 4.1 +==========+=====================================+=============+
label of this document | 46 | SID only, in the form of MPLS label | Section 4.1 |
TBD2 IPv4 Node Address with Section 4.2 | | | of RFC 9716 |
optional SID for SR-MPLS of this document +----------+-------------------------------------+-------------+
TBD3 IPv6 Node Address with Section 4.3 | 47 | IPv4 Node Address with an optional | Section 4.2 |
optional SID for SR-MPLS of this document | | SID for SR-MPLS | of RFC 9716 |
+----------+-------------------------------------+-------------+
| 48 | IPv6 Node Address with an optional | Section 4.3 |
| | SID for SR-MPLS | of RFC 9716 |
+----------+-------------------------------------+-------------+
The allocation of code points for the segment sub-TLVs should be done Table 3
from the Standards Action range (0-16383)
7.2. New Registry for Segment Sub-TLV Flags The allocation of code points for the Segment sub-TLVs should be done
from the Standards Action range (0-16383).
IANA should create a new "Segment ID Sub-TLV flags" (see 7.2. New Registry for Segment ID Sub-TLV Flags
Section Section 4.4) registry under the "Multiprotocol Label
Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" IANA has created a new "Segment ID Sub-TLV Flags" registry (see
registry. Section 4.4) under the "Multiprotocol Label Switching (MPLS) Label
Switched Paths (LSPs) Ping Parameters" registry group.
This registry tracks the assignment of 8 flags in the Segment ID sub- This registry tracks the assignment of 8 flags in the Segment ID sub-
TLV flags field. The flags are numbered from 0 (most significant TLV flags field. The flags are numbered from 0 (the most significant
bit, transmitted first) to 7. bit and transmitted first) to 7.
New entries are assigned by Standards Action. Initial entries in the New entries are assigned by Standards Action. Initial entries in the
registry are as follows: registry are as follows:
Bit number | Name | Reference +============+========+=========================+
------------+----------------------------+-------------- | Bit number | Name | Reference |
1 | A Flag | Section 4.4 +============+========+=========================+
| | of this document | 1 | A-Flag | Section 4.4 of RFC 9716 |
+------------+--------+-------------------------+
Table 4
7.3. Reply Path Return Codes Registry 7.3. Reply Path Return Codes Registry
IANA should assign new return codes in the "Reply path return codes" IANA has assigned new Return Codes in the "Reply Path Return Codes"
registry under the "Multiprotocol Label Switching (MPLS) Label registry under the "Multiprotocol Label Switching (MPLS) Label
Switched Paths (LSPs) Ping Parameters" registry. Switched Paths (LSPs) Ping Parameters" registry group.
Value Meaning Reference +========+=========================================+===========+
-------- ----------------- ------------ | Value | Meaning | Reference |
TBA1 Use Reply Path TLV This document +========+=========================================+===========+
from this echo reply | 0x0006 | Use Reply Path TLV from this echo reply | RFC 9716 |
for building next | | for building the next echo request | |
echo request. +--------+-----------------------------------------+-----------+
| 0x0007 | Local policy does not allow dynamic | RFC 9716 |
| | return path building | |
+--------+-----------------------------------------+-----------+
TBA2 Local policy does This document Table 5
not allow dynamic
return Path building.
The return codes should be assigned from the Standards Action range The Return Codes should be assigned from the Standards Action range
(0x0000-0xFFFB). (0x0000-0xFFFB).
8. Contributors 8. References
Carlos Pignataro 8.1. Normative References
NC State University [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>.
cpignata@gmail.com [RFC7110] Chen, M., Cao, W., Ning, S., Jounay, F., and S. Delord,
"Return Path Specified Label Switched Path (LSP) Ping",
RFC 7110, DOI 10.17487/RFC7110, January 2014,
<https://www.rfc-editor.org/info/rfc7110>.
Zafar Ali [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N.,
Aldrin, S., and M. Chen, "Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures", RFC 8029,
DOI 10.17487/RFC8029, March 2017,
<https://www.rfc-editor.org/info/rfc8029>.
Cisco Systems, Inc. [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>.
zali@cisco.com [RFC8287] Kumar, N., Ed., Pignataro, C., Ed., Swallow, G., Akiya,
N., Kini, S., and M. Chen, "Label Switched Path (LSP)
Ping/Traceroute for Segment Routing (SR) IGP-Prefix and
IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data
Planes", RFC 8287, DOI 10.17487/RFC8287, December 2017,
<https://www.rfc-editor.org/info/rfc8287>.
9. Implementation Status 8.2. Informative References
This section is to be removed before publishing as an RFC. [IEEE-802.1AE]
IEEE, "IEEE Standard for Local and metropolitan area
networks-Media Access Control (MAC) Security", IEEE Std
8021.AE-2018, DOI 10.1109/IEEESTD.2018.8585421, December
2018, <https://ieeexplore.ieee.org/document/8585421>.
RFC-Editor: Please clean up the references cited by this section [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
before publication. Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001,
<https://www.rfc-editor.org/info/rfc3032>.
This section records the status of known implementations of the [RFC7743] Luo, J., Ed., Jin, L., Ed., Nadeau, T., Ed., and G.
protocol defined by this specification at the time of posting of this Swallow, Ed., "Relayed Echo Reply Mechanism for Label
Internet-Draft, and is based on a proposal described in [RFC7942]. Switched Path (LSP) Ping", RFC 7743, DOI 10.17487/RFC7743,
The description of implementations in this section is intended to January 2016, <https://www.rfc-editor.org/info/rfc7743>.
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.
9.1. Juniper Networks [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address
Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017,
<https://www.rfc-editor.org/info/rfc8277>.
Organization: Juniper Networks [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>.
Implementation: JUNOS. [RFC8403] Geib, R., Ed., Filsfils, C., Pignataro, C., Ed., and N.
Kumar, "A Scalable and Topology-Aware MPLS Data-Plane
Monitoring System", RFC 8403, DOI 10.17487/RFC8403, July
2018, <https://www.rfc-editor.org/info/rfc8403>.
Description: Implementation for sending Return path TLV with Type-A [RFC8604] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed.,
segment subTLV Henderickx, W., and D. Cooper, "Interconnecting Millions
of Endpoints with Segment Routing", RFC 8604,
DOI 10.17487/RFC8604, June 2019,
<https://www.rfc-editor.org/info/rfc8604>.
Maturity Level: Prototype [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>.
Coverage: Partial. Type-A SIDs in Return Path TLV [RFC9086] Previdi, S., Talaulikar, K., Ed., Filsfils, C., Patel, K.,
Ray, S., and J. Dong, "Border Gateway Protocol - Link
State (BGP-LS) Extensions for Segment Routing BGP Egress
Peer Engineering", RFC 9086, DOI 10.17487/RFC9086, August
2021, <https://www.rfc-editor.org/info/rfc9086>.
Contact: shraddha@juniper.net [RFC9087] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed., Aries, E.,
and D. Afanasiev, "Segment Routing Centralized BGP Egress
Peer Engineering", RFC 9087, DOI 10.17487/RFC9087, August
2021, <https://www.rfc-editor.org/info/rfc9087>.
10. Acknowledgments [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov,
A., and P. Mattes, "Segment Routing Policy Architecture",
RFC 9256, DOI 10.17487/RFC9256, July 2022,
<https://www.rfc-editor.org/info/rfc9256>.
Thanks to Bruno Decraene for suggesting the use of generic Segment [RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K.,
sub-TLV. Thanks to Adrian Farrel, Huub van Helvoort, Dhruv Dhody, and A. Gulko, "IGP Flexible Algorithm", RFC 9350,
Dongjie, for careful review and comments. Thanks to Mach Chen for DOI 10.17487/RFC9350, February 2023,
suggesting the use of Reply Path TLV. Thanks to Gregory Mirsky for <https://www.rfc-editor.org/info/rfc9350>.
the detailed review which helped improve the readability of the
document to a great extent.
11. APPENDIX [RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and
Traffic Engineering Information Using BGP", RFC 9552,
DOI 10.17487/RFC9552, December 2023,
<https://www.rfc-editor.org/info/rfc9552>.
Appendix A. Examples
This section elaborates examples of the inter-domain ping and This section elaborates examples of the inter-domain ping and
Traceroute procedures described in this document. traceroute procedures described in this document.
11.1. Detailed Example A.1. Detailed Example
The example topology given in Figure 1 will be used in the below The example topology given in Figure 1 will be used in the below
sections to explain LSP ping and traceroute procedures. The PMS/ sections to explain LSP ping and traceroute procedures. The PMS/
head-end has a complete view of the topology. PE1, P1, P2, ASBR1, head-end has a complete view of the topology. PE1, P1, P2, ASBR1,
and ASBR2 are in AS1. Similarly, ASBR3, ASBR4, P3, P4, and PE4 are and ASBR2 are in AS1. Similarly, ASBR3, ASBR4, P3, P4, and PE4 are
in AS2. in AS2.
AS1 and AS2 have SR enabled. IGPs like OSPF/ISIS are used to flood AS1 and AS2 have SR enabled. IGPs like OSPF/IS-IS are used to flood
SIDs in each AS. The ASBR1, ASBR2, ASBR3,and ASBR4 advertise BGP SIDs in each AS. ASBR1, ASBR2, ASBR3, and ASBR4 advertise BGP EPE-
EPE-SIDs for the inter-AS links. Topology of AS1 and AS2 are SIDs for the inter-AS links. The topologies of AS1 and AS2 are
advertised via BGP-Link State (BGP-LS) to the controller/PMS or head- advertised via BGP - Link State (BGP-LS) to the controller, PMS, or
end node. The EPE-SIDs are also advertised via BGP-LS as described head-end node. The EPE-SIDs are also advertised via BGP-LS as
in [RFC9086]. The example uses EPE-SIDs for the inter-AS links but described in [RFC9086]. The example uses EPE-SIDs for the inter-AS
the same could be achieved using adjacency-SIDs advertised for a links, but the same could be achieved using Adjacency-SIDs advertised
passive IGP link. for a passive IGP link.
The description in the document uses below notations for Segment The description in this document uses the notations below for SIDs.
Identifiers (SIDs).
Node-SIDs: N-PE1, N-P1, N-ASBR1 etc. Node-SIDs: N-PE1, N-P1, N-ASBR1, etc.
Adjacency-SIDs: Adj-PE1-P1, Adj-P1-P2 etc. Adjacency-SIDs: Adj-PE1-P1, Adj-P1-P2, etc.
EPE-SIDs: EPE-ASBR2-ASBR3, EPE-ASBR1-ASBR4, EPE-ASBR3-ASBR2 etc. EPE-SIDs: EPE-ASBR2-ASBR3, EPE-ASBR1-ASBR4, EPE-ASBR3-ASBR2, etc.
11.1.1. Procedures for Segment Routing LSP ping A.1.1. Procedures for Segment Routing LSP Ping
Consider an SR-MPLS path from PE1 to PE4 consisting of a label stack Consider an SR-MPLS path from PE1 to PE4 consisting of a label stack
[N-P1, N-ASBR1, EPE-ASBR1-ASBR4, N-PE4] from Figure 1. In order to [N-P1, N-ASBR1, EPE-ASBR1-ASBR4, N-PE4] from Figure 1. In order to
perform MPLS ping procedures on this path, the remote end (PE4) needs perform MPLS ping procedures on this path, the remote end (PE4) needs
IP connectivity to head-end PE1, for the echo reply to travel back to IP connectivity to head-end PE1 for the echo reply to travel back to
PE1. In a deployment that uses a controller-computed inter-domain PE1. In a deployment that uses a controller-computed inter-domain
path, there may be no IP connectivity from PE4 to PE1 as they lie in path, there may be no IP connectivity from PE4 to PE1 as they lie in
different ASes. different ASes.
PE1 sends an echo request message to the endpoint PE4 along the path PE1 sends an echo request message to the endpoint PE4 along the path
that consists of label stacks [N-P1, N-ASBR1, EPE-ASBR1-ASBR4, that consists of label stacks [N-P1, N-ASBR1, EPE-ASBR1-ASBR4,
N-PE4]. PE1 adds the return path from PE4 to PE1 in the echo request N-PE4]. PE1 adds the return path from PE4 to PE1 in the echo request
message in the Reply Path TLV. As an example, the Reply Path TLV for message in the Reply Path TLV. As an example, the Reply Path TLV for
PE1 to PE4 for LSP ping is [N-ASBR4, EPE-ASBR4-ASBR1, N-PE1]. This PE1 to PE4 for LSP ping is [N-ASBR4, EPE-ASBR4-ASBR1, N-PE1]. This
example path provides the entire return path up to the head-end node example path provides the entire return path up to the head-end node
PE1. The mechanism used to construct the return path is PE1. The mechanism used to construct the return path is
implementation-dependent. implementation dependent.
An implementation may also build a return Path consisting of labels An implementation may also build a return path consisting of labels
to reach its own AS. Once the label stack is popped off, the echo to reach its own AS. Once the label stack is popped off, the echo
reply message will be exposed. The further packet forwarding will be reply message will be exposed. The further packet forwarding will be
based on IP lookup. An example return Path for this case could be based on IP lookup. An example return path for this case could be
[N-ASBR4, EPE-ASBR4-ASBR1]. [N-ASBR4, EPE-ASBR4-ASBR1].
On receiving an MPLS echo request, PE4 first validates FEC in the On receiving an MPLS echo request, PE4 first validates the FEC in the
echo request. PE4 then builds a label stack to send the response echo request. PE4 then builds a label stack to send the response
from PE4 to PE1 by copying the labels from the Reply Path TLV. PE4 from PE4 to PE1 by copying the labels from the Reply Path TLV. PE4
builds the echo reply packet with the MPLS label stack constructed builds the echo reply packet with the MPLS label stack constructed,
and imposes MPLS headers on top of the echo reply packet and sends imposes MPLS headers on top of the echo reply packet, and sends out
out the packet to PE1. This segment List stack can successfully the packet to PE1. This segment list stack can successfully steer
steer the reply back to the head-end node (PE1). the reply back to the head-end node (PE1).
Let us consider a case when P3 node does not have a route to reach Let us consider a case when the P3 node does not have a route to
N-PE4. On P3 ping packet would be dropped and the head-end node reach N-PE4. On P3, a ping packet would be dropped, and the head-end
(PE1) will not receive Echo Reply indicating failure. node (PE1) will not receive an echo reply indicating failure.
11.1.2. Procedures for SR LSP traceroute A.1.2. Procedures for SR LSP Traceroute
11.1.2.1. Procedures for SR LSP traceroute with the Same SRGB on All A.1.2.1. Procedures for SR LSP Traceroute with the Same SRGB on All
Nodes Nodes
The traceroute procedure involves visiting every node on the path and The traceroute procedure involves visiting every node on the path and
obtaining echo replies from every node. In this section, we describe obtaining echo replies from every node. In this section, we describe
the traceroute mechanisms when the head-end/PMS has complete the traceroute mechanisms when the head-end/PMS has complete
visibility of the LSDB. The head-end/PMS computes the return path visibility of the LSDB. The head-end/PMS computes the return path
from each node in the entire SR-MPLS path that is being tracerouted. from each node in the entire SR-MPLS path that is being tracerouted.
The return path computation is implementation-dependent. As the The return path computation is implementation dependent. As the
head-end/PMS completely controls the return path, it can use head-end/PMS completely controls the return path, it can use
proprietary computations to build the return path. proprietary computations to build the return path.
One of the ways the return path can be built is to use the principle One of the ways the return path can be built is to use the principle
of building label stacks by adding each domain border node's Node-SID of building label stacks by adding each domain border node's Node-SID
on the return path label stack as the traceroute progresses. For on the return path label stack as the traceroute progresses. For
inter-AS networks, in addition to the border node's Node-SID, EPE-SID inter-AS networks, in addition to the border node's Node-SID, the
in the reverse direction also needs to be added to the label stack. EPE-SID in the reverse direction also needs to be added to the label
stack.
The Inter-domain/inter-AS traceroute procedure uses the TTL expiry The inter-domain/inter-AS traceroute procedure uses the TTL expiry
mechanism as specified in [RFC8029] and [RFC8287]. Every echo mechanism as specified in [RFC8029] and [RFC8287]. Every echo
request packet head-end/PMS will include the appropriate return path request packet head-end/PMS will include the appropriate return path
in the Reply Path TLV. The node that receives the echo request will in the Reply Path TLV. The node that receives the echo request will
follow procedures described in Section 5.1 and Section 5.2 to send follow procedures described in Sections 5.1 and 5.2 to send out an
out an echo reply. echo reply.
For Example: For example:
Let us consider a topology from Figure 1. Let us consider an SR-MPLS Let us consider the topology from Figure 1. Let us consider an SR-
path [N-P1, N-ASBR1, EPE-ASBR1-ASBR4, N-PE4]. The traceroute is MPLS path [N-P1, N-ASBR1, EPE-ASBR1-ASBR4, N-PE4]. The traceroute is
being executed for this inter-AS path for destination PE4. PE1 sends being executed for this inter-AS path for destination PE4. PE1 sends
the first echo request with TTL set to 1 and includes a Reply Path the first echo request with the TTL set to 1 and includes a Reply
TLV consisting of a Type-A segment containing a label derived from Path TLV consisting of a Type-A segment containing a label derived
its own SR Global Block (SRGB). Note that the type of segment used from its own SRGB. Note that the type of segment used in
in constructing the return Path is determined by local policy. If constructing the return path is determined by local policy. If the
the entire network has the same SRGB configured, Type-A segments can entire network has the same SRGB configured, Type-A segments can be
be used. The TTL expires on P1 and P1 sends an echo reply using the used. The TTL expires on P1, and P1 sends an echo reply using the
return path. Note that implementations may choose to exclude the return path. Note that implementations may choose to exclude the
Reply Path TLV until the traceroute reaches the first domain border Reply Path TLV until the traceroute reaches the first domain border
as the return IP path to PE1 is expected to be available inside the as the return IP path to PE1 is expected to be available inside the
first domain. first domain.
The TTL is set to 2 and the next the echo request is sent out. Until The TTL is set to 2, and the next echo request is sent out. Until
the traceroute procedure reaches the domain border node ASBR1, the the traceroute procedure reaches the domain border node ASBR1, the
same return path TLV consisting of a single Label (PE1's node Label) same return path TLV consisting of a single label (PE1's node label)
is used. When an echo request reaches the border node ASBR1, and an is used. When an echo request reaches the border node ASBR1, and an
echo reply is received from ASBR1, the next echo request needs to echo reply is received from ASBR1, the next echo request needs to
include an additional label as ASBR1 is a border node. The head-end include an additional label as ASBR1 is a border node. The head-end
node has complete visibility of the network LSDB learned via BGP-LS node has complete visibility of the network LSDB learned via BGP-LS
[RFC9552] and [RFC9086] and can derive the details of Autonomous (see [RFC9552] and [RFC9086]) and can derive the details of ASBR
System Boundary Router (ASBR) nodes. The Reply Path TLV is built nodes. The Reply Path TLV is built based on the forward path. As
based on the forward path. As the forward path consists of EPE- the forward path consists of EPE-ASBR1-ASBR4, an EPE-SID in the
ASBR1-ASBR4, an EPE-SID in the reverse direction is included in the reverse direction is included in the Reply Path TLV. The return path
Reply Path TLV. The return path now consists of two labels [EPE- now consists of two labels: [EPE-ASBR4-ASBR1, N-PE1]. The echo reply
ASBR4-ASBR1, N-PE1]. The echo reply from ASBR4 will use this return from ASBR4 will use this return path to send the reply.
path to send the reply.
The next echo request after visiting the border node ASBR4 will After visiting the border node ASBR4, the next echo request will
update the return path with the Node-SID label of ASBR4. The return update the return path with the Node-SID label of ASBR4. The return
path beyond ASBR4 will be [N-ASBR4, EPE-ASBR4-ASBR1, N-PE1]. This path beyond ASBR4 will be [N-ASBR4, EPE-ASBR4-ASBR1, N-PE1]. This
same return path is used until the traceroute procedure reaches the same return path is used until the traceroute procedure reaches the
next set of border nodes. When there are multiple ASes the next set of border nodes. When there are multiple ASes, the
traceroute procedure will continue by adding a set of Node-SIDs and traceroute procedure will continue by adding a set of Node-SIDs and
EPE-SIDs as the border nodes are visited. EPE-SIDs as the border nodes are visited.
Note that the above return path-building procedure requires the LSDB Note that the above return path building procedure requires the LSDB
of all the domains to be available at the head-end/PMS. of all the domains to be available at the head-end/PMS.
Let us consider a case when P3 node does not have a route to reach Let us consider a case when the P3 node does not have a route to
N-PE4. When TTL of the packet is 5, the packet reaches P3 and the reach N-PE4. When the TTL of the packet is 5, the packet reaches P3,
packet TTL becomes zero and the packet is sent to the control plane. its TTL becomes zero, and it is sent to the control plane. The FEC
The FEC validation Procedures are executed and the Echo Reply is sent validation procedures are executed, and the echo reply is sent using
using the labels in Reply Path TLV which is [N-PE1, EPE-ASBR4-ASBR1, the labels in the Reply Path TLV, which is [N-PE1, EPE-ASBR4-ASBR1,
N-ASBR4]. Head-end PE1 increases the TTL to 6 and sends next Echo N-ASBR4]. The head-end PE1 increases the TTL to 6 and sends the next
Request. The packet is dropped at P3 as there is no route on P3 to echo request. The packet is dropped at P3 as there is no route on P3
forward to N-PE4. Traceroute identifies the path [N-P1, N-ASBR1, to forward to N-PE4. The traceroute identifies that the path [N-P1,
EPE-ASBR1-ASBR4, N-PE4] is broken at P3. N-ASBR1, EPE-ASBR1-ASBR4, N-PE4] is broken at P3.
11.1.2.2. Procedures for SR LSP Traceroute with the Different SRGBs A.1.2.2. Procedures for SR LSP Traceroute with Different SRGBs
Section 11.1.2.1 assumes the same SRGB is configured on all nodes Appendix A.1.2.1 assumes the same SRGB is configured on all nodes
along the path. The SRGB may differ from one node to another node along the path. The SRGB may differ from one node to another node,
and the SR architecture [RFC8402] allows the nodes to use different and the SR architecture [RFC8402] allows the nodes to use different
SRGBs. In such scenarios, PE1 finds out the difference in SRGB by SRGBs. In such scenarios, PE1 finds out the difference in the SRGB
looking into the LSDB and sends Type-C (or Type-D in the case of IPv6 by looking into the LSDB. Then, it sends the Type-C segment (or the
networks) segment with the node address of PE1 and with optional MPLS Type-D segment, in the case of IPv6 networks) with the node address
SID associated with the node address. The receiving node derives the of PE1 and with an optional MPLS SID associated with the node
label for the return path based on its own SRGB. When the traceroute address. The receiving node derives the label for the return path
procedure crosses the border ASBR1, head-end PE1 should send a Type-A based on its own SRGB. When the traceroute procedure crosses the
segment for N-PE1 based on the label derived from ASBR1's SRGB. This border ASBR1, head-end PE1 should send a Type-A segment for N-PE1
is required because, ASBR4, P3, P4, etc. may not have the topology based on the label derived from ASBR1's SRGB. This is required
information to derive SRGB for PE1. After the traceroute procedure because ASBR4, P3, P4, etc. may not have the topology information to
reaches ASBR4 the return path will be [N-PE1 (Type-A with label based derive SRGB for PE1. After the traceroute procedure reaches ASBR4,
on ASBR1's SRGB), EPE-ASBR4-ASBR1, N-ASBR4 (Type-C)]. the return path will be [N-PE1 (Type-A with the label based on
ASBR1's SRGB), EPE-ASBR4-ASBR1, N-ASBR4 (Type-C)].
If the packet needs to follow return path specific to an algorithm If the packet needs to follow a return path specific to an algorithm
(as defined in [RFC9350]), a Type-C Segment sub-TLV with (as defined in [RFC9350]), a Type-C Segment sub-TLV with a
corresponding algorithm field set should be used. A-flag should be corresponding algorithm field set should be used. The A-Flag should
set to indicate that the SID corresponding to the algorithm should be be set to indicate that the SID corresponding to the algorithm should
used. be used.
To extend the example to 3 or more ASes, let us consider a traceroute To extend the example to three or more ASes, let us consider a
from PE1 to PE5 in Figure 1. In this example, the PE1 to PE5 path traceroute from PE1 to PE5 in Figure 1. In this example, the PE1 to
has to cross 3 domains AS1, AS2, and AS3. Let us consider a path PE5 path has to cross three domains: AS1, AS2, and AS3. Let us
from PE1 to PE5 that goes through [PE1, ASBR1, ASBR4, ASBR6, ASBR8, consider a path from PE1 to PE5 that goes through [PE1, ASBR1, ASBR4,
PE5]. When the traceroute procedure is visiting the nodes in AS1, ASBR6, ASBR8, PE5]. When the traceroute procedure is visiting the
the Reply Path TLV sent from the head-end consists of [N-PE1]. When nodes in AS1, the Reply Path TLV sent from the head-end consists of
the traceroute procedure reaches the ASBR4, the return Path consists [N-PE1]. When the traceroute procedure reaches the ASBR4, the return
of [N-PE1, EPE-ASBR4-ASBR1]. While visiting nodes in AS2, the path consists of [N-PE1, EPE-ASBR4-ASBR1]. While visiting nodes in
traceroute procedure consists of Reply Path TLV [N-PE1, EPE- AS2, the traceroute procedure consists of the Reply Path TLV [N-PE1,
ASBR4-ASBR1, N-ASBR4]. Similarly, while visiting ASBR8, the EPE-SID EPE-ASBR4-ASBR1, N-ASBR4]. Similarly, while visiting ASBR8, the EPE-
from ASBR8 to ASBR6 is added to the Reply Path TLV. While visiting SID from ASBR8 to ASBR6 is added to the Reply Path TLV. While
nodes in AS3, the Node-SID of ASBR8 would also be added which makes visiting nodes in AS3, the Node-SID of ASBR8 would also be added,
the return Path [N-PE1, EPE-ASBR4-ASBR1, N-ASBR4, EPE-ASBR8-ASBR6, which makes the return path [N-PE1, EPE-ASBR4-ASBR1, N-ASBR4, EPE-
N-ASBR8] ASBR8-ASBR6, N-ASBR8].
Let us consider another example from topology Figure 2. This
Let us consider another example from the topology in Figure 2. This
topology consists of multi-domain IGP with a common border node topology consists of multi-domain IGP with a common border node
between the domains. This could be achieved with multi-area or between the domains. This could be achieved with multi-area or
multi-level IGP or multiple instances of IGP deployed on the same multi-level IGP or with multiple instances of IGP deployed on the
node. The return path computation for this topology is similar to same node. The return path computation for this topology is similar
the multi-AS computation except that the return path consists of a to multi-AS computation, except that the return path consists of a
single border node label. single border node label.
11.1.3. Procedures for building Reply Path TLV dynamically A.1.3. Procedures for Building Reply Path TLV Dynamically
Let us consider a topology from Figure 1. Let us consider an SR Let us consider the topology from Figure 1. Let us consider an SR
policy path built from PE1 to PE4 with the label stack, N-P1, Policy path built from PE1 to PE4 with the following label stack:
N-ASBR1, EPE-ASBR1-ASBR4, N-PE4. PE1 begins traceroute with the TTL N-P1, N-ASBR1, EPE-ASBR1-ASBR4, N-PE4. PE1 begins traceroute
set to 1 and includes [N-PE1] in the Reply Path TLV. The traceroute procedures with the TTL set to 1 and includes [N-PE1] in the Reply
packet TTL expires on P1 and P1 processes the traceroute as per the Path TLV. The traceroute packet TTL expires on P1, and P1 processes
procedures described in [RFC8029] and [RFC8287]. P1 sends an echo the traceroute as per the procedures described in [RFC8029] and
reply with the same Reply Path TLV with the reply path return code [RFC8287]. P1 sends an echo reply with the same Reply Path TLV with
set to 6. The return code of the echo reply itself is set to the the Reply Path Return Code set to 6. The Return Code of the echo
return code as per [RFC8029] and [RFC8287]. This traceroute doesn't reply itself is set to the Return Code as per [RFC8029] and
need any changes to the Reply Path TLV till it leaves AS1. The same [RFC8287]. This traceroute doesn't need any changes to the Reply
Reply Path TLV that is received may be included in the echo reply by Path TLV until it leaves AS1. The same Reply Path TLV that is
P1 and P2 or no Reply Path TLV included so that head-end continues to received may be included in the echo reply by P1 and P2, or no Reply
use the same return path in the echo request that it used to send the Path TLV is included so that the head-end continues to use the same
previous echo request. return path in the echo request that it used to send the previous
echo request.
When ASBR1 receives the echo request, in the case it receives the When ASBR1 receives the echo request, in the case it receives the
Type-C/Type-D segment in the Reply Path TLV in the echo request, it Type-C/Type-D segment in the Reply Path TLV in the echo request, it
converts that Type-C/Type-D segment to Type-A based on its own SRGB. converts that Type-C/Type-D segment to Type-A based on its own SRGB.
When ASBR4 receives the echo request, it should form this Reply Path When ASBR4 receives the echo request, it should form this Reply Path
TLV using its Node-SID (N-ASBR4) and EPE-SID (EPE-ASRB4-ASBR1) labels TLV using its Node-SID (N-ASBR4) and EPE-SID (EPE-ASRB4-ASBR1) labels
and set the reply path return code to TBA1. Then PE1 should use this and set the Reply Path Return Code to 0x0006. Then, PE1 should use
Reply Path TLV in subsequent echo requests. In this example, when this Reply Path TLV in subsequent echo requests. In this example,
the subsequent echo request reaches P3, it should use this Reply Path when the subsequent echo request reaches P3, it should use this Reply
TLV for sending the echo reply. The same Reply Path TLV is Path TLV for sending the echo reply. The same Reply Path TLV is
sufficient for any router in AS2 to send the reply. Because the sufficient for any router in AS2 to send the reply. This is because
first label(N-ASBR4) can direct echo reply to ASBR4 and the second the first label (N-ASBR4) can direct the echo reply to ASBR4 and the
one (EPE-ASBR4-ASBR1) to direct echo reply to AS1. Once the echo second one (EPE-ASBR4-ASBR1) can direct the echo reply to AS1. Once
reply reaches AS1, normal IP forwarding or the N-PE1 helps it to the echo reply reaches AS1, normal IP forwarding or the N-PE1 helps
reach PE1. it to reach PE1.
The example described in the above paragraphs can be extended to The example described in the above paragraphs can be extended to
multiple ASes by following the same procedure of each ASBR adding multiple ASes. This is done by following the same procedure for each
Node-SID and EPE-SID on receiving echo requests from neighboring AS. ASBR, i.e., adding Node-SIDs and EPE-SIDs on receiving echo requests
from neighboring ASes.
Let us consider a topology from Figure 2. It consists of multiple Let us consider the topology from Figure 2. It consists of multiple
IGP domains with multiple areas/levels or separate IGP instances. IGP domains with multiple areas/levels or separate IGP instances.
There is a single border node that separates the two domains. In There is a single border node that separates the two domains. In
this case, PE1 sends a traceroute packet with TTL set to 1 and this case, PE1 sends a traceroute packet with the TTL set to 1 and
includes N-PE1 in the Reply Path TLV. ABR1 receives the echo request includes N-PE1 in the Reply Path TLV. ABR1 receives the echo
and while sending the echo reply adds its node Label to the Reply request, adds its node label to the Reply Path TLV (while sending the
Path TLV and sets the Reply path return code to TBA1. The Reply Path echo reply), and sets the Reply Path Return Code to 0x0006. The
TLV in the echo reply from ABR1 consists of [N-ABR1, N-PE1]. The Reply Path TLV in the echo reply from ABR1 consists of [N-ABR1,
next echo request with TTL 2 reaches the P node. It is an internal N-PE1]. The next echo request with a TTL of 2 reaches the P node.
node so it does not change the return Path. The echo request with It is an internal node, so it does not change the return path. The
TTL 3 reaches ABR2 and it adds its node label so the Reply Path TLV echo request with a TTL of 3 reaches ABR2, and it adds its node label
sent in the echo reply will be [N-ABR2, N-ABR1, N-PE1]. echo request so the Reply Path TLV sent in the echo reply will be [N-ABR2, N-ABR1,
with TTL 4 reaches PE4 and it sends an echo reply return code as N-PE1]. The echo request with a TTL of 4 reaches PE4, and it sends
Egress. PE4 does not include any Reply Path TLV in the echo reply. an echo reply Return Code as an egress. PE4 does not include any
The above example assumes a uniform SRGB throughout the domain. In Reply Path TLVs in the echo reply. The above example assumes a
the case of different SRGBs, the top segment will be a Type-C/Type-D uniform SRGB throughout the domain. In the case of different SRGBs,
segment and all other segments will be Type-A. Each border node the top segment will be a Type-C/Type-D segment and all other
converts the Type-C/Type-D segment to Type-A before adding its segments will be Type-A. Each border node converts the Type-C/Type-D
segment to the Reply Path TLV. segment to Type-A before adding its segment to the Reply Path TLV.
12. References
12.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>.
[RFC7110] Chen, M., Cao, W., Ning, S., Jounay, F., and S. Delord,
"Return Path Specified Label Switched Path (LSP) Ping",
RFC 7110, DOI 10.17487/RFC7110, January 2014,
<https://www.rfc-editor.org/info/rfc7110>.
[RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N.,
Aldrin, S., and M. Chen, "Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures", RFC 8029,
DOI 10.17487/RFC8029, March 2017,
<https://www.rfc-editor.org/info/rfc8029>.
[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>.
[RFC8287] Kumar, N., Ed., Pignataro, C., Ed., Swallow, G., Akiya,
N., Kini, S., and M. Chen, "Label Switched Path (LSP)
Ping/Traceroute for Segment Routing (SR) IGP-Prefix and
IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data
Planes", RFC 8287, DOI 10.17487/RFC8287, December 2017,
<https://www.rfc-editor.org/info/rfc8287>.
12.2. Informative References
[IEEE-802.1AE]
IEEE, "IEEE Standard for Local and metropolitan area
networks–Media Access Control (MAC) Security", August
2023.
[RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001,
<https://www.rfc-editor.org/info/rfc3032>.
[RFC7743] Luo, J., Ed., Jin, L., Ed., Nadeau, T., Ed., and G.
Swallow, Ed., "Relayed Echo Reply Mechanism for Label
Switched Path (LSP) Ping", RFC 7743, DOI 10.17487/RFC7743,
January 2016, <https://www.rfc-editor.org/info/rfc7743>.
[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/info/rfc7942>.
[RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address
Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017,
<https://www.rfc-editor.org/info/rfc8277>.
[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>.
[RFC8403] Geib, R., Ed., Filsfils, C., Pignataro, C., Ed., and N.
Kumar, "A Scalable and Topology-Aware MPLS Data-Plane
Monitoring System", RFC 8403, DOI 10.17487/RFC8403, July
2018, <https://www.rfc-editor.org/info/rfc8403>.
[RFC8604] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed.,
Henderickx, W., and D. Cooper, "Interconnecting Millions
of Endpoints with Segment Routing", RFC 8604,
DOI 10.17487/RFC8604, June 2019,
<https://www.rfc-editor.org/info/rfc8604>.
[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>.
[RFC9086] Previdi, S., Talaulikar, K., Ed., Filsfils, C., Patel, K., Acknowledgments
Ray, S., and J. Dong, "Border Gateway Protocol - Link
State (BGP-LS) Extensions for Segment Routing BGP Egress
Peer Engineering", RFC 9086, DOI 10.17487/RFC9086, August
2021, <https://www.rfc-editor.org/info/rfc9086>.
[RFC9087] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed., Aries, E., Thanks to Bruno Decraene for suggesting the use of the generic
and D. Afanasiev, "Segment Routing Centralized BGP Egress Segment sub-TLV. Thanks to Adrian Farrel, Huub van Helvoort, Dhruv
Peer Engineering", RFC 9087, DOI 10.17487/RFC9087, August Dhody, and Dongjie for their careful reviews and comments. Thanks to
2021, <https://www.rfc-editor.org/info/rfc9087>. Mach Chen for suggesting the use of the Reply Path TLV. Thanks to
Gregory Mirsky for the detailed review, which helped improve the
readability of the document to a great extent.
[RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, Contributors
A., and P. Mattes, "Segment Routing Policy Architecture",
RFC 9256, DOI 10.17487/RFC9256, July 2022,
<https://www.rfc-editor.org/info/rfc9256>.
[RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., Carlos Pignataro
and A. Gulko, "IGP Flexible Algorithm", RFC 9350, NC State University
DOI 10.17487/RFC9350, February 2023, Email: cpignata@gmail.com
<https://www.rfc-editor.org/info/rfc9350>.
[RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and Zafar Ali
Traffic Engineering Information Using BGP", RFC 9552, Cisco Systems, Inc.
DOI 10.17487/RFC9552, December 2023, Email: zali@cisco.com
<https://www.rfc-editor.org/info/rfc9552>.
Authors' Addresses Authors' Addresses
Shraddha Hegde Shraddha Hegde
Juniper Networks Inc. Juniper Networks, Inc.
Exora Business Park Exora Business Park
Bangalore 560103 Bangalore 560103
KA KA
India India
Email: shraddha@juniper.net Email: shraddha@juniper.net
Kapil Arora Kapil Arora
Individual Contributor Individual Contributor
Email: kapil.it@gmail.com Email: kapil.it@gmail.com
Mukul Srivastava Mukul Srivastava
Juniper Networks Inc. Juniper Networks, Inc.
Email: msri@juniper.net Email: msri@juniper.net
Samson Ninan Samson Ninan
Ciena Ciena
Email: samson.cse@gmail.com Email: samson.cse@gmail.com
Nagendra Kumar Nagendra Kumar
Oracle Oracle
Email: nagendrakumar.nainar@gmail.com Email: nagendrakumar.nainar@gmail.com
 End of changes. 195 change blocks. 
733 lines changed or deleted 710 lines changed or added

This html diff was produced by rfcdiff 1.48.