<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- A set of on-line citation libraries are maintained on the xml2rfc web site.
     The next line defines an entity named RFC2629, which contains the necessary XML
     for the reference element, and is used much later in the file.  This XML contains an
     anchor (also RFC2629) which can be used to cross-reference this item in the text.
     You can also use local file names instead of a URI.  The environment variable
     XML_LIBRARY provides a search path of directories to look at to locate a
     relative path name for the file. There has to be one entity for each item to be
     referenced. -->
<!ENTITY RFC2234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2234.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC4234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4234.xml">
<!ENTITY RFC8955 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8955.xml">
<!-- There is also a library of current Internet Draft citations.  It isn't a good idea to
     actually use one for the template because it might have disappeared when you come to test
     this template.  This is the form of the entity definition
     &lt;!ENTITY I-D.mrose-writing-rfcs SYSTEM
     "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.mrose-writing-rfcs.xml">
     corresponding to a draft filename draft-mrose-writing-rfcs-nn.txt. The citation will be
     to the most recent draft in the sequence, and is updated roughly hourly on the web site.
     For working group drafts, the same principle applies: file name starts draft-ietf-wgname-..
     and entity file is reference.I-D.ietf-wgname-...  The corresponding entity name is
     I-D.ietf-wgname-... (I-D.mrose-writing-rfcs for the other example).  Of course this doesn't
     change when the draft version changes.
     -->
<!-- Fudge for XMLmind which doesn't have this built in -->
<!ENTITY nbsp    "&#160;">
]>

<!-- Extra statement used by XSLT processors to control the output style. -->
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>


<!-- Processing Instructions can be placed here but if you are editing
     with XMLmind (and maybe other XML editors) they are better placed
     after the rfc element start tag as shown below. -->

<!-- Information about the document.
     category values: std, bcp, info, exp, and historic
     For Internet-Drafts, specify attribute "ipr".
     (ipr values are: full3667, noModification3667, noDerivatives3667),
     Also for Internet-Drafts, can specify values for
     attributes "docName" and, if relevant, "iprExtract".  Note
     that the value for iprExtract is the anchor attribute
     value of a section (such as a MIB specification) that can be
     extracted for separate publication, and is only
     useful whenhe value of "ipr" is not "full3667". -->
    <!-- TODO: verify which attributes are specified only
               by the RFC editor.  It appears that attributes
               "number", "obsoletes", "updates", and "seriesNo"
               are specified by the RFC editor (and not by
               the document author). -->
<rfc
    category="std"
    ipr="trust200902"
    docName="draft-ietf0-idr-srv6-flowspec-path-redirect-12" >
    <!-- Processing Instructions- PIs (for a complete list and description,
          see file http://xml.resource.org/authoring/README.html and below... -->

    <!-- Some of the more generally applicable PIs that most I-Ds might want to use -->

    <!-- Try to enforce the ID-nits conventions and DTD validity -->
    <?rfc strict="yes" ?>

    <!-- Items used when reviewing the document -->
    <?rfc comments="no" ?>  <!-- Controls display of <cref> elements -->
    <?rfc inline="no" ?>    <!-- When no, put comments at end in comments section,
                                 otherwise, put inline -->
    <?rfc editing="no" ?>   <!-- When yes, insert editing marks: editing marks consist of a
                                 string such as <29> printed in the blank line at the
                                 beginning of each paragraph of text. -->

    <!-- Create Table of Contents (ToC) and set some options for it.
         Note the ToC may be omitted for very short documents,but idnits insists on a ToC
         if the document has more than 15 pages. -->
   <?rfc toc="yes"?>
   <?rfc tocompact="yes"?> <!-- If "yes" eliminates blank lines before main section entries. -->
   <?rfc tocdepth="3"?>    <!-- Sets the number of levels of sections/subsections... in ToC -->

    <!-- Choose the options for the references.
         Some like symbolic tags in the references (and citations) and others prefer
         numbers. The RFC Editor always uses symbolic tags.
         The tags used are the anchor attributes of the references. -->
    <?rfc symrefs="no"?>
    <?rfc sortrefs="yes" ?> <!-- If "yes", causes the references to be sorted in order of tags.
                                 This doesn't have any effect unless symrefs is "yes" also. -->

    <!-- These two save paper: Just setting compact to "yes" makes savings by not starting each
         main section on a new page but does not omit the blank lines between list items.
         If subcompact is also "yes" the blank lines between list items are also omitted. -->
    <?rfc compact="yes" ?>
    <?rfc subcompact="no" ?>
    <!-- end of list of popular I-D processing instructions -->

    <!-- ***** FRONT MATTER ***** -->
<front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
         full title is longer than 42 characters -->
    <title abbrev="Indirection-id Redirect for SRv6">Flowspec Indirection-id Redirect for SRv6</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->
    <author
		fullname="Gunter Van de Velde"
        initials="G."
        surname="Van de Velde">
        <!-- abbrev not needed but can be used for the header
             if the full organization name is too long -->
        <organization abbrev="Nokia">Nokia</organization>
        <address>
            <postal>
                <!-- I've omitted my street address here -->
                <street/>
                <city>Antwerp</city>
                <country>BE</country>
            </postal>
        <email>gunter.van_de_velde@nokia.com</email>
        </address>
    </author>

    <!-- Another author who claims to be an editor -->

    <author fullname="Keyur Patel"
            initials="K."
            surname="Patel">
      <organization>Arrcus</organization>
      <address>
        <postal>
          <street></street>
          <!-- Reorder these if your country does things differently -->
          <city></city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <phone></phone>
        <email>keyur@arrcus.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>


    <author fullname="Zhenbin Li"
            initials="Z."
            surname="Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Huawei Bld., No. 156 Beiquing Rd</street>
          <!-- Reorder these if your country does things differently -->
          <city>Beijing</city>
          <region></region>
          <code>100095</code>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>lizhenbin@huawei.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author initials="H" surname="Chen" fullname="Huaimo Chen">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street></street>
          <city>Boston, MA</city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>Huaimo.chen@futurewei.com</email>
      </address>
    </author>


    <date year="2024"/> <!-- month="March" is no longer necessary
                                           note also, day="30" is optional -->
    <!-- WARNING: If the month and year are the current ones, xml2rfc will fill in the day for
         you. If only the year is specified, xml2rfc will fill in the current day and month
         irrespective of the day.  This silliness should be fixed in v1.31. -->

    <!-- Meta-data Declarations -->

    <!-- Notice the use of &amp; as an escape for & which would otherwise
         start an entity declaration, whereas we want a literal &. -->

    <area>Routing</area>

    <!-- WG name at the upperleft corner of the doc,
         IETF fine for individual submissions.  You can also
         omit this element in which case in defaults to "Network Working Group" -
         a hangover from the ancient history of the IETF! -->

    <workgroup>IDR Working Group</workgroup>

    <!-- The DTD allows multiple area and workgroup elements but only the first one has any
         effect on output.  -->
    <!-- You can add <keyword/> elements here.  They will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff output. -->


    <abstract>
    <t>This document defines extensions to
    "FlowSpec Redirect to indirection-id Extended Community" for SRv6.
    This extended community can trigger
	  advanced redirection capabilities to flowspec clients for SRv6. When
	  activated, this flowspec extended community is used by
	  a flowspec client to retrieve the corresponding next-hop and encoding
    information within a localised indirection-id mapping table.</t>

	<t>The functionality detailed in this document allows a network controller
	  to decouple the BGP flowspec redirection instruction from the operation of
    the available paths.
	</t>

    </abstract>

    <note title="Requirements Language">
        <t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;,
        &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;,
        &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;,
        &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be
        interpreted as described in <xref target="RFC2119">RFC 2119</xref>.
        </t>
    </note>

</front>

<middle>
    <section title="Introduction">
        <t>"FlowSpec Redirect to indirection-id Extended Community" for IPv4
        is defined in <xref target="I-D.ietf-idr-flowspec-path-redirect">
        ietf-idr-flowspec-path-redirect</xref>.

        This draft specifies extensions to this community for SRv6. 
        </t>

        </section>





    <section title="Redirect to indirection-id Community">
      <t>This document defines a new sub-type value for SRv6 in 
         "FlowSpec Redirect to indirection-id Extended Community". 
         The format of this extended community with the new sub-type value
         is show below:
      </t>

      <t><figure>
        <artwork>
<![CDATA[ 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          |Sub-Type (TBD) | Flags(1 octet)|    ID-Type    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Generalized indirection_id (16 octets)             |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]>
        </artwork>
      </figure></t>

      <t>
	Where
      </t>

      <t>
	Type: 1 octet, defined in <xref target="I-D.ietf-idr-flowspec-path-redirect">
        ietf-idr-flowspec-path-redirect</xref>.
      </t>

      <t>
	Sub-Type: 1 octet, its value (TBD) will be assigned by IANA.
      </t>

      <t>
	Flags: Same as that defined in 
        <xref target="I-D.ietf-idr-flowspec-path-redirect">
        ietf-idr-flowspec-path-redirect</xref>.
      </t>


      <t>
	ID-Type: 1 octet value. This draft defines following Context
	Types:

      <list style="ID-Types">


	<t>
	  0 - Localised ID (The flowspec client uses the received indirection-id
    to lookup forwarding information within the localised indirection-id
    table. The allocation and programming of the localised
    indirection-id table is outside scope of the document)
	</t>

	<t>
	  1 - Node ID with SID/index in MPLS-based Segment Routing (This means the
    indirection-id is mapped to an MPLS label using the index as
    a global offset in the SID/label space)
	</t>

  <t>
	  2 - Node ID with SID/label in MPLS-based Segment Routing (This means
    the indirection-id is mapped to an MPLS label using the 
    indirection-id as global label)
	</t>

	<t>
	  3 - Binding Segment ID with SID/index in MPLS-based Segment Routing (This
    means the indirection-id is mapped to an MPLS binding label using the
    indirection-id as index for global offset in the SID/label space).
	</t>

  <t>
	  4 - Binding Segment ID with SID/label in MPLS-based Segment Routing (This means
    indirection-id is mapped to an MPLS binding label using the
    indirection-id as global label).
	</t>

  <t>
	  5 - Tunnel ID (Tunnel ID is within a single administrative domain a
    globally unique tunnel identifier. The allocation and programming of
    the Tunnel ID within the localised indirection-id table is outside
    scope of the document)
	</t>


 <t>
	  6 - Node ID with SID/index in SRv6 (This means
    the indirection-id is mapped to an SRv6 SID using the 
    indirection-id as global SRv6 SID or index)
	</t>

	<t>
	  7 - Binding Segment ID with SID/index in SRv6 (This
    means the indirection-id is mapped to an SRv6 binding SID using the
    indirection-id as index for global offset in the SID space).
	</t>

  <t>
	  8 - Binding Segment ID with SID/index in SRv6 (This means
    indirection-id is mapped to an SRv6 binding SID using the
    indirection-id as global SRv6 SID).
	</t>

      </list>
    </t>
  <t>Generalized indirection_id: 128-bit identifier used as indirection_id
  </t>
     </section>





    <section title="Security Considerations">
      <t>A system using "Redirect to indirection-id" extended community
        can cause during the redirect mitigation of a DDoS attack
        overflow of traffic received by the mitigation infrastructure.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>This document received valuable comments and input from IDR
      working group including Adam Simpson, Mustapha Aissaoui, Jan Mertens,
      Robert Raszuk, Jeff Haas, Susan Hares and Lucy Yong. </t>
    </section>

    <section title="Contributor Addresses">
      <t>Below is a list of other contributing authors in alphabetical order:</t>
      <t><figure>
        <artwork align="left">
<![CDATA[Arjun Sreekantiah
Cisco Systems
170 W. Tasman Drive
San Jose, CA  95134
USA

Email: asreekan@cisco.com

Nan Wu
Huawei Technologies
Huawei Bld., No. 156 Beiquing Rd
Beijing  100095
China

Email: eric.wu@huawei.com

Shunwan Zhuang
Huawei Technologies
Huawei Bld., No. 156 Beiquing Rd
Beijing  100095
China

Email: zhuangshunwan@huawei.com]]></artwork>
      </figure> </t>

      <t><figure>
        <artwork align="left">
<![CDATA[Wim Henderickx
Nokia
Antwerp
BE

Email: wim.henderickx@nokia.com]]></artwork>
      </figure> </t>



    </section>



    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requests a new sub-type value under 
         "FlowSpec Redirect to indirection-id Extended Community Sub-Type"
         registery.
      </t>

      <t><figure>
        <artwork align="left">
	  <![CDATA[
 Value   Code                                            Reference
 0x01    Flowspec Redirect to 128-bit Path-id for SRv6   [RFC-To-Be]
      ]]>
        </artwork>
      </figure></t>
    </section>


</middle>

<!--  *****BACK MATTER ***** -->
<back>
    <!-- References split to informative and normative -->
    <references title="Normative References">

        <?rfc include='reference.I-D.ietf-idr-flowspec-path-redirect'?>

        <!-- A *really* full, totally OTT reference - Note, the "target" attribute of the
	     "reference": if you want a URI printed in the reference, this is where it goes. -->
        <reference anchor='RFC2119'
                   target='http://xml.resource.org/public/rfc/html/rfc2119.html'>
          <front>
            <title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement
              Levels</title>
            <author initials='S.' surname='Bradner' fullname='Scott Bradner'>
              <organization>Harvard University</organization>
              <address>
                <postal>
                  <street>1350 Mass. Ave.</street>
                  <street>Cambridge</street>
                  <street>MA 02138</street>
                </postal>
                <phone>- +1 617 495 3864</phone>
                <email>sob@harvard.edu</email>
              </address>
            </author>
            <date year='1997' month='March' />
            <area>General</area>
            <keyword>keyword</keyword>
            <abstract>
              <t>In many standards track documents several words are used to signify
                the requirements in the specification.  These words are often
                capitalized.  This document defines these words as they should be
                interpreted in IETF documents.  Authors who follow these guidelines
                should incorporate this phrase near the beginning of their document:

                <list>
                  <t>
                    The key words &quot;MUST&quot;, &quot;MUST NOT&quot;,
                    &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;,
                    &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;,
                    &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be
                    interpreted as described in RFC 2119.</t>
                </list>
              </t>
              <t>
                Note that the force of these words is modified by the requirement level of
                the document in which they are used.</t>
            </abstract>
          </front>

          <seriesInfo name='BCP' value='14' />
          <seriesInfo name='RFC' value='2119' />
          <format type='TXT' octets='4723' target='ftp://ftp.isi.edu/in-notes/rfc2119.txt' />
          <format type='HTML' octets='14486'
                  target='http://xml.resource.org/public/rfc/html/rfc2119.html' />
          <format type='XML' octets='5661'
                  target='http://xml.resource.org/public/rfc/xml/rfc2119.xml' />
        </reference>

        <!-- Right back at the beginning we defined an entity which (we asserted) would contain
             XML needed for a reference... this is where we use it. -->
		&RFC8955;
    </references>

    <references title="Informative References">
      <!-- A reference written by by an organization not a persoN. -->

      <reference anchor='VALIDATE'>
	<front>
	  <title>Revised Validation Procedure for BGP Flow Specifications</title>
	  <author initials='J.' surname='Uttaro'></author>
	  <author initials='C.' surname='Filsfils'></author>
  	  <author initials='J.' surname='Alcaide'></author>
  	  <author initials='P.' surname='Mohapatra'></author>
	  <date month='January' year='2014' />
	</front>
      </reference>

      <reference anchor='EPE'>
	<front>
	  <title>Segment Routing Centralized Egress Peer Engineering</title>
	  <author initials='C.' surname='Filsfils'></author>
	  <author initials='S.' surname='Previdi'></author>
  	  <author initials='E.' surname='Aries'></author>
  	  <author initials='D.' surname='Ginsburg'></author>
  	  <author initials='D.' surname='Afanasiev'></author>
	  <date month='October' year='2015' />
	</front>
      </reference>

      <reference anchor='SR-TE'>
	<front>
	  <title>Segment Routing Traffic Engineering Policy using BGP</title>
	  <author initials='A.' surname='Sreekantiah'></author>
	  <author initials='C.' surname='Filsfils'></author>
  	  <author initials='S.' surname='Previdi'></author>
  	  <author initials='S.' surname='Sivabalan'></author>
  	  <author initials='P.' surname='Mattes'></author>
	  <author initials='S.' surname='Lin'></author>
	  <date month='October' year='2015' />
	</front>
      </reference>

      <reference anchor='SR'>
	<front>
	  <title>Segment Routing Architecture</title>
	  <author initials='C.' surname='Filsfils'></author>
	  <author initials='S.' surname='Previdi'></author>
  	  <author initials='B.' surname='Decraene'></author>
  	  <author initials='S.' surname='Litkowski'></author>
  	  <author initials='R.' surname='Shakir'></author>
	  <author initials='A.' surname='Bashandy'></author>
	  <author initials='M.' surname='Horneffer'></author>
	  <author initials='W.' surname='Henderickx'></author>
	  <author initials='J.' surname='Tantsura'></author>
	  <author initials='E.' surname='Crabbe'></author>
	  <author initials='I.' surname='Milojevic'></author>
	  <author initials='S.' surname='Ytti'></author>
	  <date month='December' year='2015' />
	</front>
      </reference>

      <reference anchor='SR-PCE'>
	<front>
	  <title>PCEP Extensions for Segment Routing</title>
	  <author initials='S.' surname='Sivabalan'></author>
	  <author initials='M.' surname='Medved'></author>
  	  <author initials='C.' surname='Filsfils'></author>
  	  <author initials='S.' surname='Litkowski'></author>
  	  <author initials='R.' surname='Raszuk'></author>
	  <author initials='A.' surname='Bashandy'></author>
	  <author initials='V.' surname='Lopez'></author>
	  <author initials='J.' surname='Tantsura'></author>
	  <author initials='W.' surname='Henderickx'></author>
	  <author initials='J.' surname='Hardwick'></author>
	  <author initials='I.' surname='Milojevic'></author>
	  <author initials='S.' surname='Ytti'></author>
	  <date month='December' year='2015' />
	</front>
      </reference>

    </references>


</back>

</rfc>
