rfc9703v3.txt   rfc9703.txt 
skipping to change at line 118 skipping to change at line 118
| X | \\ | K | X | \\ | K
| | +===F AS3 | | | +===F AS3 |
+---------+ +------+ +---------+ +------+
Figure 1: Reference Diagram Figure 1: Reference Diagram
In Figure 1, EPE-SIDs are configured on AS1 towards AS2 and AS3 and In Figure 1, EPE-SIDs are configured on AS1 towards AS2 and AS3 and
advertised in the Border Gateway Protocol - Link State (BGP-LS) advertised in the Border Gateway Protocol - Link State (BGP-LS)
[RFC9086]. In certain cases, the EPE-SIDs advertised by the control [RFC9086]. In certain cases, the EPE-SIDs advertised by the control
plane may not be in synchronization with the label programmed in the plane may not be in synchronization with the label programmed in the
data plane. For example, on C, a PeerAdj SID sub-TLV could be data plane. For example, on C, a PeerAdj SID could be advertised to
advertised to indicate it is for the link C->D. Due to some software indicate it is for the link C->D. Due to some software anomaly, the
anomaly, the actual data forwarding on this PeerAdj SID sub-TLV could actual data forwarding on this PeerAdj SID could be happening over
be happening over the C->E link. If E had relevant data paths for the C->E link. If E had relevant data paths for further forwarding
further forwarding the packet, this kind of anomaly would go the packet, this kind of anomaly would go unnoticed by the network
unnoticed by the network operator. A detailed example of a correctly operator. A detailed example of a correctly programmed state and an
programmed state and an incorrectly programmed state along with a incorrectly programmed state along with a description of how the
description of how the incorrect state can be detected is described incorrect state can be detected is described in Appendix A. A
in Appendix A. A Forwarding Equivalence Class (FEC) definition for Forwarding Equivalence Class (FEC) definition for the EPE-SIDs will
the EPE-SIDs will detail the control plane association of the SID. detail the control plane association of the SID. The data plane
The data plane validation of the SID will be done during the MPLS validation of the SID will be done during the MPLS Traceroute
Traceroute procedure. When there is a multi-hop External BGP (EBGP) procedure. When there is a multi-hop External BGP (EBGP) session
session between the ASBRs, a PeerNode SID is advertised, and the between the ASBRs, a PeerNode SID is advertised, and the traffic MAY
traffic MAY be load-balanced between the interfaces connecting the be load-balanced between the interfaces connecting the two nodes. In
two nodes. In Figure 1, C and F could have a PeerNode SID Figure 1, C and F could have a PeerNode SID advertised. When the
advertised. When the Operations, Administration, and Maintenance Operations, Administration, and Maintenance (OAM) packet is received
(OAM) packet is received on F, it needs to be validated that the on F, it needs to be validated that the packet came from one of the
packet came from one of the two interfaces connected to C. 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 the node Stack TLV definitions for EPE-SIDs. This solution requires the node
constructing the Target FEC Stack TLV to determine the types of SIDs constructing the Target FEC Stack TLV to determine the types of 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 Section 7 of [RFC8287] and clarified in 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
skipping to change at line 308 skipping to change at line 308
Adj type: 1 octet Adj type: 1 octet
Value: Set to 1 when the Adjacency Segment is IPv4. Set to 2 when Value: Set to 1 when the Adjacency Segment is IPv4. Set to 2 when
the Adjacency Segment is IPv6. the Adjacency Segment is IPv6.
RESERVED: 3 octets. MUST be zero when sending and ignored on RESERVED: 3 octets. MUST be zero when sending and ignored on
receiving. receiving.
Local AS Number: 4 octets. The unsigned integer representing the AS Local AS Number: 4 octets. The unsigned integer representing the AS
number [RFC6793] of the AS to which the PeerAdj SID sub-TLV number [RFC6793] of the AS to which the PeerAdj SID advertising
advertising node belongs. If Confederations [RFC5065] are in use, node belongs. If Confederations [RFC5065] are in use, and if the
and if the remote node is a member of a different Member-AS within remote node is a member of a different Member-AS within the local
the local Confederation, this is the Member-AS Number inside the Confederation, this is the Member-AS Number inside the
Confederation and not the Confederation Identifier. Confederation and not the Confederation Identifier.
Remote AS Number: 4 octets. The unsigned integer representing the Remote AS Number: 4 octets. The unsigned integer representing the
AS number [RFC6793] of the remote node's AS for which the PeerAdj AS number [RFC6793] of the remote node's AS for which the PeerAdj
SID sub-TLV is advertised. If Confederations [RFC5065] are in SID is advertised. If Confederations [RFC5065] are in use, and if
use, and if the remote node is a member of a different Member-AS the remote node is a member of a different Member-AS within the
within the local Confederation, this is the Member-AS Number local Confederation, this is the Member-AS Number inside the
inside the Confederation and not the Confederation Identifier. Confederation and not the Confederation Identifier.
Local BGP Router ID: 4 octets. The unsigned integer representing Local BGP Router ID: 4 octets. The unsigned integer representing
the BGP Identifier of the PeerAdj SID sub-TLV advertising node as the BGP Identifier of the PeerAdj SID advertising node as defined
defined in [RFC4271] and [RFC6286]. in [RFC4271] and [RFC6286].
Remote BGP Router ID: 4 octets. The unsigned integer representing Remote BGP Router ID: 4 octets. The unsigned integer representing
the BGP Identifier of the remote node as defined in [RFC4271] and the BGP Identifier of the remote node as defined in [RFC4271] and
[RFC6286]. [RFC6286].
Local Interface Address: 4 octets or 16 octets. In the case of Local Interface Address: 4 octets or 16 octets. In the case of
PeerAdj SID sub-TLV, the local interface address corresponding to PeerAdj SID, the local interface address corresponding to the
the PeerAdj SID sub-TLV should be specified in this field. For PeerAdj SID should be specified in this field. For IPv4, this
IPv4, this field is 4 octets; for IPv6, this field is 16 octets. field is 4 octets; for IPv6, this field is 16 octets. Link-local
Link-local IPv6 addresses are not in the scope of this document. IPv6 addresses are not in the scope of this document.
Remote Interface Address: 4 octets or 16 octets. In the case of Remote Interface Address: 4 octets or 16 octets. In the case of
PeerAdj SID sub-TLV, the remote interface address corresponding to PeerAdj SID, the remote interface address corresponding to the
the PeerAdj SID sub-TLV should be specified in this field. For PeerAdj SID should be specified in this field. For IPv4, this
IPv4, this field is 4 octets; for IPv6, this field is 16 octets. field is 4 octets; for IPv6, this field is 16 octets. Link-local
Link-local IPv6 addresses are not in the scope of this document. IPv6 addresses are not in the scope of this document.
[RFC9086] mandates sending a local interface ID and remote interface [RFC9086] mandates sending a local interface ID and remote interface
ID 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, but if the remote descriptor is 0, this validation is not OAM packet, but if the remote descriptor is 0, this validation is not
possible. Optional link descriptors of local and remote interface possible. Optional link descriptors of local and remote interface
addresses are allowed as described in Section 4.2 of [RFC9086]. In addresses are allowed as described in Section 4.2 of [RFC9086]. In
this document, it is RECOMMENDED to send these optional descriptors this document, it is RECOMMENDED to send these optional descriptors
and use them to validate incoming interfaces. When these local and and use them to validate incoming interfaces. When these local and
remote interface addresses are not available, an ingress node can remote interface addresses are not available, an ingress node can
skipping to change at line 420 skipping to change at line 420
SID is advertised. If Confederations [RFC5065] are in use, and if SID is advertised. If Confederations [RFC5065] are in use, and if
the remote node is a member of a different Member-AS within the the remote node is a member of a different Member-AS within the
local Confederation, this is the Member-AS Number inside the local Confederation, this is the Member-AS Number inside the
Confederation and not the Confederation Identifier. Confederation and not the Confederation Identifier.
Remote BGP Router ID: 4 octets. The unsigned integer representing Remote BGP Router ID: 4 octets. The unsigned integer representing
the BGP Identifier of the remote node as defined in [RFC4271] and the BGP Identifier of the remote node as defined in [RFC4271] and
[RFC6286]. [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 SID sub-TLVs. The remote AS number and the Router ID of each PeerAdj SIDs. The remote AS number and the Router ID of each of
of these PeerNode SIDs and PeerAdj SID sub-TLVs MUST be included in these PeerNode SIDs and PeerAdj SIDs MUST be included in the FEC.
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 the 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 sub-TLV 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 5: 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 section below is appended to the procedure given in step sent. The section below is appended to the procedure given in step
skipping to change at line 726 skipping to change at line 725
C when the OAM packet reaches it C when the OAM packet reaches it
* C receives the OAM packet and validates that the top label (16001) * C receives the OAM packet and validates that the top label (16001)
is indeed corresponding to the entities populated in the PeerAdj is indeed corresponding to the entities populated in the PeerAdj
SID sub-TLV SID sub-TLV
Incorrectly programmed 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 that PeerAdj SID sub-TLV label 16001 is * The controller learns that PeerAdj SID label 16001 is bound to
bound to adjacency C->E (e.g., via BGP-LS) -- this could be a adjacency C->E (e.g., via BGP-LS) -- this could be a software bug
software bug on C or on the controller on C or on the controller
* The controller/ingress programs an SR path that has SID/label * The controller/ingress programs an SR path that has SID/label
16001 to steer the packet on the exit point from C onto adjacency 16001 to steer the packet on the exit point from C onto adjacency
C->E C->E
* Using MPLS Traceroute procedures defined in this document, the * Using MPLS Traceroute procedures defined in this document, the
PeerAdj SID sub-TLV is populated with entities to be validated by PeerAdj SID sub-TLV is populated with entities to be validated by
C (including a local/remote interface address of C->E) when the C (including a local/remote interface address of C->E) when the
OAM packet reaches it OAM packet reaches it
 End of changes. 10 change blocks. 
44 lines changed or deleted 43 lines changed or added

This html diff was produced by rfcdiff 1.48.