rfc9780v2.txt | rfc9780.txt | |||
---|---|---|---|---|
skipping to change at line 100 ¶ | skipping to change at line 100 ¶ | |||
[RFC8562] added two BFD session types: MultipointHead and | [RFC8562] added two BFD session types: MultipointHead and | |||
MultipointTail. Throughout this document, MultipointHead and | MultipointTail. Throughout this document, MultipointHead and | |||
MultipointTail refer to the value to which the bfd.SessionType is set | MultipointTail refer to the value to which the bfd.SessionType is set | |||
on a BFD endpoint. | on a BFD endpoint. | |||
This document describes procedures for using such modes of the BFD | This document describes procedures for using such modes of the BFD | |||
protocol to detect data plane failures in point-to-multipoint (P2MP) | protocol to detect data plane failures in point-to-multipoint (P2MP) | |||
MPLS Label Switched Paths (LSPs) and Segment Routing (SR) point-to- | MPLS Label Switched Paths (LSPs) and Segment Routing (SR) point-to- | |||
multipoint policies with an SR over MPLS (SR-MPLS) data plane. | multipoint policies with an SR over MPLS (SR-MPLS) data plane. | |||
The document also describes the applicability of LSP Ping and out-of- | The document also describes the applicability of LSP Ping (an in-band | |||
band solutions to bootstrap a BFD session in this environment. | solution) and out-of-band solutions to bootstrap a BFD session in | |||
this environment. | ||||
Historically, an address in the IPv6-mapped IPv4 loopback range | Historically, an address in the IPv6-mapped IPv4 loopback range | |||
::ffff:127.0.0.1/128 was mandated, although functionally, an IPv6 | ::ffff:127.0.0.1/128 was mandated, although functionally, an IPv6 | |||
address from that range is not analogous to its IPv4 counterpart. | address from that range is not analogous to its IPv4 counterpart. | |||
Furthermore, using the loopback address as the destination address, | Furthermore, using the loopback address as the destination address, | |||
even for an inner IP encapsulation of a tunneled packet, violates | even for an inner IP encapsulation of a tunneled packet, violates | |||
Section 2.5.3 of [RFC4291]. Hence, IANA has allocated 100:0:0:1::/64 | Section 2.5.3 of [RFC4291]. Hence, IANA has allocated 100:0:0:1::/64 | |||
as a new Dummy IPv6 Prefix (Section 7.1) for destination IPv6 | as a new Dummy IPv6 Prefix (Section 7.1) for destination IPv6 | |||
addresses used for IP/UDP encapsulation of management, control, and | addresses used for IP/UDP encapsulation of management, control, and | |||
OAM (Operations, Administration, and Maintenance) packets. A source- | OAM (Operations, Administration, and Maintenance) packets. A source- | |||
skipping to change at line 174 ¶ | skipping to change at line 175 ¶ | |||
multipoint (P2MP) BFD session. Because the head doesn't receive any | multipoint (P2MP) BFD session. Because the head doesn't receive any | |||
BFD Control packets from a tail, the head of the P2MP BFD session | BFD Control packets from a tail, the head of the P2MP BFD session | |||
transmits all BFD Control packets with the value of the Your | transmits all BFD Control packets with the value of the Your | |||
Discriminator field set to zero. As a result, a tail cannot | Discriminator field set to zero. As a result, a tail cannot | |||
demultiplex BFD sessions using Your Discriminator, as defined in | demultiplex BFD sessions using Your Discriminator, as defined in | |||
[RFC5880]. To demultiplex BFD sessions, [RFC8562] requires that the | [RFC5880]. To demultiplex BFD sessions, [RFC8562] requires that the | |||
tail use the source IP address, My Discriminator, and the identity of | tail use the source IP address, My Discriminator, and the identity of | |||
the multipoint tree from which the BFD Control packet was received. | the multipoint tree from which the BFD Control packet was received. | |||
If the BFD Control packet is encapsulated in IP/UDP, then the source | If the BFD Control packet is encapsulated in IP/UDP, then the source | |||
IP address MUST be used to demultiplex the received BFD Control | IP address MUST be used to demultiplex the received BFD Control | |||
packet as described in Section 3.1. The non-IP encapsulation case is | packet as described in Section 5.7 of [RFC8562]. The non-IP | |||
described in Section 3.2. | encapsulation case is described in Section 3.2. | |||
3.1. IP Encapsulation of Multipoint BFD | 3.1. IP Encapsulation of Multipoint BFD | |||
[RFC8562] defines IP/UDP encapsulation for multipoint BFD over P2MP | [RFC8562] defines IP/UDP encapsulation for multipoint BFD over P2MP | |||
MPLS LSP. This document updates Section 5.8 of [RFC8562] regarding | MPLS LSP. This document updates Section 5.8 of [RFC8562] regarding | |||
the selection of the IPv6 destination address as follows: | the selection of the IPv6 destination address as follows: | |||
* The sender of an MPLS echo request SHOULD use an address from the | * The sender of an MPLS echo request SHOULD use an address from the | |||
Dummy IPv6 Prefix address block 100:0:0:1::/64 (see Section 7.1). | Dummy IPv6 Prefix address block 100:0:0:1::/64 (see Section 7.1). | |||
* The sender of an MPLS echo request MAY select the IPv6 destination | * The sender of an MPLS echo request MAY select the IPv6 destination | |||
address from the ::ffff:7f00/104 range. | address from the ::ffff:7f00/104 range. | |||
Section 1.2 of [RFC6790] lists several advantages of generating the | Section 1.2 of [RFC6790] lists several advantages of generating the | |||
entropy value by an ingress Label Switching Router (LSR) compared to | entropy value by an ingress Label Switching Router (LSR) compared to | |||
when a transit LSR infers entropy using the information in the MPLS | when a transit LSR infers entropy using the information in the MPLS | |||
label stack or payload. This specification further clarifies that: | label stack or payload. This specification further clarifies the | |||
following if multiple alternative paths for the given P2MP LSP | ||||
Forwarding Equivalence Class (FEC) exist: | ||||
* if multiple alternative paths for the given P2MP LSP Forwarding | * The MultipointHead SHOULD use the Entropy Label [RFC6790] used for | |||
Equivalence Class (FEC) exist, the MultipointHead SHOULD use the | LSP Ping [RFC8029] to exercise those particular alternative paths; | |||
Entropy Label [RFC6790] used for LSP Ping [RFC8029] to exercise | or | |||
those particular alternative paths; | ||||
* or the MultipointHead MAY use the UDP port number to possibly | * The MultipointHead MAY use the UDP port number to possibly | |||
exercise those particular alternate paths. | exercise those particular alternate paths. | |||
3.2. Non-IP Encapsulation of Multipoint BFD | 3.2. Non-IP Encapsulation of Multipoint BFD | |||
In some environments, the overhead of extra IP/UDP encapsulations may | In some environments, the overhead of extra IP/UDP encapsulations may | |||
be considered burdensome, which makes the use of more compact Generic | be considered burdensome, which makes the use of more compact Generic | |||
Associated Channel (G-ACh) [RFC5586] encapsulation attractive. Also, | Associated Channel (G-ACh) [RFC5586] encapsulation attractive. Also, | |||
the validation of the IP/UDP encapsulation of a BFD Control packet in | the validation of the IP/UDP encapsulation of a BFD Control packet in | |||
a P2MP BFD session may fail because of a problem related to neither | a P2MP BFD session may fail because of a problem related to neither | |||
the MPLS label stack nor BFD. Avoiding unnecessary encapsulation of | the MPLS label stack nor BFD. Avoiding unnecessary encapsulation of | |||
skipping to change at line 224 ¶ | skipping to change at line 226 ¶ | |||
Figure 1) MUST use the G-ACh Label (GAL) [RFC5586] at the bottom of | Figure 1) MUST use the G-ACh Label (GAL) [RFC5586] at the bottom of | |||
the label stack followed by an Associated Channel Header (ACH). If a | the label stack followed by an Associated Channel Header (ACH). If a | |||
BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) | BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) | |||
is to be used in ACH, an implementation would not be able to verify | is to be used in ACH, an implementation would not be able to verify | |||
the identity of the MultipointHead and, as a result, will not | the identity of the MultipointHead and, as a result, will not | |||
properly demultiplex BFD packets. Hence, a new channel type value is | properly demultiplex BFD packets. Hence, a new channel type value is | |||
needed. The Channel Type field in ACH MUST be set to Multipoint BFD | needed. The Channel Type field in ACH MUST be set to Multipoint BFD | |||
Session (0x0013) (see Section 7.2). To provide the identity of the | Session (0x0013) (see Section 7.2). To provide the identity of the | |||
MultipointHead for the particular multipoint BFD session, a Source | MultipointHead for the particular multipoint BFD session, a Source | |||
Address TLV, as defined in Section 4.1 of [RFC7212], MUST immediately | Address TLV, as defined in Section 4.1 of [RFC7212], MUST immediately | |||
follow a BFD Control message. The use of other TLVs is outside the | follow a BFD Control packet. The use of other TLVs is outside the | |||
scope of this document. | scope of this document. | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LSP Label | TC |S| TTL | | | LSP Label | TC |S| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| GAL | TC |1| TTL | | | GAL | TC |1| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|0 0 0 1|Version| Flags | Channel Type = 0x0013 | | |0 0 0 1|Version| Flags | Channel Type = 0x0013 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ BFD Control Message ~ | ~ BFD Control Packet ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type=0 | Reserved | Length | | | Type=0 | Reserved | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved | Address Family | | | Reserved | Address Family | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Address ~ | ~ Address ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: Non-IP Encapsulation for Multipoint BFD over a | Figure 1: Non-IP Encapsulation for Multipoint BFD over a | |||
Multicast MPLS LSP | Multicast MPLS LSP | |||
The fields in Figure 1 are interpreted as follows: | The fields in Figure 1 are interpreted as follows: | |||
* The top three four-octet words are defined in [RFC5586]. | * The top three four-octet words are defined in [RFC5586]. | |||
* The BFD Control Message field is defined in [RFC5880], where it is | * The BFD Control Packet field is defined in [RFC5880]. | |||
referred to as the "BFD Control Packet". | ||||
* All the remaining fields are defined in Section 4.1 of [RFC7212]. | * All the remaining fields are defined in Section 4.1 of [RFC7212]. | |||
4. Bootstrapping Multipoint BFD | 4. Bootstrapping Multipoint BFD | |||
4.1. LSP Ping | 4.1. LSP Ping | |||
LSP Ping is the part of the on-demand OAM toolset used to detect and | LSP Ping is the part of the on-demand OAM toolset used to detect and | |||
localize defects in the data plane and verify the control plane | localize defects in the data plane and verify the control plane | |||
against the data plane by ensuring that the LSP is mapped to the same | against the data plane by ensuring that the LSP is mapped to the same | |||
skipping to change at line 376 ¶ | skipping to change at line 377 ¶ | |||
encapsulation (without IP/UDP Headers) with Channel Type 0x0007 | encapsulation (without IP/UDP Headers) with Channel Type 0x0007 | |||
[RFC5885]. | [RFC5885]. | |||
The BFD Control packets are transmitted at the rate of one per second | The BFD Control packets are transmitted at the rate of one per second | |||
until either 1) the egress LSA receives a control packet from the | until either 1) the egress LSA receives a control packet from the | |||
ingress LSR that is valid for this BFD session and has the Final (F) | ingress LSR that is valid for this BFD session and has the Final (F) | |||
bit set or 2) the defect condition clears. However, to improve the | bit set or 2) the defect condition clears. However, to improve the | |||
likelihood of notifying the ingress LSR of the failure of the P2MP | likelihood of notifying the ingress LSR of the failure of the P2MP | |||
MPLS LSP, the egress LSR SHOULD initially transmit three BFD Control | MPLS LSP, the egress LSR SHOULD initially transmit three BFD Control | |||
packets (as defined above) in short succession. The actual | packets (as defined above) in short succession. The actual | |||
transmission of the periodic BFD Control message MUST be jittered by | transmission of the periodic BFD Control packet MUST be jittered by | |||
up to 25% within one-second intervals. Thus, the interval MUST be | up to 25% within one-second intervals. Thus, the interval MUST be | |||
reduced by a random value of 0 to 25%, to reduce the possibility of | reduced by a random value of 0 to 25%, to reduce the possibility of | |||
congestion on the ingress LSR's data and control planes. | congestion on the ingress LSR's data and control planes. | |||
As described above, an ingress LSR that has received the BFD Control | As described above, an ingress LSR that has received the BFD Control | |||
packet sends the unicast IP/UDP encapsulated BFD Control packet with | packet sends the unicast IP/UDP encapsulated BFD Control packet with | |||
the Final (F) bit set to the egress LSR. In some scenarios (e.g., | the Final (F) bit set to the egress LSR. In some scenarios (e.g., | |||
when a P2MP LSP is broken close to its root and the number of egress | when a P2MP LSP is broken close to its root and the number of egress | |||
LSRs is significantly large), the root might receive a large number | LSRs is significantly large), the root might receive a large number | |||
of notifications. The notifications from leaves to the root will not | of notifications. The notifications from leaves to the root will not | |||
End of changes. 9 change blocks. | ||||
15 lines changed or deleted | 16 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |