<?xml version="1.0" encoding="US-ASCII"?>
<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com 
     This can be converted using the Web service at http://xml.resource.org/ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- You want a table of contents -->
<!-- Use symbolic labels for references -->
<!-- This sorts the references -->
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<?rfc sortrefs="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<rfc category="info" docName="draft-li-sbfd-over-srv6-00" ipr="trust200902">
  <front>
    <title abbrev="SPRING Group">S-BFD over SRv6</title>

    <author fullname="Zhiqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>lizhiqiangyjy@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Tao Sun" initials="T." surname="Sun">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>suntao@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Wei Cheng" initials="W." surname="Cheng">
      <organization>Centec</organization>

      <address>
        <postal>
          <street/>

          <city>Suzhou</city>

          <code>215000</code>

          <country>China</country>
        </postal>

        <email>chengw@centecnetworks.com</email>
      </address>
    </author>

    <author fullname="Junjie Wang" initials="J." surname="Wang">
      <organization>Centec</organization>

      <address>
        <postal>
          <street/>

          <city>Suzhou</city>

          <code>21500</code>

          <country>China</country>
        </postal>

        <email>wangjj@centecnetworks.com</email>
      </address>
    </author>

    <!---->

    <date day="8" month="July" year="2021"/>

    <area>Networking</area>

    <workgroup>Network Working Group</workgroup>

    <keyword>BFD,S-BFD;SRv6</keyword>

    <abstract>
      <t>Bidirectional Forwarding Detection (BFD) can be used to monitor 
      paths between node. Seamless BFD (S-BFD) provides a simplified 
      mechanism which is suitable for monitoring of paths that are setup 
      dynamically and on a large scale network. This draft describes a method
      to simplify the implementation of S-BFD over SRv6 by using SRH.flag to 
      instruct the S-BFD peer node to do reverse operation of SRv6 SID list.</t>
    </abstract>

    <note title="Requirements Language">
      <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 .</t>
    </note>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
     <t>With the increasing adoption of segment routing (SR) technology, 
      ISPs have upgraded their networks seamlessly from MPLS to SR MPLS, 
      and their next goal might be the overall upgrading of the IPv6 
      underlay network forwarding plane.</t>      

      <t>We hope to implement BFD over SRv6 while retaining the 
      bidirectional detection capabilities of traditional BFD, 
      rather than using asymmetrical path detection only. Another 
      problem relates to the bidirectional detection mechanism 
      in BFD over SRv6, Using SR Policy or using TLV to carry the
	  return path brings extra load to the message parsing depth 
	  on existing SRv6 device.</t> 

      <t>In order to accelerate applying BFD in SRv6 networks, 
      this paper proposed a S-BFD over SRv6 implementation solution.</t>

    </section>

    <section title="Motiviation for Proposing S-BFD over SRv6">
      <t>As shown in the figure below, the BFD initiator is A and the 
      peer node is D, while bfd packets forwarding from A to D via 
      the path: A->B->C->D, and return via the path: D->C->B->A.</t>

          <figure align="center" title="Traditional BFD in SRv6 Data Plane">
            <artwork type="ascii-art">
            +-----B-------C-----+
           /                     \
          A-----------E-----------D
           \                     /
            +-----F-------G-----+

            Forward Paths: A-B-C-D
            Return Paths: D-C-B-A
		</artwork>
          </figure>

	      <t>SRv6 SID operations on the initial node A: The SRv6 SID 
	      list {A, B, C, D} is pushed into Node A.</t>
	
	      <t>SRv6 SID operations on the terminal node D: The SRv6 SID 
	      list {A, B, C, D} is swapped in Node D, and the updated SRv6 
	      SID list is : {D, C, B, A}, and the Last Entry, Segment Left, 
	      and other fields are updated.Return Path: D->C->B->A.</t>
	
	     <t>As shown in the figure below, the length of the flags 
	     field in the SRH header is 8-bit. This draft uses the  left third 
	     bit (0|0|R|0|0|0|0|0) to represent the reverse operation of 
	     the SRv6 SID list.</t>

          <figure align="center" title="The reverse operations for S-BFD of SRv6 Flag">
            <artwork type="ascii-art">     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Next Hdr=144  |  Hdr Ext Len  | Routing Type  | Segments Left |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Last Entry   |     Flags     |              Tag              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |            Segment List[0] (128-bit IPv6 address)             |
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
                                  ...
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |            Segment List[n] (128-bit IPv6 address)             |
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |            SRv6 SPAN Header                                   |
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |           Origin  Packet                                      |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
          </figure>
	
	     <t>BFD peer node D check if SRH.Flags[5] == 1, it means that 
		 this device requires the reverse operation of the SRv6 SID list.</t>

      </section>

	<section title="The benefits of S-BFD over SRv6">
		<t>This solution does not need to use the SRv6 Policy to add length 
		of the SID list or to carry the SID list of the return path by TLV.
		It only needs to support reverse SRv6 SID in the reflector node to 
		solve the issue of S-BFD over SRv6 described in the previous.</t>
	</section>

    <section title="Future Considerations and Enhancements of S-BFD over SRv6">
      <t>In future versions of this paper, we will also consider the 
      compatibility of using compressed IDs in SRv6, such as seamlessly 
      merging S-BFD over G-SRv6. Furthermore, there will be no effect on 
      intermediate nodes within the SRv6 network and it only requires 
      S-BFD reflector support the SID reverse operation.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>TBD.</t>
    </section>
  </middle>

  <back/>
</rfc>