rfc9703.original   rfc9703.txt 
Routing area S. Hegde Internet Engineering Task Force (IETF) S. Hegde
Internet-Draft M. Srivastava Request for Comments: 9703 M. Srivastava
Intended status: Standards Track Juniper Networks Inc. Category: Standards Track Juniper Networks Inc.
Expires: 29 January 2025 K. Arora ISSN: 2070-1721 K. Arora
Individual Contributor Individual Contributor
S. Ninan S. Ninan
Ciena Ciena
X. Xu X. Xu
China Mobile China Mobile
28 July 2024 December 2024
Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR)
Egress Peer Engineering Segment Identifiers (SIDs) with MPLS Data Plane Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS Data
draft-ietf-mpls-sr-epe-oam-19 Plane
Abstract Abstract
Egress Peer Engineering (EPE) is an application of Segment Routing to Egress Peer Engineering (EPE) is an application of Segment Routing
solve the problem of egress peer selection. The Segment Routing (SR) that solves the problem of egress peer selection. The SR-based
based BGP-EPE solution allows a centralized controller, e.g. a BGP-EPE solution allows a centralized controller, e.g., a Software-
Software Defined Network (SDN) controller to program any egress peer. Defined Network (SDN) controller, to program any egress peer. The
The EPE solution requires the node or the SDN controller to program EPE solution requires the node or the SDN controller to program 1)
the PeerNode Segment Identifier(SID) describing a session between two the PeerNode Segment Identifier (SID) describing a session between
nodes, the PeerAdj SID describing the link (one or more) that is used two nodes, 2) the PeerAdj SID describing the link or links that are
by sessions between peer nodes, and the PeerSet SID describing any used by the sessions between peer nodes, and 3) the PeerSet SID
connected interface to any peer in the related group. This document describing any connected interface to any peer in the related group.
provides new sub-TLVs for EPE Segment Identifiers (SID) that would be This document provides new sub-TLVs for EPE-SIDs that are used in the
used in the MPLS Target stack TLV (Type 1), in MPLS Ping and Target FEC Stack TLV (Type 1) in MPLS Ping and Traceroute procedures.
Traceroute procedures.
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 29 January 2025. 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/rfc9703.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2024 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
2. Theory of Operation . . . . . . . . . . . . . . . . . . . . . 4 2. Theory of Operation
3. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 3. Requirements Language
4. FEC Definitions . . . . . . . . . . . . . . . . . . . . . . . 5 4. FEC Definitions
4.1. PeerNode SID Sub-TLV . . . . . . . . . . . . . . . . . . 5 4.1. PeerNode SID Sub-TLV
4.2. PeerAdj SID Sub-TLV . . . . . . . . . . . . . . . . . . . 7 4.2. PeerAdj SID Sub-TLV
4.3. PeerSet SID Sub-TLV . . . . . . . . . . . . . . . . . . . 9 4.3. PeerSet SID Sub-TLV
5. EPE-SID FEC validation . . . . . . . . . . . . . . . . . . . 11 5. EPE-SID FEC Validation
5.1. EPE-SID FEC validiation . . . . . . . . . . . . . . . . . 11 5.1. EPE-SID FEC Validation Rules
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 6. IANA Considerations
7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 7. Security Considerations
8. Implementation Status . . . . . . . . . . . . . . . . . . . . 14 8. References
8.1. Juniper Networks . . . . . . . . . . . . . . . . . . . . 15 8.1. Normative References
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 8.2. Informative References
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 Appendix A. Examples of Programmed States
10.1. Normative References . . . . . . . . . . . . . . . . . . 15 Acknowledgments
10.2. Informative References . . . . . . . . . . . . . . . . . 16 Authors' Addresses
Appendix A. APPENDIX . . . . . . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introduction 1. Introduction
Egress Peer Engineering (EPE) as defined in [RFC9087] is an effective Egress Peer Engineering (EPE), as defined in [RFC9087], is an
mechanism to select the egress peer link based on different criteria. effective mechanism that is used to select the egress peer link based
In this scenario, egress peers may belong to a completely different on different criteria. In this scenario, egress peers may belong to
ownership. The EPE-SIDs provide means to represent egress peer a completely different ownership. The EPE-SIDs provide the means to
nodes, links, sets of links and sets of nodes. Many network represent egress peer nodes, links, sets of links, and sets of nodes.
deployments have built their networks consisting of multiple Many network deployments have built their networks consisting of
Autonomous Systems, either for the ease of operations or as a result multiple Autonomous Systems (ASes) either for the ease of operations
of network mergers and acquisitions. The inter-AS links connecting or as a result of network mergers and acquisitions. The inter-AS
any two Autonomous Systems could be traffic-engineered using EPE-SIDs links connecting any two ASes could be traffic-engineered using EPE-
in this case, where there is single ownership but different AS SIDs in this case, where there is single ownership but different AS
numbers. It is important to validate the control plane to forwarding numbers. It is important to validate the control plane to forwarding
plane synchronization for these SIDs so that any anomaly can be plane synchronization for these SIDs so that any anomaly can be
detected easily by the network operator. EPE-SIDs may also be used easily detected by the network operator. EPE-SIDs may also be used
in ingress SR policy [RFC9256]to choose exit points where the remote in an ingress Segment Routing (SR) policy [RFC9256] to choose exit
AS belongs to completely different ownership. This scenario is out points where the remote AS has a completely different ownership.
of scope of this document. This scenario is out of scope for this document.
+---------+ +------+ +---------+ +------+
| | | | | | | |
| H B------D G | H B------D G
| | +---/| AS 2 |\ +------+ | | +---/| AS2 |\ +------+
| |/ +------+ \ | |---L/8 | |/ +------+ \ | |---L/8
A AS1 C---+ \| | A AS1 C---+ \| |
| |\\ \ +------+ /| AS 4 |---M/8 | |\\ \ +------+ /| AS4 |---M/8
| | \\ +-E |/ +------+ | | \\ +-E |/ +------+
| X | \\ | K | X | \\ | K
| | +===F AS 3 | | | +===F AS3 |
+---------+ +------+ +---------+ +------+
Figure 1: Reference Diagram Figure 1: Reference Diagram
In this reference diagram, EPE-SIDs are configured on AS1 towards AS2 In Figure 1, EPE-SIDs are configured on AS1 towards AS2 and AS3 and
and AS3 and advertised in BGP-LS [RFC9086]. In certain cases the advertised in the Border Gateway Protocol - Link State (BGP-LS)
EPE-SIDs advertised by the control plane may not be in [RFC9086]. In certain cases, the EPE-SIDs advertised by the control
synchronization with the label programmed in the data plane. For plane may not be in synchronization with the label programmed in the
example, on C a PeerAdj SID could be advertised to indicate it is for data plane. For example, on C, a PeerAdj SID could be advertised to
the link C->D. Due to some software anomaly, the actual data indicate it is for the link C->D. Due to some software anomaly, the
forwarding on this PeerAdj SID could be happening over the C->E link. actual data forwarding on this PeerAdj SID could be happening over
If E had relevant data paths for further forwarding the packet, this the C->E link. If E had relevant data paths for further forwarding
kind of anomaly will go unnoticed by the network operator. A the packet, this kind of anomaly would go unnoticed by the network
detailed example of a correctly programmed state and an incorrectly operator. A detailed example of a correctly programmed state and an
programmed state along with a description of how the incorrect state incorrectly programmed state along with a description of how the
can be detected is described in Appendix A. A FEC definition for the incorrect state can be detected is described in Appendix A. A
EPE-SIDs will define the details of the control plane association of Forwarding Equivalence Class (FEC) definition for the EPE-SIDs will
the SID. The data plane validation of the SID will be done during detail the control plane association of the SID. The data plane
the MPLS traceroute procedure. When there is a multi-hop EBGP validation of the SID will be done during the MPLS Traceroute
session between the ASBRs, PeerNode SID is advertised, and the procedure. When there is a multi-hop External BGP (EBGP) session
traffic MAY be load-balanced between the interfaces connecting the between the ASBRs, a PeerNode SID is advertised, and the traffic MAY
two nodes. In the reference diagram, C and F could have a PeerNode- be load-balanced between the interfaces connecting the two nodes. In
SID advertised. When the OAM packet is received on F, it needs to be Figure 1, C and F could have a PeerNode SID advertised. When the
validated that the packet came from one of the two interfaces Operations, Administration, and Maintenance (OAM) packet is received
connected to C. on F, it needs to be validated that the packet came from one of the
two interfaces connected to C.
This document provides Target Forwarding Equivalence Class (FEC) This document provides Target Forwarding Equivalence Class (FEC)
stack TLV definitions for EPE-SIDs. This solution requires that the Stack TLV definitions for EPE-SIDs. This solution requires the node
node constructing the target FEC stack can determine the type of the constructing the Target FEC Stack TLV to determine the types of SIDs
SIDs along the path of the LSP. Other procedures for MPLS Ping and along the path of the LSP. Other procedures for MPLS Ping and
Traceroute as defined in [RFC8287] section 7 and clarified by Traceroute, as defined in Section 7 of [RFC8287] and clarified in
[RFC8690] are applicable for EPE-SIDs as well. [RFC8690], are applicable for EPE-SIDs as well.
2. Theory of Operation 2. Theory of Operation
[RFC9086] provides mechanisms to advertise the EPE-SIDs in BGP-LS. [RFC9086] provides mechanisms to advertise the EPE-SIDs in BGP-LS.
These EPE-SIDs may be used to build Segment Routing paths as These EPE-SIDs may be used to build SR paths and may be communicated
described in [I-D.ietf-idr-segment-routing-te-policy] or using Path using extensions described in [BGP-SR-SEGTYPES-EXT] and
Computation Element Protocol (PCEP) extensions as defined in [SR-BGP-POLICY] or Path Computation Element Protocol (PCEP)
[RFC8664]. Data plane monitoring for such paths which consist of extensions as defined in [RFC8664]. Data plane monitoring for such
EPE-SIDs will use extensions defined in this document to build the paths that consist of EPE-SIDs will use extensions defined in this
Target FEC stack TLV. The MPLS Ping and Traceroute procedures MAY be document to build the Target FEC Stack TLV. The MPLS Ping and
initiated by the head-end of the Segment Routing path or a Traceroute procedures MAY be initiated by the head-end of the SR path
centralized topology-aware data plane monitoring system as described or a centralized topology-aware data plane monitoring system, as
in [RFC8403]. The extensions in described in [RFC8403]. The extensions in [BGP-SR-SEGTYPES-EXT],
[I-D.ietf-idr-segment-routing-te-policy] and [RFC8664] do not define [SR-BGP-POLICY], and [RFC8664] do not define how to acquire and carry
how to carry the details of the SID that can be used to construct the the details of the SID that can be used to construct the FEC. Such
FEC. Such extensions are out of the scope for this document. The extensions are out of scope for this document. The node initiating
node initiating the data plane monitoring may acquire the details of the data plane monitoring may acquire the details of EPE-SIDs through
EPE-SIDs through BGP-LS advertisements as described in [RFC9086]. BGP-LS advertisements, as described in [RFC9086]. There may be other
There may be other possible mechanisms to learn the definition of the possible mechanisms that can be used to learn the definition of the
SID from controller. Details of such mechanisms are out of scope for SID from the controller. Details of such mechanisms are out of scope
this document. for this document.
The EPE-SIDs are advertised for inter-AS links which run EBGP The EPE-SIDs are advertised for inter-AS links that run EBGP
sessions. [RFC9086] does not define the detailed procedures to sessions. [RFC9086] does not define the detailed procedures of how
operate EBGP sessions in a scenario with unnumbered interfaces. to operate EBGP sessions in a scenario with unnumbered interfaces.
Therefore, these scenarios are out of scope for this document. Therefore, these scenarios are out of scope for this document.
Anycast and multicast addresses are not in the scope of this Anycast and multicast addresses are not in the scope of this
document. During AS migration scenario procedures described in document. During the AS migration scenario, procedures described in
[RFC7705] may be in force. In these scenarios, if the local and [RFC7705] may be in force. In these scenarios, if the local and
remote AS fields in the FEC as described in Section 4 carries the remote AS fields in the FEC (as described in Section 4) carry the
globally configured ASN and not the "local AS" as defined in globally configured AS Number and not the "local AS" (as defined in
[RFC7705], the FEC validation procedures may fail. [RFC7705]), then the FEC validation procedures may fail.
As described in Section 1, this document defines FEC stack TLVs for As described in Section 1, this document defines Target FEC Stack
EPE-SIDs, that can be used in detecting MPLS data plane failures TLVs for EPE-SIDs that can be used in detecting MPLS data plane
[RFC8029]. This mechanism applies to paths created across across failures [RFC8029]. This mechanism applies to paths created across
ASes of co-operating administrations. If the ping or traceroute ASes of cooperating administrations. If the ping or traceroute
packet enters a non co-operating AS domain, it might be dropped by packet enters a non-cooperating AS domain, it might be dropped by the
the routers in the non co-operating domain. Although complete path routers in the non-cooperating domain. Although a complete path
validation cannot be done across, non co-operating domains, it still validation cannot be done across non-cooperating domains, it still
provides useful information that the ping/traceroute packet entered a provides useful information that the ping or traceroute packet
non co-operating domain. entered a non-cooperating domain.
3. Requirements Language 3. 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 BCP
14, [RFC2119], [RFC8174] when, and only when, they appear in all 14, [RFC2119], [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
4. FEC Definitions 4. FEC Definitions
Three new sub-TLVs are defined for the Target FEC Stack TLV (Type 1), In this document, three new sub-TLVs are defined for the Target FEC
the Reverse-Path Target FEC Stack TLV (Type 16), and the Reply Path Stack TLV (Type 1), the Reverse-Path Target FEC Stack TLV (Type 16),
TLV (Type 21). and the Reply Path TLV (Type 21); see Table 1.
Sub-Type Sub-TLV Name
-------- ---------------
TBD1 PeerAdj SID Sub-TLV
TBD2 PeerNode SID Sub-TLV
TBD3 PeerSet SID Sub-TLV
Figure 2: New sub-TLV types
4.1. PeerNode SID Sub-TLV 4.1. PeerNode SID Sub-TLV
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 = TBD2 | Length | |Type = 39 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local AS Number (4 octets) | | Local AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote AS Number (4 octets) | | Remote AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local BGP router ID (4 octets) | | Local BGP Router ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote BGP Router ID (4 octets) | | Remote BGP Router ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: PeerNode SID Sub-TLV
Type : 2 octets
Value:TBD2
Length : 2 octets
Value: 16 Figure 2: PeerNode SID Sub-TLV
Local AS Number : 4 octets Type: 2 octets
The unsigned integer representing the AS number [RFC6793] of the AS Value: 39
to which the PeerNode SID advertising node belongs. If
Confederations [RFC5065] are in use, and if the remote node is a
member of a different Member-AS within the local Confederation, this
is the Member-AS Number inside the Confederation and not the
Confederation Identifier.
Remote AS Number : 4 octets Length: 2 octets
The unsigned integer representing the AS number [RFC6793] of the AS Value: 16
of the remote node for which the PeerNode SID is advertised. If
Confederations [RFC5065] are in use, and if the remote node is a
member of a different Member-AS within the local Confederation, this
is the Member-AS Number inside the Confederation and not the
Confederation Identifier.
Local BGP Router ID : 4 octets Local AS Number: 4 octets. The unsigned integer representing the AS
number [RFC6793] of the AS to which the PeerNode SID advertising
node belongs. If Confederations [RFC5065] are in use, and if the
remote node is a member of a different Member-AS within the local
Confederation, this is the Member-AS Number inside the
Confederation and not the Confederation Identifier.
unsigned integer representing the BGP Identifier of the PeerNode SID Remote AS Number: 4 octets. The unsigned integer representing the
advertising node as defined in [RFC4271] and [RFC6286]. AS number [RFC6793] of the AS of the remote node for which the
PeerNode SID is advertised. If Confederations [RFC5065] are in
use, and if the remote node is a member of a different Member-AS
within the local Confederation, this is the Member-AS Number
inside the Confederation and not the Confederation Identifier.
Remote BGP Router ID : 4 octets Local BGP Router ID: 4 octets. The unsigned integer representing
the BGP Identifier of the PeerNode SID advertising node as defined
in [RFC4271] and [RFC6286].
unsigned integer representing the BGP Identifier of the remote node Remote BGP Router ID: 4 octets. The unsigned integer representing
as defined in [RFC4271] and [RFC6286]. the BGP Identifier of the remote node as defined in [RFC4271] and
[RFC6286].
When there is a multi-hop EBGP session between two ASBRs, PeerNode When there is a multi-hop EBGP session between two ASBRs, a PeerNode
SID is advertised for this session and traffic can be load balanced SID is advertised for this session, and traffic can be load-balanced
across these interfaces. An EPE controller that does bandwidth across these interfaces. An EPE controller that performs bandwidth
management for these links should be aware of the links on which the management for these links should be aware of the links on which the
traffic will be load-balanced. As per [RFC8029], the node traffic will be load-balanced. As per [RFC8029], the node
advertising the EPE SIDs will send Downstream Detailed Mapping TLV advertising the EPE-SIDs will send a Downstream Detailed Mapping
(DDMAP TLV) specifying the details of nexthop interfaces, the OAM (DDMAP) TLV specifying the details of the next-hop interfaces. Based
packet will be sent out. Based on this information controller MAY on this information, the controller MAY choose to verify the actual
choose to verify the actual forwarding state with the topology forwarding state with the topology information that the controller
information controller has. On the router, the validation procedures has. On the router, the validation procedures will include the
will include, received DDMAP validation as specified in [RFC8029] to received DDMAP validation, as specified in [RFC8029], to verify the
verify the control and forwarding state synchronization on the two control state and the forwarding state synchronization on the two
routers. Any discrepancies between controller's state and forwarding routers. Any discrepancies between the controller's state and the
state will not be detected by the procedures described in the forwarding state will not be detected by the procedures described in
document. this document.
4.2. PeerAdj SID Sub-TLV 4.2. PeerAdj SID Sub-TLV
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 = TBD1 | Length | |Type = 38 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Adj-Type | RESERVED | | Adj type | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local AS Number (4 octets) | | Local AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote AS Number (4 octets) | | Remote AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local BGP router ID (4 octets) | | Local BGP Router ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote BGP Router ID (4 octets) | | Remote BGP Router ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface address (4/16 octets) | | Local Interface Address (4/16 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface address (4/16 octets) | | Remote Interface Address (4/16 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: PeerAdj SID Sub-TLV
Type : 2 octets
Value: TBD1
Length : 2 octets
Value: variable based on IPv4/IPv6 interface address. Length
excludes the length of Type and Length fields.For IPv4 interface
addresses length will be 28 octets. In case of IPv6 address length
will be 52 octets.
Adj-Type : 1 octet Figure 3: PeerAdj SID Sub-TLV
Value: Set to 1 when the Adjacency Segment is IPv4 Set to 2 when the Type: 2 octets
Adjacency Segment is IPv6
RESERVED : 3 octets. MUST be zero when sending, and ignored on
receiving.
Local AS Number : 4 octets Value: 38
The unsigned integer representing the AS number [RFC6793] of the AS Length: 2 octets
to which the PeerAdj SID advertising node belongs. If Confederations
[RFC5065] are in use, and if the remote node is a member of a
different Member-AS within the local Confederation, this is the
Member-AS Number inside the Confederation and not the Confederation
Identifier.
Remote AS Number : 4 octets Value: Variable based on the IPv4/IPv6 interface address. Length
excludes the length of the Type and Length fields. For IPv4
interface addresses, the length will be 28 octets. In the case of
an IPv6 address, the length will be 52 octets.
The unsigned integer representing the AS number[RFC6793] of the AS of Adj type: 1 octet
the remote node for which the PeerAdj SID is advertised. If
Confederations [RFC5065] are in use, and if the remote node is a
member of a different Member-AS within the local Confederation, this
is the Member-AS Number inside the Confederation and not the
Confederation Identifier.
Local BGP Router ID : 4 octets Value: Set to 1 when the Adjacency Segment is IPv4. Set to 2 when
the Adjacency Segment is IPv6.
unsigned integer representing the BGP Identifier of the PeerAdj SID RESERVED: 3 octets. MUST be zero when sending and ignored on
advertising node as defined in [RFC4271] and [RFC6286]. receiving.
Remote BGP Router ID : 4 octets Local AS Number: 4 octets. The unsigned integer representing the AS
number [RFC6793] of the AS to which the PeerAdj SID advertising
node belongs. If Confederations [RFC5065] are in use, and if the
remote node is a member of a different Member-AS within the local
Confederation, this is the Member-AS Number inside the
Confederation and not the Confederation Identifier.
unsigned integer representing the BGP Identifier of the remote node Remote AS Number: 4 octets. The unsigned integer representing the
as defined in [RFC4271] and [RFC6286]. AS number [RFC6793] of the remote node's AS for which the PeerAdj
SID is advertised. If Confederations [RFC5065] are in use, and if
the remote node is a member of a different Member-AS within the
local Confederation, this is the Member-AS Number inside the
Confederation and not the Confederation Identifier.
Local Interface Address :4 octets/16 octets Local BGP Router ID: 4 octets. The unsigned integer representing
the BGP Identifier of the PeerAdj SID advertising node as defined
in [RFC4271] and [RFC6286].
In case of PeerAdj SID, Local interface address corresponding to the Remote BGP Router ID: 4 octets. The unsigned integer representing
PeerAdj SID should be specified in this field. For IPv4,this field the BGP Identifier of the remote node as defined in [RFC4271] and
is 4 octets; for IPv6, this field is 16 octets. Link-local IPv6 [RFC6286].
addresses are not in the scope of this document.
Remote Interface Address :4 octets/16 octets Local Interface Address: 4 octets or 16 octets. In the case of
PeerAdj SID, the local interface address corresponding to the
PeerAdj SID should be specified in this field. For IPv4, this
field is 4 octets; for IPv6, this field is 16 octets. Link-local
IPv6 addresses are not in the scope of this document.
In case of PeerAdj SID Remote interface address corresponding to the Remote Interface Address: 4 octets or 16 octets. In the case of
PeerAdj SID should be apecified in this field. For IPv4, this field PeerAdj SID, the remote interface address corresponding to the
is 4 octets; for IPv6, this field is 16 octets. Link-local IPv6 PeerAdj SID should be specified in this field. For IPv4, this
addresses are not in the scope of this document.. field is 4 octets; for IPv6, this field is 16 octets. Link-local
IPv6 addresses are not in the scope of this document.
[RFC9086] mandates sending local interface ID and remote interface ID [RFC9086] mandates sending a local interface ID and remote interface
in the Link Descriptors and allows a value of 0 in the remote ID in the link descriptors and allows a value of 0 in the remote
descriptors. It is useful to validate the incoming interface for an descriptors. It is useful to validate the incoming interface for an
OAM packet and if the remote descriptor is 0 this validation is not OAM packet, but if the remote descriptor is 0, this validation is not
possible. [RFC9086] allows optional link descriptors of local and possible. Optional link descriptors of local and remote interface
remote interface addresses as described in section 4.2. This addresses are allowed as described in Section 4.2 of [RFC9086]. In
document RECOMMENDs sending these optional descriptors and using them this document, it is RECOMMENDED to send these optional descriptors
to validate incoming interface. When these local and remote and use them to validate incoming interfaces. When these local and
interface addresses are not available, an ingress node can send 0 in remote interface addresses are not available, an ingress node can
the local and/or remote interface address field. The receiver SHOULD send 0 in the local and/or remote interface address field. The
skip the validation for the incoming interface if the address field receiver SHOULD skip the validation for the incoming interface if the
contains 0. address field contains 0.
4.3. PeerSet SID Sub-TLV 4.3. PeerSet SID Sub-TLV
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 = TBD3 | Length | |Type = 40 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local AS Number (4 octets) | | Local AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local BGP router ID (4 octets) | | Local BGP Router ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| No.of elements in set | Reserved | | No. of elements in set | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote AS Number (4 octets) | | Remote AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote BGP Router ID (4 octets) | | Remote BGP Router ID (4 octets) |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++
One element in set consists of below details
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote BGP Router ID (4 octets) |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++
Figure 5: PeerSet SID Sub-TLV
Type : 2 octets
Value: TBD3
Length : 2 octets
Value: Expressed in octets and variable based on the number of One element in set consists of the details below
elements in the set. The length field does not include the length of +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type and Length fields. | Remote AS Number (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote BGP Router ID (4 octets) |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++
Local AS Number :4 octets Figure 4: PeerSet SID Sub-TLV
The unsigned integer representing the AS number [RFC6793] of the AS Type: 2 octets
to which the PeerSet SID advertising node belongs. If Confederations
[RFC5065] are in use, and if the remote node is a member of a
different Member-AS within the local Confederation, this is the
Member-AS Number inside the Confederation and not the Confederation
Identifier.
Local BGP Router ID : 4 octets Value: 40
unsigned integer representing the BGP Identifier of the PeerSet SID Length: 2 octets
advertising node as defined in [RFC4271] and [RFC6286].
No.of elements in set: 2 octets Value: Expressed in octets and is a variable based on the number of
elements in the set. The length field does not include the length
of Type and Length fields.
The number of remote ASes over which the set SID performs load Local AS Number: 4 octets. The unsigned integer representing the AS
balancing. number [RFC6793] of the AS to which the PeerSet SID advertising
node belongs. If Confederations [RFC5065] are in use, and if the
remote node is a member of a different Member-AS within the local
Confederation, this is the Member-AS Number inside the
Confederation and not the Confederation Identifier.
Reserved : 2 octets. MUST be zero when sent and ignored when Local BGP Router ID: 4 octets. The unsigned integer representing
received. the BGP Identifier of the PeerSet SID advertising node, as defined
in [RFC4271] and [RFC6286].
Remote AS Number : 4 octets No. of elements in set: 2 octets. The number of remote ASes over
which the set SID performs load-balancing.
The unsigned integer representing the AS number [RFC6793] of the AS Reserved: 2 octets. MUST be zero when sent and ignored when
of the remote node for which the PeerSet SID is advertised. If received.
Confederations [RFC5065] are in use, and if the remote node is a
member of a different Member-AS within the local Confederation, this
is the Member-AS Number inside the Confederation and not the
Confederation Identifier.
Remote BGP Router ID : 4 octets Remote AS Number: 4 octets. The unsigned integer representing the
AS number [RFC6793] of the remote node's AS for which the PeerSet
SID is advertised. If Confederations [RFC5065] are in use, and if
the remote node is a member of a different Member-AS within the
local Confederation, this is the Member-AS Number inside the
Confederation and not the Confederation Identifier.
unsigned integer representing the BGP Identifier of the remote node Remote BGP Router ID: 4 octets. The unsigned integer representing
as defined in [RFC4271] and [RFC6286]. the BGP Identifier of the remote node as defined in [RFC4271] and
[RFC6286].
PeerSet SID may be associated with a number of PeerNode SIDs and PeerSet SID may be associated with a number of PeerNode SIDs and
PeerAdj SIDs. The remote AS number and the Router ID of each of PeerAdj SIDs. The remote AS number and the Router ID of each of
these PeerNode SIDs PeerAdj SIDs MUST be included in the FEC. these PeerNode SIDs and PeerAdj SIDs MUST be included in the FEC.
5. EPE-SID FEC validation 5. EPE-SID FEC Validation
When a remote ASBR of the EPE-SID advertisement receives the MPLS OAM When a remote ASBR of the EPE-SID advertisement receives the MPLS OAM
packet with top FEC being the EPE-SID, it MUST perform validity packet with the top FEC being the EPE-SID, it MUST perform validity
checks on the content of the EPE-SID FEC sub-TLV. The basic length checks on the content of the EPE-SID FEC sub-TLV. The basic length
check should be performed on the received FEC. check should be performed on the received FEC.
PeerAdj SID PeerAdj SID sub-TLV
----------- -----------
if Adj type = 1 Length should be 28 octets If Adj type = 1, Length should be 28 octets
If Adj type =2 Length should be 52 octets If Adj type = 2, Length should be 52 octets
PeerNode SID PeerNode SID sub-TLV
------------- -------------
Length = ( 20 + No.of IPv4 interface pairs * 8 + Length = (20 + No. of IPv4 interface pairs * 8 +
No.of IPv6 interface pairs * 32 ) octets No. of IPv6 interface pairs * 32) octets
PeerSet SID PeerSet SID sub-TLV
----------- -----------
Length = (9 + No.of elements in the set * Length = (9 + No. of elements in the set *
(8 + No.of IPv4 interface pairs * 8 + (8 + No. of IPv4 interface pairs * 8 +
No.of IPv6 interface pairs * 32)) octets No. of IPv6 interface pairs * 32) octets
Figure 6: Length Validation Figure 5: Length Validation
If a malformed FEC sub-TLV is received, then a return code of 1, If a malformed FEC sub-TLV is received, then a return code of 1,
"Malformed echo request received" as defined in [RFC8029] MUST be "Malformed echo request received", as defined in [RFC8029] MUST be
sent. The below section is appended to the procedure given in sent. The section below is appended to the procedure given in step
Section 7.4 point 4a of [RFC8287]. 4a of Section 7.4 of [RFC8287].
5.1. EPE-SID FEC validiation 5.1. EPE-SID FEC Validation Rules
Segment Routing IGP-Prefix, IGP-Adjacency SID and EPE-SID Validation This is an example of Segment Routing IGP-Prefix, IGP-Adjacency SID,
: Receiving node term used in this section implies the node that and EPE-SID validations. Note that the term "receiving node" in this
receives OAM message with the FEC stack TLV. section corresponds to the node that receives the OAM message with
the Target FEC Stack TLV.
Else, if the Label-stack-depth is 0 and the Target FEC Stack sub-TLV Else, if the Label-stack-depth is 0 and the Target FEC Stack sub-TLV
at FEC-stack-depth is TBD1 (PeerAdj SID sub-TLV), { at FEC stack-depth is 38 (PeerAdj SID sub-TLV), {
Set the Best-return-code to 10, "Mapping for this FEC is not Set the Best-return-code to 10, "Mapping for this FEC is not
the given label at stack-depth if any below the given label at stack-depth <RSC>" [RFC8029]. Check if
conditions fail: any below conditions fail:
- Validate that the receiving node's BGP Local AS matches - Validate that the receiving node's BGP Local AS matches
with the remote AS field in the received PeerAdj SID with the remote AS field in the received PeerAdj SID
FEC sub-TLV. sub-TLV.
- Validate that the receiving node's BGP Router-ID - Validate that the receiving node's BGP Router-ID
matches with the Remote Router ID field in the matches with the Remote Router ID field in the
received PeerAdj SID FEC. received PeerAdj SID sub-TLV.
- Validate that there is a EBGP session with a peer - Validate that there is an EBGP session with a peer
having local AS number and BGP Router-ID as having a local AS number and BGP Router-ID as
specified in the Local AS number and Local Router-ID specified in the local AS number and Local Router-ID
field in the received PeerAdj SID FEC sub-TLV. field in the received PeerAdj SID sub-TLV.
If the Remote interface address is not zero, validate the If the remote interface address is not zero, validate the
incoming interface. incoming interface. Set the Best-return-code to 35,
Set the Best-return-code to 35 "Mapping for this FEC is not "Mapping for this FEC is not associated with the incoming
associated with the incoming interface" [RFC8287] if any below interface" [RFC8287]. Check if any below conditions fail:
conditions fail:
- Validate the incoming interface on which the OAM - Validate that the incoming interface on which the
packet was receieved, matches with the remote OAM packet was received matches with the remote
interface specified in the PeerAdj SID FEC sub-TLV interface specified in the PeerAdj SID sub-TLV.
If all above validations have passed, set the return code to 3 If all above validations have passed, set the return code to 3,
"Replying router is an egress for the FEC at stack-depth" "Replying router is an egress for the FEC at stack-depth <RSC>"
} [RFC8029].
}
Else, if the Target FEC sub-TLV at FEC-stack-depth is TBD2 Else, if the Target FEC Stack sub-TLV at FEC stack-depth is 39
(PeerNode SID sub-TLV), { (PeerNode SID sub-TLV), {
Set the Best-return-code to 10, "Mapping for this FEC is not Set the Best-return-code to 10, "Mapping for this FEC is not
the given label at stack-depth if any below the given label at stack-depth <RSC>" [RFC8029]. Check if any
conditions fail: below conditions fail:
- Validate that the receiving node's BGP Local AS matches - Validate that the receiving node's BGP Local AS matches
with the remote AS field in the with the remote AS field in the received PeerNode SID
received PeerNode SID FEC sub-TLV. FEC sub-TLV.
- Validate that the receiving node's BGP Router-ID matches - Validate that the receiving node's BGP Router-ID matches
with the Remote Router ID field in the received with the Remote Router ID field in the received
PeerNode SID FEC. PeerNode SID FEC.
- Validate that there is a EBGP session with a peer - Validate that there is an EBGP session with a peer
having local AS number and BGP Router-ID as having a local AS number and BGP Router-ID as
specified in the Local AS number and Local Router-ID specified in the local AS number and Local Router-ID
field in the received PeerNode SID FEC sub-TLV. field in the received PeerNode SID FEC sub-TLV.
If all above validations have passed, set the return code to 3 If all above validations have passed, set the return code to 3,
"Replying router is an egress for the FEC at stack-depth". "Replying router is an egress for the FEC at stack-depth <RSC>"
} [RFC8029].
Else, if the Target FEC sub-TLV at FEC-stack-depth is TBD3 }
(PeerSet SID sub-TLV), { Else, if the Target FEC Stack sub-TLV at FEC stack-depth is 40
(PeerSet SID sub-TLV), {
Set the Best-return-code to 10, "Mapping for this FEC is not Set the Best-return-code to 10, "Mapping for this FEC is not
the given label at stack-depth" if any below the given label at stack-depth <RSC>" [RFC8029]. Check if any
conditions fail: below conditions fail:
- Validate that the Receiving Node BGP Local AS matches - Validate that the receiving node's BGP Local AS matches
with one of the remote AS field in the received PeerSet with one of the remote AS fields in the received
SID FEC sub-TLV. PeerSet SID FEC sub-TLV.
- Validate that the Receiving Node BGP Router-ID matches - Validate that the receiving node's BGP Router-ID matches
with one of the Remote Router ID field in the received with one of the Remote Router ID fields in the
PeerSet SID FEC sub-TLV. received PeerSet SID FEC sub-TLV.
- Validate that there is a EBGP session with a peer having - Validate that there is an EBGP session with a peer having
local AS number and BGP Router-ID as a local AS number and BGP Router-ID as specified in the
specified in the Local AS number and Local Router-ID local AS number and Local Router-ID fields in the received
field in the received PeerSet SID FEC sub-TLV. PeerSet SID FEC sub-TLV.
If all above validations have passed, set the return code to 3 If all above validations have passed, set the return code to 3,
"Replying router is an egress for the FEC at stack-depth" "Replying router is an egress for the FEC at stack-depth <RSC>"
} [RFC8029].
}
6. IANA Considerations 6. IANA Considerations
IANA is requested to allocate three new Target FEC stack sub-TLVs IANA has allocated three new Target FEC Stack sub-TLVs in the "Sub-
from the "Sub-TLVs for TLV types 1,16 and 21" subregistry in the TLVs for TLV Types 1, 16, and 21" registry
"TLVs" registry of the "Multi-Protocol Label switching (MPLS) Label [IANA-MPLS-LSP-PING-Parameters] within the "TLVs" registry of the
Switched Paths (LSPs) Ping parameters" namespace. "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs)
Ping Parameters" registry group.
PeerAdj SID Sub-TLV : TBD1
PeerNode SID Sub-TLV: TBD2
PeerSet SID Sub-TLV : TBD3 +==========+==============+
| Sub-Type | Sub-TLV Name |
+==========+==============+
| 38 | PeerAdj SID |
+----------+--------------+
| 39 | PeerNode SID |
+----------+--------------+
| 40 | PeerSet SID |
+----------+--------------+
The three lowest free values from the Standard Tracks range should be Table 1: Sub-TLVs for
allocated if possible. TLV Types 1, 16, and 21
Registry
7. Security Considerations 7. Security Considerations
The EPE-SIDs are advertised for egress links for Egress Peer The EPE-SIDs are advertised for egress links for EPE purposes or for
Engineering purposes or for inter-AS links between co-operating ASes. inter-AS links between cooperating ASes. When cooperating domains
When co-operating domains are involved, they can allow the packets are involved, they can allow the packets arriving on trusted
arriving on trusted interfaces to reach the control plane and get interfaces to reach the control plane and be processed.
processed.
When EPE-SIDs are created for egress TE links where the neighbor AS When EPE-SIDs are created for egress TE links where the neighbor AS
is an independent entity, it may not allow packets arriving from is an independent entity, it may not allow the packets arriving from
external world to reach the control plane. In such deployments MPLS the external world to reach the control plane. In such deployments,
OAM packets will be dropped by the neighboring AS that receives the the MPLS OAM packets will be dropped by the neighboring AS that
MPLS OAM packet. receives the MPLS OAM packet.
In MPLS traceroute applications, when the AS boundary is crossed with In MPLS Traceroute applications, when the AS boundary is crossed with
the EPE-SIDs, the FEC stack is changed. [RFC8287] does not mandate the EPE-SIDs, the Target FEC Stack TLV is changed. [RFC8287] does
that the initiator upon receiving an MPLS Echo Reply message that not mandate that the initiator, upon receiving an MPLS Echo Reply
includes the FEC Stack Change TLV with one or more of the original message that includes the Target FEC Stack Change TLV with one or
segments being popped remove a corresponding FEC(s) from the Target more of the original segments being popped, remove the corresponding
FEC Stack TLV in the next (TTL+1) traceroute request. FEC(s) from the Target FEC Stack TLV in the next (TTL+1) traceroute
request.
If an initiator does not remove the FECs belonging to the previous AS If an initiator does not remove the FECs belonging to the previous AS
that has traversed, it may expose the internal AS information to the that has traversed, it may expose the internal AS information to the
following AS being traversed in traceroute. following AS being traversed in the traceroute.
8. Implementation Status
This section is to be removed before publishing as an RFC.
RFC-Editor: Please clean up the references cited by this section
before publication.
This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in [RFC7942].
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.
8.1. Juniper Networks
Juniper networks reported a prototype implementation of this draft.
9. Acknowledgments
Thanks to Loa Andersson, Dhruv Dhody, Ketan Talaulikar, Italo Busi
and Alexander Vainshtein, Deepti Rathi for careful review and
comments. Thanks to Tarek Saad for providing the example described
in Appendix section.
10. References 8. References
10.1. Normative References 8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet [RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet
Autonomous System (AS) Number Space", RFC 6793, Autonomous System (AS) Number Space", RFC 6793,
DOI 10.17487/RFC6793, December 2012, DOI 10.17487/RFC6793, December 2012,
<https://www.rfc-editor.org/info/rfc6793>. <https://www.rfc-editor.org/info/rfc6793>.
skipping to change at page 16, line 11 skipping to change at line 631
"Clarification of Segment ID Sub-TLV Length for RFC 8287", "Clarification of Segment ID Sub-TLV Length for RFC 8287",
RFC 8690, DOI 10.17487/RFC8690, December 2019, RFC 8690, DOI 10.17487/RFC8690, December 2019,
<https://www.rfc-editor.org/info/rfc8690>. <https://www.rfc-editor.org/info/rfc8690>.
[RFC9086] Previdi, S., Talaulikar, K., Ed., Filsfils, C., Patel, K., [RFC9086] Previdi, S., Talaulikar, K., Ed., Filsfils, C., Patel, K.,
Ray, S., and J. Dong, "Border Gateway Protocol - Link Ray, S., and J. Dong, "Border Gateway Protocol - Link
State (BGP-LS) Extensions for Segment Routing BGP Egress State (BGP-LS) Extensions for Segment Routing BGP Egress
Peer Engineering", RFC 9086, DOI 10.17487/RFC9086, August Peer Engineering", RFC 9086, DOI 10.17487/RFC9086, August
2021, <https://www.rfc-editor.org/info/rfc9086>. 2021, <https://www.rfc-editor.org/info/rfc9086>.
10.2. Informative References 8.2. Informative References
[I-D.ietf-idr-segment-routing-te-policy] [BGP-SR-SEGTYPES-EXT]
Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and Talaulikar, K., Filsfils, C., Previdi, S., Mattes, P., and
D. Jain, "Advertising Segment Routing Policies in BGP", D. Jain, "Segment Routing Segment Types Extensions for BGP
Work in Progress, Internet-Draft, draft-ietf-idr-segment- SR Policy", Work in Progress, Internet-Draft, draft-ietf-
routing-te-policy-26, 23 October 2023, idr-bgp-sr-segtypes-ext-06, 7 November 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr- <https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-
segment-routing-te-policy-26>. sr-segtypes-ext-06>.
[IANA-MPLS-LSP-PING-Parameters]
IANA, "Sub-TLVs for TLV Types 1, 16, and 21",
<https://www.iana.org/assignments/mpls-lsp-ping-
parameters>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Border Gateway Protocol 4 (BGP-4)", RFC 4271, Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006, DOI 10.17487/RFC4271, January 2006,
<https://www.rfc-editor.org/info/rfc4271>. <https://www.rfc-editor.org/info/rfc4271>.
[RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous
System Confederations for BGP", RFC 5065, System Confederations for BGP", RFC 5065,
DOI 10.17487/RFC5065, August 2007, DOI 10.17487/RFC5065, August 2007,
<https://www.rfc-editor.org/info/rfc5065>. <https://www.rfc-editor.org/info/rfc5065>.
[RFC6286] Chen, E. and J. Yuan, "Autonomous-System-Wide Unique BGP [RFC6286] Chen, E. and J. Yuan, "Autonomous-System-Wide Unique BGP
Identifier for BGP-4", RFC 6286, DOI 10.17487/RFC6286, Identifier for BGP-4", RFC 6286, DOI 10.17487/RFC6286,
June 2011, <https://www.rfc-editor.org/info/rfc6286>. June 2011, <https://www.rfc-editor.org/info/rfc6286>.
[RFC7705] George, W. and S. Amante, "Autonomous System Migration [RFC7705] George, W. and S. Amante, "Autonomous System Migration
Mechanisms and Their Effects on the BGP AS_PATH Mechanisms and Their Effects on the BGP AS_PATH
Attribute", RFC 7705, DOI 10.17487/RFC7705, November 2015, Attribute", RFC 7705, DOI 10.17487/RFC7705, November 2015,
<https://www.rfc-editor.org/info/rfc7705>. <https://www.rfc-editor.org/info/rfc7705>.
[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>.
[RFC8403] Geib, R., Ed., Filsfils, C., Pignataro, C., Ed., and N. [RFC8403] Geib, R., Ed., Filsfils, C., Pignataro, C., Ed., and N.
Kumar, "A Scalable and Topology-Aware MPLS Data-Plane Kumar, "A Scalable and Topology-Aware MPLS Data-Plane
Monitoring System", RFC 8403, DOI 10.17487/RFC8403, July Monitoring System", RFC 8403, DOI 10.17487/RFC8403, July
2018, <https://www.rfc-editor.org/info/rfc8403>. 2018, <https://www.rfc-editor.org/info/rfc8403>.
[RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "Path Computation Element Communication and J. Hardwick, "Path Computation Element Communication
Protocol (PCEP) Extensions for Segment Routing", RFC 8664, Protocol (PCEP) Extensions for Segment Routing", RFC 8664,
DOI 10.17487/RFC8664, December 2019, DOI 10.17487/RFC8664, December 2019,
<https://www.rfc-editor.org/info/rfc8664>. <https://www.rfc-editor.org/info/rfc8664>.
skipping to change at page 17, line 21 skipping to change at line 686
[RFC9087] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed., Aries, E., [RFC9087] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed., Aries, E.,
and D. Afanasiev, "Segment Routing Centralized BGP Egress and D. Afanasiev, "Segment Routing Centralized BGP Egress
Peer Engineering", RFC 9087, DOI 10.17487/RFC9087, August Peer Engineering", RFC 9087, DOI 10.17487/RFC9087, August
2021, <https://www.rfc-editor.org/info/rfc9087>. 2021, <https://www.rfc-editor.org/info/rfc9087>.
[RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov,
A., and P. Mattes, "Segment Routing Policy Architecture", A., and P. Mattes, "Segment Routing Policy Architecture",
RFC 9256, DOI 10.17487/RFC9256, July 2022, RFC 9256, DOI 10.17487/RFC9256, July 2022,
<https://www.rfc-editor.org/info/rfc9256>. <https://www.rfc-editor.org/info/rfc9256>.
Appendix A. APPENDIX [SR-BGP-POLICY]
Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and
D. Jain, "Advertising Segment Routing Policies in BGP",
Work in Progress, Internet-Draft, draft-ietf-idr-sr-
policy-safi-10, 7 November 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-
policy-safi-10>.
This section describes an example of correctly programmed state and Appendix A. Examples of Programmed States
This section describes examples of both a correctly and an
incorrectly programmed state and provides details on how the new sub- incorrectly programmed state and provides details on how the new sub-
TLVs described in this document can be used to validate the TLVs described in this document can be used to validate the
correctness. Consider the diagram from Figure 1, correctness. Consider the diagram from Figure 1.
Correctly programed state: Correctly programmed state:
C assigns label 16001 and binds it to adjacency C->E * C assigns label 16001 and binds it to adjacency C->E
C signals label 16001 is bound to adjacency C->E (e.g. via BGP- * C signals that label 16001 is bound to adjacency C->E (e.g., via
LS) BGP-LS)
• Controller/Ingress programs an SR path that has SID/label 16001 * The controller/ingress programs an SR path that has SID/label
to steer packet on the exit point from C onto adjacency C->E 16001 to steer the packet on the exit point from C onto adjacency
C->E
Using MPLS trace procedures defined in this document, the * Using MPLS Traceroute procedures defined in this document, the
PeerAdj SID Sub-TLV is populates with entities to be validated by PeerAdj SID sub-TLV is populated with entities to be validated by
C when OAM packet reaches it. C when the OAM packet reaches it
C receives the OAM packet, it validates the top label (16001) is * C receives the OAM packet and validates that the top label (16001)
indeed corresponding to the entities populated in the PeerAdj SID is indeed corresponding to the entities populated in the PeerAdj
Sub-TLV SID sub-TLV
Incorrectly programed state: Incorrectly programmed state:
C assigns label 16001 and binds it to adjacency C->D * C assigns label 16001 and binds it to adjacency C->D
The controller learns of PeerAdj SID label 16001 is bound to * The controller learns that PeerAdj SID label 16001 is bound to
adjacency C->E (e.g. via BGP-LS) this could be a software bug on adjacency C->E (e.g., via BGP-LS) -- this could be a software bug
C or on controller on C or on the controller
• Controller/Ingress programs an SR path that has SID/label 16001
to steer packet on the exit point from C onto adjacency C->E
• Using MPLS trace procedures defined in this document, the * The controller/ingress programs an SR path that has SID/label
PeerAdj SID Sub-TLV is populates with entities to be validated by 16001 to steer the packet on the exit point from C onto adjacency
C (including local/remote interface address of C->E) when OAM C->E
packet reaches it.
C receives the OAM packet, it validates the top label (16001) is * Using MPLS Traceroute procedures defined in this document, the
NOT bound to C->E as populated in the PeerAdj SID Sub-TLV and can PeerAdj SID sub-TLV is populated with entities to be validated by
respond with the respective error code C (including a local/remote interface address of C->E) when the
OAM packet reaches it
* C receives the OAM packet and validates that the top label (16001)
is NOT bound to C->E as populated in the PeerAdj SID sub-TLV and
then responds with the respective error code
Acknowledgments
Thanks to Loa Andersson, Dhruv Dhody, Ketan Talaulikar, Italo Busi,
Alexander Vainshtein, and Deepti Rathi for careful reviews and
comments. Thanks to Tarek Saad for providing the example described
in Appendix A.
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 Karnataka
India India
Email: shraddha@juniper.net Email: shraddha@juniper.net
Mukul Srivastava Mukul Srivastava
Juniper Networks Inc. Juniper Networks Inc.
Email: msri@juniper.net Email: msri@juniper.net
Kapil Arora Kapil Arora
Individual Contributor Individual Contributor
Email: kapil.it@gmail.com Email: kapil.it@gmail.com
 End of changes. 123 change blocks. 
521 lines changed or deleted 484 lines changed or added

This html diff was produced by rfcdiff 1.48.