<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->


<rfc category="std" updates="5885" docName="draft-ietf-pals-seamless-vccv-00" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <title abbrev="Seamless BFD for VCCV">
	Seamless BFD for VCCV
    </title>

    <!-- add 'role="editor"' below for the editors if appropriate -->
    <!-- Another author who claims to be an editor -->

    <author fullname="Vengada Prasad Govindan" initials="V."
            surname="Govindan">
      <organization>Cisco Systems</organization>
      <address>
        <email>venggovi@cisco.com</email>
      </address>
    </author>

    <author fullname="Carlos Pignataro" initials="C."
            surname="Pignataro">
      <organization>Cisco Systems</organization>
      <address>
        <email>cpignata@cisco.com</email>
      </address>
    </author>
    <date year="2015" />

    <area>BFD Working Group</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
    IETF is fine for individual submissions.  
	If this element is not present, the default is "Network Working Group",
    which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>RFC5885</keyword>
    <keyword>L2TPv3</keyword>
    <keyword>VCCV</keyword>
    <keyword>BFD</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
       <t>
This document extends the procedures and Connectivity Verification (CV) types already defined for Bidirectional Forwarding Detection (BFD) for Virtual Circuit Connectivity Verification (VCCV) to define Seamless BFD (S-BFD) for VCCV. This document will be extended in future to include definition of procedures for S-BFD over Tunnels. This document extends the CV values defined in RFC5885.
</t>
    </abstract>
  </front>

  <middle>

    <section title="Background">
    <t>BFD for VCCV <xref target="RFC5885"></xref> defines the CV types for BFD using VCCV, protocol operation and the required packet encapsulation formats. This document extends those procedures, CV type values to enable S-BFD <xref target="I-D.ietf-bfd-seamless-base" /> operation for VCCV.</t>
    <t>The new S-BFD CV Types are PW demultiplexer-agnostic, and hence applicable for both MPLS and Layer Two Tunneling Protocol version 3 (L2TPv3) pseudowire demultiplexers.  This document concerns itself with the S-BFD VCCV operation over single-segment pseudowires (SS-PWs). The scope of this document is as follows:
    <list>
    <t> This specification describes procedures only for S-BFD asynchronous mode. </t>
    <t> S-BFD Echo mode is outside the scope of this specification. </t>
    <t> S-BFD operation for fault detection and status signaling is outside the scope of this specification. </t>
    </list>
    </t>

    <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 <xref target="RFC2119"></xref>.  </t>
    </section>
    </section>

    <section anchor = "sbfd_cv_types" title="S-BFD Connectivity Verification">
    <t> S-BFD protocol provides continuity check services by monitoring the S-BFD control packets sent and received over the VCCV channel of the PW. The term &lt;Connectivity Verification&gt; is used throughout this document to be consistent with <xref target="RFC5885" />. </t>

    <t> This section defines the CV types to be used for S-BFD. It also defines the procedures for S-BFD discriminator advertisement for the SBD reflector and the procedure for S-BFD Initiator operation. </t>

    <t>Two CV Types are defined for S-BFD. <xref target="Table1"/> summarizes the S-BFD CV Types, grouping them by encapsulation (i.e., with versus without IP/UDP headers) for fault detection only. S-BFD for fault detection and status signaling is outside the scope of this specification. </t>
<?rfc compact="no"?>
<texttable title="Bitmask Values for BFD CV Types" anchor="Table1" style="full"><preamble/><ttcol align="right"/><ttcol align="center">Fault Detection Only</ttcol><ttcol align="center">Fault Detection and Status Signaling</ttcol><c>S-BFD, IP/UDP Encapsulation (with IP/UDP Headers)</c><c>TBD1 (Note1) </c><c>N/A</c><c>S-BFD, PW-ACH Encapsulation when using MPLS PW or L2SS Encapsulation when using L2TP PW (without IP/UDP Headers)</c><c>TBD2 (Note2)</c><c>N/A</c><postamble/></texttable>
<?rfc compact="yes"?>
    <t> Two new bits are requested from IANA to indicate S-BFD operation. 
   </t>

    <section title="Co-existence of S-BFD and BFD capabilites">
    <t>
    Since the CV types for S-BFD and BFD are unique, BFD and S-BFD capabilities can be advertised concurrently.
   </t>
    </section>


    <section title="S-BFD CV Operation">
    <section title="S-BFD Initiator Operation">
    <t>The S-BFD Initiator SHOULD bootstrap S-BFD sessions after it learns the discriminator of the remote target identifier through one or more of the following methods:
<list style="numbers">
    <t> Advertisements of S-BFD discriminators made through AVP/ TLVs defined in L2TP/ LDP.</t>
    <t> Provisioning of S-BFD discriminators.</t>
    <t> Probing remote S-BFD discriminators through S-BFD Alert discriminators <xref target="I-D.akiya-bfd-seamless-alert-discrim"/></t>
</list>
</t>
    <t>S-BFD Initiator operation MUST be according to the specifications in Section 7.2 of <xref target="I-D.ietf-bfd-seamless-base"/>.
    </t>
    </section>

    <section title="S-BFD Reflector Operation">
    <t>
    <list>
    <t>When as pseudowire signalling protocol such as LDP or L2TPv3 is in use the S-BFD Reflector advertises its target discriminators using that signalling protocol. When static PWs are in use the target discriminator of S-BFD needs to be provisioned on the S-BFD Initiator nodes.
    </t>
    <t>All point to point pseudowires are bidirectional, the S-BFD Reflector therefore reflects the S-BFD packet back to the Initiator using the VCCV channel of the reverse direction of the PW on which it was received.
    </t>
    <t> It is observed that the reflector has enough information to reflect the S-BFD Async packet received by it back to the S-BFD initiator using the fields of the L2TPv3 headers.
</t>
    <t> S-BFD Reflector operation for BFD protocol fields MUST be according to the specifications in Section TBD of <xref target="I-D.ietf-bfd-seamless-base"/>.
    </t>
    </list>

    </t>
    <section title="S-BFD Reflector Demultiplexing">
    <t>TBD</t>
    </section>

    <section title="S-BFD Reflector transmission of control packets">
    <t>The procedures of S-BFD Reflector described in <xref target="I-D.ietf-bfd-seamless-base"/> apply for S-BFD using VCCV.</t>
    </section>

    <section title="S-BFD Reflector advertisement of target discriminators using LDP">
    <t>TBD.</t>
    </section>

    <section title="S-BFD Reflector advertisement of target discriminators using L2TP">
    <t>The S-BFD Reflector MUST use the AVP  <xref target="I-D.ietf-l2tpext-sbfd-discriminator"/> defined for advertising its target discriminators using L2TP.</t>
    </section>

    <section title="Provisioning of S-BFD Reflector target discriminators">
    <t>S-BFD target discriminators MAY be provisioned when static PWs are used.</t>
    </section>

    <section title="Probing of S-BFD Reflector target discriminators using alert discriminators">
    <t>S-BFD alert discriminators MAY be used to probe S-BFD target discriminators. If a node implements S-BFD reflector, it SHOULD respond to Alert discriminator requests received from potential S-BFD Initiators.</t>
    </section>

    </section>
    </section>

    <section title="S-BFD Encapsulation">
    <t>Unless specified differently below, the encapsulation of S-BFD packets is the identical the method specified in Sec.3.2 <xref target="RFC5885"/> and in <xref target="RFC5880"/> for the encapsulation of BFD packets.
    <list style="symbols">

    <t> IP/UDP BFD Encapsulation (BFD with IP/UDP Headers)
    <list>
    <t> The destination UDP port for the IP encapsulated S-BFD packet MUST be 7784 <xref target="I-D.ietf-bfd-seamless-base" />.</t>
    <t> The encapsulation of the S-BFD header fields MUST be according to Sec.7.2.2 of <xref target="I-D.ietf-bfd-seamless-base" />.</t>
    </list>
    </t>

    <t>PW-ACH/ L2SS BFD Encapsulation (BFD without IP/UDP Headers)
    <list>
    <t> The encapsulation of S-BFD packets using this format MUST be according to Sec.3.2 of <xref target="RFC5885" /> with the exception of the PW-ACH/ L2SS type.</t>
    <t>When VCCV carries PW-ACH/ L2SS-encapsulated S-BFD (i.e., "raw" S-BFD), the PW-ACH (pseudowire CW's) or L2SS' Channel Type MUST be set to TBD2 to indicate "S-BFD Control, PW-ACH/ L2SS-encapsulated" (i.e., S-BFD without IP/UDP headers; see <xref target="pw_ach_iana" />).  This is to allow the identification of the
      encased S-BFD payload when demultiplexing the VCCV control channel.  </t>
    </list>
    </t>

    </list>

    </t>
    </section>

    <section title="S-BFD CV Types">
    </section>
    
    </section>
    
    <section anchor="sbfd_cap_sel" title="Capability Selection">
<t>When multiple S-BFD CV Types are advertised, and after applying the rules in <xref target="RFC5885"/>, the set that both ends of the pseudowire have in common is determined. If the two ends have more than one S-BFD CV Type in common, the following list of S-BFD CV Types is considered in the order of the lowest list number CV Type to the highest list number CV Type, and the CV Type with the lowest list number is used: </t>
    <t><list style="numbers">
    <t> TBD1 - S-BFD IP/UDP-encapsulated, for PW Fault Detection only.</t>
    <t> TBD2 - S-BFD PW-ACH/ L2SS-encapsulated (without IP/UDP headers), for PW Fault Detection only.</t>
    </list>
    The order of capability selection between S-BFD and BFD is defined as follows:
    </t>
<?rfc compact="no"?>
<texttable title="Capability Selection Matrix for BFD and S-BFD" anchor="Table2" style="full"><preamble/> 
<ttcol align="center">Advertised capabilities of PE1/ PE2</ttcol><ttcol align="center">BFD Only</ttcol><ttcol align="center">SBFD Only </ttcol> <ttcol align="center">Both S-BFD and BFD</ttcol>
<c>BFD Only</c><c>BFD</c><c>None (Note1)</c><c>BFD Only</c>
<c>S-BFD Only</c><c>None (Note1)</c><c>S-BFD</c><c>S-BFD only</c>
<c>Both S-BFD and BFD</c><c>BFD only</c><c>S-BFD only</c><c>Both SBFD and BFD</c>
<postamble/></texttable>
    <t> Note1: Can we mandate failing the bringup of the PW in case of a capability mismatch?</t>
    </section>



    <section anchor="Security" title="Security Considerations">

    <t>Security measures described in <xref target="RFC5885" /> and <xref target="I-D.ietf-bfd-seamless-base"/> are to be followed.</t>

    </section>

    <section anchor="IANA_cons" title="IANA Considerations">

      <section title="MPLS CV Types for the VCCV Interface Parameters Sub-TLV">
<t> The VCCV Interface Parameters Sub-TLV codepoint is defined in <xref target="RFC4446"/>, and the VCCV CV Types registry is defined in <xref target ="RFC5085"/>. </t>

<t>   This section lists the new BFD CV Types.</t>

<t> IANA has augmented the "VCCV Connectivity Verification (CV) Types" registry in the Pseudowire Name Spaces reachable from <xref target="IANA"/>.  These are bitfield values.  CV Type values TBD are specified in <xref target="sbfd_cv_types"/> of this document.

<figure align="left"><preamble/><artwork align="left">
      MPLS Connectivity Verification (CV) Types:

   Bit (Value)  Description                       Reference
   ===========  ===========                       ==============
   TBD1(0xY)    S-BFD IP/UDP-encapsulated,        this document
                for PW Fault Detection only
   TBD2(0xZ)    S-BFD PW-ACH/L2SS-encapsulated,   this document
                for PW Fault Detection only
</artwork></figure>
</t>
      </section>

<section title="L2TPv3 CV Types for the VCCV Capability AVP">


<t> This section lists the new requests for S-BFD CV Types to be added to the existing &quot;VCCV Capability AVP&quot; registry in the L2TP name spaces.  The Layer Two Tunneling Protocol "L2TP" Name Spaces are reachable from <xref target="IANA"/>.

   IANA is requested to assign the following L2TPv3 Connectivity Verification (CV) Types in the VCCV Capability AVP Values registry.

<figure align="left"><preamble/><artwork align="left">
   VCCV Capability AVP (Attribute Type 96) Values
   ----------------------------------------------

   L2TPv3 Connectivity Verification (CV) Types:

   Bit (Value)  Description                  Reference
   ===========  ===========                  ==============
   TBD1(0xY)    S-BFD IP/UDP-encapsulated,   this document
                for PW Fault Detection only
   TBD2(0xZ)    S-BFD L2SS-encapsulated,   this document
                for PW Fault Detection only
</artwork></figure>
</t>
      </section>

      <section anchor="pw_ach_iana" title= "PW Associated Channel Type">

<t>
   As per the IANA considerations in <xref target="RFC5586"/>, IANA is requested to allocate the following Channel Types in the "MPLS Generalized Associated Channel (G-ACh) Types" registry:
</t>

   <t>IANA has reserved a new Pseudowire Associated Channel Type value as follows:

<figure align="left"><preamble/><artwork align="left">
Registry:
                                             TLV
 Value   Description                         Follows  Reference
 ------  ----------------------------------  -------  ---------------
 TBD2    S-BFD Control, PW-ACH/L2SS          No       [This document]
         encapsulation
         (without IP/UDP Headers)


</artwork></figure>
</t>

    </section>
    </section>

    <section title="Acknowledgements">
    <t>Authors would like to thank Nobo Akiya, Stewart Bryant, Pawel Sowinski and Greg Mirsky for providing the core inputs of this document and for performing thorough reviews and providing number of comments. Authors would also like to thank Yuanlong for comments received.</t>
    </section>

    <section title="Contributing Authors">

	<t>Mallik Mudigonda
    <vspace blankLines="0" />
	Cisco Systems
    <vspace blankLines="0" />
    Email: mmudigon@cisco.com</t>

    </section>


  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
	  <?rfc include="reference.RFC.4385"?>
	  <?rfc include="reference.RFC.4446"?>
	  <?rfc include="reference.RFC.5085"?>
	  <?rfc include="reference.RFC.5885"?>
	  <?rfc include="reference.RFC.5586"?>
	  <?rfc include="reference.RFC.5880"?>
      <?rfc include="reference.I-D.ietf-bfd-seamless-base"?>
      <?rfc include="reference.I-D.akiya-bfd-seamless-alert-discrim"?>
      <?rfc include="reference.I-D.ietf-l2tpext-sbfd-discriminator"?>

    </references>

    <references title="Informative References">
      <reference anchor="IANA" target="http://www.iana.org">
      <front>
      <title>Protocol Registries</title>
      <author>
      <organization> Internet Assigned Numbers Authority </organization>
      </author>
      <date/>
      </front>
      </reference>
    </references>

    <!-- Change Log
v00-a 2015-01-11 GVP: Initial version
    -->
  </back>
</rfc>
