| rfc9026xml2.original.xml | rfc9026.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc tocompact="yes"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc tocdepth="3"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" number="9026" doc | |||
| <?rfc tocindent="yes"?> | Name="draft-ietf-bess-mvpn-fast-failover-15" ipr="trust200902" submissionType="I | |||
| <?rfc symrefs="yes"?> | ETF" consensus="true" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="tru | |||
| <?rfc sortrefs="yes"?> | e" sortRefs="true" version="3"> | |||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" docName="draft-ietf-bess-mvpn-fast-failover-15" ipr="trust20 | ||||
| 0902"> | ||||
| <front> | <front> | |||
| <title abbrev="MVPN Fast Upstream Failover">Multicast VPN Fast Upstream Fail over</title> | <title abbrev="MVPN Fast Upstream Failover">Multicast VPN Fast Upstream Fail over</title> | |||
| <seriesInfo name="RFC" value="9026"/> | ||||
| <author fullname="Thomas Morin" initials="T." role="editor" surname="Morin"> | <author fullname="Thomas Morin" initials="T." role="editor" surname="Morin"> | |||
| <organization>Orange</organization> | <organization>Orange</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>2, avenue Pierre Marzin</street> | <street>2, avenue Pierre Marzin</street> | |||
| <city>Lannion</city> | <city>Lannion</city> | |||
| <code>22307</code> | <code>22307</code> | |||
| <country>France</country> | <country>France</country> | |||
| </postal> | </postal> | |||
| <email>thomas.morin@orange.com</email> | ||||
| <email>thomas.morin@orange-ftgroup.com</email> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Robert Kebler" initials="R." role="editor" surname="Kebler "> | <author fullname="Robert Kebler" initials="R." role="editor" surname="Kebler "> | |||
| <organization>Juniper Networks</organization> | <organization>Juniper Networks</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1194 North Mathilda Ave.</street> | <street>1194 North Mathilda Avenue</street> | |||
| <city>Sunnyvale</city> | <city>Sunnyvale</city> | |||
| <region>CA</region> | <region>CA</region> | |||
| <code>94089</code> | <code>94089</code> | |||
| <country>United States of America</country> | ||||
| <country>U.S.A.</country> | ||||
| </postal> | </postal> | |||
| <email>rkebler@juniper.net</email> | <email>rkebler@juniper.net</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="G." surname="Mirsky" fullname="Greg Mirsky" role="editor"> | ||||
| <organization>ZTE Corp.</organization> | ||||
| <address> | ||||
| <email>gregimirsky@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date month="April" year="2021"/> | ||||
| <author initials="G." surname="Mirsky" fullname="Greg Mirsky" role="edito | <keyword>BFD</keyword> | |||
| r"> | <keyword>P2MP</keyword> | |||
| <organization>ZTE Corp.</organization> | ||||
| <address> | ||||
| <email>gregimirsky@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2021"/> | ||||
| <abstract> | <abstract> | |||
| <t>This document defines Multicast Virtual Private Network (VPN) extension | <t>This document defines Multicast Virtual Private Network (VPN) | |||
| s and procedures that | extensions and procedures that allow fast failover for upstream failures | |||
| allow fast failover for upstream failures by allowing downstream Provider | by allowing downstream Provider Edges (PEs) to consider the status of | |||
| Edges (PEs) to | Provider-Tunnels (P-tunnels) when selecting the Upstream PE for a VPN | |||
| consider the status of Provider-Tunnels (P-tunnels) when | multicast flow. The fast failover is enabled by using "Bidirectional | |||
| selecting the Upstream PE for a VPN multicast flow. | Forwarding Detection (BFD) for Multipoint Networks" (RFC 8562) and the | |||
| The fast failover is enabled by using | new BGP Attribute, BFD Discriminator. Also, this document introduces a | |||
| RFC 8562 Bidirectional Forwarding Detection (BFD) for Multipoint Networks | new BGP Community, Standby PE, extending BGP Multicast VPN (MVPN) routing | |||
| and the new BGP Attribute - BFD Discriminator. | so | |||
| Also, the document | that a C-multicast route can be advertised toward a Standby Upstream | |||
| introduces a new BGP Community, Standby PE, | PE.</t> | |||
| extending BGP Multicast VPN routing so that a C-multicast route can be adv | ||||
| ertised toward a | ||||
| Standby Upstream PE.</t> | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section> | |||
| <name>Introduction</name> | ||||
| <t>It is assumed that the reader is | <t>It is assumed that the reader is familiar with the workings of | |||
| familiar with the workings of multicast MPLS/BGP IP VPNs as described in | multicast MPLS/BGP IP VPNs as described in <xref target="RFC6513"/> and | |||
| <xref target="RFC6513"/> and <xref target="RFC6514"/>.</t> | <xref target="RFC6514"/>.</t> | |||
| <t>In the context of multicast in BGP/MPLS VPNs <xref | ||||
| <t>In the context of multicast in BGP/MPLS VPNs <xref target="RFC6513"/>, | target="RFC6513"/>, it is desirable to provide mechanisms allowing fast | |||
| it is desirable to | recovery of connectivity on different types of failures. This document | |||
| provide mechanisms allowing fast recovery of connectivity on different | addresses failures of elements in the provider network that are upstream | |||
| types of failures. This document addresses failures of elements in the | of PEs connected to VPN sites with receivers.</t> | |||
| provider network that are upstream of PEs connected to VPN sites with | <t> | |||
| receivers.</t> | ||||
| <t> | ||||
| <xref target="tunnel-status"/> | <xref target="tunnel-status"/> | |||
| describes local procedures allowing an egress PE (a PE connected to | describes local procedures allowing an egress PE (a PE connected to | |||
| a receiver site) to take into account the status of P-tunnels to | a receiver site) to take into account the status of P-tunnels to | |||
| determine the Upstream Multicast Hop (UMH) for a given (C-S, | determine the Upstream Multicast Hop (UMH) for a given | |||
| C-G). One of the optional methods uses <xref target="RFC8562"/> and th | (C-S,C-G). One of the optional methods uses <xref target="RFC8562"/> | |||
| e new BGP Attribute - BFD Discriminator. | and the new BGP Attribute, BFD Discriminator. None of these methods | |||
| None of these methods provide a "fast failover" solution | provide a "fast failover" solution when used alone but can be used | |||
| when used alone, but can be used together with the mechanism described | together with the mechanism described in <xref | |||
| in <xref target="standby-join"/> | target="standby-join"/> for a "fast failover" solution. | |||
| for a "fast failover" solution. | </t> | |||
| </t> | <t> | |||
| <t> | ||||
| <xref target="standby-join"/> | <xref target="standby-join"/> | |||
| describes an optional BGP extension, a new Standby PE Community. that | describes an optional BGP extension, a new Standby PE | |||
| can speed up failover by not | Community, that can speed up failover by not requiring any Multicast | |||
| requiring any multicast VPN (MVPN) routing message exchange at recover | VPN (MVPN) routing message exchange at recovery time. | |||
| y time. | </t> | |||
| </t> | ||||
| <t> | <t> | |||
| <xref target="hot-standby"/> | <xref target="hot-standby"/> | |||
| describes a "hot leaf standby" mechanism that can be used to improve failo | describes a "hot root standby" mechanism that can be used to improve | |||
| ver time in MVPN. | failover time in MVPN. The approach combines mechanisms defined in | |||
| The approach combines | Sections <xref target="tunnel-status" format="counter"/> and <xref target= | |||
| mechanisms defined in <xref target="tunnel-status"/> and <xref target="sta | "standby-join" format="counter"/> and | |||
| ndby-join"/>, | has similarities with the solution described in <xref target="RFC7431"/> | |||
| and has similarities with the solution | to improve failover times when PIM routing is used in a network given | |||
| described in <xref target="RFC7431"/> to improve failover | some topology and metric constraints. | |||
| times when PIM routing is used in a network given some topology and | ||||
| metric constraints. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| The procedures described in this document are optional and allow | The procedures described in this document are optional and allow an | |||
| an operator to provide protection for multicast services in BGP/MPLS IP VP | operator to provide protection for multicast services in BGP/MPLS IP | |||
| Ns. | VPNs. An operator would enable these mechanisms using a method | |||
| An operator would enable these mechanisms using a method discussed in <xre | discussed in <xref target="tunnel-status"/> combined with the redundancy | |||
| f target="tunnel-status"/> | provided by a standby PE connected to the multicast flow source. PEs | |||
| combined with the redundancy provided by a standby PE connected to the mul | that support these mechanisms would converge faster and thus provide a | |||
| ticast flow source. | more stable multicast service. In the case that a BGP implementation | |||
| PEs that support these mechanisms would converge faster and thus provide a | does not recognize or is configured not to support the extensions | |||
| more stable multicast service. | defined in this document, the implementation will continue to provide | |||
| In the case that a BGP implementation | the multicast service, as described in <xref target="RFC6513"/>. | |||
| does not recognize or is configured not to support the extensions defined | ||||
| in this document, | ||||
| the implementation will continue to provide the multicast service, as desc | ||||
| ribed in <xref target="RFC6513"/>. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section> | ||||
| <name>Conventions Used in This Document</name> | ||||
| <section> | ||||
| <name>Requirements Language</name> | ||||
| <section title="Conventions used in this document"> | <t> | |||
| <section title="Requirements Language"> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| <t> | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | be interpreted as | |||
| when, and only when, they appear in all capitals, as shown here. | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
| </t> | when, and only when, they appear in all capitals, as shown here. | |||
| </section> | </t> | |||
| <section title="Terminology"> | </section> | |||
| <t>The terminology used in this document is the terminology defined in | <section> | |||
| <name>Terminology</name> | ||||
| <t>The terminology used in this document is the terminology defined in | ||||
| <xref target="RFC6513"/> and <xref target="RFC6514"> </xref>.</t> | <xref target="RFC6513"/> and <xref target="RFC6514"> </xref>.</t> | |||
| <t>The term 'upstream' (lower case) throughout this document refers to lin ks and nodes | <t>The term "upstream" (lower case) throughout this document refers to l inks and nodes | |||
| that are upstream to a PE connected to VPN sites with receivers of a multi cast flow.</t> | that are upstream to a PE connected to VPN sites with receivers of a multi cast flow.</t> | |||
| <t>The term 'Upstream' (capitalized) throughout this document refers to a PE or an Autonomous | <t>The term "Upstream" (capitalized) throughout this document refers to a PE or an Autonomous | |||
| System Border Router (ASBR) at which (S,G) or (*,G) data packets enter the VP N backbone or the local AS | System Border Router (ASBR) at which (S,G) or (*,G) data packets enter the VP N backbone or the local AS | |||
| when traveling through the VPN backbone.</t> | when traveling through the VPN backbone.</t> | |||
| </section> | </section> | |||
| <section> | ||||
| <name>Abbreviations</name> | ||||
| <dl indent="12"> | ||||
| <section title="Acronyms"> | <dt>PMSI: | |||
| <t>PMSI: P-Multicast Service Interface</t> | </dt> | |||
| <t>I-PMSI: Inclusive PMSI</t> | <dd>P-Multicast Service Interface | |||
| <t>S-PMSI: Selective PMSI</t> | </dd> | |||
| <t>x-PMSI: Either an I-PMSI or an S-PMSI</t> | ||||
| <t>P-tunnel: Provider-Tunnels</t> | ||||
| <t>UMH: Upstream Multicast Hop</t> | ||||
| <t>VPN: Virtual Private Network</t> | ||||
| <t>MVPN: Multicast VPN</t> | ||||
| <t>RD: Route Distinguisher</t> | ||||
| <t>RP: Rendezvous Point</t> | ||||
| <t>NLRI: Network Layer Reachability Information</t> | ||||
| <t>VRF: VPN Routing and Forwarding Table</t> | ||||
| <t>MED: Multi-Exit Discriminator</t> | ||||
| <t>P2MP: Point-to-Multipoint</t> | ||||
| </section> | ||||
| </section> | <dt>I-PMSI: | |||
| </dt> | ||||
| <dd>Inclusive PMSI | ||||
| </dd> | ||||
| <section anchor="tunnel-status" title="UMH Selection Based on Tunnel Status" | <dt>S-PMSI: | |||
| > | </dt> | |||
| <dd>Selective PMSI | ||||
| </dd> | ||||
| <dt>x-PMSI: | ||||
| </dt> | ||||
| <dd>Either an I-PMSI or an S-PMSI | ||||
| </dd> | ||||
| <dt>P-tunnel: | ||||
| </dt> | ||||
| <dd>Provider-Tunnel | ||||
| </dd> | ||||
| <dt>UMH: | ||||
| </dt> | ||||
| <dd>Upstream Multicast Hop | ||||
| </dd> | ||||
| <dt>VPN: | ||||
| </dt> | ||||
| <dd>Virtual Private Network | ||||
| </dd> | ||||
| <dt>MVPN: | ||||
| </dt> | ||||
| <dd>Multicast VPN | ||||
| </dd> | ||||
| <dt>RD: | ||||
| </dt> | ||||
| <dd>Route Distinguisher | ||||
| </dd> | ||||
| <dt>RP: | ||||
| </dt> | ||||
| <dd>Rendezvous Point | ||||
| </dd> | ||||
| <dt>NLRI: | ||||
| </dt> | ||||
| <dd>Network Layer Reachability Information | ||||
| </dd> | ||||
| <dt>VRF: | ||||
| </dt> | ||||
| <dd>VPN Routing and Forwarding Table | ||||
| </dd> | ||||
| <dt>MED: | ||||
| </dt> | ||||
| <dd>Multi-Exit Discriminator | ||||
| </dd> | ||||
| <dt>P2MP: | ||||
| </dt> | ||||
| <dd>Point-to-Multipoint | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="tunnel-status"> | ||||
| <name>UMH Selection Based on Tunnel Status</name> | ||||
| <t> | <t> | |||
| Section 5.1 of <xref target="RFC6513"/> describes procedures used by a | <xref target="RFC6513" sectionFormat="of" section="5.1"/> describes | |||
| multicast VPN downstream PE to determine the Upstream Multicast Hop | procedures used by an MVPN downstream PE to determine the | |||
| (UMH) for a given (C-S, C-G). | Upstream Multicast Hop (UMH) for a given (C-S,C-G). | |||
| </t> | </t> | |||
| <t> | <t> | |||
| For a given downstream PE and a given VRF, the P-tunnel corresponding | For a given downstream PE and a given VRF, the P-tunnel corresponding | |||
| to a given Upstream PE for a given (C-S, C-G) state is the S-PMSI | to a given Upstream PE for a given (C-S,C-G) state is the S-PMSI | |||
| tunnel advertised by that Upstream PE for this (C-S, C-G) and | tunnel advertised by that Upstream PE for that (C-S,C-G) and | |||
| imported into that VRF, or if there isn't any such S-PMSI, the I-PMSI | imported into that VRF or, if there isn't any such S-PMSI, the I-PMSI | |||
| tunnel advertised by that PE and imported into that VRF. | tunnel advertised by that PE and imported into that VRF. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The procedure described here is an optional procedure that is based on | The procedure described here is optional one, based on a | |||
| a downstream PE taking into account the status of P-tunnels | downstream PE taking into account the status of P-tunnels rooted at each | |||
| rooted at each possible Upstream PE, for including or not including | possible Upstream PE, for including or not including each given PE in the list | |||
| each given PE in the list of candidate UMHs for a given (C-S, C-G) | of candidate UMHs for a given (C-S,C-G) state. If it is not possible to | |||
| state. | determine whether a P-tunnel's current status is Up, the state shall be | |||
| If it is not possible to determine whether a P-tunnel's current status is Up, | considered "not known to be Down", and it may be treated as if it is Up so | |||
| the state shall be considered "not known to be Down", | that attempts to use the tunnel are acceptable. The result is that, if a | |||
| and it may be treated as if it is Up so that attempts to use the tunnel are acce | P-tunnel is Down (see <xref target="tunnel-status-determination"/>), the PE | |||
| ptable. | that is the root of the P-tunnel will not be considered for UMH | |||
| The result is that, if a P-tunnel is Down (see | selection. This will result in the downstream PE failing over to use the next | |||
| <xref target="tunnel-status-determination"/>), the PE that is the root of the | Upstream PE in the list of candidates. | |||
| P-tunnel will not be | ||||
| considered for UMH selection. This will result in the downstream PE failing o | ||||
| ver to | ||||
| Â Â use the next Upstream PE in the list of candidates. | ||||
| Some downstream PEs could arrive at a different conclusion | Some downstream PEs could arrive at a different conclusion regarding the | |||
| regarding the tunnel's state because the failure impacts only a subset of bra | tunnel's state because the failure impacts only a subset of branches. Because | |||
| nches. | of that, the procedures of <xref target="RFC6513" sectionFormat="of" | |||
| Because of that, the procedures of Section 9.1.1 of <xref target="RFC6513"/> are | section="9.1.1"/> are applicable when using I-PMSI P-tunnels. That document | |||
| applicable when using I-PMSI P-tunnels. | is a foundation for this document, and its processes all apply here. | |||
| That document is a foundation for this document, and its processes all apply her | ||||
| e. | ||||
| <!-- | ||||
| Section 9.1.1 of <xref target="RFC6513"/> mandates the use of specific procedure | ||||
| s for sending intra-AS I-PMSI A-D Routes. | ||||
| </t> | ||||
| <t> | </t> | |||
| There are three options specified in Section 5.1 of [RFC6513] for a | <t> | |||
| downstream PE to select an Upstream PE. | There are three options specified in <xref target="RFC6513" | |||
| <list style="symbols"> | sectionFormat="of" section="5.1"/> for a downstream PE to select an | |||
| Upstream PE. | ||||
| </t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t> | <t> | |||
| The first two options select the Upstream PE from a candidate PE | The first two options select the Upstream PE from a candidate PE | |||
| set either based on an IP address or a hashing algorithm. When used | set based either on an IP address or a hashing algorithm. When used | |||
| together with the optional procedure of considering the P-tunnel | together with the optional procedure of considering the P-tunnel | |||
| status as in this document, a candidate Upstream PE is included in | status as in this document, a candidate Upstream PE is included in | |||
| the set if it either: | the set if it either: | |||
| <list style="letters"> | </t> | |||
| <t> | <ol spacing="normal" type="a"><li> | |||
| advertises an x-PMSI bound to a tunnel, where the specified tunnel's s tate | advertises an x-PMSI bound to a tunnel, where the specified tunnel's s tate | |||
| is not known to be Down, or, | is not known to be Down, or, | |||
| </t> | </li> | |||
| <t> | <li> | |||
| does not advertise any x-PMSI applicable to the given (C-S, C-G) | does not advertise any x-PMSI applicable to the given (C-S,C-G) | |||
| but has associated a VRF Route Import BGP Extended Community to the | but has associated a VRF Route Import BGP Extended Community to the | |||
| unicast VPN route for S. That is necessary to avoid | unicast VPN route for S. That is necessary to avoid | |||
| incorrectly invalidating a UMH PE that would use a policy | incorrectly invalidating a UMH PE that would use a policy | |||
| where no I-PMSI is advertised for a given VRF and where only | where no I-PMSI is advertised for a given VRF and where only | |||
| S-PMSI are used. The S-PMSI can be advertised | S-PMSIs are used. The S-PMSI can be advertised | |||
| only after the Upstream PE receives a C-multicast route for | only after the Upstream PE receives a C-multicast route for | |||
| (C-S, C-G)/(C-*, C-G) to be carried over the advertised | (C-S,C-G) / (C-*,C-G) to be carried over the advertised | |||
| S-PMSI. | S-PMSI. | |||
| </t> | </li> | |||
| </list> | </ol> | |||
| <t> | ||||
| If the resulting candidate set is empty, then the procedure is | If the resulting candidate set is empty, then the procedure is | |||
| repeated without considering the P-tunnel status. | repeated without considering the P-tunnel status. | |||
| </t> | </t> | |||
| </li> | ||||
| <t> | <li> | |||
| The third option uses the installed UMH Route (i.e., the "best" | The third option uses the installed UMH Route (i.e., the "best" | |||
| route towards the C-root) as the Selected UMH Route, and its | route towards the C-root) as the Selected UMH Route, and its | |||
| originating PE is the selected Upstream PE. With the optional | originating PE is the selected Upstream PE. With the optional | |||
| procedure of considering P-tunnel status as in this document, the | procedure of considering P-tunnel status as in this document, the | |||
| Selected UMH Route is the best one among those whose originating | Selected UMH Route is the best one among those whose originating | |||
| PE's P-tunnel is not "down". If that does not exist, the | PE's P-tunnel is not "down". If that does not exist, the | |||
| installed UMH Route is selected regardless of the P-tunnel status. | installed UMH Route is selected regardless of the P-tunnel status. | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | <section anchor="tunnel-status-determination"> | |||
| <name>Determining the Status of a Tunnel</name> | ||||
| <section anchor="tunnel-status-determination" title="Determining the Statu | ||||
| s of a Tunnel"> | ||||
| <t> | <t> | |||
| Different factors can be considered to determine the "status" of a | Different factors can be considered to determine the "status" of a | |||
| P-tunnel and are described in the following sub-sections. The | P-tunnel and are described in the following subsections. The optional | |||
| Â Â optional procedures described in this section also handle the case when | procedures described in this section also handle the case when the | |||
| Â Â the downstream PEs do not all apply the same rules to define what the | downstream PEs do not all apply the same rules to define what the | |||
| Â Â status of a P-tunnel is | status of a P-tunnel is (please see <xref target="dups"> </xref>), and | |||
| (please see <xref target="dups"> </xref>), and some of them will | some of them will produce a result that may be different for different | |||
| produce a result that may be different for different downstream PEs. | downstream PEs. Thus, the "status" of a P-tunnel in this section is | |||
| Thus, the "status" of a P-tunnel in this section is not a characteristic | not a characteristic of the tunnel in itself but is the tunnel | |||
| of the tunnel in itself, but is the tunnel status, as seen from a partic | status, as seen from a particular downstream PE. Additionally, some of | |||
| ular | the following methods determine the ability of a downstream PE to | |||
| downstream PE. Additionally, some of the following methods determine | receive traffic on the P-tunnel and not specifically on the status of | |||
| the ability of a downstream PE to receive traffic on the P-tunnel | the P-tunnel itself. That could be referred to as "P-tunnel reception | |||
| and not specifically on the status of the P-tunnel itself. | status", but for simplicity, we will use the terminology of P-tunnel | |||
| That could be referred to as "P-tunnel reception status", but for | "status" for all of these methods. | |||
| simplicity, we will use the terminology of P-tunnel "status" for | ||||
| all of these methods. | ||||
| </t> | </t> | |||
| <t>Depending on the criteria used to determine the status of a | <t>Depending on the criteria used to determine the status of a | |||
| P-tunnel, there may be an interaction with another resiliency mechanism | P-tunnel, there may be an interaction with another resiliency mechanism | |||
| used for the P-tunnel itself, and the UMH update may happen | used for the P-tunnel itself, and the UMH update may happen | |||
| immediately or may need to be delayed. Each particular case is covered | immediately or may need to be delayed. Each particular case is covered | |||
| in each separate sub-section below.</t> | in each separate subsection below.</t> | |||
| <t>An implementation may support any combination of the methods | ||||
| <t>An implementation may support any combination of the methods describe | described in this section and provide a network operator with control | |||
| d in this section and | to choose which one to use in the particular deployment.</t> | |||
| provide a network operator with control to choose which one to use in th | <section anchor="root-track-sec"> | |||
| e particular deployment.</t> | <name>MVPN Tunnel Root Tracking</name> | |||
| <section anchor="root-track-sec" title="MVPN Tunnel Root Tracking"> | ||||
| <t>When determining if the status of a P-tunnel is Up, a condition | <t>When determining if the status of a P-tunnel is Up, a condition | |||
| to consider is whether the root of the tunnel, as specified | to consider is whether the root of the tunnel, as specified | |||
| in the x-PMSI Tunnel attribute, is reachable through unicast routing t ables. In this case, | in the x-PMSI Tunnel attribute, is reachable through unicast routing t ables. In this case, | |||
| the downstream PE can immediately update its UMH when the | the downstream PE can immediately update its UMH when the | |||
| reachability condition changes.</t> | reachability condition changes.</t> | |||
| <t>That is similar to BGP next-hop tracking for VPN routes, except | <t>That is similar to BGP next-hop tracking for VPN routes, except | |||
| that the address considered is not the BGP next-hop address but the | that the address considered is not the BGP next-hop address but the | |||
| root address in the x-PMSI Tunnel attribute. BGP next-hop tracking mon itors | root address in the x-PMSI Tunnel attribute. BGP next-hop tracking mon itors | |||
| BGP next-hop address changes in the routing table. Â In general, | BGP next-hop address changes in the routing table. In general, | |||
| when a change is detected, it performs a next-hop scan to find | when a change is detected, it performs a next-hop scan to find | |||
| if any of the next hops in the BGP table is affected and updates it ac cordingly.</t> | if any of the next hops in the BGP table is affected and updates it ac cordingly.</t> | |||
| <t>If BGP next-hop tracking is done for VPN routes and the root | <t>If BGP next-hop tracking is done for VPN routes and the root | |||
| address of a given tunnel happens to be the same as the next-hop | address of a given tunnel happens to be the same as the next-hop | |||
| address in the BGP A-D Route advertising the tunnel, then checking, in | address in the BGP A-D Route advertising the tunnel, then checking, | |||
| unicast routing tables, whether the tunnel root | in unicast routing tables, whether the tunnel root is reachable will | |||
| is reachable, will be unnecessary duplication and thus will not bring | be unnecessary duplication and will thus not bring any specific | |||
| any specific benefit.</t> | benefit.</t> | |||
| </section> | </section> | |||
| <section anchor="pe-p-link-status-sec"> | ||||
| <section anchor="pe-p-link-status-sec" title="PE-P Upstream Link Status" | <name>PE-P Upstream Link Status</name> | |||
| > | ||||
| <t> | <t> | |||
| When determining if the status of a P-tunnel is Up, a condition to con | When determining if the status of a P-tunnel is Up, a condition to | |||
| sider is whether the last-hop link of the P-tunnel is Up. | consider is whether the last-hop link of the P-tunnel is Up. | |||
| Conversely, if the last-hop link of the P-tunnel is Down, then this ca | Conversely, if the last-hop link of the P-tunnel is Down, then this | |||
| n be taken as an indication | can be taken as an indication that the P-tunnel is Down. | |||
| that the P-tunnel is Down. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| Using this method when a fast | Using this method when a fast restoration mechanism (such as MPLS | |||
| restoration mechanism (such as MPLS FRR <xref target="RFC4090"/>) is i | Fast Reroute (FRR) <xref target="RFC4090"/>) is in place for the link | |||
| n place for the link | requires | |||
| requires careful consideration and coordination of defect detection in | careful consideration and coordination of defect detection intervals | |||
| tervals for the link and the tunnel. | for the link and the tunnel. When using multi-layer protection, | |||
| When using multi-layer protection, particular consideration must be gi | particular consideration must be given to the interaction of defect | |||
| ven to the | detections at different network layers. It is recommended to use | |||
| interaction of defect detections at different network layers. | longer detection intervals at the higher layers. Some | |||
| It is recommended to use longer detection intervals at the higher laye | recommendations suggest using a multiplier of 3 or larger, e.g., 10 | |||
| rs. | msec detection for the link failure detection and at least 100 msec | |||
| Some recommendations suggest using a multiplier of 3 or larger, e.g., | for the tunnel failure detection. In many cases, it is not | |||
| 10 msec detection for the link failure detection and at least 100 msec | practical to use both protection methods simultaneously because | |||
| for the tunnel failure detection. | uncorrelated timers might cause unnecessary switchovers and | |||
| In many cases, it is not practical to use both protection methods simu | destabilize the network. | |||
| ltaneously because | </t> | |||
| uncorrelated timers might cause unnecessary switchovers and destabilize | ||||
| the network. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="rsvp-te-tunnel"> | ||||
| <section anchor="rsvp-te-tunnel" title="P2MP RSVP-TE Tunnels"> | <name>P2MP RSVP-TE Tunnels</name> | |||
| <t> | <t> | |||
| For P-tunnels of type P2MP MPLS-TE, the status of the P-tunnel is | For P-tunnels of type P2MP MPLS-TE, the status of the P-tunnel is | |||
| considered Up if the sub-LSP to this downstream PE is in the Up state. The de | considered Up if the sub-LSP to this downstream PE is in the Up | |||
| termination of | state. The determination of whether a P2MP RSVP-TE Label Switched Path | |||
| whether a P2MP RSVP-TE LSP is in the Up state requires Path and Resv | (LSP) is in the Up | |||
| state for the LSP and is based on procedures specified in <xref target | state requires Path and Resv state for the LSP and is based on | |||
| ="RFC4875"/>. | procedures specified in <xref target="RFC4875"/>. As a result, the | |||
| As a result, the downstream PE can | downstream PE can immediately update its UMH when the reachability | |||
| immediately update its UMH when the reachability condition | condition changes. | |||
| changes. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| When using this method and if the signaling state for a P2MP TE LSP is removed (e.g., if the | When using this method and if the signaling state for a P2MP TE LSP is removed (e.g., if the | |||
| ingress of the P2MP TE LSP sends a PathTear message) or the P2MP TE | ingress of the P2MP TE LSP sends a PathTear message) or the P2MP TE | |||
| LSP changes state from Up to Down as determined by procedures in | LSP changes state from Up to Down as determined by procedures in | |||
| <xref target="RFC4875"/>, the status of the corresponding | <xref target="RFC4875"/>, the status of the corresponding | |||
| P-tunnel MUST be re-evaluated. If the P-tunnel transitions from Up | P-tunnel <bcp14>MUST</bcp14> be re-evaluated. If the P-tunnel transiti ons from Up | |||
| to Down state, the Upstream PE that is the ingress of the P-tunnel | to Down state, the Upstream PE that is the ingress of the P-tunnel | |||
| MUST NOT be considered as a valid candidate UMH. | <bcp14>MUST NOT</bcp14> be considered to be a valid candidate UMH. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="leaf-init-tunnel"> | ||||
| <section anchor="leaf-init-tunnel" title="Leaf-initiated P-tunnels"> | <name>Leaf-Initiated P-Tunnels</name> | |||
| <t>An Upstream PE MUST be removed from the UMH candidate list for a gi | <t>An Upstream PE <bcp14>MUST</bcp14> be removed from the UMH candidat | |||
| ven (C-S, C-G) | e list for a given (C-S,C-G) | |||
| if the P-tunnel (I-PMSI or S-PMSI) for this (S, G) is leaf-triggered | if the P-tunnel (I-PMSI or S-PMSI) for this (S,G) is leaf triggered | |||
| (PIM, mLDP), but for some reason, internal to the protocol, the | (PIM, mLDP), but for some reason, internal to the protocol, the | |||
| upstream one-hop branch of the tunnel from P to PE cannot be built. | upstream one-hop branch of the tunnel from P to PE cannot be built. | |||
| As a result, the downstream PE can immediately update its UMH when | As a result, the downstream PE can immediately update its UMH when | |||
| the reachability condition changes.</t> | the reachability condition changes.</t> | |||
| </section> | </section> | |||
| <section anchor="counter-info-tunnel"> | ||||
| <section anchor="counter-info-tunnel" title="(C-S, C-G) Counter Informat | <name>(C-S,C-G) Counter Information</name> | |||
| ion"> | ||||
| <t>In cases where the downstream node can be configured so that the | <t>In cases where the downstream node can be configured so that the | |||
| maximum inter-packet time is known for all the multicast flows | maximum inter-packet time is known for all the multicast flows | |||
| mapped on a P-tunnel, the local per-(C-S, C-G) traffic counter | mapped on a P-tunnel, the local traffic counter | |||
| information for traffic received on this P-tunnel can be used to | information per (C-S,C-G) for traffic received on this P-tunnel can be | |||
| used to | ||||
| determine the status of the P-tunnel.</t> | determine the status of the P-tunnel.</t> | |||
| <t>When such a procedure is used, in the context where fast | ||||
| restoration mechanisms are used for the P-tunnels, a configurable | ||||
| timer <bcp14>MUST</bcp14> be set on the downstream PE to wait before | ||||
| updating the UMH to let the P-tunnel restoration mechanism execute | ||||
| its actions. Determining that a tunnel is probably down by waiting | ||||
| for enough packets to fail to arrive as expected is a heuristic and | ||||
| operational matter that depends on the maximum inter-packet time. A | ||||
| timeout of three seconds is a generally suitable default waiting | ||||
| period to ascertain that the tunnel is down, though other values | ||||
| would be needed for atypical conditions.</t> | ||||
| <t>When such a procedure is used, in the context where fast restoratio | <t>In cases where this mechanism is used in conjunction with the | |||
| n | method described in <xref target="hot-standby"/>, no prior knowledge | |||
| mechanisms are used for the P-tunnels, a configurable timer MUST be se | of the rate or maximum inter-packet time on the multicast streams is | |||
| t | required; downstream PEs can periodically compare actual packet | |||
| on the downstream PE to wait before updating the UMH to let the P-tunn | reception statistics on the two P-tunnels to determine when one of | |||
| el | them is down. The detailed specification of this mechanism is | |||
| restoration mechanism execute its actions. | outside the scope of this document.</t> | |||
| Determining that a tunnel is probably down by waiting for enough packe | ||||
| ts | ||||
| to fail to arrive as expected is a heuristic and operational matter that | ||||
| depends on the maximum inter-packet time. A timeout of three seconds is a | ||||
| generally suitable default waiting period to ascertain that the tunnel is | ||||
| down, though other values would be needed for atypical conditions.</t> | ||||
| <!-- | ||||
| <t>This method can be applicable, for instance, when a (C-S, C-G) flow | ||||
| is | ||||
| mapped on an S-PMSI.</t> | ||||
| <t>In cases where this mechanism is used in conjunction with | ||||
| the method described in <xref target="hot-standby"/>, no prior knowledge of the | ||||
| rate or maximum inter-packet time on the | ||||
| multicast streams is required; downstream PEs can periodically compare actual pa | ||||
| cket | ||||
| reception statistics on the two P-tunnels to determine when one of them is | ||||
| down. The detailed specification of this mechanism is outside the scope of this | ||||
| document.</t> | ||||
| </section> | </section> | |||
| <section anchor="bfd-tunnel"> | ||||
| <section anchor="bfd-tunnel" title="BFD Discriminator Attribute"> | <name>BFD Discriminator Attribute</name> | |||
| <t> | <t> | |||
| The P-tunnel status may be derived from the status of a multipoint BFD | The P-tunnel status may be derived from the status of a multipoint | |||
| session <xref target="RFC8562"/> | BFD session <xref target="RFC8562"/> whose discriminator is | |||
| whose discriminator is advertised along with an x-PMSI A-D Route. | advertised along with an x-PMSI A-D Route. A P2MP BFD session can | |||
| A P2MP BFD session can be instantiated using a mechanism oth | be instantiated using a mechanism other than the BFD Discriminator | |||
| er than the BFD Discriminator attribute, | attribute, e.g., MPLS LSP Ping (<xref target="MPLS-P2MP-BFD"/>). | |||
| e.g., MPLS LSP Ping (<xref target="I-D.mirsky-mpls-p2mp-bfd"/>). | The description of these methods is outside the scope of this | |||
| The description of these methods is outside the scope of this document | document. | |||
| . | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| This document defines the format and ways of using a new BGP attribute | This document defines the format and ways of using a new BGP | |||
| called the "BFD Discriminator". | attribute called the "BFD Discriminator" (38). It is an optional | |||
| It is an optional transitive BGP attribute. Thus it is expected that a | transitive BGP attribute. Thus, it is expected that an implementation | |||
| n implementation | that does not recognize or is configured not to support this | |||
| that does not recognize or is configured not to support this attribute | attribute, as if the attribute was unrecognized, follows procedures | |||
| , as if the attribute was unrecognized, | defined for optional transitive path attributes in <xref | |||
| follows procedures defined for optional transitive path attributes in | target="RFC4271" sectionFormat="of" section="5"/>. See <xref | |||
| Section 5 of <xref target="RFC4271"/>. | target="iana-bfd-discr"/> for more information. The format of this at | |||
| In <xref target="iana-bfd-discr"/>, IANA is requested to allocate the | tribute is shown in | |||
| codepoint value (TBA2). | <xref target="bfd-attr-fig"/>. | |||
| The format of this attribute is shown in <xref target="bfd-attr-fig"/> | ||||
| . | ||||
| </t> | </t> | |||
| <figure align="left" anchor="bfd-attr-fig" title="Format of the BFD Di | <figure anchor="bfd-attr-fig"> | |||
| scriminator Attribute"> | <name>Format of the BFD Discriminator Attribute</name> | |||
| <artwork> | <artwork align="left"><![CDATA[ | |||
| <![CDATA[ | ||||
| 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 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | BFD Mode | | | BFD Mode | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | BFD Discriminator | | | BFD Discriminator | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ Optional TLVs ~ | ~ Optional TLVs ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| Where: | Where: | |||
| <list style="hanging"> | </t> | |||
| <t>BFD Mode field is one octet long. This specification defines the P2 | <dl newline="false" spacing="normal"> | |||
| MP BFD Session as value 1 <xref target="iana-bfd-discr"/>.</t> | <dt/> | |||
| <t>BFD Discriminator field is four octets long.</t> | <dd>BFD Mode field is 1 octet long. This specification defines | |||
| <t>Optional TLVs is the optional variable-length field that MAY be use | P2MP BFD Session as value 1 (<xref | |||
| d in the BFD Discriminator attribute for future extensions. | target="iana-bfd-discr"/>).</dd> | |||
| TLVs MAY be included in a sequential or nested manner. To allow for TL | <dt/> | |||
| V nesting, | <dd>BFD Discriminator field is 4 octets long.</dd> | |||
| <dt/> | ||||
| <dd> | ||||
| <t>Optional TLVs is the optional variable-length field that <bcp14 | ||||
| >MAY</bcp14> be used in the BFD Discriminator attribute for future extensions. | ||||
| TLVs <bcp14>MAY</bcp14> be included in a sequential or nested manner. | ||||
| To allow for TLV nesting, | ||||
| it is advised to define a new TLV as a variable-length object. | it is advised to define a new TLV as a variable-length object. | |||
| <xref target="opt-tlv-fig"/> presents the Optional TLV format TLV that consists of: | <xref target="opt-tlv-fig"/> presents the Optional TLV format TLV that consists of: | |||
| <list style="symbols"> | </t> | |||
| <t>Type - a one-octet-long field that characterizes the interpretation | <dl spacing="normal"> | |||
| of the Value field (<xref target="iana-bfd-attr-ext"/>)</t> | <dt>Type:</dt><dd>a 1-octet-long field that characterizes the | |||
| <t>Length - a one-octet-long field equal to the length of the Value fi | interpretation of the Value field (<xref | |||
| eld in octets</t> | target="iana-bfd-attr-ext"/>)</dd> | |||
| <t>Value - a variable-length field.</t> | <dt>Length:</dt><dd>a 1-octet-long field equal to the length of | |||
| </list> | the Value field in octets</dd> | |||
| <dt>Value:</dt><dd>a variable-length field</dd> | ||||
| </dl> | ||||
| <t> | ||||
| All multibyte fields in TLVs defined in this specification are in n etwork byte order. | All multibyte fields in TLVs defined in this specification are in n etwork byte order. | |||
| </t> | </t> | |||
| </list> | </dd> | |||
| </dl> | ||||
| <figure align="left" anchor="opt-tlv-fig" title="Format of t | <figure anchor="opt-tlv-fig"> | |||
| he Optional TLV"> | <name>Format of the Optional TLV</name> | |||
| <artwork> | <artwork align="left"><![CDATA[ | |||
| <![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | Value ... | | Type | Length | Value ... | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </t> | <t> | |||
| <t> | ||||
| An optional Source IP Address TLV is defined in this document. | An optional Source IP Address TLV is defined in this document. | |||
| The Source IP Address TLV MUST be used when the value of the BFD Mode field's va | The Source IP Address TLV <bcp14>MUST</bcp14> be used when the value of the BFD | |||
| lue is P2MP BFD Session. | Mode field's value is P2MP BFD Session. | |||
| The BFD Discriminator attribute that does not include the Source IP Address TLV | The BFD Discriminator attribute that does not include the Source IP Address TLV | |||
| MUST be handled | <bcp14>MUST</bcp14> be handled | |||
| according to the "attribute discard" approach, as defined in <xref target="RFC76 06"/>. | according to the "attribute discard" approach, as defined in <xref target="RFC76 06"/>. | |||
| For the Source IP Address TLV fields are set as follows: | For the Source IP Address TLV, fields are set as follows: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| The Type field is set to 1 <xref target="iana-bfd-attr-ext"/>. | <li> | |||
| </t> | The Type field is set to 1 (<xref target="iana-bfd-attr-ext"/>). | |||
| <t> | </li> | |||
| <li> | ||||
| The Length field is 4 for the IPv4 address family and 16 for the IPv6 address fa mily. | The Length field is 4 for the IPv4 address family and 16 for the IPv6 address fa mily. | |||
| The TLV is considered malformed if the field is set to any other value. | The TLV is considered malformed if the field is set to any other value. | |||
| </t> | </li> | |||
| <t> | <li> | |||
| The Value field contains the address associated with the MultipointHead of the P 2MP BFD session. | The Value field contains the address associated with the MultipointHead of the P 2MP BFD session. | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | ||||
| <t> | ||||
| The BFD Discriminator attribute MUST be considered malformed | ||||
| if its length is smaller than 11 octets or if Optional TLVs are presen | ||||
| t, but not well-formed. | ||||
| If the attribute is deemed to be malformed, | ||||
| the UPDATE message SHALL be handled using the approach of Attribute D | ||||
| iscard per <xref target="RFC7606"/>. | ||||
| </t> | ||||
| <!-- </section> --> | ||||
| <section title="Upstream PE Procedures"> | ||||
| <t> | ||||
| To enable downstream PEs to track the P-tunnel status using a point-to | ||||
| -multipoint (P2MP) BFD session the Upstream PE: | ||||
| <list style="symbols"> | ||||
| <t> | ||||
| MUST initiate the BFD session and set bfd.SessionType = MultipointHead | ||||
| as described in <xref target="RFC8562"/>; | ||||
| </t> | ||||
| <t> | ||||
| when transmitting BFD Control packets MUST set the IP destination addr | ||||
| ess of the inner IP header to | ||||
| the internal loopback address 127.0.0.1/32 for IPv4 <xref target="RFC1 | ||||
| 122"/>. | ||||
| For IPv6, it MUST use the loopback address ::1/128 <xref target="RFC42 | ||||
| 91"/>. | ||||
| </t> | ||||
| <t> | <t> | |||
| MUST use the IP address included in the Source IP Address TLV of the B | The BFD Discriminator attribute <bcp14>MUST</bcp14> be considered malf | |||
| FD Discriminator attribute | ormed | |||
| as the source IP address when transmitting BFD Control packets; | if its length is smaller than 11 octets or if Optional TLVs are presen | |||
| </t> | t but not well formed. | |||
| <t> | If the attribute is deemed to be malformed, | |||
| MUST include the BFD Discriminator attribute in the x-PMSI A-D Route w | the UPDATE message <bcp14>SHALL</bcp14> be handled using the approach | |||
| ith the value set to My Discriminator value; | of Attribute Discard per <xref target="RFC7606"/>. | |||
| </t> | </t> | |||
| <t> | ||||
| MUST periodically transmit BFD Control packets | ||||
| over the x-PMSI P-tunnel after the P-tunnel is considered established. | ||||
| Note that the methods to declare that a P-tunnel has been established | ||||
| are outside the scope of this specification. | ||||
| </t> | ||||
| </list> | ||||
| </t> | <section> | |||
| <name>Upstream PE Procedures</name> | ||||
| <t> | ||||
| To enable downstream PEs to track the P-tunnel status using a | ||||
| point-to-multipoint (P2MP) BFD session, the Upstream PE: | ||||
| <t> | </t> | |||
| If the tracking of the P-tunnel by using a P2MP BFD session is | <ul spacing="normal"> | |||
| enabled after the x-PMSI A-D Route has been already advertised, | <li> | |||
| the x-PMSI A-D | <bcp14>MUST</bcp14> initiate the BFD session and set bfd.SessionType | |||
| Route MUST be re-sent with the only change between the previous advertisement | = MultipointHead as described in <xref target="RFC8562"/>; | |||
| and | </li> | |||
| the new advertisement to be | <li> | |||
| the inclusion of the BFD Discriminator attribute. | when transmitting BFD Control packets <bcp14>MUST</bcp14> set the IP | |||
| </t> | destination address of the inner IP header to the internal loopback | |||
| address 127.0.0.1/32 for IPv4 <xref target="RFC1122"/>. For IPv6, | ||||
| it <bcp14>MUST</bcp14> use the loopback address ::1/128 <xref | ||||
| target="RFC4291"/>; | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> use the IP address included in the Source IP | ||||
| Address TLV of the BFD Discriminator attribute as the source IP | ||||
| address when transmitting BFD Control packets; | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> include the BFD Discriminator attribute in the | ||||
| x-PMSI A-D Route with the value set to the My Discriminator value; | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> periodically transmit BFD Control packets over | ||||
| the x-PMSI P-tunnel after the P-tunnel is considered established. | ||||
| Note that the methods to declare that a P-tunnel has been | ||||
| established are outside the scope of this specification. | ||||
| <t> | </li> | |||
| </ul> | ||||
| <t> | ||||
| If the tracking of the P-tunnel by using a P2MP BFD session is enabled | ||||
| after the x-PMSI A-D Route has been already advertised, the x-PMSI A-D | ||||
| Route <bcp14>MUST</bcp14> be resent with the only change between the | ||||
| previous advertisement and the new advertisement to be the inclusion of the | ||||
| BFD Discriminator attribute. | ||||
| </t> | ||||
| <t> | ||||
| If the x-PMSI A-D Route is advertised with P-tunnel status tracked using | If the x-PMSI A-D Route is advertised with P-tunnel status tracked using | |||
| the P2MP BFD session, and it is desired to stop tracking P-tunnel | the P2MP BFD session, and it is desired to stop tracking P-tunnel | |||
| status using BFD, then: | status using BFD, then: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| x-PMSI A-D Route MUST be re-sent with the only change between the prev | <li> | |||
| ious advertisement and | the x-PMSI A-D Route <bcp14>MUST</bcp14> be resent with the only | |||
| the new advertisement be the exclusion of the BFD Discriminator attribute; | change between the previous advertisement and the new advertisement | |||
| </t> | be the exclusion of the BFD Discriminator attribute; | |||
| <t> | </li> | |||
| the P2MP BFD session MUST be deleted. The session MAY be deleted | <li> | |||
| after some configurable delay, which should have a reasonable default. | the P2MP BFD session <bcp14>MUST</bcp14> be deleted. The session | |||
| </t> | <bcp14>MAY</bcp14> be deleted after some configurable delay, which | |||
| </list> | should have a reasonable default. | |||
| </li> | ||||
| </t> | </ul> | |||
| </section> | </section> | |||
| <section> | ||||
| <section title="Downstream PE Procedures"> | <name>Downstream PE Procedures</name> | |||
| <t> | <t> | |||
| Upon receiving the BFD Discriminator attribute in the x-PMSI A-D Route , the downstream PE: | Upon receiving the BFD Discriminator attribute in the x-PMSI A-D Route , the downstream PE: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| MUST associate the received BFD Discriminator value with the P-tunnel | <li> | |||
| <bcp14>MUST</bcp14> associate the received BFD Discriminator value wit | ||||
| h the P-tunnel | ||||
| originating from the Upstream PE and the IP address of the Upstream PE ; | originating from the Upstream PE and the IP address of the Upstream PE ; | |||
| </t> | </li> | |||
| <t> | <li> | |||
| MUST create a P2MP BFD session and set bfd.SessionType = MultipointTai | <bcp14>MUST</bcp14> create a P2MP BFD session and set bfd.SessionType | |||
| l | = MultipointTail | |||
| as described in <xref target="RFC8562"/>; | as described in <xref target="RFC8562"/>; | |||
| </t> | </li> | |||
| <t> | <li> | |||
| to properly demultiplex BFD session MUST use: | <t> | |||
| <list style="hanging"> | to properly demultiplex BFD session, <bcp14>MUST</bcp14> use: | |||
| <t>the IP address in the Source IP Address TLV included the BFD Discri | </t> | |||
| minator attribute in the x-PMSI A-D | ||||
| Route;</t> | <ul> | |||
| <t>the value of the BFD Discriminator field in the BFD Discriminator attri | <li>the IP address in the Source IP Address TLV included the BFD Discriminator | |||
| bute;</t> | attribute in the x-PMSI A-D Route; | |||
| <t>the x-PMSI Tunnel Identifier <xref target="RFC6514"/> the BFD Control p | </li> | |||
| acket was received on.</t> | <li>the value of the BFD Discriminator field in the BFD Discriminator | |||
| </list> | attribute; | |||
| </t> | </li> | |||
| </list> | <li>the x-PMSI Tunnel Identifier <xref target="RFC6514"/> the BFD Control | |||
| packet was received on. | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| <t> | ||||
| After the state of the P2MP BFD session is up, i.e., bfd.SessionState == Up, | After the state of the P2MP BFD session is up, i.e., bfd.SessionState == Up, | |||
| the session state will then be used to track the health of the P-tunn el. | the session state will then be used to track the health of the P-tunn el. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| According to <xref target="RFC8562"/>, if the downstream PE | According to <xref target="RFC8562"/>, if the downstream PE receives | |||
| receives Down or AdminDown in the State field of the BFD Control packe | Down or AdminDown in the State field of the BFD Control packet, or | |||
| t or | if the Detection Timer associated with the BFD session expires, the | |||
| associated with the BFD session Detection Timer associated with the BF | BFD session is down, i.e., bfd.SessionState == Down. When the BFD | |||
| D session expires, the BFD session is down, | session state is Down, then the P-tunnel associated with the BFD | |||
| i.e., bfd.SessionState == Down. When the BFD session state is Down, | session <bcp14>MUST</bcp14> be considered down. If the site that | |||
| then the P-tunnel associated with the BFD session MUST be considered d | contains C-S is connected to two or more PEs, a downstream PE will | |||
| own. | select one as its Primary Upstream PE, while others are considered | |||
| If the site that contains C-S is connected to two or more PEs, a downs | to be Standby Upstream PEs. In such a scenario, when the P-tunnel | |||
| tream PE | is considered down, the downstream PE <bcp14>MAY</bcp14> initiate a | |||
| will select one as its Primary Upstream PE, while others are considere | switchover of the traffic from the Primary Upstream PE to the | |||
| d as Standby Upstream PEs. | Standby Upstream PE only if the Standby Upstream PE is deemed to be | |||
| In such a scenario, when the P-tunnel is considered down, | in the Up state. That <bcp14>MAY</bcp14> be determined from the | |||
| the downstream PE MAY initiate a switchover of the traffic from the | state of a P2MP BFD session with the Standby Upstream PE as the | |||
| Primary Upstream PE to the Standby Upstream PE only if the Standby Ups | MultipointHead. | |||
| tream PE is deemed to be in the Up state. | </t> | |||
| That MAY be determined from the state of a P2MP BFD session with the S | <t> | |||
| tandby Upstream PE as the MultipointHead. | ||||
| </t> | ||||
| <t> | If the downstream PE's P-tunnel is already established when the | |||
| If the downstream PE's P-tunnel is already established when the downst | downstream PE receives the new x-PMSI A-D Route with the BFD | |||
| ream PE | Discriminator attribute, the downstream PE <bcp14>MUST</bcp14> | |||
| receives the new x-PMSI A-D Route with BFD Discriminator attribute, | associate the value of the BFD Discriminator field with the P-tunnel | |||
| the downstream PE MUST associate the value of BFD Discriminator | and follow procedures listed above in this section if and only if | |||
| field with the P-tunnel and follow procedures listed above in this sec | the x-PMSI A-D Route was properly processed as per <xref | |||
| tion | target="RFC6514"/>, and the BFD Discriminator attribute was | |||
| if and only if the x-PMSI A-D Route was properly processed | validated. | |||
| as per <xref target="RFC6514"/>, and the BFD Discriminator attribute w | </t> | |||
| as validated. | <t> | |||
| </t> | If the downstream PE's P-tunnel is already established, its state | |||
| being monitored by the P2MP BFD session set up using the BFD | ||||
| Discriminator attribute, and both the downstream PE receives the new | ||||
| x-PMSI A-D Route without the BFD Discriminator attribute and the | ||||
| x-PMSI A-D Route was processed without any error as per the relevant | ||||
| specifications, then: | ||||
| </t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| The downstream PE <bcp14>MUST</bcp14> stop processing BFD Control | ||||
| packets for this P2MP BFD session; | ||||
| </li> | ||||
| <li> | ||||
| The P2MP BFD session associated with the P-tunnel | ||||
| <bcp14>MUST</bcp14> be deleted. The session <bcp14>MAY</bcp14> be | ||||
| deleted after some configurable delay, which should have a | ||||
| reasonable default. | ||||
| </li> | ||||
| <li> | ||||
| The downstream PE <bcp14>MUST NOT</bcp14> switch the traffic to the | ||||
| Standby Upstream PE. | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </section> | ||||
| <section> | ||||
| <name>BFD Discriminator per PE-CE Link</name> | ||||
| <t> | <t> | |||
| If the downstream PE's P-tunnel is already established, its state bein | The following approach is defined in response to the detection by the | |||
| g | Upstream PE of a PE-CE link failure. Even though the provider tunnel is | |||
| Â Â monitored by the P2MP BFD session set up using the BFD Discriminator | still up, it is desired for the downstream PEs to switch to a backup | |||
| Â Â attribute, and the downstream PE receives the new x-PMSI A-D Route | Upstream PE. To achieve that, if the Upstream PE detects that its PE-CE | |||
| without the BFD Discriminator attribute, and the x-PMSI A-D Route was | link fails, it <bcp14>MUST</bcp14> set the bfd.LocalDiag of the P2MP BFD | |||
| processed without any error | session to Concatenated Path Down or Reverse Concatenated Path Down (per | |||
| as per the relevant specifications, the downstream PE: | <xref target="RFC5880" sectionFormat="of" section="6.8.17"/>) unless it | |||
| <list style="symbols"> | switches to a new PE-CE link within the time of bfd.DesiredMinTxInterval | |||
| <t> | for the P2MP BFD session (in that case, the Upstream PE will start tracking | |||
| MUST stop processing BFD Control packets for this P2MP BFD session; | the status of the new PE-CE link). When a downstream PE receives that | |||
| </t> | bfd.LocalDiag code, it treats it as if the tunnel itself failed and tries | |||
| <t> | to switch to a backup PE. | |||
| the P2MP BFD session associated with the P-tunnel MUST be deleted. The | ||||
| session MAY be deleted | ||||
| after some configurable delay, which should have a reasonable default. | ||||
| </t> | ||||
| <t> | ||||
| MUST NOT switch the traffic to the Standby Upstream PE. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <!-- | ||||
| <t> | ||||
| In such a scenario, in the context where fast restoration | ||||
| mechanisms are used for the P-tunnels, leaf PEs should be | ||||
| configured to wait before updating the UMH, to let the P-tunnel | ||||
| restoration mechanism happen. A configurable timer MUST be provided | ||||
| for this purpose, and it is RECOMMENDED to provide a reasonable | ||||
| default value for this timer. | ||||
| </t> | </t> | |||
| --> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="operational-sec"> | ||||
| <name>Operational Considerations for Monitoring a P-Tunnel's Status</n | ||||
| ame> | ||||
| <t> | ||||
| Several methods to monitor the status of a P-tunnel are described in <xref targe | ||||
| t="tunnel-status-determination"/>. | ||||
| <section title="Per PE-CE Link BFD Discriminator"> | </t> | |||
| <t> | <t> | |||
| The following approach is defined in response to the detection by the | Tracking the root of an MVPN (<xref target="root-track-sec"/>) reveals the | |||
| Upstream PE of a PE-CE link failure. Even though the provider tunnel | status of a P-tunnel based on the control plane information. Because, in | |||
| is still up, it is desired for the downstream PEs to switch to a | general, the MPLS data plane is not fate sharing with the control plane, this | |||
| backup Upstream PE. To achieve that, if the Upstream PE detects that | method might produce false-positive or false-negative alarms, for example, | |||
| its PE-CE link fails, it MUST set the bfd.LocalDiag of the P2MP BFD | resulting in tunnels that are considered Up but are not able to reach the | |||
| session to Concatenated Path Down or Reverse Concatenated Path | root, or ones that are declared down prematurely. On the other hand, because | |||
| Down (per Section 6.8.17 [RFC5880]), unless it switches to a new PE- | BGP next-hop tracking is broadly supported and deployed, this method might be | |||
| CE link within the time of bfd.DesiredMinTxInterval for the P2MP BFD | the easiest to deploy. | |||
| session (in that case, the Upstream PE will start tracking the status | </t> | |||
| of the new PE-CE link). When a downstream PE receives that | ||||
| bfd.LocalDiag code, it treats it as if the tunnel itself failed and | ||||
| tries to switch to a backup PE. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="operational-sec" title="Operational Considerations for Monitori | <t> | |||
| ng P-Tunnel's Status"> | The method described in <xref target="pe-p-link-status-sec"/> monitors the state | |||
| <t> | of the data plane but only for an egress P-PE link of a P-tunnel. As a result, | |||
| Several methods to monitor the status of a P-tunnel are described in <xref targe | network failures that affect upstream links might not be detected using this | |||
| t="tunnel-status-determination"/>. | method and the MVPN convergence would be determined by the convergence of the | |||
| <!--Though there might be no perfect method, a comparison of benefits and challe | BGP control plane. | |||
| nges of each technique could be helpful | </t> | |||
| to both implementors and network operators.--> | <t> | |||
| </t> | ||||
| <t> | ||||
| Tracking the root of an MVPN (<xref target="root-track-sec"/>) concludes about t | ||||
| he status of a P-tunnel | ||||
| based on the control plane information. Because, in general, the MPLS data plane | ||||
| is not fate-sharing with the control plane, | ||||
| this method might produce false positive or false negative alarms, For example, | ||||
| resulting in tunnels that considered as being up but are | ||||
| not able to reach the root, or ones that are declared down | ||||
| prematurely. On the other hand, because BGP next-hop tracking is broadly | ||||
| supported and deployed, this method might be the easiest to deploy. | ||||
| </t> | ||||
| <t> | ||||
| Method described in <xref target="pe-p-link-status-sec"/> monitors the state of | ||||
| the data plane but only for an egress P-PE link | ||||
| of a P-tunnel. As a result, network failures that affect upstream links might no | ||||
| t be detected using this method | ||||
| and the MVPN convergence would be determined by the convergence of the BGP contr | ||||
| ol plane. | ||||
| </t> | ||||
| <t> | ||||
| Using the state change of a P2MP RSVP-TE LSP as the trigger to re-evaluate the s tatus of the P-tunnel (<xref target="rsvp-te-tunnel"/>) | Using the state change of a P2MP RSVP-TE LSP as the trigger to re-evaluate the s tatus of the P-tunnel (<xref target="rsvp-te-tunnel"/>) | |||
| relies on the mechanism used to monitor the state of the P2MP LSP. | relies on the mechanism used to monitor the state of the P2MP LSP. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The method described in <xref target="leaf-init-tunnel"/> is simple | The method described in <xref target="leaf-init-tunnel"/> is simple | |||
| and is safe from causing false alarms, e.g., considering a tunnel operationally | and is safe from causing false alarms, e.g., considering a tunnel operationally | |||
| up even though its data path has a defect or, conversely, declaring a tunnel fai | Up even though its data path has a defect or, conversely, declaring a tunnel fai | |||
| led when it is unaffected. | led when it is unaffected. | |||
| But the method applies to a sub-set of MVPNs, those that use the leaf-triggered | But the method applies to a subset of MVPNs, those that use the leaf-triggered | |||
| x-PMSI tunnels. | x-PMSI tunnels. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Though some MVPN might be used to provide a multicast service with | Though some MVPNs might be used to provide a multicast service with | |||
| predictable interpacket interval (<xref target="counter-info-tunnel"/>), the num | predictable inter-packet intervals (<xref target="counter-info-tunnel"/>), the n | |||
| ber of such cases seem limited. | umber of such cases seem limited. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Monitoring the status of a P-tunnel using p2mp BFD session (<xref target="bfd-tu | ||||
| nnel"/>) | Monitoring the status of a P-tunnel using a P2MP BFD session (<xref | |||
| may produce the most accurate and expedient failure notification of all monitori | target="bfd-tunnel"/>) may produce the most accurate and expedient failure | |||
| ng methods discussed. | notification of all monitoring methods discussed. On the other hand, it | |||
| On the other hand, it requires careful consideration of the additional load of B | requires careful consideration of the additional load of BFD sessions onto | |||
| FD onto network and PE nodes. | network and PE nodes. Operators should consider the rate of BFD Control | |||
| Operators should consider the rate of BFD Control packets transmitted by root PE | packets transmitted by root PEs combined with the number of such PEs in the | |||
| s | network. In addition, the number of P2MP BFD sessions per PE determines the | |||
| combined with the number of such PEs in the network. In addition, the number of | amount of state information that a PE maintains. | |||
| P2MP BFD sessions per PE determines | ||||
| the amount of state information that a PE maintains. | ||||
| </t> | </t> | |||
| </section> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | ||||
| <section anchor="standby-join"> | ||||
| <name>Standby C-Multicast Route</name> | ||||
| <section anchor="standby-join" title="Standby C-multicast Route"> | ||||
| <t> | <t> | |||
| The procedures described below are limited to the case where the site | The procedures described below are limited to the case where the site | |||
| that contains C-S is connected to two or more PEs, though, to simplify | that contains C-S is connected to two or more PEs, though to simplify | |||
| the description, the case of dual-homing is described. In the case where m | the description, the case of dual homing is described. In the case where | |||
| ore than two PEs are connected to the C-s site, | more than two PEs are connected to the C-S site, selection of the | |||
| selection of the Standby PE can be performed using one of the methods of s | Standby PE can be performed using one of the methods of selecting a | |||
| electing | UMH. Details of the selection are outside the scope of this document. | |||
| a UMH. Details of the selection are outside the scope of this document. | The procedures require all the PEs of that MVPN to follow the same UMH | |||
| The procedures require all the PEs of that MVPN to follow the same UMH sele | selection procedure, as specified in <xref target="RFC6513"/>, | |||
| ction procedure, | regardless of whether the PE selected based on its IP address, the | |||
| as specified in <xref target="RFC6513"/>, whether the PE selected based on | hashing algorithm described in <xref target="RFC6513" sectionFormat="of" | |||
| its IP address, | section="5.1.3" />, or the Installed UMH Route. The consistency of the | |||
| the hashing algorithm described in section 5.1.3 of <xref target="RFC6513" | UMH selection method used among all PEs is expected to be provided by | |||
| />, or Installed UMH Route. | the management plane. The procedures assume that if a site of a given | |||
| The consistency of the UMH selection method used among all PEs is expected | MVPN that contains C-S is dual homed to two PEs, then all the other | |||
| to be | sites of that MVPN would have two unicast VPN routes (VPN-IPv4 or | |||
| provided by the management plane. | VPN-IPv6) to C-S, each with its own RD. | |||
| The procedures assume | ||||
| that if a site of a given MVPN that contains C-S is dual-homed to two | ||||
| PEs, then all the other sites of that MVPN would have two unicast VPN | ||||
| routes (VPN-IPv4 or VPN-IPv6) to C-S, each with its own RD. | ||||
| </t> | </t> | |||
| <t>As long as C-S is reachable via both PEs, a given downstream PE will | <t>As long as C-S is reachable via both PEs, a given downstream PE will | |||
| select one of the PEs connected to C-S as its Upstream PE for C-S. | select one of the PEs connected to C-S as its Upstream PE for C-S. We | |||
| We will refer to the other PE connected to C-S as the "Standby | will refer to the other PE connected to C-S as the "Standby Upstream | |||
| Upstream PE". Note that if the connectivity to C-S through the Primary | PE". Note that if the connectivity to C-S through the Primary Upstream | |||
| Upstream PE becomes unavailable, then the PE will select the Standby | PE becomes unavailable, then the PE will select the Standby Upstream PE | |||
| Upstream PE as its Upstream PE for C-S. When the Primary | as its Upstream PE for C-S. When the Primary PE later becomes available, | |||
| PE later becomes available, then the PE will select the Primary Upstream | the PE will select the Primary Upstream PE again as its Upstream | |||
| PE again as its Upstream PE. Such behavior is referred to as "revertive" b | PE. Such behavior is referred to as "revertive" behavior and | |||
| ehavior | <bcp14>MUST</bcp14> be supported. Non-revertive behavior refers to the | |||
| and MUST be supported. Non-revertive behavior refers to the behavior | behavior of continuing to select the backup PE as the UMH even after the | |||
| of continuing to select the backup PE as the UMH even after the Primary ha | Primary has come up. This non-revertive behavior <bcp14>MAY</bcp14> also | |||
| s | be supported by an implementation and would be enabled through some | |||
| come up. This non-revertive behavior MAY also be supported by an | configuration. Selection of the behavior, revertive or non-revertive, | |||
| implementation and would be enabled through some configuration. | is an operational issue, but it <bcp14>MUST</bcp14> be consistent on all | |||
| Selection of the behavior, revertive or non-revertive, is an operational i | PEs in the given MVPN. While revertive is considered the default | |||
| ssue, but it MUST | behavior, there might be cases where the switchover to the standby | |||
| be consistent on all PEs in the given MVPN. While revertive is considered | tunnel does not affect other services and provides the required quality | |||
| the default behavior, | of service. In this case, an operator might use non-revertive behavior | |||
| there might be cases where the switchover to the standby tunnel does not a | to avoid unnecessary switchover and thus minimize disruption to the | |||
| ffect other services | multicast service.</t> | |||
| and provides the required quality of service. An operator might use non-re | ||||
| vertive behavior | ||||
| to avoid unnecessary in such case switchover and thus minimize disruption | ||||
| to the multicast service.</t> | ||||
| <t>For readability, in the following sub-sections, the procedures are | <t>For readability, in the following subsections, the procedures are | |||
| described for BGP C-multicast Source Tree Join routes, but they apply | described for BGP C-multicast Source Tree Join routes, but they apply | |||
| equally to BGP C-multicast Shared Tree Join routes for the case | equally to BGP C-multicast Shared Tree Join routes for the case where | |||
| where the customer RP is dual-homed (substitute "C-RP" to "C-S").</t> | the customer RP is dual homed (substitute "C-RP" to "C-S").</t> | |||
| <section anchor="ds-behavior"> | ||||
| <section anchor="ds-behavior" title="Downstream PE Behavior"> | <name>Downstream PE Behavior</name> | |||
| <t>When a (downstream) PE connected to some site of an MVPN needs to | <t>When a (downstream) PE connected to some site of an MVPN needs to | |||
| send a C-multicast route (C-S, C-G), then following the procedures | send a C-multicast route (C-S,C-G), then following the procedures | |||
| specified in Section 11.1 of <xref target="RFC6514"/>, the PE sends the | specified in <xref target="RFC6514" sectionFormat="of" | |||
| C-multicast route with an RT that identifies the Upstream PE selected by | section="11.1"/>, the PE sends the C-multicast route with an RT that | |||
| the PE originating the route. As long as C-S is reachable via the | identifies the Upstream PE selected by the PE originating the | |||
| Primary Upstream PE, the Upstream PE is the Primary Upstream PE. If | route. As long as C-S is reachable via the Primary Upstream PE, the | |||
| C-S is reachable only via the Standby Upstream PE, then the Upstream | Upstream PE is the Primary Upstream PE. If C-S is reachable only via | |||
| PE is the Standby Upstream PE.</t> | the Standby Upstream PE, then the Upstream PE is the Standby Upstream | |||
| PE.</t> | ||||
| <t>If C-S is reachable via both the Primary and the Standby Upstream | <t>If C-S is reachable via both the Primary and the Standby Upstream | |||
| PE, then in addition to sending the C-multicast route with an RT that | PE, then in addition to sending the C-multicast route with an RT that | |||
| identifies the Primary Upstream PE, the downstream PE also originates an d sends a | identifies the Primary Upstream PE, the downstream PE also originates an d sends a | |||
| C-multicast route with an RT that identifies the Standby Upstream PE. | C-multicast route with an RT that identifies the Standby Upstream PE. | |||
| The route that has the semantics of being a "standby" C-multicast | The route that has the semantics of being a "standby" C-multicast | |||
| route is further called a "Standby BGP C-multicast route", and is | route is further called a "Standby BGP C-multicast route", and is | |||
| constructed as follows:</t> | constructed as follows:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>The NLRI is constructed as the C-multicast route with an RT that | |||
| <t>the NLRI is constructed as the C-multicast route with an RT that | identifies the Primary Upstream PE, except that the RD is the same | |||
| identifies the Primary Upstream PE, | as if the C-multicast route was built using the Standby Upstream PE | |||
| except that the RD is the same as if the C-multicast route was | as the UMH (it will carry the RD associated to the unicast VPN route | |||
| built using the Standby Upstream PE as the UMH (it will carry the RD | advertised by the Standby Upstream PE for S and a Route Target | |||
| associated to the unicast VPN route advertised by the Standby Upstre | derived from the Standby Upstream PE's UMH route's VRF RT Import | |||
| am PE | EC);</li> | |||
| for S and a Route Target derived from the Standby Upstream PE’ | <li>It <bcp14>MUST</bcp14> carry the "Standby PE" BGP Community | |||
| s UMH | (0xFFFF0009); see <xref target="pe-standby-com-iana"/>.</li> | |||
| route’s VRF RT Import EC);</t> | </ul> | |||
| <t>MUST carry the "Standby PE" BGP Community (this is a new BGP | ||||
| Community. <xref target="pe-standby-com-iana"/> requested IANA to al | ||||
| locate value TBA1).</t> | ||||
| </list></t> | ||||
| <t> | <t> | |||
| The Local Preference attribute of the normal and the standby C-multicast | The Local Preference attribute of both the normal and the standby | |||
| route | C-multicast route needs to be adjusted as follows: if a BGP peer | |||
| needs to be adjusted. so that, if a BGP peer receives two C-multicast ro | receives two C-multicast routes with the same NLRI, one carrying the | |||
| utes with | "Standby PE" community and the other one not carrying the "Standby PE" | |||
| the same NLRI, one carrying the "Standby PE" community | community, preference is given to the one not carrying the | |||
| and the other one not carrying the "Standby PE" community, | "Standby PE" community. Such a situation can happen when, for | |||
| then preference is given to the one not carrying the "Standby PE" community. | instance, due to transient unicast routing inconsistencies or lack of | |||
| Such a | support of the Standby PE community, two different downstream PEs | |||
| situation can happen when, for instance, due to transient unicast | consider different Upstream PEs to be the primary one. In that case, | |||
| routing inconsistencies or lack of support of the Standby PE community, | without any precaution taken, both Upstream PEs would process a | |||
| two different downstream PEs consider | standby C-multicast route and possibly stop forwarding at the same | |||
| different Upstream PEs to be the primary one. In that case, without | time. For this purpose, routes that carry the Standby PE BGP Community | |||
| any precaution taken, both Upstream PEs would process a standby | must have the LOCAL_PREF attribute set to the value lower than the | |||
| C-multicast route and possibly stop forwarding at the same time. For | value specified as the LOCAL_PREF attribute for the route that does | |||
| this purpose, routes that carry the Standby PE BGP Community must have t | not carry the Standby PE BGP Community. The value of zero is | |||
| he LOCAL_PREF | <bcp14>RECOMMENDED</bcp14>. | |||
| attribute set to the value lower than the value specified as the LOCAL_P | ||||
| REF | ||||
| attribute for the route that does not carry the Standby PE BGP Community | ||||
| . The value of zero is RECOMMENDED. | ||||
| </t> | </t> | |||
| <t>Note that, when a PE advertises such a Standby C-multicast join for | <t>Note that when a PE advertises such a Standby C-multicast join for | |||
| a (C-S, C-G) it MUST join the corresponding P-tunnel.</t> | a (C-S,C-G), it <bcp14>MUST</bcp14> join the corresponding P-tunnel.</t> | |||
| <t>If, at some later point, the PE determines that C-S is no longer | ||||
| <t>If, at some later point, the PE determines that C-S is no | reachable through the Primary Upstream PE, the Standby Upstream PE | |||
| longer reachable through the Primary Upstream PE, the Standby Upstream | becomes the Upstream PE, and the PE resends the C-multicast route with | |||
| PE becomes the Upstream PE, and the PE re-sends the C-multicast | the RT that identifies the Standby Upstream PE, except that now the | |||
| route with RT that identifies the Standby Upstream PE, except that now | route does not carry the Standby PE BGP Community (which results in | |||
| the route does not carry the Standby PE BGP Community (which results | replacing the old route with a new route, with the only difference | |||
| in replacing the old route with a new route, with the only difference | ||||
| between these routes being the absence of the Standby PE BGP | between these routes being the absence of the Standby PE BGP | |||
| Community). The new Upstream PE must set | Community). The new Upstream PE must set the LOCAL_PREF attribute for | |||
| the LOCAL_PREF attribute for that C-multicast route to the same value as | that C-multicast route to the same value as when the Standby PE BGP | |||
| when the Standby PE BGP Community was included in the advertisement.</t> | Community was included in the advertisement.</t> | |||
| </section> | </section> | |||
| <section anchor="us-behavior"> | ||||
| <section anchor="us-behavior" title="Upstream PE Behavior"> | <name>Upstream PE Behavior</name> | |||
| <t> | <t> | |||
| When a PE supporting this specification receives a C-multicast route for a parti | When a PE supporting this specification receives a C-multicast route for a parti | |||
| cular (C-S, C-G) for which all of the following are true: | cular (C-S,C-G) for which all of the following are true: | |||
| <list style="symbols"> | </t> | |||
| <t>the RT carried in the route results in importing the route into a particular | <ul spacing="normal"> | |||
| VRF on the PE;</t> | <li>the RT carried in the route results in importing the route into a | |||
| <t>the route carries the Standby PE BGP Community; and</t> | particular VRF on the PE;</li> | |||
| <t> | <li>the route carries the Standby PE BGP Community; and</li> | |||
| <li> | ||||
| the PE determines (via a method of failure detection that is outside the scope o f this document) | the PE determines (via a method of failure detection that is outside the scope o f this document) | |||
| that C-S is not reachable through some other PE (more details are in <xref targe t="reach-sec"/>), | that C-S is not reachable through some other PE (more details are in <xref targe t="reach-sec"/>), | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| then the PE MAY install VRF PIM state corresponding to this Standby BGP C-multic | <t> | |||
| ast route | then the PE <bcp14>MAY</bcp14> install VRF PIM state corresponding to this Stand | |||
| by BGP C-multicast route | ||||
| (the result will be that a PIM Join message will be sent to the CE towards C-S, and that | (the result will be that a PIM Join message will be sent to the CE towards C-S, and that | |||
| the PE will receive (C-S, C-G) traffic), and the PE MAY forward (C-S, C-G) | the PE will receive (C-S,C-G) traffic), and the PE <bcp14>MAY</bcp14> forward (C -S,C-G) | |||
| traffic received by the PE to other PEs through a P-tunnel rooted at the PE. | traffic received by the PE to other PEs through a P-tunnel rooted at the PE. | |||
| </t> | </t> | |||
| <t>Furthermore, irrespective of whether C-S carried in that route is | <t>Furthermore, irrespective of whether C-S carried in that route is | |||
| reachable through some other PE:</t> | reachable through some other PE:</t> | |||
| <t><list style="hanging"> | <ol type="a"> | |||
| <t hangText="a)">based on local policy, as soon as the PE receives | ||||
| this Standby BGP C-multicast route, the PE MAY install VRF PIM | ||||
| state corresponding to this BGP Source Tree Join route (the result | ||||
| will be that Join messages will be sent to the CE toward C-S, and | ||||
| that the PE will receive (C-S, C-G) traffic)</t> | ||||
| <t hangText="b)">based on local policy, as soon as the PE receives | <li>based on local policy, as soon as the PE receives this Standby BGP | |||
| this Standby BGP C-multicast route, the PE MAY forward (C-S, C-G) | C-multicast route, the PE <bcp14>MAY</bcp14> install VRF PIM state | |||
| traffic to other PEs through a P-tunnel independently of the | corresponding to this BGP Source Tree Join route (the result will be that Join | |||
| reachability of C-S through some other PE. [note that this implies | messages will be sent to the CE toward C-S, and that the PE will receive (C-S,C- | |||
| also doing a)]</t> | G) traffic); and | |||
| </list></t> | </li> | |||
| <t>Doing neither a) or b) for a given (C-S, C-G) is called "cold | <li>based on local policy, as soon as the PE receives this Standby BGP | |||
| root standby".</t> | C-multicast route, the PE <bcp14>MAY</bcp14> forward (C-S,C-G) traffic to | |||
| other PEs through a P-tunnel independently of the reachability of C-S through | ||||
| some other PE. (note that this implies also doing step a.) | ||||
| </li> | ||||
| <t>Doing a) but not b) for a given (C-S, C-G) is called "warm root | </ol> | |||
| standby".</t> | ||||
| <t>Doing b) (which implies also doing a)) for a given (C-S, C-G) is | <t>Doing neither step a nor step b for a given (C-S,C-G) is called "cold | |||
| root standby".</t> | ||||
| <t>Doing step a but not step b for a given (C-S,C-G) is called "warm roo | ||||
| t | ||||
| standby".</t> | ||||
| <t>Doing step b (which implies also doing step a) for a given (C-S,C-G) | ||||
| is | ||||
| called "hot root standby".</t> | called "hot root standby".</t> | |||
| <t>Note that, if an Upstream PE uses an S-PMSI only policy, it shall | <t>Note that, if an Upstream PE uses an S-PMSI-only policy, it shall | |||
| advertise an S-PMSI for a (C-S, C-G) as soon as it receives a C-multicas | advertise an S-PMSI for a (C-S,C-G) as soon as it receives a C-multicast | |||
| t | route for (C-S,C-G), normal or Standby; that is, it shall not wait for | |||
| route for (C-S, C-G), normal or Standby; i.e., it shall not wait for | ||||
| receiving a non-Standby C-multicast route before advertising the | receiving a non-Standby C-multicast route before advertising the | |||
| corresponding S-PMSI.</t> | corresponding S-PMSI.</t> | |||
| <t>Section 9.3.2 of <xref target="RFC6513"/>, describes the procedures o | <t><xref target="RFC6513" sectionFormat="of" section="9.3.2"/> | |||
| f | describes the procedures of sending a Source-Active A-D Route as a | |||
| sending a Source-Active A-D Route as a result of receiving the C-multica | result of receiving the C-multicast route. These procedures | |||
| st | <bcp14>MUST</bcp14> be followed for both the normal and Standby | |||
| route. These procedures MUST be followed for both the normal and Standb | ||||
| y | ||||
| C-multicast routes.</t> | C-multicast routes.</t> | |||
| </section> | </section> | |||
| <section anchor="reach-sec"> | ||||
| <name>Reachability Determination</name> | ||||
| <section anchor="reach-sec" title="Reachability Determination"> | ||||
| <t> | <t> | |||
| The Standby Upstream PE can use the following information to determine t hat | The Standby Upstream PE can use the following information to determine t hat | |||
| C-S can or cannot be reached through the Primary Upstream PE: | C-S can or cannot be reached through the Primary Upstream PE: | |||
| <list style="symbols"> | </t> | |||
| <t>presence/absence of a unicast VPN route toward C-S</t> | <ul spacing="normal"> | |||
| <li>presence/absence of a unicast VPN route toward C-S</li> | ||||
| <t>supposing that the Standby Upstream PE is the egress of the tunne | <li>supposing that the Standby Upstream PE is the egress of the tunnel | |||
| l rooted | rooted | |||
| at the Primary Upstream PE, the Standby Upstream PE can determine th e reachability | at the Primary Upstream PE, the Standby Upstream PE can determine th e reachability | |||
| of C-S through the Primary Upstream PE based on the status of this t unnel, | of C-S through the Primary Upstream PE based on the status of this t unnel, | |||
| determined thanks to the same criteria as the ones described in | determined thanks to the same criteria as the ones described in | |||
| <xref target="tunnel-status-determination"/> (without using | <xref target="tunnel-status-determination"/> (without using | |||
| the UMH selection procedures of <xref target="tunnel-status"/>);</t> | the UMH selection procedures of <xref target="tunnel-status"/>);</li | |||
| > | ||||
| <t>other mechanisms may be used.</t> | <li>other mechanisms</li> | |||
| </list> | </ul> | |||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="interas"> | ||||
| <section anchor="interas" title="Inter-AS"> | <name>Inter-AS</name> | |||
| <t>If the non-segmented inter-AS approach is used, the procedures descri bed in | <t>If the non-segmented inter-AS approach is used, the procedures descri bed in | |||
| <xref target="ds-behavior"/> through <xref target="reach-sec"/> can be a pplied.</t> | <xref target="ds-behavior"/> through <xref target="reach-sec"/> can be a pplied.</t> | |||
| <t>When MVPNs are used in an inter-AS context with the | ||||
| <t>When multicast VPNs are used in an inter-AS context with the | segmented inter-AS approach described in <xref target="RFC6514" | |||
| segmented inter-AS approach described in Section 9.2 of <xref target="RF | sectionFormat="of" section="9.2"/>, the procedures in this section can | |||
| C6514"/>, the procedures in | be applied.</t> | |||
| this section can be applied.</t> | <t>Prerequisites for the procedures described below to be applied | |||
| for a source of a given MVPN are:</t> | ||||
| <t>A pre-requisite for the procedures described below to be applied | <ul spacing="normal"> | |||
| for a source of a given MVPN is:<list style="symbols"> | <li>that any PE of this MVPN receives two or more Inter-AS I-PMSI | |||
| <t>that any PE of this MVPN receives two or more Inter-AS I-PMSI | A-D Routes advertised by the AS of the source</li> | |||
| A-D Routes advertised by the AS of the source</t> | <li>that these Inter-AS I-PMSI A-D Routes have distinct | |||
| Route Distinguishers (as described in item "(2)" of <xref target="RF | ||||
| <t>that these Inter-AS I-PMSI A-D Routes have distinct | C6514" section="9.2" sectionFormat="of"/>).</li> | |||
| Route Distinguishers (as described in item "(2)" of <xref target="RF | </ul> | |||
| C6514">section 9.2 | <t> | |||
| of</xref>).</t> | As an example, these conditions will be satisfied when the source is | |||
| </list> | dual homed to an AS that connects to the receiver AS through two | |||
| As an example, these conditions will be satisfied when the | ASBR using autoconfigured RDs.</t> | |||
| source is dual-homed to an AS that connects to the receiver AS through | <section> | |||
| two ASBR using auto-configured RDs.</t> | <name>Inter-AS Procedures for Downstream PEs, ASBR Fast Failover</name | |||
| > | ||||
| <section title="Inter-AS Procedures for downstream PEs, ASBR Fast Failov | ||||
| er"> | ||||
| <t>The following procedure is applied by downstream PEs of an AS, | <t>The following procedure is applied by downstream PEs of an AS, | |||
| for a source S in a remote AS.</t> | for a source S in a remote AS.</t> | |||
| <t>In additional to choosing an Inter-AS I-PMSI A-D Route advertised | ||||
| <t>Additionally to choosing an Inter-AS I-PMSI A-D Route | from the AS of the source to construct a C-multicast route, as | |||
| advertised from the AS of the source to construct a C-multicast | described in <xref target="RFC6514" sectionFormat="of" | |||
| route, as described in <xref target="RFC6514">section 11.1.3</xref>, a | section="11.1.3"/>, a downstream PE will choose a second Inter-AS | |||
| downstream PE will choose a second Inter-AS I-PMSI A-D | I-PMSI A-D Route advertised from the AS of the source and use this | |||
| Route advertised from the AS of the source and use this route to | route to construct and advertise a Standby C-multicast route | |||
| construct and advertise a Standby C-multicast route (C-multicast | (C-multicast route carrying the Standby extended community), as | |||
| route carrying the Standby extended community), as described in <xref | described in <xref target="ds-behavior"> </xref>.</t> | |||
| target="ds-behavior"> </xref>.</t> | ||||
| </section> | </section> | |||
| <section> | ||||
| <section title="Inter-AS Procedures for ASBRs"> | <name>Inter-AS Procedures for ASBRs</name> | |||
| <t>When an Upstream ASBR receives a C-multicast route, and at least | <t>When an Upstream ASBR receives a C-multicast route, and at least | |||
| one of the RTs of the route matches one of the ASBR Import RT, the | one of the RTs of the route matches one of the ASBR Import RTs, the | |||
| ASBR, that supports this specification, must try to | ASBR that supports this specification must try to locate an Inter-AS | |||
| locate an Inter-AS I-PMSI A-D Route whose RD and Source AS | I-PMSI A-D Route whose RD and Source AS respectively match the RD | |||
| respectively match the RD and Source AS carried in the C-multicast rou | and Source AS carried in the C-multicast route. If the match is | |||
| te. If | found, and the C-multicast route carries the Standby PE BGP | |||
| the match is found, and the C-multicast route carries the Standby PE B | Community, then the ASBR implementation that supports this | |||
| GP | specification <bcp14>MUST</bcp14> be configurable to perform as | |||
| Community, then the ASBR implementation that supports this specificati | follows: | |||
| on MUST be configurable to perform as follows: | </t> | |||
| <list style="symbols"> | <ul spacing="normal"> | |||
| <t>if the route was received over iBGP and its LOCAL_PREF attribut | <li>If the route was received over iBGP and its LOCAL_PREF | |||
| e is set to zero, then it MUST be | attribute is set to zero, then it <bcp14>MUST</bcp14> be | |||
| re-advertised in eBGP with a MED attribute (MULTI_EXIT_DISC) set | re-advertised in eBGP with a MED attribute (MULTI_EXIT_DISC) set | |||
| to the highest possible value (0xffff)</t> | to the highest possible value (0xffff).</li> | |||
| <li>If the route was received over eBGP and its MED attribute is set | ||||
| <t>if the route was received over eBGP and its MED attribute set t | to 0xffff, then it <bcp14>MUST</bcp14> be re-advertised in iBGP | |||
| o 0xffff, then it MUST be | with a LOCAL_PREF attribute set to zero.</li> | |||
| re-advertised in iBGP with a LOCAL_PREF attribute set to zero</t> | </ul> | |||
| </list> | <t> | |||
| Other ASBR procedures are applied without modification and, when app | Other ASBR procedures are applied without modification and, when app | |||
| lied, MAY modify the above-listed behavior.</t> | lied, <bcp14>MAY</bcp14> modify the above-listed behavior.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="hot-standby"> | ||||
| <section anchor="hot-standby" title="Hot Root Standby"> | <name>Hot Root Standby</name> | |||
| <t>The mechanisms defined in <xref target="standby-join"/> and <xref targe | <t>The mechanisms defined in Sections <xref format="counter" | |||
| t="tunnel-status"/> | target="tunnel-status"/> and <xref format="counter" target="standby-join"/ | |||
| can be used together as follows.</t> | > can be used | |||
| together as follows.</t> | ||||
| <t>The principle is that, for a given VRF (or possibly only for a given | <t>The principle is that, for a given VRF (or possibly only for a given | |||
| (C-S, C-G):<list style="symbols"> | (C-S,C-G)):</t> | |||
| <t>downstream PEs advertise a Standby BGP C-multicast route (based | <ul spacing="normal"> | |||
| on <xref target="standby-join"/>)</t> | <li>Downstream PEs advertise a Standby BGP C-multicast route (based on | |||
| <xref target="standby-join"/>).</li> | ||||
| <t>Upstream PEs use the "hot standby" optional behavior and thus | <li>Upstream PEs use the "hot standby" optional behavior and will thus | |||
| will start forwarding traffic for a given multicast state after they h | start forwarding traffic for a given multicast state after they have a | |||
| ave | (primary) BGP C-multicast route or a Standby BGP C-multicast route for | |||
| a (primary) BGP C-multicast route or a Standby BGP | that state (or both).</li> | |||
| C-multicast route for that state (or both)</t> | ||||
| <t>a policy controls downstream PEs from which tunnel to accept traffi | ||||
| c. | ||||
| For example, the policy could be based on the status of the tunnel | ||||
| or tunnel monitoring method (<xref target="counter-info-tunnel"/>).</t | ||||
| > | ||||
| </list></t> | ||||
| <t>Other combinations of the mechanisms proposed in <xref target="standby- | <li>A policy controls from which tunnel downstream PEs accept traffic. | |||
| join"/> and <xref target="tunnel-status"/> | For example, the policy could be based on the status of the tunnel or | |||
| are for further study.</t> | tunnel-monitoring method (<xref target="counter-info-tunnel"/>).</li> | |||
| </ul> | ||||
| <t>Other combinations of the mechanisms proposed in Sections <xref | ||||
| format="counter" target="tunnel-status"/> and <xref format="counter" | ||||
| target="standby-join"/> are for further study.</t> | ||||
| <t>Note that the same level of protection would be achievable with a | <t>Note that the same level of protection would be achievable with a | |||
| simple C-multicast Source Tree Join route advertised to both the primary | simple C-multicast Source Tree Join route advertised to both the primary | |||
| and secondary Upstream PEs (carrying as Route Target extended | and secondary Upstream PEs (carrying, as Route Target extended | |||
| communities, the values of the VRF Route Import Extended Community of each VPN | communities, the values of the VRF Route Import Extended Community of each VPN | |||
| route from each Upstream PEs). The advantage of using the Standby | route from each Upstream PE). The advantage of using the Standby | |||
| semantic is that, supposing that downstream PEs always advertise a | semantic is that, supposing that downstream PEs always advertise a | |||
| Standby C-multicast route to the secondary Upstream PE, it allows to | Standby C-multicast route to the secondary Upstream PE, it allows to | |||
| choose the protection level through a change of configuration on the | choose the protection level through a change of configuration on the | |||
| secondary Upstream PE, without requiring any reconfiguration of all the | secondary Upstream PE without requiring any reconfiguration of all the | |||
| downstream PEs.</t> | downstream PEs.</t> | |||
| </section> | ||||
| <section anchor="dups" title="Duplicate Packets"> | </section> | |||
| <t><xref target="RFC6513">Multicast VPN | <section anchor="dups"> | |||
| specifications</xref> impose that a PE only forwards to CEs the packets | <name>Duplicate Packets</name> | |||
| coming from the expected Upstream PE (Section 9.1 of <xref target="RFC6513 | <t><xref target="RFC6513">Multicast VPN specifications</xref> impose | |||
| "/>).</t> | that a PE only forwards to CEs the packets coming from the expected | |||
| Upstream PE (<xref target="RFC6513" sectionFormat="of" | ||||
| <t>We draw the reader's attention to the fact that the respect of | section="9.1"/>).</t> | |||
| this part of multicast VPN specifications is especially important when | <t>We draw the reader's attention to the fact that the respect of this | |||
| two distinct Upstream PEs are susceptible to forward the same traffic on | part of MVPN specifications is especially important when two | |||
| P-tunnels at the same time in the steady state. That will be the case when | distinct Upstream PEs are susceptible to forward the same traffic on | |||
| "hot root standby" mode is used (<xref target="hot-standby"/>), | P-tunnels at the same time in the steady state. That will be the case | |||
| and which can also be the case if procedures of <xref target="tunnel-statu | when "hot root standby" mode is used (<xref target="hot-standby"/>) and | |||
| s"/> are used and a) the rules determining | can also be the case if the procedures of <xref target="tunnel-status"/> | |||
| the status of a tree are not the same on two distinct downstream PEs or | are used; likewise, it can also be the case when a) the rules | |||
| b) the rule determining the status of a tree depends on conditions local | determining the status of a tree are not the same on two distinct | |||
| to a PE (e.g., the PE-P upstream link being up).</t> | downstream PEs or b) the rule determining the status of a tree depends | |||
| on conditions local to a PE (e.g., the PE-P upstream link being Up).</t> | ||||
| </section> | </section> | |||
| <section anchor="IANA" title="IANA Considerations"> | <section anchor="IANA"> | |||
| <name>IANA Considerations</name> | ||||
| <section anchor="pe-standby-com-iana" title="Standby PE Community"> | <section anchor="pe-standby-com-iana"> | |||
| <t>IANA is requested to allocate the BGP "Standby PE" community value (TBA | <name>Standby PE Community</name> | |||
| 1) | <t>IANA has allocated the BGP "Standby PE" community value 0xFFFF0009 | |||
| from the Border Gateway Protocol (BGP) Well-known Communities | from the "Border Gateway Protocol (BGP) Well-known Communities" | |||
| registry using the First Come First Served registration policy.</t> | registry using the First Come First Served registration policy.</t> | |||
| </section> | </section> | |||
| <section anchor="iana-bfd-discr"> | ||||
| <section anchor="iana-bfd-discr" title="BFD Discriminator"> | <name>BFD Discriminator</name> | |||
| <t>This document defines a new BGP optional transitive attribute, called | <t>This document defines a new BGP optional transitive attribute called | |||
| "BFD Discriminator". IANA is requested to allocate a codepoint (TBA2) in the | "BFD Discriminator". IANA has allocated codepoint 38 in the "BGP Path | |||
| "BGP Path | ||||
| Attributes" registry to the BFD Discriminator attribute.</t> | Attributes" registry to the BFD Discriminator attribute.</t> | |||
| <t> | <t> | |||
| IANA is requested to create a new BFD Mode sub-registry in the Border Gateway | IANA has created a new "BFD Mode" subregistry in the "Border Gateway Protocol | |||
| Protocol (BGP) | (BGP) | |||
| Parameters registry. | Parameters" registry. | |||
| The registration policies, per <xref target="RFC8126"/>, for | The registration policies, per <xref target="RFC8126"/>, for | |||
| this sub-registry are according to <xref target="iana-bfd-mode-reg"/>. | this subregistry are according to <xref target="iana-bfd-mode-reg"/>. | |||
| </t> | </t> | |||
| <texttable anchor="iana-bfd-mode-reg" title="BFD Mode Sub-registry R | <table anchor="iana-bfd-mode-reg"> | |||
| egistration Policies"> | <name>"BFD Mode" Subregistry Registration Policies</name> | |||
| <ttcol align='left'>Value</ttcol> | <thead> | |||
| <ttcol align='center'>Policy</ttcol> | <tr> | |||
| <c>0- 175</c> | <th align="left">Value</th> | |||
| <c>IETF Review</c> | <th align="center">Policy</th> | |||
| <c>176 - 249</c> | </tr> | |||
| <c>First Come First Served</c> | </thead> | |||
| <c>250 - 254</c> | <tbody> | |||
| <c>Experimental Use</c> | <tr> | |||
| <c>255</c> | <td align="left">0- 175</td> | |||
| <c>IETF Review</c> | <td align="center">IETF Review</td> | |||
| </texttable> | </tr> | |||
| <tr> | ||||
| <t> | <td align="left">176 - 249</td> | |||
| IANA is requested to make initial assignments according to <xref target="iana | <td align="center">First Come First Served</td> | |||
| -bfd-mode-alloc-tbl"/>. | </tr> | |||
| </t> | <tr> | |||
| <td align="left">250 - 254</td> | ||||
| <texttable anchor="iana-bfd-mode-alloc-tbl" title="BFD Mode Sub-registr | <td align="center">Experimental Use</td> | |||
| y"> | </tr> | |||
| <ttcol align="left">Value</ttcol> | <tr> | |||
| <ttcol align="center">Description</ttcol> | <td align="left">255</td> | |||
| <ttcol align="left">Reference</ttcol> | <td align="center">IETF Review</td> | |||
| <c>0</c> | </tr> | |||
| <c>Reserved</c> | </tbody> | |||
| <c>This document</c> | </table> | |||
| <c>1</c> | <t> | |||
| <c>P2MP BFD Session</c> | IANA has made initial assignments according to <xref target="iana-bfd-mode-al | |||
| <c>This document</c> | loc-tbl"/>. | |||
| <c>2- 175</c> | </t> | |||
| <c>Unassigned</c> | <table anchor="iana-bfd-mode-alloc-tbl"> | |||
| <c></c> | <name>"BFD Mode" Subregistry</name> | |||
| <c>176 - 249</c> | <thead> | |||
| <c>Unassigned</c> | <tr> | |||
| <c></c> | <th align="left">Value</th> | |||
| <c>250 - 254</c> | <th align="center">Description</th> | |||
| <c>Experimental Use</c> | <th align="left">Reference</th> | |||
| <c>This document</c> | </tr> | |||
| <c>255</c> | </thead> | |||
| <c>Reserved</c> | <tbody> | |||
| <c>This document</c> | <tr> | |||
| </texttable> | <td align="left">0</td> | |||
| <td align="center">Reserved</td> | ||||
| </section> | <td align="left">This document</td> | |||
| </tr> | ||||
| <section anchor="iana-bfd-attr-ext" title="BFD Discriminator Optional TLV Typ | <tr> | |||
| e"> | <td align="left">1</td> | |||
| <t> | <td align="center">P2MP BFD Session</td> | |||
| IANA is requested to create a new BFD Discriminator Optional TLV Type sub-reg | <td align="left">This document</td> | |||
| istry in Border Gateway Protocol (BGP). | </tr> | |||
| <tr> | ||||
| <td align="left">2- 175</td> | ||||
| <td align="center">Unassigned</td> | ||||
| <td align="left"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">176 - 249</td> | ||||
| <td align="center">Unassigned</td> | ||||
| <td align="left"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">250 - 254</td> | ||||
| <td align="center">Experimental Use</td> | ||||
| <td align="left">This document</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">255</td> | ||||
| <td align="center">Reserved</td> | ||||
| <td align="left">This document</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | ||||
| <section anchor="iana-bfd-attr-ext"> | ||||
| <name>BFD Discriminator Optional TLV Type</name> | ||||
| <t> | ||||
| IANA has created a new "BFD Discriminator Optional TLV Type" subregistry in t | ||||
| he "Border Gateway Protocol (BGP) Parameters" registry. | ||||
| The registration policies, per <xref target="RFC8126"/>, for | The registration policies, per <xref target="RFC8126"/>, for | |||
| this sub-registry are according to <xref target="iana-bfd-discr-ext-reg"/>. | this subregistry are according to <xref target="iana-bfd-discr-ext-reg"/>. | |||
| </t> | ||||
| <texttable anchor="iana-bfd-discr-ext-reg" title="BFD Discriminator | ||||
| Optional TLV Type Sub-registry Registration Policies"> | ||||
| <ttcol align='left'>Value</ttcol> | ||||
| <ttcol align='center'>Policy</ttcol> | ||||
| <c>0- 175</c> | ||||
| <c>IETF Review</c> | ||||
| <c>176 - 249</c> | ||||
| <c>First Come First Served</c> | ||||
| <c>250 - 254</c> | ||||
| <c>Experimental Use</c> | ||||
| <c>255</c> | ||||
| <c>IETF Review</c> | ||||
| </texttable> | ||||
| <t> | ||||
| IANA is requested to make initial assignments according to <xref target="iana-bf | ||||
| d-discr-ext-tbl"/>. | ||||
| </t> | ||||
| <texttable anchor="iana-bfd-discr-ext-tbl" title="BFD Discriminator Opt | ||||
| ional TLV Type Sub-registry"> | ||||
| <ttcol align='left'>Value</ttcol> | ||||
| <ttcol align='center'>Description</ttcol> | ||||
| <ttcol align='left'>Reference</ttcol> | ||||
| <c>0</c> | ||||
| <c>Reserved</c> | ||||
| <c>This document</c> | ||||
| <c>1</c> | ||||
| <c>Source IP Address</c> | ||||
| <c>This document</c> | ||||
| <c>2- 175</c> | ||||
| <c>Unassigned</c> | ||||
| <c></c> | ||||
| <c>176 - 249</c> | ||||
| <c>Unassigned</c> | ||||
| <c></c> | ||||
| <c>250 - 254</c> | ||||
| <c>Experimental Use</c> | ||||
| <c>This document</c> | ||||
| <c>255</c> | ||||
| <c>Reserved</c> | ||||
| <c>This document</c> | ||||
| </texttable> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="Security" title="Security Considerations"> | ||||
| <t> | ||||
| This document describes procedures based on <xref target="RFC6513"/> and <xr | ||||
| ef target="RFC6514"/> | ||||
| and hence shares the security considerations respectively represented in the | ||||
| se specifications. | ||||
| </t> | ||||
| <t> | ||||
| This document uses P2MP BFD, as defined in <xref target="RFC8562"/>, | ||||
| which, in turn, is based on <xref target="RFC5880"/>. | ||||
| Security considerations relevant to each protocol are discussed in | ||||
| the respective protocol specifications. | ||||
| An implementation that supports this specification MUST provide a | ||||
| mechanism to limit the overall amount of capacity used by the BFD traffic | ||||
| (as the combination of the number of active P2MP BFD sessions and the rate of | ||||
| BFD Control packets to process). | ||||
| </t> | ||||
| <t> | ||||
| The methods described in <xref target="tunnel-status-determination"/> ma | ||||
| y produce false-negative state changes | ||||
| that can be the trigger for an unnecessary convergence in the control pl | ||||
| ane, ultimately negatively impacting the multicast | ||||
| service provided by the VPN. An operator is expected to consider the net | ||||
| work environment and use available | ||||
| controls of the mechanism used to determine the status of a P-tunnel. | ||||
| </t> | </t> | |||
| <table anchor="iana-bfd-discr-ext-reg"> | ||||
| <name>"BFD Discriminator Optional TLV Type" Subregistry Regi | ||||
| stration Policies</name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th align="left">Value</th> | ||||
| <th align="center">Policy</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="left">0- 175</td> | ||||
| <td align="center">IETF Review</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">176 - 249</td> | ||||
| <td align="center">First Come First Served</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">250 - 254</td> | ||||
| <td align="center">Experimental Use</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">255</td> | ||||
| <td align="center">IETF Review</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t> | ||||
| IANA has made initial assignments according to <xref target="iana-bfd-discr-ext- | ||||
| tbl"/>. | ||||
| </t> | ||||
| <table anchor="iana-bfd-discr-ext-tbl"> | ||||
| <name>"BFD Discriminator Optional TLV Type" Subregistry</nam | ||||
| e> | ||||
| <thead> | ||||
| <tr> | ||||
| <th align="left">Value</th> | ||||
| <th align="center">Description</th> | ||||
| <th align="left">Reference</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="left">0</td> | ||||
| <td align="center">Reserved</td> | ||||
| <td align="left">This document</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">1</td> | ||||
| <td align="center">Source IP Address</td> | ||||
| <td align="left">This document</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">2- 175</td> | ||||
| <td align="center">Unassigned</td> | ||||
| <td align="left"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">176 - 249</td> | ||||
| <td align="center">Unassigned</td> | ||||
| <td align="left"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">250 - 254</td> | ||||
| <td align="center">Experimental Use</td> | ||||
| <td align="left">This document</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">255</td> | ||||
| <td align="center">Reserved</td> | ||||
| <td align="left">This document</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="Security"> | ||||
| <section anchor="Acknowledgments" title="Acknowledgments"> | <name>Security Considerations</name> | |||
| <t>The authors want to thank Greg Reaume, Eric Rosen, Jeffrey Zhang, Marti | ||||
| n Vigoureux, Adrian Farrel, | ||||
| and Zheng (Sandy) Zhang for their reviews, | ||||
| useful comments, and helpful suggestions.</t> | ||||
| </section> | ||||
| <section title="Contributor Addresses"> | ||||
| <t> | <t> | |||
| Below is a list of other contributing authors in alphabetical order: | This document describes procedures based on <xref target="RFC6513"/> and | |||
| <figure align="left"> | <xref target="RFC6514"/>; hence, it shares the security considerations | |||
| <artwork align="left"><![CDATA[ | respectively represented in those specifications. | |||
| Rahul Aggarwal | </t> | |||
| Arktan | <t> | |||
| This document uses P2MP BFD, as defined in <xref target="RFC8562"/>, which, in | ||||
| turn, is based on <xref target="RFC5880"/>. Security considerations relevant | ||||
| to each protocol are discussed in the respective protocol specifications. An | ||||
| implementation that supports this specification <bcp14>MUST</bcp14> provide a | ||||
| mechanism to limit the overall amount of capacity used by the BFD traffic (as | ||||
| the combination of the number of active P2MP BFD sessions and the rate of BFD | ||||
| Control packets to process). | ||||
| </t> | ||||
| <t> | ||||
| The methods described in <xref target="tunnel-status-determination"/> | ||||
| may produce false-negative state changes that can be the trigger for | ||||
| an unnecessary convergence in the control plane, ultimately negatively | ||||
| impacting the multicast service provided by the VPN. An operator is | ||||
| expected to consider the network environment and use available | ||||
| controls of the mechanism used to determine the status of a P-tunnel. | ||||
| </t> | ||||
| </section> | ||||
| Email: raggarwa_1@yahoo.com | </middle> | |||
| <back> | ||||
| <references> | ||||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6513.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6514.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4875.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5880.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8562.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7606.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8126.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4271.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4090.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7431.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4291.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.1122.xml"/> | ||||
| Nehal Bhau | <reference anchor='MPLS-P2MP-BFD'> | |||
| Cisco | <front> | |||
| <title>BFD for Multipoint Networks over Point-to-Multi-Point MPLS LSP</title> | ||||
| Email: NBhau@cisco.com | <author initials='G' surname='Mirsky' fullname='Greg Mirsky'> | |||
| <organization /> | ||||
| </author> | ||||
| Clayton Hassen | <author initials='G' surname='Mishra' fullname='Gyan Mishra'> | |||
| Bell Canada | <organization /> | |||
| 2955 Virtual Way | </author> | |||
| Vancouver | ||||
| CANADA | ||||
| Email: Clayton.Hassen@bell.ca | <author initials='D' surname='Eastlake 3rd' fullname='Donald Eastlake 3rd'> | |||
| <organization /> | ||||
| </author> | ||||
| Wim Henderickx | <date month='March' year='2021' /> | |||
| Nokia | ||||
| Copernicuslaan 50 | ||||
| Antwerp 2018 | ||||
| Belgium | ||||
| Email: wim.henderickx@nokia.com | </front> | |||
| Pradeep Jain | <seriesInfo name='Internet-Draft' value='draft-mirsky-mpls-p2mp-bfd-14' /> | |||
| Nokia | ||||
| 701 E Middlefield Rd | ||||
| Mountain View, CA 94043 | ||||
| USA | ||||
| Email: pradeep.jain@nokia.com | </reference> | |||
| Jayant Kotalwar | </references> | |||
| Nokia | </references> | |||
| 701 E Middlefield Rd | ||||
| Mountain View, CA 94043 | ||||
| USA | ||||
| Email: Jayant.Kotalwar@nokia.com | <section anchor="Acknowledgments" numbered="false"> | |||
| <name>Acknowledgments</name> | ||||
| <t>The authors want to thank <contact fullname="Greg Reaume"/>, <contact | ||||
| fullname="Eric Rosen"/>, <contact fullname="Jeffrey Zhang"/>, <contact | ||||
| fullname="Martin Vigoureux"/>, <contact fullname="Adrian Farrel"/>, and | ||||
| <contact fullname="Zheng (Sandy) Zhang"/> for their reviews, useful | ||||
| comments, and helpful suggestions.</t> | ||||
| </section> | ||||
| Praveen Muley | <section anchor="Contributors" numbered="false"> | |||
| Nokia | <name>Contributors</name> | |||
| 701 East Middlefield Rd | <t>Below is a list of other contributing authors in alphabetical order: | |||
| Mountain View, CA 94043 | </t> | |||
| U.S.A. | ||||
| Email: praveen.muley@nokia.com | <author fullname="Rahul Aggarwal" initials="R" surname="Aggarwal"> | |||
| <organization>Arktan</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city></city> | ||||
| <code></code> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>raggarwa_1@yahoo.com</email> | ||||
| </address> | ||||
| </author> | ||||
| Ray (Lei) Qiu | <author fullname="Nehal Bhau" initials="N" surname="Bhau"> | |||
| Juniper Networks | <organization>Cisco</organization> | |||
| 1194 North Mathilda Ave. | <address> | |||
| Sunnyvale, CA 94089 | <postal> | |||
| U.S.A. | <street></street> | |||
| <city></city> | ||||
| <code></code> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>NBhau@cisco.com</email> | ||||
| </address> | ||||
| </author> | ||||
| Email: rqiu@juniper.net | <author fullname="Clayton Hassen" initials="C" surname="Hassen"> | |||
| <organization>Bell Canada</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>2955 Virtual Way</street> | ||||
| <city>Vancouver</city> | ||||
| <code></code> | ||||
| <country>Canada</country> | ||||
| </postal> | ||||
| <email>Clayton.Hassen@bell.ca</email> | ||||
| </address> | ||||
| </author> | ||||
| Yakov Rekhter | <author fullname="Wim Henderickx" initials="W" surname="Henderickx"> | |||
| Juniper Networks | <organization>Nokia</organization> | |||
| 1194 North Mathilda Ave. | <address> | |||
| Sunnyvale, CA 94089 | <postal> | |||
| U.S.A. | <street>Copernicuslaan 50</street> | |||
| <city>Antwerp</city> | ||||
| <code>2018</code> | ||||
| <country>Belgium</country> | ||||
| </postal> | ||||
| <email>wim.henderickx@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| Email: yakov@juniper.net | <author fullname="Pradeep Jain" initials="P" surname="Jain"> | |||
| <organization>Nokia</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>701 E Middlefield Rd</street> | ||||
| <city>Mountain View</city> | ||||
| <code>CA 94043</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>pradeep.jain@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| Kanwar Singh | <author fullname="Jayant Kotalwar" initials="J" surname="Kotalwar"> | |||
| Nokia | <organization>Nokia</organization> | |||
| 701 E Middlefield Rd | <address> | |||
| Mountain View, CA 94043 | <postal> | |||
| USA | <street>701 E Middlefield Rd</street> | |||
| <city>Mountain View</city> | ||||
| <code>CA 94043</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>Jayant.Kotalwar@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| Email: kanwar.singh@nokia.com | <author fullname="Praveen Muley" initials="P" surname="Muley"> | |||
| <organization>Nokia</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>701 East Middlefield Rd</street> | ||||
| <city>Mountain View</city> | ||||
| <code>CA 94043</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>praveen.muley@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| ]]></artwork> | <author fullname="Ray (Lei) Qiu" initials="R" surname="Qiu"> | |||
| </figure> | <organization>Juniper Networks</organization> | |||
| </t> | <address> | |||
| </section> | <postal> | |||
| <street>1194 North Mathilda Ave.</street> | ||||
| <city>Sunnyvale</city> | ||||
| <code>CA 94089</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>rqiu@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| </middle> | <author fullname="Yakov Rekhter" initials="Y" surname="Rekhter"> | |||
| <organization>Juniper Networks</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>1194 North Mathilda Ave.</street> | ||||
| <city>Sunnyvale</city> | ||||
| <code>CA 94089</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>yakov@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <back> | <author fullname="Kanwar Singh" initials="K" surname="Singh"> | |||
| <references title="Normative References"> | <organization>Nokia</organization> | |||
| <?rfc include="reference.RFC.2119"?> | <address> | |||
| <?rfc include="reference.RFC.8174"?> | <postal> | |||
| <?rfc include="reference.RFC.6513"?> | <street>701 E Middlefield Rd</street> | |||
| <?rfc include="reference.RFC.6514"?> | <city>Mountain View</city> | |||
| <?rfc include="reference.RFC.4875"?> | <code>CA 94043</code> | |||
| <?rfc include="reference.RFC.5880"?> | <country>United States of America</country> | |||
| <?rfc include="reference.RFC.8562"?> | </postal> | |||
| <?rfc include="reference.RFC.7606"?> | <email>kanwar.singh@nokia.com</email> | |||
| <?rfc include="reference.RFC.8126"?> | </address> | |||
| <?rfc include="reference.RFC.4271"?> | </author> | |||
| </references> | ||||
| <references title="Informative References"> | </section> | |||
| <?rfc include="reference.RFC.4090"?> | </back> | |||
| <?rfc include="reference.RFC.7431"?> | ||||
| <?rfc include="reference.RFC.4291"?> | ||||
| <?rfc include="reference.RFC.1122"?> | ||||
| <?rfc include="reference.I-D.mirsky-mpls-p2mp-bfd"?> | ||||
| </references> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 178 change blocks. | ||||
| 1095 lines changed or deleted | 1206 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||