<?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. -->
<?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="3"?>
<!-- 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" docName="draft-chen-idr-srv6-flowspec-path-redirect-02"
     ipr="trust200902">
  <front>
    <title abbrev="SRv6 Flowspec Indirection Redirect">Flowspec Indirection-id
    Redirect for SRv6</title>

    <author fullname="Gunter Van de Velde" initials="G."
            surname="Van de Velde">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street/>

          <city>Antwerp</city>

          <code/>

          <country>Belgium</country>
        </postal>

        <email>gunter.van_de_velde@nokia.com</email>
      </address>
    </author>

    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization>Arrcus</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>keyur@arrcus.com</email>
      </address>
    </author>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <email>robinli314@163.com</email>
      </address>
    </author>

    <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>156 Beiqing Road</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <email>zhuangshunwan@huawei.com</email>
      </address>
    </author>

    <author fullname="Huaimo Chen" initials="H." surname="Chen">
      <organization>Futurewei</organization>

      <address>
        <postal>
          <street/>

          <city>Boston, MA,</city>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>hchen.ietf@gmail.com</email>
      </address>
    </author>

    <date day="13" month="October" year="2026"/>

    <area>Routing</area>

    <workgroup>IDR Working Group</workgroup>

    <!---->

    <abstract>
      <t>BGP Flow Specification Version 2 (FSv2) provides an extensible
      framework for disseminating traffic flow filtering rules and associated
      traffic redirection actions. This document specifies extensions to the
      FlowSpec Redirect to Indirection-id Extended Community specifically for
      SRv6 (Segment Routing over IPv6). When received by a Flowspec client,
      this extended community triggers an indirection-based lookup within a
      localized mapping table to retrieve the target SRv6 Segment Identifier
      (SID), SRv6 Policy, or Binding SID (BSID) forwarding state. This
      mechanism decouples control-plane BGP Flowspec redirection instructions
      from dynamic underlay path updates in SRv6 networks.</t>
    </abstract>

    <note 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>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>BGP <xref target="RFC4271"/> Flow Specification, originally defined
      in <xref target="RFC8955"/> and <xref target="RFC8956"/> and evolved
      under BGP Flow Specification Version 2 (FSv2) <xref
      target="I-D.ietf-idr-fsv2-ip-basic"/>, allows network operators to
      distribute fine-grained flow matching rules and redirection actions
      across administrative domains.</t>

      <t>The "FlowSpec Redirect to indirection-id Extended Community"
      framework was introduced to decouple the Flowspec redirection policy
      from explicit next-hop or path-specific identifiers. By directing
      traffic to a logical "indirection-id", a network controller can update
      path state (such as SR-TE paths) locally in an indirection table on edge
      devices without re-issuing BGP Flowspec updates.</t>

      <t>This document extends the indirection-id framework to support SRv6
      networks. It introduces a 128-bit Generalized Indirection-id encoding
      aligned with SRv6 SID structures, enabling seamless mapping to SRv6
      Endpoint SIDs, SRv6 Binding SIDs (BSIDs), and SRv6 Policy path
      constructs under the FSv2 architecture.</t>
    </section>

    <section title="Definitions and Acronyms">
      <t><list style="symbols">
          <t>FSv2: Flow Specification Version 2</t>

          <t>SRv6: Segment Routing over IPv6 data plane <xref
          target="RFC8754"/> <xref target="RFC8986"/></t>
        </list></t>
    </section>

    <section title="Redirect to Indirection-id Extended Community for SRv6">
      <t>This document defines a new sub-type value for SRv6 within the
      "FlowSpec Redirect to indirection-id Extended Community" registry. The
      extended community is formatted using a 128-bit Generalized
      Indirection-id payload as shown below:</t>

      <t><figure anchor="Redirect_to_indirection-id_Community"
          title="Redirect to indirection-id Community">
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      | Sub-Type(TBD) |   Flags (1B)  |    ID-Type    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+             Generalized indirection_id (16 octets)            +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>Where:</t>

      <t><list style="symbols">
          <t>Type (1 octet): Extended Community Type assigned for Flowspec
          Path Redirect actions.</t>

          <t>Sub-Type (1 octet): Assigned by IANA for SRv6 128-bit
          Indirection-id Redirect.</t>

          <t>Flags (1 octet): Defines control flags for path lookup behaviors,
          consistent with the indirection-id baseline specification.</t>

          <t>ID-Type (1 octet): Specifies the context and mapping
          interpretation of the 16-octet Generalized indirection_id. The
          following ID-Types are defined:<list style="symbols">
              <t>0: Localised ID - Looked up in a locally programmed
              indirection table.</t>

              <t>1: Node ID with SID/index in MPLS Segment Routing.</t>

              <t>2: Node ID with SID/label in MPLS Segment Routing.</t>

              <t>3: Binding Segment ID with SID/index in MPLS Segment
              Routing.</t>

              <t>4: Binding Segment ID with SID/label in MPLS Segment
              Routing.</t>

              <t>5: Tunnel ID - Globally unique tunnel identifier within an
              domain.</t>

              <t>6: Node ID with SID/index in SRv6 - The indirection-id maps
              to an SRv6 SID using the payload as an SRv6 SID or index
              offset.</t>

              <t>7: Binding Segment ID with SID/index in SRv6 - Maps to an
              SRv6 Binding SID (BSID) via global index offset.</t>

              <t>8: Binding Segment ID with SID/label in SRv6 - Maps directly
              to a 128-bit SRv6 Binding SID (BSID).</t>
            </list></t>

          <t>Generalized indirection_id (16 octets / 128 bits): A 128-bit
          identifier representing the SRv6 SID, BSID, or logical path
          index.</t>
        </list></t>
    </section>

    <section title="Operational Mechanics &amp; SRv6 Datapath Processing">
      <t/>

      <section title="Control-Plane Processing">
        <t>When a BGP Flowspec client receives a Flowspec rule containing the
        SRv6 Indirection-id Redirect Action, it validates the rule according
        to FSv2 procedures defined in [draft-ietf-idr-fsv2-ip-basic].</t>

        <t>Upon validation, the client extracts the 128-bit Generalized
        Indirection-id and queries its local SRv6 Indirection Table. This
        table maintains dynamic mappings between the Indirection-id and active
        forwarding states, such as:</t>

        <t><list style="symbols">
            <t>An active SRv6 Policy Segment List.</t>

            <t>An SRv6 End.X / End.DT4 / End.DT6 SID.</t>

            <t>An SRv6 Binding SID (BSID) triggering encapsulation into an
            SRv6 Outer IPv6 Header with an Segment Routing Header (SRH).</t>
          </list></t>
      </section>

      <section title="Datapath Encapsulation">
        <t>Matching data packets are steered into the target SRv6 path
        resolved by the indirection table:</t>

        <t><list style="symbols">
            <t>If mapped to an **SRv6 BSID or Policy**, the router
            encapsulates the packet in an IPv6 outer header with `Destination
            Address = SRv6 BSID/SID` and appends an SRH if required by the
            policy path length.</t>

            <t>If mapped to a **Localised ID**, traffic is cross-connected to
            the designated SRv6 service instance or VPN VRF table.</t>
          </list></t>

        <t/>
      </section>
    </section>

    <section title="Error Handling &amp; Fallback">
      <t>If a Flowspec client receives an SRv6 Indirection-id rule but cannot
      resolve the 128-bit Indirection-id in its local table (e.g., policy not
      yet programmed or underlying SRv6 path down):</t>

      <t><list style="symbols">
          <t>The router MUST NOT silently drop traffic unless explicitly
          configured by local fallback policy.</t>

          <t>The router SHOULD fall back to default IP/SRv6 routing for the
          packet's original destination address or apply an alternate default
          Flowspec action.</t>

          <t>Malformed Extended Community attributes MUST be handled per
          [RFC7606] and FSv2 error handling guidelines.</t>
        </list></t>

      <t/>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>Indirection-based traffic redirection isolates control-plane Flowspec
      rules from underlying path state updates. However, incorrect or
      malicious Indirection-id updates could result in traffic blackholing or
      unauthorized traffic steering across domain boundaries.</t>

      <t>To mitigate these risks:<list style="symbols">
          <t>SRv6 Indirection-id Flowspec rules MUST be restricted to a single
          administrative domain or strictly controlled peer boundaries.</t>

          <t>Standard BGP Flowspec validation mechanisms and BGP
          authentication (TCP-AO / MD5) MUST be deployed to ensure attribute
          integrity.</t>
        </list></t>

      <t/>
    </section>

    <section title="IANA Considerations">
      <t>IANA is requested to allocate a new sub-type under the "FlowSpec
      Redirect to indirection-id Extended Community Sub-Type" registry:</t>

      <t><figure align="left">
          <artwork><![CDATA[
Value    Description                                    Reference
0x01     Flowspec Redirect to 128-bit Path-id for SRv6  This-Document
  
]]></artwork>
        </figure></t>
    </section>

    <section anchor="Contributors" title="Contributors">
      <t>The following people made significant contributions to this
      document:</t>

      <t><figure align="left">
          <artwork align="left"><![CDATA[   Arjun Sreekantiah
   Cisco Systems
   Email: asreekan@cisco.com

   Nan Wu
   Huawei Technologies
   Email: eric.wu@huawei.com

   Wim Henderickx
   Nokia
   Email: wim.henderickx@nokia.com
  
]]></artwork>
        </figure></t>
    </section>

    <section anchor="Acknowledgments" title="Acknowledgments">
      <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>

      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.4271'?>

      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.8754'?>

      <?rfc include='reference.RFC.8955'?>

      <?rfc include='reference.RFC.8956'?>

      <?rfc include='reference.RFC.8986'?>

      <?rfc include='reference.I-D.ietf-idr-fsv2-ip-basic'?>
    </references>

    <references title="Informative References"/>
  </back>
</rfc>
