<?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-03"
     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. This
          namespace incorporates both baseline multi-protocol context types
          and the SRv6-specific context types defined in this document. The
          ID-Type field supports the following classifications:<list
              style="symbols">
              <t>A. Baseline / Multi-Protocol Context Types (as defined in
              <xref target="I-D.ietf-idr-flowspec-path-redirect"/>:<list
                  style="symbols">
                  <t>0: Localised ID - The flowspec client uses the received
                  indirection_id to lookup forwarding information within a
                  localized indirection table. The allocation and programming
                  of the localized indirection table are outside the scope of
                  this document.</t>

                  <t>1: Node ID with SID/index in MPLS-based Segment Routing
                  (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
                  (mapped to an MPLS label using the indirection_id as a
                  global label).</t>

                  <t>3: Binding Segment ID with SID/index in MPLS-based
                  Segment Routing (mapped to an MPLS binding label using the
                  indirection_id as an index for global offset).</t>

                  <t>4: Binding Segment ID with SID/label in MPLS-based
                  Segment Routing (mapped to an MPLS binding label using the
                  indirection_id as a global label).</t>

                  <t>5: Tunnel ID - A globally unique tunnel identifier within
                  a single administrative domain.</t>
                </list></t>

              <t>B. SRv6-Specific Context Types (defined in this
              document):<list style="symbols">
                  <t>6: Node ID with SID/index in SRv6 - The indirection_id
                  maps to an SRv6 SID, where the payload represents either the
                  full 128-bit SRv6 SID or an index offset within the SRv6 SID
                  space.</t>

                  <t>7: Binding Segment ID with SID/index in SRv6 - The
                  indirection_id maps to an SRv6 Binding SID (BSID) using the
                  payload as an index for a global offset in the SID
                  space.</t>

                  <t>8: Binding Segment ID with SID/label in SRv6 - The
                  indirection_id maps directly to a 128-bit SRv6 Binding SID
                  (BSID) represented globally by the payload.</t>
                </list></t>
            </list></t>

          <t>eneralized indirection_id (16 octets / 128 bits): A 128-bit
          identifier utilized as the indirection_id, carrying the
          corresponding SID, BSID, or logical path index data depending on the
          selected ID-Type.</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 <xref
        target="I-D.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 <xref
          target="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.7606'?>

      <?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'?>

      <?rfc include='reference.I-D.ietf-idr-flowspec-path-redirect'?>
    </references>

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