<?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-ietf-idr-flowspec-srv6-11"
     ipr="trust200902">
  <front>
    <title abbrev="BGP Flow Specification for SRv6 ">BGP Flow Specification
    for SRv6</title>

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

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

          <city>Beijing, 100095</city>

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

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

    <author fullname="Jie Dong" initials="J." surname="dong">
      <organization>Huawei</organization>

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

          <city>Beijing</city>

          <code>100095</code>

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

        <email>jie.dong@huawei.com</email>
      </address>
    </author>

    <author fullname="Christoph Loibl" initials="C" surname="Loibl">
      <organization>Next Layer Communications</organization>

      <address>
        <postal>
          <street>Mariahilfer Guertel 37/7</street>

          <city>Vienna</city>

          <region/>

          <code>1150</code>

          <country>AT</country>
        </postal>

        <email>cl@tix.at</email>
      </address>
    </author>

    <author fullname="Gyan S. Mishra" initials="G" surname="Mishra">
      <organization>Verizon Inc.</organization>

      <address>
        <postal>
          <street>13101 Columbia Pike</street>

          <city>Silver Spring</city>

          <code>MD 20904</code>

          <country>USA</country>
        </postal>

        <phone>301 502-1347</phone>

        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>

    <author fullname="Yongqing Zhu" initials="Y. " surname="Zhu">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>109, West Zhongshan Road, Tianhe District</street>

          <city>Guangzhou</city>

          <code>510000</code>

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

        <email>zhuyq8@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang">
      <organization>Huawei</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>

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

    <workgroup>IDR Working Group</workgroup>

    <!---->

    <abstract>
      <t>This document specifies extensions to BGP Flow Specification (BGP-FS)
      to enable filtering of IPv6 packets based on the structural components
      of a standard SRv6 Segment Identifier (SID) or an SRv6 Compressed SID
      (CSID) container present in the IPv6 Destination Address (representing
      the active segment of an SRv6 path). Both NEXT-CSID and REPLACE-CSID
      flavors defined in RFC 9800 are supported.</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><xref target="RFC8955"/> defines the BGP Flow Specification (BGP-FS)
      Network Layer Reachability Information (NLRI) to distribute traffic
      filtering rules, which consist of an n-tuple of matching criteria
      applied to IP packets. <xref target="RFC8956"/> extends this framework
      to IPv6 data packets. Additionally, <xref
      target="I-D.ietf-idr-flowspec-l2vpn"/> extends Flowspec rules for Layer
      2 Ethernet frames, and <xref target="I-D.ietf-idr-flowspec-v2"/>
      specifies BGP Flow Specification Version 2.</t>

      <t>Segment Routing over IPv6 (SRv6) <xref target="RFC8754"/> leverages
      the IPv6 data plane using a Segment Routing Header (SRH) to instantiate
      Segment Routing policy paths. The SRv6 Network Programming architecture
      <xref target="RFC8986"/> defines the standard structure of an SRv6
      Segment Identifier (SID), formatted as LOC:FUNCT:ARG. Furthermore, <xref
      target="RFC9800"/> defines Compressed SRv6 Segment Identifiers (CSIDs)
      to optimize encoding efficiency, supporting two primary flavors:
      NEXT-CSID and REPLACE-CSID. In CSID container architecture, multiple
      CSIDs are packed within a 128-bit IPv6 Destination Address (DA)
      container. As packets traverse CSID nodes, the active CSID position
      within the container dynamically changes or shifts.</t>

      <t>Existing IPv6 BGP-FS components <xref target="RFC8956"/> allow
      matching against the entire 128-bit IPv6 Destination Address (DA).
      However, both standard SRv6 SIDs and CSID containers embed structured
      sub-fields within the IPv6 DA. Filtering traffic based solely on a
      static 128-bit mask lacks the flexibility needed to apply policy rules
      to specific SRv6 function IDs or active Compressed SIDs across
      dynamically shifting DA containers.</t>

      <t>This document defines two new BGP Flow Specification component
      types:</t>

      <t><list style="numbers">
          <t>Component Type TBD1: Standard SRv6 SID Structure Match <xref
          target="RFC8986"/>.</t>

          <t>Component Type TBD2: SRv6 CSID Dynamic Structure Match <xref
          target="RFC9800"/>.</t>
        </list>The matching field is evaluated against the IPv6 Destination
      Address (or active SID within an SRH when present, as shown in <xref
      target="matchSID"/>). To support this feature, a BGP-FS NLRI with AFI =
      2 (IPv6) MUST be used.</t>

      <t><figure anchor="matchSID" title="Match Field">
          <artwork><![CDATA[
            +-----------------------------+
 IPv6 Header|     SA      |     DA        |<-- Match Field
            +--------------------^--------+
                                 |
            +--------------------|--------+
            |             +-------------+ |     +-------------------+
            |             | Segment[0]  +-------> Loc | Func | Arg  |
            |             +-------------+ |     +-------------------+
            |             | Segment[1]  | |
            |             +-------------+ |
            |             |    ...      | |
   SR Header|             +-------------+ |
  (RFC 8754)|             | Segment[n]  | |
            |             +-------------+ |
            |             +-------------+ |
            |             ~  Option TLV ~ |
            |             +-------------+ |
            +-----------------------------+]]></artwork>
        </figure></t>
    </section>

    <section title="Definitions and Acronyms">
      <t><list style="symbols">
          <t>BGP FS: BGP Flow Specification</t>

          <t>FS: Flow Specification</t>

          <t>SR: Segment Routing</t>

          <t>SRH: SR Header.</t>

          <t>SRv6: IPv6 Segment Routing, SRv6 is a method of forwarding IPv6
          packets on the network based on the concept of source routing.</t>

          <t>SID: Segment Identifier</t>

          <t>CSID: Compressed Segment Identifier <xref target="RFC9800"/></t>

          <t>NEXT-CSID: NEXT-CSID Flavor defined in <xref
          target="RFC9800"/></t>

          <t>REPLACE-CSID: REPLACE-CSID Flavor defined in <xref
          target="RFC9800"/></t>
        </list>In this document, the length parameters defining the
      constituent parts of a SID or CSID structure are defined as follows:</t>

      <t><list style="symbols">
          <t>LOC-Len: Locator Length in bits for a standard 128-bit SRv6 SID
          (Component Type TBD1).</t>

          <t>LB-Len: Locator-Block Length in bits for a CSID structure
          (Component Type TBD2).</t>

          <t>LN-Len: Locator-Node Length in bits for a CSID structure.</t>

          <t>F-Len: Function Length in bits for a SID or CSID structure.</t>

          <t>ARG-Len: Argument Length in bits for a standard 128-bit SRv6
          SID.</t>
        </list>In addition, the sum of LN-Len and F-Len (LN-Len + F-Len)
      represents the total length of a single CSID (also referred to as the
      "CSID length").</t>
    </section>

    <section title="The Flow Specification Encoding for SRv6">
      <t>A Flow Specification NLRI consists of zero or more matching
      components. Components Type 1 through 13 are defined in <xref
      target="RFC8955"/> and <xref target="RFC8956"/>. This document defines
      two new component types for SRv6 SID and CSID sub-field filtering.<list
          style="symbols">
          <t>Component Type TBD1: SRv6 Standard SID Structure Match</t>

          <t>Component Type TBD2: SRv6 CSID Dynamic Structure Match</t>
        </list></t>

      <!---->

      <section title="Component Type TBD1 - Standard SRv6 SID Structure Match">
        <t>An SRv6 SID consists of Locator, Function, and Argument fields as
        defined in <xref target="RFC8986"/>. In operational scenarios,
        operators may need to filter traffic matching specific locators,
        functions, or arguments, or combinations thereof.</t>

        <t>The new component type TBD1 (Standard SRv6 SID Structure Match)
        allows fine-grained matching on these individual fields or aggregated
        field combinations.</t>

        <t>Encoding: &lt;type, LOC-Len, FUNCT-Len, ARG-Len, [op,
        value]+&gt;</t>

        <t><list hangIndent="6" style="hanging">
            <t hangText="o type (1 octet):">Indicates the new component type
            (TBD1, to be assigned by IANA).</t>

            <t hangText="o LOC-Len (1 octet):">Length of the Locator field in
            bits.</t>

            <t hangText="o FUNCT-Len (1 octet):">Length of the Function field
            in bits.</t>

            <t hangText="o ARG-Len (1 octet):">Length of the Argument field in
            bits.</t>

            <t hangText="o [op, value]+:">A sequence of one or more {operator,
            value} pairs specifying the matching logic applied to the SID
            sub-fields.</t>
          </list>Validation Constraint:</t>

        <t>The sum of LOC-Len, FUNCT-Len, and ARG-Len MUST NOT exceed 128
        bits. If (LOC-Len + FUNCT-Len + ARG-Len) &gt; 128, the NLRI is
        considered malformed, and BGP Error Handling MUST be applied according
        to <xref target="RFC7606"/> and <xref target="RFC4760"/>.</t>

        <t>The Operator byte (op) is encoded as follows:</t>

        <t><figure>
            <artwork align="center"><![CDATA[
   0   1   2   3   4   5   6   7
 +---+---+---+---+---+---+---+---+
 | e | a | field type|lt |gt |eq |
 +---+---+---+---+---+---+---+---+]]></artwork>
          </figure>The operator semantics follow the Numeric Operator
        definition in <xref target="RFC8955"/>:</t>

        <t>e - end-of-list bit. Set in the last {op, value} pair in the
        sequence.</t>

        <t>a - AND bit. If unset, the previous term is logically ORed with the
        current one. If set, the operation is a logical AND. It should be
        unset in the first operator byte of a sequence. The AND operator has
        higher priority than OR for the purposes of evaluating logical
        expressions.</t>

        <t>field type:</t>

        <t><list hangIndent="6" style="hanging">
            <t hangText="  000:">SID's LOC</t>

            <t hangText="  001:">SID's FUNCT</t>

            <t hangText="  010:">SID's ARG</t>

            <t hangText="  011:">SID's LOC:FUNCT</t>

            <t hangText="  100:">SID's FUNCT:ARG</t>

            <t hangText="  101:">SID's LOC:FUNCT:ARG</t>
          </list>lt, gt, eq - Less-than, Greater-than, and Equal-to comparison
        operators, evaluated bitwise or numerically between the extracted SID
        sub-field and the provided value.</t>

        <t>The length of the Value field following the operator byte is
        determined by the selected field type, rounded up to the nearest byte
        boundary (i.e., ceil(bits / 8)).</t>

        <t><figure>
            <artwork align="center"><![CDATA[+---------------------+-------------------------------------------+
| Field Type          | Value Field Length                        |
+=====================+===========================================+
| SID's LOC           | ceil(LOC-Len / 8) octets                  |
+---------------------+-------------------------------------------+
| SID's FUNCT         | ceil(FUNCT-Len / 8) octets                |
+---------------------+-------------------------------------------+
| SID's ARG           | ceil(ARG-Len / 8) octets                  |
+---------------------+-------------------------------------------+
| SID's LOC:FUNCT     | ceil((LOC-Len + FUNCT-Len) / 8) octets    |
+---------------------+-------------------------------------------+
| SID's FUNCT:ARG     | ceil((FUNCT-Len + ARG-Len) / 8) octets    |
+---------------------+-------------------------------------------+
| SID's LOC:FUNCT:ARG | ceil((LOC-Len+FUNCT-Len+ARG-Len)/8) octets|
+---------------------+-------------------------------------------+
]]></artwork>
          </figure></t>
      </section>

      <section title="Component Type TBD2 - SRv6 CSID Dynamic Structure Match">
        <t><xref target="RFC9800"/> defines Compressed SRv6 Segment
        Identifiers (C-SIDs) to reduce header overhead, supporting two primary
        flavors: NEXT-CSID and REPLACE-CSID.</t>

        <t>Per Section 3 and 4 of <xref target="RFC9800"/>, both flavors
        position the currently active CSID immediately following the
        Locator-Block (LB) in the IPv6 Destination Address (DA):</t>

        <t><figure>
            <artwork align="left"><![CDATA[NEXT-CSID Container Structure:
+------------------------------------------------------------------+
| Locator-Block | Active CSID | Next CSID_1 | Next CSID_2 ...|Zeros|
+------------------------------------------------------------------+
]]></artwork>
          </figure></t>

        <t><figure>
            <artwork align="left"><![CDATA[REPLACE-CSID Container Structure:
+------------------------------------------------------------------+
| Locator-Block | Active CSID |            Argument                |
+------------------------------------------------------------------+
]]></artwork>
          </figure>Filtering rules MAY target either the Active CSID
        (applicable to both NEXT-CSID and REPLACE-CSID flavors) or the Next
        CSID (applicable specifically to the NEXT-CSID flavor).</t>

        <t/>

        <t><figure>
            <artwork align="left"><![CDATA[Encoding: <type, LB-Len, LN-Len, F-Len, [op, value]+>
]]></artwork>
          </figure></t>

        <t><list hangIndent="6" style="hanging">
            <t hangText="o type (1 octet):">Indicates component type TBD2 (to
            be assigned by IANA).</t>

            <t hangText="o LB-Len (1 octet):">Locator-Block Length in bits
            (e.g., 32 bits).</t>

            <t hangText="o LN-Len (1 octet):">Locator-Node Length in bits
            (e.g., 16 bits).</t>

            <t hangText="o F-Len (1 octet):">Function Length in bits (e.g., 16
            bits).</t>

            <t hangText="o [op, value]+:">A sequence of one or more {operator,
            value} pairs.</t>
          </list>Validation Constraint:</t>

        <t><list style="symbols">
            <t>(LB-Len + LN-Len + F-Len) MUST NOT exceed 128 bits.</t>

            <t>LB-Len, LN-Len, and F-Len MUST NOT be 0.</t>

            <t>If validation fails, BGP Error Handling MUST be applied
            according to <xref target="RFC7606"/> and <xref
            target="RFC4760"/>.</t>

            <t>If any field length in bits is not a multiple of 8, the
            corresponding value field MUST be right-aligned with leading zero
            padding to the nearest octet boundary.</t>
          </list>The Operator byte (op) for TBD2 is encoded as:</t>

        <t><figure>
            <artwork align="left"><![CDATA[
   0   1   2   3   4   5   6   7
 +---+---+---+---+---+---+---+---+
 | e | a | field type|lt |gt |eq |
 +---+---+---+---+---+---+---+---+

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

        <t>e - end-of-list bit. Set in the last {op, value} pair in the
        sequence.</t>

        <t>a - AND bit. If unset, the previous term is logically ORed with the
        current one. If set, the operation is a logical AND. It should be
        unset in the first operator byte of a sequence. The AND operator has
        higher priority than OR for the purposes of evaluating logical
        expressions.</t>

        <t>field type:</t>

        <t><list hangIndent="6" style="hanging">
            <t hangText="  000:">Locator-Block (LB)</t>

            <t hangText="  001:">Active CSID Node ID (LN)</t>

            <t hangText="  010:">Active CSID Function ID (F)</t>

            <t hangText="  011:">Active CSID (LN:F)</t>

            <t hangText="  100:">Next CSID (LN:F)</t>

            <t hangText="  101:">Full CSID (LB:LN:F)</t>

            <t hangText="  110:">Next CSID Node ID (LN)</t>

            <t hangText=" 111:">Next CSID Function (F)</t>
          </list></t>

        <t>Field Type 101 represents the Full CSID structure combining the
        Locator-Block (LB) and the Active CSID (LN:F) into a single matching
        value.</t>

        <t>Dynamic Match Processing Logic:</t>

        <t>When evaluating Component Type TBD2 against an incoming IPv6
        packet:</t>

        <t><list style="numbers">
            <t>Locator-Block: Extracted starting at bit offset 0 with length
            LB-Len.</t>

            <t>Active CSID: The Active CSID (LN:F) is extracted starting at
            bit offset LB-Len with length (LN-Len + F-Len). In the context of
            the evaluating node, this represents the currently active CSID
            positioned immediately after the Locator-Block in the IPv6 DA.</t>

            <t>Next CSID: <list style="symbols">
                <t>For NEXT-CSID flavor: The subsequent CSID is extracted
                immediately following the Active CSID at bit offset (LB-Len +
                LN-Len + F-Len) with length (LN-Len + F-Len). If the extracted
                Next CSID is all zeros (indicating no further CSID exists in
                the container or a padded container), the Next CSID evaluation
                MUST result in no match (False).</t>

                <t>For REPLACE-CSID flavor: Since the REPLACE-CSID structure
                does not support concatenated subsequent C-SIDs within the
                IPv6 DA container, any rule evaluating Next CSID (field type
                100) against a REPLACE-CSID packet MUST result in no match
                (False).</t>
              </list></t>
          </list><figure>
            <artwork align="left"><![CDATA[+----------------------+-------------------------------------------+
| Field Type           | Value Field Length                        |
+======================+===========================================+
| Locator-Block (LB)   | ceil(LB-Len / 8) octets                   |
+----------------------+-------------------------------------------+
| Active CSID Node (LN)| ceil(LN-Len / 8) octets                   |
+----------------------+-------------------------------------------+
| Active CSID Func (F) | ceil(F-Len / 8) octets                    |
+----------------------+-------------------------------------------+
| Active CSID (LN:F)   | ceil((LN-Len + F-Len) / 8) octets         |
+----------------------+-------------------------------------------+
| Next CSID (LN:F)     | ceil((LN-Len + F-Len) / 8) octets         |
+----------------------+-------------------------------------------+
| Full CSID            | ceil((LB-Len + LN-Len + F-Len) / 8) octets|
+----------------------+-------------------------------------------+
]]></artwork>
          </figure></t>
      </section>

      <section anchor="examples" title="Encoding Examples">
        <section anchor="example1"
                 title="Example 1: Standard SRv6 SID Structure Match (Type TBD1)">
          <t>Consider a rule targeting all SRv6 traffic directed to Locator
          2001:db8:3::/48 with a Function ID within the range [0x0100,
          0x0300].</t>

          <t>Given:</t>

          <t><list style="symbols">
              <t>LOC-Len = 48 bits (6 octets)</t>

              <t>FUNCT-Len = 16 bits (2 octets)</t>

              <t>ARG-Len = 64 bits (8 octets)</t>
            </list>Hexadecimal Encoding Sequence:</t>

          <t><figure>
              <artwork><![CDATA[
       Some Parts of SID
             |
length       v             LOC==20010db80003  FUN>=100  FUN<=300
0x11       TBD1 30 10 40   01 2001 0db8 0003  4b 0100   8d 0300
                ^  ^   ^
                |  |   |
    Length of LOC FUN ARG]]></artwork>
            </figure></t>

          <t>Detailed Field Breakdown:<figure>
              <artwork><![CDATA[ 
Decoded:
         Value 
         0x11     length       17 octets (if len<240, 1 octet)
         TBD1     type         type TBD1 - SRv6 Standard SID 
                                           Structure Match
         0x30     LOC Length   = 48 (bits)
         0x10     FUNCT Length = 16 (bits)
         0x40     ARG Length   = 64 (bits)
         0x01     op           LOC  ==
         0x2001   value        LOC's value = 2001:db8:3
         0x0db8
         0x0003
         0x4b     op           "AND", FUNCT >=
         0x0100   value        FUNCT's value = 0100
         0x8d     op           end-of-list, "AND", FUNCT <=
         0x0300   value        FUNCT's value = 0300      
]]></artwork>
            </figure></t>
        </section>

        <section title="Example 2: SRv6 CSID Dynamic Structure Match (Type TBD2)">
          <t>Consider an SRv6 network using a CSID container structure
          (applicable to either NEXT-CSID or REPLACE-CSID flavors) with
          Locator-Block 2001:db8::/32 (LB-Len=32), Node ID length LN-Len=16,
          and Function ID length F-Len=16. The rule targets traffic where the
          Active CSID Node ID equals 0x001A.</t>

          <t>Given:</t>

          <t><list style="symbols">
              <t>LB-Len = 32 bits (4 octets)</t>

              <t>LN-Len = 16 bits (2 octets)</t>

              <t>F-Len = 16 bits (2 octets)</t>
            </list>Hexadecimal Sequence:</t>

          <t><figure>
              <artwork><![CDATA[0x07 TBD2 20 10 10 89 001A]]></artwork>
            </figure>Detailed Field Breakdown:</t>

          <t><figure>
              <artwork><![CDATA[Octet(s) Field      Value             Description
----------------------------------------------------------
0x07     Length     7 octets          Total length of the 
                                      Component
TBD2     Type       TBD2              SRv6 CSID Dynamic  
                                      Structure Match
0x20     LB-Len     32 bits           Locator-Block Length = 32
0x10     LN-Len     16 bits           Locator-Node Length = 16
0x10     F-Len      16 bits           Function Length = 16
0x89     Op 1       10001001(binary)  e=1, field=001(LN),op='=='
0x001A   Value 1    0x001A            Active CSID Node ID]]></artwork>
            </figure></t>
        </section>

        <section title="Example 3: Dual Matching on Active CSID and Next CSID (NEXT-CSID Flavor)">
          <t>In a multi-hop SRv6 domain using the NEXT-CSID flavor, policy
          rules may require matching both the node currently processing the
          packet (Active CSID) and the subsequent downstream segment (Next
          CSID) to enforce strict path-aware traffic filtering. (Note: This
          dual-matching capability is specific to the NEXT-CSID flavor).</t>

          <t>Consider a NEXT-CSID network structured with:</t>

          <t><list style="symbols">
              <t>Locator-Block Length (LB-Len) = 32 bits (4 octets)</t>

              <t>Node ID Length (LN-Len) = 16 bits (2 octets)</t>

              <t>Function ID Length (F-Len) = 16 bits (2 octets)</t>
            </list>Matching Criterion:</t>

          <t>Filter traffic where:</t>

          <t>1. Active CSID (LN:F) equals 0x0001000A</t>

          <t>2. AND Next CSID (LN:F) equals 0x0002000B</t>

          <t>Hexadecimal Sequence:</t>

          <t><figure>
              <artwork><![CDATA[0x0E TBD2 20 10 10 19 0001000A E1 0002000B

]]></artwork>
            </figure>Detailed Field Breakdown:</t>

          <t><figure>
              <artwork><![CDATA[Octet(s)   Field       Value       Description
----------------------------------------------------------
0x0E       Length      14 octets   Total length of the 
                                   Component
TBD2       Type        TBD2        SRv6 CSID Dynamic  
                                   Structure Match
0x20       LB-Len      32 bits     Locator-Block Length
0x10       LN-Len      16 bits     Locator-Node Length
0x10       F-Len       16 bits     Function Length

---        Operator 1: Active CSID Match
0x19       Op 1        0x19        binary 00011001
                                   (e=0, a=0, field=011, 
                                   op='==')
0x0001000A Value 1     0x0001000A  Active CSID (LN:F)

---        Operator 2: Next CSID Match (AND Relationship)
0xE1       Op 2        0xE1        binary 11100001
                                   (e=1, a=1, field=100, 
                                   op='==')
0x0002000B Value 2     0x0002000B  Next CSID (LN:F)]]></artwork>
            </figure></t>
        </section>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document introduces no new security vulnerabilities beyond those
      already documented in <xref target="RFC8955"/> and <xref
      target="RFC8956"/>. Because Flowspec rules can result in packet dropping
      or rate-limiting, implementations MUST verify the authorization of BGP
      peers sending SRv6 Flowspec rules to prevent potential Denial-of-Service
      (DoS) attacks or traffic hijacking.</t>

      <t/>
    </section>

    <section title="IANA Considerations">
      <t>Under the "Flow Spec Component Types" registry, IANA is requested to
      assign the following values:</t>

      <t><figure>
          <artwork align="center"><![CDATA[
+------+-----------+----------------------------------+-----------+
| Value| IPv4 Name | IPv6 Name                        | Reference |
+------+-----------+----------------------------------+-----------+
| TBD1 | Unassigned| SRv6 Standard SID Structure Match| This Doc  |
| TBD2 | Unassigned| SRv6 CSID Dynamic Structure Match| This Doc  |
+------+-----------+----------------------------------+-----------+
]]></artwork>
        </figure></t>
    </section>

    <!--
-->

    <section anchor="Acknowledgments" title="Acknowledgments">
      <t>The authors would like to thank Joel Halpern, Jeffrey Haas, Ketan
      Talaulikar, Aijun Wang, Dhruv Dhody, Ming Shen and Rainsword Wang for
      their valuable suggestions and comments.</t>
    </section>

    <section title="Contributors ">
      <t><figure>
          <artwork align="left"><![CDATA[   Huaimo Chen
   Futurewei
   Email: hchen.ietf@gmail.com

   Lei Li
   Huawei
   P.R. China
   Email: lily.lilei@huawei.com

   Yanhe Fan
   Casa Systems
   United States of America
   Email: yfan@casa-systems.com
   
   Lei Liu
   Fujitsu
   United States of America
   Email: liulei.kddi@gmail.com

   Xufeng Liu
   Volta Networks
   United States of America
   Email: xufeng.liu.ietf@gmail.com

]]></artwork>
        </figure></t>
    </section>
  </middle>

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

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

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

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

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

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

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

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

    <references title="Informative References">
      <?rfc include='reference.RFC.8754'?>

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

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