<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" ipr="trust200902" docName="draft-mirsky-bfd-p2mp-vrrp-use-case-01" updates="5798">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<front>
	<title abbrev="BFD P2MP Use in VRRP">Bidirectional Forwarding Detection (BFD) for Multi-point Networks and Virtual Router Redundancy Protocol (VRRP) Use Case</title>

	<author initials="G." surname="Mirsky" fullname="Greg Mirsky">
		<organization>ZTE Corp.</organization>
		<address>
			<email>gregimirsky@gmail.com</email>
		</address> 
	</author>
 	<author initials="J." surname="Tantsura" fullname="Jeff Tantsura">
		<organization/>
		<address>
			<email>jefftant.ietf@gmail.com</email>
		</address> 
	</author>

    <date day="3" month="October" year="2017"/>

    <area>Routing</area>

    <workgroup>BFD Working Group</workgroup>

    <keyword>Internet-Draft</keyword>

   <keyword>VRRP</keyword>
   
   <keyword>BFD </keyword>
	
	<abstract>
	<t>
	This document discusses use of Bidirectional Forwarding Detection (BFD) for multi-point networks 
	to provide Virtual Router Redundancy Protocol (VRRP) with sub-second Master convergence and defines the extension
	to bootstrap point-to-multipoint BFD session.
	 </t>
	</abstract>
</front>

<middle>
  <section anchor="intro" title="Introduction">
 <t>
 The <xref target="RFC5798"/> is the current specification of the Virtual Router Redundancy Protocol (VRRP)
 for IPv4 and IPv6 networks. VRRPv3 allows for faster switchover to a Backup router. Using such capability
 with software-based implementation of VRRP is may prove challenging. 
But it still may be possible to deploy
 VRRP and provide sub-second detection of Master router failure by Backup routers.
 </t>
 <t>
 Bidirectional Forwarding Detection (BFD) <xref target="RFC5880"/> had been originally defined detect
 failure of point-to-point (p2p) paths: single-hop <xref target="RFC5881"/>, multihop <xref target="RFC5883"/>.
 Single-hop BFD may be used to enable Backup routers to detect failure of the Master router within 100 msec or faster.
 <xref target="I-D.nitish-vrrp-bfd"/> demonstrates how, with some extensions to <xref target="RFC5798"/>,
 that can be achieved.
 </t>
 <t>
 <xref target="I-D.ietf-bfd-multipoint"/> extends <xref target="RFC5880"/> for multipoint and multicast
 networks, which is precisely characterizes deployment scenarios for VRRP over LAN segment. This document
 demonstrates how point-to-multipoint (p2mp) BFD can enable faster detection of Master failure and 
 thus minimize service disruption in a VRRP domain. The document also defines the extension to VRRP <xref target="RFC5798"/>
 to bootstrap a VRRP Backup router to join in p2mp BFD session.
 </t>
         
     <section title="Conventions used in this document">
         <section title="Terminology">

            <t>BFD:          Bidirectional Forwarding Detection</t>
            <t>p2mp:         Pont-to-Multipoint</t>
            <t>VRRP:        Virtual Router Redundancy Protocol</t>
         </section>    
         
        <section title="Requirements Language">
             <t>
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
   "MAY", and "OPTIONAL" in this document are to be interpreted as
   described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
   when, and only when, they appear in all capitals, as shown here.
             </t>
          </section>
      </section>
     </section>
      
     <section anchor="problem-statement" title="Problem Statement">
     
<t>
A router may be part of several Virtual Router Redundancy groups, as Master in some and as Backup in others.
Supporting sub-second mode for VRRPv3 <xref target="RFC5798"/> for all these roles without specialized support
in data plane may prove to be very challenging. BFD already has many implementations based on HW that are capable
to support multiple sub-second session concurrently.
</t>
</section>

<section anchor="apply-p2mp-bfd" title="Applicability of p2mp BFD">
<t>
 <xref target="I-D.ietf-bfd-multipoint"/>
  may provide the efficient and scaleable solution for fast-converging
 environment that uses default route rather than dynamic routing. Each redundancy group presents itself as p2mp BFD
 session with its Master being the root and Backup routers being tails of the p2mp BFD session.
 <xref target="vrrp-p2mp-bfd-boot-fig"/> displays the extension
 of VRRP <xref target="RFC5798"/> to bootstrap tail of the p2mp BFD session.
 Master 
 </t>
 
<t>
          <figure align="left" anchor="vrrp-p2mp-bfd-boot-fig" title="VRRP Extension to Bootstrap P2MP BFD session">
          <artwork><![CDATA[    
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Version| Type  | Virtual Rtr ID|   Priority    |Count IPvX Addr|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Rsvd |B|     Max Adver Int     |          Checksum             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    +                                                               +
    |                       IPvX Address(es)                        |
    +                                                               +
    +                                                               +
    +                                                               +
    +                                                               +
    |                                                               |
    +                                                               +
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Master Discriminator                     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ]]></artwork>
        </figure>
        
</t>
<t>
where new fields are interpreted as:
<list>
<t>B(FD) - one bit flag that indicates that the Master Discriminator field is appended to VRRP packet defined in <xref target="RFC5798"/>;</t>
<t>Master Discriminator - My Discriminator value allocated by the root of the p2mp BFD session.</t>
</list>

</t>
<t>
 The Master router that is configured to use p2mp BFD to support faster convergence of VRRP
 starts transmitting BFD control packets with VRID as source IP address and My Discriminator. The same value of My Discriminator
 MUST be set as value of Master Discriminator field and BFD flag MUST be set in the VRRP packet. Backup router demultiplexes
 p2mp BFD test sessions based on VRID that it been configured with and the My Discriminator value it learns
 from the received VRRP packet. When a Backup
 router detects failure of the Master router it re-evaluates its role in the VRID. As result, the Backup router may become the Master
router of the given VRID or continue as a Backup router. If the former is the case, then the new Master
router MUST select My Discriminator and start transmitting p2mp BFD control
 packets using Master IP address as source IP address for p2mp BFD control packets. If the latter is the case, then the
 Backup router MUST wait for VRRP packet from the new VRRP Master router that will bootstrap new p2mp BFD session.
 </t>

</section>
      

     <section anchor="iana-consider" title="IANA Considerations">
     <t>
This document makes no requests for IANA allocations. This section may be deleted by RFC Editor.
 </t>
    </section>
     
     <section anchor="security" title="Security Considerations">
     <t>
 Security considerations discussed in <xref target="RFC5798"/>, <xref target="RFC5880"/>,
 and <xref target="I-D.ietf-bfd-multipoint"/>, apply to this document. 
     </t>
     </section>
      
     
      <section title="Acknowledgements">
         <t>
         </t>  
      </section>

  </middle>
  
    <back>

    <references title="Normative References">
     
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.5880"?>
      <?rfc include="reference.RFC.5881"?>
      <?rfc include="reference.RFC.5883"?>
      <?rfc include="reference.RFC.5798"?>
      

<?rfc include='reference.I-D.nitish-vrrp-bfd'?>

   <?rfc include='reference.I-D.ietf-bfd-multipoint'?>

    </references>

<!--
    <references title="Informative References">

    </references>
-->
 </back>
 </rfc>
