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/ |