| rfc9780v1.txt | rfc9780.txt | |||
|---|---|---|---|---|
| skipping to change at line 17 ¶ | skipping to change at line 17 ¶ | |||
| Independent | Independent | |||
| May 2025 | May 2025 | |||
| Bidirectional Forwarding Detection (BFD) for Multipoint Networks over | Bidirectional Forwarding Detection (BFD) for Multipoint Networks over | |||
| Point-to-Multipoint MPLS Label Switched Paths (LSPs) | Point-to-Multipoint MPLS Label Switched Paths (LSPs) | |||
| Abstract | Abstract | |||
| This document describes procedures for using Bidirectional Forwarding | This document describes procedures for using Bidirectional Forwarding | |||
| Detection (BFD) for multipoint networks to detect data plane failures | Detection (BFD) for multipoint networks to detect data plane failures | |||
| in MPLS point-to-multipoint Label Switched Paths (LSPs) and Segment | in point-to-multipoint MPLS Label Switched Paths (LSPs) and Segment | |||
| Routing (SR) point-to-multipoint policies with an SR over MPLS (SR- | Routing (SR) point-to-multipoint policies with an SR over MPLS (SR- | |||
| MPLS) data plane. | MPLS) data plane. | |||
| Furthermore, this document updates RFC 8562 by recommending the use | Furthermore, this document updates RFC 8562 by recommending the use | |||
| of an IPv6 address from the Dummy IPv6 Prefix range 100:0:0:1::/64 | of an IPv6 address from the Dummy IPv6 Prefix address block | |||
| and discouraging the use of an IPv4 loopback address mapped to IPv6. | 100:0:0:1::/64 and discouraging the use of an IPv4 loopback address | |||
| mapped to IPv6. | ||||
| In addition, this document describes the applicability of LSP Ping, | In addition, this document describes the applicability of LSP Ping | |||
| as in-band, and the control plane, as out-of-band, solutions to | (as an in-band solution) and the control plane (as an out-of-band | |||
| bootstrap a BFD session. The document also describes the behavior of | solution) to bootstrap a BFD session. The document also describes | |||
| the active tail for head notification. | the behavior of the active tail for head notification. | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
| (IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| skipping to change at line 95 ¶ | skipping to change at line 96 ¶ | |||
| Detection (BFD) [RFC5880] to monitor and detect failures between the | Detection (BFD) [RFC5880] to monitor and detect failures between the | |||
| sender (head) and one or more receivers (tails) in multipoint or | sender (head) and one or more receivers (tails) in multipoint or | |||
| multicast networks. | multicast networks. | |||
| [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 MPLS point-to-multipoint | protocol to detect data plane failures in point-to-multipoint (P2MP) | |||
| (P2MP) 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 out-of-band | The document also describes the applicability of LSP Ping (an in-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 IPv6-mapped IPv4 loopback range | Historically, an address in the IPv6-mapped IPv4 loopback address | |||
| address::ffff:127.0.0.1/128 was mandated, although functionally, an | block ::ffff:127.0.0.1/128 was mandated, although functionally, an | |||
| IPv6 address from that range is not analogous to its IPv4 | IPv6 address from that address block is not analogous to its IPv4 | |||
| counterpart. Furthermore, using the loopback address as the | counterpart. Furthermore, using the loopback address as the | |||
| destination address, even for an inner IP encapsulation of a tunneled | destination address, even for an inner IP encapsulation of a tunneled | |||
| packet, violates Section 2.5.3 of [RFC4291]. Hence, IANA has | packet, violates Section 2.5.3 of [RFC4291]. Hence, IANA has | |||
| allocated 100:0:0:1::/64 as a new Dummy IPv6 Prefix (Section 7.1) to | allocated 100:0:0:1::/64 as a new Dummy IPv6 Prefix (Section 7.1) for | |||
| select destination IPv6 addresses for IP/UDP encapsulation of | destination IPv6 addresses used for IP/UDP encapsulation of | |||
| management, control, and Operations, Administration, and Maintenance | management, control, and OAM (Operations, Administration, and | |||
| (OAM) packets. A source-only IPv6 dummy address is used as the | Maintenance) packets. A source-only IPv6 dummy address is used as | |||
| destination to generate an exception and a reply message to the | the destination to generate an exception and a reply message to the | |||
| request message received. This document starts the transition to | request message received. This document starts the transition to | |||
| using the IPv6 addresses from the Dummy IPv6 Prefix range | using the IPv6 addresses from the Dummy IPv6 Prefix address block | |||
| 100:0:0:1::/64 as the IPv6 destination address in the IP/UDP | 100:0:0:1::/64 as the IPv6 destination address in the IP/UDP | |||
| encapsulation of active OAM over the MPLS data plane. Thus, this | encapsulation of active OAM over the MPLS data plane. Thus, this | |||
| document updates [RFC8562] by recommending the use of an IPv6 address | document updates [RFC8562] by recommending the use of an IPv6 address | |||
| from the Dummy IPv6 Prefix range 100:0:0:1::/64 (Section 7.1) while | from the Dummy IPv6 Prefix address block 100:0:0:1::/64 (Section 7.1) | |||
| acknowledging that an address from the ::ffff:127.0.0.1/128 range | while acknowledging that an address from the ::ffff:127.0.0.1/128 | |||
| might be used by existing implementations. This document discourages | address block might be used by existing implementations. This | |||
| the use of an address in the IPv6-mapped IPv4 loopback range. | document discourages the use of an address in the IPv6-mapped IPv4 | |||
| loopback address block. | ||||
| This document also describes the behavior of the active tail for head | This document also describes the behavior of the active tail for head | |||
| notification. | notification. | |||
| 2. Conventions Used in This Document | 2. Conventions Used in This Document | |||
| 2.1. Terminology | 2.1. Terminology | |||
| ACH: Associated Channel Header | ACH: Associated Channel Header | |||
| skipping to change at line 173 ¶ | skipping to change at line 176 ¶ | |||
| 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 range 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 address block. | |||
| 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 | |||
| P2MP BFD over an MPLS LSP improves the accuracy of the correlation of | P2MP BFD over an MPLS LSP improves the accuracy of the correlation of | |||
| the detected failure and defect in MPLS LSP. | the detected failure and defect in MPLS LSP. | |||
| If a 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 the identity of the MultipointHead and, as a result, will not | ||||
| properly demultiplex BFD packets. Hence, a new channel type value is | ||||
| needed. | ||||
| Non-IP encapsulation for multipoint BFD over P2MP MPLS LSP (shown in | Non-IP encapsulation for multipoint BFD over P2MP MPLS LSP (shown in | |||
| 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]. | * The BFD Control Packet field is defined in [RFC5880]. | |||
| * 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 | |||
| FEC at both egress and ingress endpoints. | FEC at both egress and ingress endpoints. | |||
| LSP Ping, as defined in [RFC6425], MAY be used to bootstrap | LSP Ping, as defined in [RFC6425], MAY be used to bootstrap | |||
| MultipointTail. If LSP Ping is used, it MUST include the Target FEC | MultipointTail. If LSP Ping is used, it MUST include the Target FEC | |||
| TLV and the BFD Discriminator TLV defined in [RFC5884]. For the case | Stack TLV [RFC8029] and the BFD Discriminator TLV [RFC5884]. For the | |||
| of P2MP MPLS LSP, the Target FEC TLV MUST use sub-TLVs defined in | case of P2MP MPLS LSP, the Target FEC Stack TLV MUST use sub-TLVs | |||
| Section 3.1 of [RFC6425]. For the case of P2MP SR policy with an SR- | defined in Section 3.1 of [RFC6425]. For the case of P2MP SR policy | |||
| MPLS data plane, an implementation of this specification MUST follow | with an SR-MPLS data plane, an implementation of this specification | |||
| the procedures defined in [RFC8287]. Setting the value of the Reply | MUST follow the procedures defined in [RFC8287]. Setting the value | |||
| Mode field to "Do not reply" [RFC8029] for the LSP Ping to bootstrap | of the Reply Mode field to "Do not reply" [RFC8029] for the LSP Ping | |||
| the MultipointTail of the P2MP BFD session is RECOMMENDED. Indeed, | to bootstrap the MultipointTail of the P2MP BFD session is | |||
| because BFD over a multipoint network uses BFD Demand mode, the MPLS | RECOMMENDED. Indeed, because BFD over a multipoint network uses BFD | |||
| echo reply from a tail has no useful information to convey to the | Demand mode, the MPLS echo reply from a tail has no useful | |||
| head, unlike in the case of BFD over a P2P MPLS LSP [RFC5884]. A | information to convey to the head, unlike in the case of BFD over a | |||
| MultipointTail that receives an LSP Ping that includes the BFD | P2P MPLS LSP [RFC5884]. A MultipointTail that receives an LSP Ping | |||
| Discriminator TLV: | that includes the BFD Discriminator TLV MUST do the following: | |||
| * MUST validate the LSP Ping; | * validate the LSP Ping; | |||
| * MUST associate the received BFD Discriminator value with the P2MP | * associate the received BFD Discriminator value with the P2MP LSP; | |||
| LSP; | ||||
| * MUST create a P2MP BFD session and set bfd.SessionType = | * create a P2MP BFD session and set bfd.SessionType = MultipointTail | |||
| MultipointTail as described in [RFC8562]; and | as described in [RFC8562]; and | |||
| * MUST use the source IP address of the LSP Ping, the value of BFD | * use the source IP address of the LSP Ping, the value of BFD | |||
| Discriminator from the BFD Discriminator TLV, and the identity of | Discriminator from the BFD Discriminator TLV, and the identity of | |||
| the P2MP LSP to properly demultiplex BFD sessions. | the P2MP LSP to properly demultiplex BFD sessions. | |||
| Besides bootstrapping a BFD session over a P2MP LSP, LSP Ping SHOULD | Besides bootstrapping a BFD session over a P2MP LSP, LSP Ping SHOULD | |||
| be used to verify the control plane against the data plane | be used to verify the control plane against the data plane | |||
| periodically by checking that the P2MP LSP is mapped to the same FEC | periodically by checking that the P2MP LSP is mapped to the same FEC | |||
| at the MultipointHead and all active MultipointTails. The rate of | at the MultipointHead and all active MultipointTails. The rate of | |||
| generation of these LSP Ping Echo request messages SHOULD be | generation of these LSP Ping echo request messages SHOULD be | |||
| significantly less than the rate of generation of the BFD Control | significantly less than the rate of generation of the BFD Control | |||
| packets because LSP Ping requires more processing to validate the | packets because LSP Ping requires more processing to validate the | |||
| consistency between the data plane and the control plane. An | consistency between the data plane and the control plane. An | |||
| implementation MAY provide configuration options to control the rate | implementation MAY provide configuration options to control the rate | |||
| of generation of the periodic LSP Ping Echo request messages. | of generation of the periodic LSP Ping echo request messages. | |||
| 4.2. Control Plane | 4.2. Control Plane | |||
| The BFD Discriminator attribute MAY be used to bootstrap a multipoint | The BFD Discriminator attribute MAY be used to bootstrap a multipoint | |||
| BFD session on a tail, following the format and procedures given in | BFD session on a tail, following the format and procedures given in | |||
| Section 3.1.6 of [RFC9026]. | Section 3.1.6 of [RFC9026]. | |||
| 5. Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP | 5. Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP | |||
| [RFC8562] defines how BFD Demand mode can be used in multipoint | [RFC8562] defines how BFD Demand mode can be used in multipoint | |||
| networks. When applied in MPLS, the procedures specified in | networks. When applied in MPLS, the procedures specified in | |||
| [RFC8562] allow an egress LSR to detect a failure in the part of the | [RFC8562] allow an egress LSR to detect a failure in the part of the | |||
| MPLS P2MP LSP from the ingress LSR to that egress LSR. The ingress | P2MP MPLS LSP from the ingress LSR to that egress LSR. The ingress | |||
| LSR is not aware of the state of the P2MP LSP. [RFC8563], using | LSR is not aware of the state of the P2MP LSP. [RFC8563], using | |||
| mechanisms defined in [RFC8562], defines the behavior of an active | mechanisms defined in [RFC8562], defines the behavior of an active | |||
| tail. An active tail might notify the head of the detected failure | tail. An active tail might notify the head of the detected failure | |||
| and respond to a poll sequence initiated by the head. The first | and respond to a poll sequence initiated by the head. The first | |||
| method, referred to as "Head Notification without Polling", is | method, referred to as "Head Notification without Polling", is | |||
| mentioned in Section 5.2.1 of [RFC8563]) and is the simplest of the | mentioned in Section 5.2.1 of [RFC8563]) and is the simplest of the | |||
| methods described in [RFC8563]. The use of this method in BFD over | methods described in [RFC8563]. The use of this method in BFD over | |||
| MPLS P2MP LSP is discussed in this document. Analysis of other | P2MP MPLS LSP is discussed in this document. Analysis of other | |||
| methods for a head to learn of the state of an MPLS P2MP LSP is | methods for a head to learn of the state of an P2MP MPLS LSP is | |||
| outside the scope of this document. | outside the scope of this document. | |||
| As specified in [RFC8563], BFD variables MUST be as follows for the | As specified in [RFC8563], BFD variables MUST be as follows for the | |||
| active tail mode: | active tail mode: | |||
| * On an ingress LSR: | * On an ingress LSR: | |||
| - bfd.SessionType is MultipointHead. | - bfd.SessionType is MultipointHead. | |||
| - bfd.RequiredMinRxInterval is nonzero, allowing egress LSRs to | - bfd.RequiredMinRxInterval is nonzero, allowing egress LSRs to | |||
| skipping to change at line 367 ¶ | skipping to change at line 364 ¶ | |||
| * The Status (Sta) field is set to the Down value. | * The Status (Sta) field is set to the Down value. | |||
| * The Diagnostic (Diag) field is set to the Control Detection Time | * The Diagnostic (Diag) field is set to the Control Detection Time | |||
| Expired value. | Expired value. | |||
| * The value of the Your Discriminator field is set to the value the | * The value of the Your Discriminator field is set to the value the | |||
| egress LSR has been using to demultiplex that BFD multipoint | egress LSR has been using to demultiplex that BFD multipoint | |||
| session. | session. | |||
| * The BFD Control packet MAY be encapsulated in IP/UDP with the | The BFD Control packet MAY be encapsulated in IP/UDP with the | |||
| destination IP address of the ingress LSR and the UDP destination | destination IP address of the ingress LSR and the UDP destination | |||
| port number set to 4784 per [RFC5883]. If non-IP encapsulation is | port number set to 4784 per [RFC5883]. If non-IP encapsulation is | |||
| used, then a BFD Control packet is encapsulated using PW-ACH | used, then a BFD Control packet is encapsulated using PW-ACH | |||
| 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 | The BFD Control packets are transmitted at the rate of one per second | |||
| second until either 1) it receives a control packet valid for this | until either 1) the egress LSA receives a control packet from the | |||
| BFD session with the Final (F) bit set from the ingress LSR or 2) | ingress LSR that is valid for this BFD session and has the Final (F) | |||
| the defect condition clears. However, to improve the likelihood | bit set or 2) the defect condition clears. However, to improve the | |||
| of notifying the ingress LSR of the failure of the P2MP MPLS LSP, | likelihood of notifying the ingress LSR of the failure of the P2MP | |||
| the egress LSR SHOULD initially transmit three BFD Control packets | MPLS LSP, the egress LSR SHOULD initially transmit three BFD Control | |||
| defined above in short succession. The actual transmission of the | packets (as defined above) in short succession. The actual | |||
| periodic BFD Control message MUST be jittered by up to 25% within | transmission of the periodic BFD Control packet MUST be jittered by | |||
| one-second intervals. Thus, the interval MUST be reduced by a | up to 25% within one-second intervals. Thus, the interval MUST be | |||
| random value of 0 to 25%, to reduce the possibility of congestion | reduced by a random value of 0 to 25%, to reduce the possibility of | |||
| 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 | |||
| use resources allocated for the monitored multicast flow and, as a | use resources allocated for the monitored multicast flow and, as a | |||
| result, will not congest that particular flow, although they may | result, will not congest that particular flow, although they may | |||
| negatively affect other flows. However, the control plane of the | negatively affect other flows. However, the control plane of the | |||
| skipping to change at line 439 ¶ | skipping to change at line 436 ¶ | |||
| Termination Date: N/A | Termination Date: N/A | |||
| Source: True | Source: True | |||
| Destination: False | Destination: False | |||
| Forwardable: False | Forwardable: False | |||
| Globally Reachable: False | Globally Reachable: False | |||
| Reserved-by-Protocol: False | Reserved-by-Protocol: False | |||
| 7.2. MPLS Generalized Associated Channel (G-ACh) Type | 7.2. MPLS Generalized Associated Channel (G-ACh) Type | |||
| IANA has allocated the following value in the "MPLS Generalized | IANA has allocated the following value in the "MPLS Generalized | |||
| Associated Channel (G-ACh) Types" registry. | Associated Channel (G-ACh) Types" registry [IANA-G-ACh-TYPES]. | |||
| +========+========================+===========+ | +========+========================+===========+ | |||
| | Value | Description | Reference | | | Value | Description | Reference | | |||
| +========+========================+===========+ | +========+========================+===========+ | |||
| | 0x0013 | Multipoint BFD Session | RFC 9780 | | | 0x0013 | Multipoint BFD Session | RFC 9780 | | |||
| +--------+------------------------+-----------+ | +--------+------------------------+-----------+ | |||
| Table 1: Multipoint BFD Session G-ACh Type | Table 1: Multipoint BFD Session G-ACh Type | |||
| 8. References | 8. References | |||
| skipping to change at line 538 ¶ | skipping to change at line 535 ¶ | |||
| Active Tails", RFC 8563, DOI 10.17487/RFC8563, April 2019, | Active Tails", RFC 8563, DOI 10.17487/RFC8563, April 2019, | |||
| <https://www.rfc-editor.org/info/rfc8563>. | <https://www.rfc-editor.org/info/rfc8563>. | |||
| [RFC9026] Morin, T., Ed., Kebler, R., Ed., and G. Mirsky, Ed., | [RFC9026] Morin, T., Ed., Kebler, R., Ed., and G. Mirsky, Ed., | |||
| "Multicast VPN Fast Upstream Failover", RFC 9026, | "Multicast VPN Fast Upstream Failover", RFC 9026, | |||
| DOI 10.17487/RFC9026, April 2021, | DOI 10.17487/RFC9026, April 2021, | |||
| <https://www.rfc-editor.org/info/rfc9026>. | <https://www.rfc-editor.org/info/rfc9026>. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [IANA-G-ACh-TYPES] | ||||
| IANA, "MPLS Generalized Associated Channel (G-ACh) Types", | ||||
| <https://www.iana.org/assignments/g-ach-parameters>. | ||||
| [IANA-IPv6-REG] | [IANA-IPv6-REG] | |||
| IANA, "IANA IPv6 Special-Purpose Address Registry", | IANA, "IANA IPv6 Special-Purpose Address Registry", | |||
| <https://www.iana.org/assignments/iana-ipv6-special- | <https://www.iana.org/assignments/iana-ipv6-special- | |||
| registry>. | registry>. | |||
| [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
| Architecture", RFC 4291, DOI 10.17487/RFC4291, February | Architecture", RFC 4291, DOI 10.17487/RFC4291, February | |||
| 2006, <https://www.rfc-editor.org/info/rfc4291>. | 2006, <https://www.rfc-editor.org/info/rfc4291>. | |||
| [RFC4687] Yasukawa, S., Farrel, A., King, D., and T. Nadeau, | [RFC4687] Yasukawa, S., Farrel, A., King, D., and T. Nadeau, | |||
| End of changes. 32 change blocks. | ||||
| 84 lines changed or deleted | 85 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||