<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [


<!ENTITY RFC2119 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> 
<!ENTITY RFC6790 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.6790.xml"> 
<!ENTITY RFC5880 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.5880.xml"> 
<!ENTITY RFC5884 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.5884.xml"> 
<!ENTITY RFC5885 SYSTEM
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.5885.xml"> 
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?><?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-vgovindan-l2vpn-evpn-bfd-02" ipr="trust200902">
<front>
<title abbrev="Govindan">Proactive fault detection in EVPN</title>
<author fullname="Vengada Prasad Govindan" initials="V"
            surname="Govindan">
      <organization>Cisco Systems</organization>
      <address>
      <!--
        <postal>
          <street></street>
          
          <city>Unknown</city>
          <region></region>
          <code></code>
          <country>Unknown</country>
        </postal>
        <phone>+1 234 5678 9012</phone>
        -->
        <email>venggovi@cisco.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

<author fullname="Samer Salam" initials="S" 
            surname="Salam">
      <organization>Cisco Systems</organization>
      <address>
      <!--
        <postal>
          <street></street>
          
          <city>Unknown</city>
          <region></region>
          <code></code>
          <country>Unknown</country>
        </postal>
        <phone>+1 234 5678 9012</phone>
        -->
        <email>ssalam@cisco.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>



<author fullname="Ali Sajassi" initials="A"
            surname="Sajassi">
      <organization>Cisco Systems</organization>
      <address>
      <!--
        <postal>
          <street></street>
          
          <city>Unknown</city>
          <region></region>
          <code></code>
          <country>Unknown</country>
        </postal>
        <phone>+1 234 5678 9012</phone>
        -->
        <email>sajassi@cisco.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author><date month="July" year="2014" />

<abstract>
   <t>This document proposes a proactive, in-band network OAM mechanism to
   detect connectivity faults that affect unicast and multi-destination
   paths in an EVPN network. The multi-destination paths are used by
   Broadcast, unknown Unicast and Multicast (BUM) traffic. The
   mechanisms proposed in the draft use the principles of the widely
   adopted Bidirectional Forwarding Detection (BFD) protocol.
</t>
</abstract>
</front>

<middle>
<section title="Introduction">
   <t><xref target="I-D.salam-l2vpn-evpn-oam-req-frmwk" /> outlines the OAM requirements of Ethernet VPN networks     
      
    <xref target="I-D.ietf-l2vpn-evpn" />. This document proposes mechanisms for proactive fault     
    detection at the network OAM layer of EVPN. These mechanisms could     
    either be deployed for periodic and proactive monitoring, or be triggered by specific events to aid troubleshooting. EVPN fault     
    detection mechanisms need to consider unicast and BUM traffic     
    separately since they map to different FECs in EVPN. Since BUM     
    traffic can be transported using MP2P or P2MP tunnels, this document     
    proposes slightly different fault detection mechanisms to suit each     
    type using the principles of <xref target="RFC5884">BFD over MPLS LSPs</xref> and Point-to-multipoint BFD<xref target="I-D.ietf-bfd-multipoint" />. Please note that this document uses the term EVPN loosely to include <xref target="I-D.ietf-l2vpn-evpn" />, <xref target="I-D.ietf-l2vpn-pbb-evpn" /> as well as <xref target="I-D.ietf-l2vpn-trill-evpn" />. </t>

  <section title="Terminology"> <t>The key words "MUST", "MUST NOT",
  "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",
  "MAY", and "OPTIONAL" in this document are to be interpreted as described in
  <xref target="RFC2119">RFC 2119</xref>.</t> </section>

<section title ="Motivation for running BFD at the network layer of EVPN">
      <t>
    The choice of running BFD at the network layer of the OAM model for     
    EVPN <xref target="I-D.salam-l2vpn-evpn-oam-req-frmwk" /> was made after considering the following:     
   <list counter="defs1" hangIndent="4" style="symbols">
  
    <t>In addition to detecting link failures in the EVPN network, BFD     
    sessions at the network layer can be used to monitor the successful     
    programming of labels used for setting up MP2P and P2MP EVPN tunnels     
    transporting Unicast and BUM traffic. The scope of reachability     
    detection covers the ingress and the egress EVPN PE nodes and the     
    network connecting them.</t>
      
       <t>Monitoring a representative set of path(s) or a particular path     
    among the multiple paths available between two EVPN PE nodes could be     
    done by exercising the entropy labels when they are used. However     
    paths that cannot be realized by entropy variations cannot be     
    monitored. Fault monitoring requirements outlined by <xref target="I-D.salam-l2vpn-evpn-oam-req-frmwk" /> are     
    addressed by the mechanisms proposed by this draft.</t> </list>
      
       Successful establishment and maintenance of BFD sessions between     
    EVPN PE nodes does not fully guarantee that the EVPN service is     
    functioning.  For example, an egress EVPN-PE can understand the EVPN     
    label but could switch data to incorrect interface.  However, once     
    BFD sessions in the EVPN Network Layer reach UP state, it does     
    provide additional confidence that data transported using those     
    tunnels will reach the expected egress node.  When BFD sessions in     
    the EVPN Network Layer exits UP state, it provides additional     
    confidence that data transported using those tunnels will not reach     
    the expected egress node. 
</t>
</section>
</section>


<section title=" Scope of fault detection mechanisms proposed in this document"> <!-- 2, line 125-->
<t>This section proposes proactive fault detection using BFD mechanisms for:

<list counter="defs1" hangIndent="4" style="letters">
<t>
BUM traffic using MP2P tunnels (ingress replication).</t>
<t>BUM traffic using P2MP tunnels (LSM).</t>
<t>Unicast traffic. </t>
</list>

This specification describes procedures only for BFD asynchronous mode.  BFD demand mode is outside the scope of this specification.  Further, the use of the  Echo function is outside the scope of this specification.
The approach takes advantage of the inclusive multicast route used in EVPN to advertise the multi-destination FEC for bootstrapping the BFD sessions. Earlier approaches for P2MP BFD <xref target="I-D.ietf-mpls-mcast-cv" /> have used periodic MPLS ping requests to bootstrap P2MP BFD sessions over MPLS. 
</t>

<section title="Fault Detection of BUM traffic using ingress replication (MP2P)">

<t>Ingress replication uses separate MP2P tunnels for transporting BUM traffic from the ingress PE (head) to a set of one or more egress PEs (tails). The fault detection mechanism proposed by this document takes advantage of the fact that a unique copy is made by the head for each tail. Another key aspect to be considered in EVPN is the advertisement of the inclusive multicast route. The BUM traffic flows from a head node to a particular tail only after the head receives the inclusive multicast route containing the BUM EVPN label (downstream allocated) corresponding to the MP2P tunnel. 
 
Note that once the BFD session for the EVPN BUM label is UP, either end of the BFD session MUST NOT change the local discriminator values of the BFD Control packets it generates, unless it first brings down the session as specified in <xref target="RFC5884">RFC 5884</xref>. 
</t>


<section title="Bootstrapping BFD sessions at the head of the MP2P tunnel">

<t>To simplify BFD session de-multiplexing, we take advantage of the fact that the head replicates a BUM packet for each tail by using unique sets of discriminators in each copy of the (replicated) BFD packet. These discriminators MUST be exchanged out-of-band using MPLS ping <xref target="RFC5884">RFC 5884</xref> before the start of the BFD session between the head and the tail node(s). The head PE performing ingress replication MUST initiate an LSP ping using the inclusive multicast FEC <xref target="I-D.jain-l2vpn-evpn-lsp-ping" /> upon receiving an inclusive multicast route from a tail to bootstrap the BFD session. This MPLS ping MUST include the BFD TLV specified in <xref target="RFC5884">RFC 5884</xref>.  

There could exist multiple BFD sessions between a head of the multi-destination tunnel and an individual tail due to the usage of entropy labels <xref target="RFC6790">RFC 6790</xref> for an inclusive multicast FEC. For fine-grained fault detection, a BFD session MAY be bootstrapped to monitor all unique path(s) that can be realized using entropy labels between a head and a given tail. However, the path(s) MUST be monitored using at least one or more number of representative BFD session(s) to satisfy the fault monitoring requirements <xref target="I-D.salam-l2vpn-evpn-oam-req-frmwk" />. The issue of demultiplexing (separate) BFD sessions established to monitor liveness of the multiple paths of a &lt;MPLS LSP, FEC&gt; has not been fully addressed by <xref target="RFC5884" />. Procedures proposed in <eref target=" http://tools.ietf.org/html/draft-vgovindan-mpls-extended-bfd-disc-tlv-00">[ID.draft-vgovindan-mpls-extended-bfd-disc-tlv]</eref> could be used for monitoring connectivity of the path(s) that are realized through entropy labels. The head node MAY initiate separate BFD sessions using different instance identifiers to verify connectivity of the different paths.
</t>
</section>

<section title="Bootstrapping BFD sessions at the tail nodes of the MP2P tunnel">
<t>The tail nodes MUST bootstrap a BFD session based on the incoming MPLS ping initiated by the head <xref target="I-D.ietf-bfd-multipoint" />. At the tail node, a new BFD discriminator MUST be allocated for each unique combination of the source IP and the attributes of the &lt;inclusive multicast FEC, BUM label&gt; when a MPLS ping initiated from the head is received. A tail node MAY include the instance identifier, if present to support monitoring of specific paths or all realizable paths. 
</t>
</section>
</section>

<section title="Fault Detection of BUM traffic using P2MP tunnels (LSM)">
<t>The case of using P2MP tunnels for distributing BUM traffic presents a different challenge for using BFD. Clearly, the yourDisc of the BFD packet MUST be zero <xref target="I-D.ietf-bfd-multipoint" /> as the packet is multicast from the root unlike ingress replication where individual copies are made from the head. However the MPLS label that identifies the P-Tunnel <xref target="I-D.ietf-l2vpn-evpn" /> used for forwarding the multi-destination traffic provides a convenient method of identifying the source and the FEC (multi-destination tree) being tracked by the BFD session. The tails of the multi-destination tree MUST use the MPLS label identifying the P-tunnel to de-multiplex the BFD packet. In the case of Aggregate Inclusive trees, where the root of the multi-destination tree reuses the same LSP label for traffic of various EVIs, the tail node MUST use the MPLS labels of the P-Tunnel and the upstream assigned label which the PE has bound uniquely to the EVI. The myDisc of the BFD packet is filled with an unique value allocated by the root to identify the multi-path session. 
</t>
<section title="Bootstrapping BFD sessions at the root of the P2MP tunnel">
<t>The P2MP BFD sessions MUST be bootstrapped at the head <xref target="I-D.ietf-bfd-multipoint" /> as soon as there is one receiver for the MDT traffic.
</t>
</section>
<section title="Bootstrapping BFD sessions at the tail nodes of the P2MP tunnel">
<t>The P2MP BFD sessions MUST be bootstrapped at the tail upon reception of the P2MP BFD packets from the head. The tail MUST use the P2MP MDT label to de-multiplex the incoming BFD packet. The BFD session MAY be destroyed immediately upon leaving Up
state. 
</t>
</section>
</section>

<section title="Fault Detection of unicast traffic">
<t>The mechanisms specified in BFD for MPLS LSPs <xref target="RFC5884">RFC 5884</xref> can be applied to bootstrap and maintain BFD sessions for unicast EVPN traffic. The discriminators required for de-multiplexing the BFD sessions MUST be exchanged using MPLS ping specifying the Unicast EVPN FEC <xref target="I-D.jain-l2vpn-evpn-lsp-ping" /> before starting the BFD session. This is needed since the MPLS label stack does not contain enough information to disambiguate the sender of the packet. The usage of MPLS entropy labels take care of addressing the requirement of monitoring faults of the various paths of the multi-path server layer network <xref target="RFC6790">RFC 6790</xref>. Each unique realizable path between the participating PE routers MAY be monitored separately when entropy labels are used. Alternately, all paths MUST be tracked by at least one or a fewer number of representative BFD session(s) in which case the granularity of fault-detection would be coarser. The PE node receiving the MPLS ping MUST allocate one BFD discriminator for every unique combination of the source IP address and the tuple of &lt;unicast FEC, EVPN label&gt;. A node MAY include the instance identifier of the entropy label,if present to satisfy the requirement of fault monitoring of specific paths or all realizable paths. Note that once the BFD session for the EVPN label is UP, either end of the BFD session MUST NOT change  the local discriminator values of the BFD Control packets it generates, unless it first brings down the session as specified in <xref target="RFC5884">RFC 5884</xref>. 
</t>
</section>
</section>


<section title="BFD packet encapsulation">

<section title="Using GAL/G-ACh encapsulation without IP headers">

<section title="Ingress replication">
<t>The packet contains the following labels: LSP label (transport) when not using PHP, the optional entropy label, the BUM label and the SH label<xref target="I-D.ietf-l2vpn-evpn" /> (where applicable). The G-ACh type is set to TBD. The discriminator values of BFD are obtained through negotiation through the out-of-band MPLS ping.
</t>
</section>

<section title="LSM">
<t>The packet contains the following labels: label identifying the P-Tunnel, upstream label which the PE has bound uniquely to the EVI  (for aggregate inclusive trees only). The G-ACh type is set to TBD. The yourDisc value is set to 0 and the myDisc value is uniquely generated by the root.
</t>
</section>
<section title="Unicast">
<t>The packet contains the following labels: LSP label (transport) when not using PHP, the optional entropy label and the EVPN Unicast label. The G-ACh type is set to TBD. The discriminator values of BFD are obtained through negotiation through the out-of-band MPLS ping.
</t>
</section>
</section>

<section title="Using IP headers">

<t>The encapsulation option using IP headers will not be suited for EVPN, as using different values in the destination IP address for data and OAM (BFD) packets could cause the BFD packets to follow a different path than that of data packets. Hence this option MUST NOT be used for EVPN.
</t>
</section>
</section>

<section title="Scalability Considerations"> <!-- 4, line 229-->
<t>The mechanisms proposed by this draft could affect the packet load on the network and its elements especially when supporting configurations involving a large number of EVIs. The option of slowing down or speeding up BFD timer values can be used by an administrator or a network management entity to maintain the overhead incurred due to fault monitoring at an acceptable level.
</t>
</section> <!-- ends: "4 from line 229-->

<section title="Security Considerations"> <!-- 5, line 234-->
<t>This document does not introduce any new security issues, the security considerations defined in <xref target="RFC5880">RFC 5880</xref> and <xref target="I-D.ietf-bfd-multipoint" /> apply in this document.
</t>
</section>

<section title="IANA Considerations">

<t>A new G-Ach Type is requested for for GAL encapsulated BFD as the existing type <xref target="RFC5885" /> specifically applies to PW-ACH encapsulation.
</t>
</section>



<section title="Acknowledgments"> <!-- 7, line 244-->
<t>We thank Nobo Akiya, Tina Lam, Jose Liste, Mudigonda Mallik and Gregory Mirsky for their valuable input, discussions and comments.
</t>
</section> <!-- ends: "7 from line 244-->
</middle>

<back>

<references title="Normative References">
      &RFC2119;
      &RFC5880;
      &RFC5884;
      &RFC5885;
      <?rfc include="reference.I-D.ietf-bfd-multipoint"?>
      <?rfc include="reference.I-D.jain-l2vpn-evpn-lsp-ping"?>
    <reference anchor="ID.vgovindan-mpls-extended-bfd-disc-tlv" target="http://tools.ietf.org/html/draft-vgovindan-mpls-extended-bfd-disc-tlv-00">
        <front>
            <title>Label Switched Path (LSP) Ping Extended Bidirectional Forwarding Detection (BFD) Discriminator TLV</title>
            <author initials="V" surname="Govindan" fullname="Vengada Prasad Govindan">
                <organization />
            </author>
            <author initials="N" surname="Akiya" fullname="Nobo Akiya">
                <organization />
            </author>
            <date month="July" year="2014" />
        </front>
        <seriesInfo name="" value="" />
    </reference>
    </references>

<references title="Informative References">
      &RFC6790;
      <?rfc include="reference.I-D.ietf-l2vpn-evpn"?>
      <?rfc include="reference.I-D.ietf-l2vpn-pbb-evpn"?>
      <?rfc include="reference.I-D.ietf-l2vpn-trill-evpn"?>
      <?rfc include="reference.I-D.ietf-mpls-mcast-cv"?>
      <?rfc include="reference.I-D.salam-l2vpn-evpn-oam-req-frmwk"?>

</references>
</back>
</rfc>
<!-- generated from file draft-vgovindan-l2vpn-evpn-bfd-02.nroff with nroff2xml 0.1.0 by Tomek Mrugalski -->
