<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC0791 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0791.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3032 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3032.xml">
<!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC4360 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4360.xml">
<!ENTITY RFC4760 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4760.xml">
<!ENTITY RFC5065 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5065.xml">
<!ENTITY RFC5701 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5701.xml">
<!ENTITY RFC6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY RFC6482 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6482.xml">
<!ENTITY RFC7153 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7153.xml">
<!ENTITY RFC7606 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7606.xml">
<!ENTITY RFC8040 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8040.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8205 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8205.xml">
<!ENTITY RFC8206 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8206.xml">
<!ENTITY RFC8402 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC8955 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8955.xml">
<!ENTITY RFC8956 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8956.xml">
<!ENTITY RFC9015 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9015.xml">
<!ENTITY RFC9117 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9117.xml">
<!ENTITY RFC9015 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9015.xml">
<!ENTITY RFC9184 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9184.xml">
<!ENTITY I-D.ietf-idr-flowspec-l2vpn SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-l2vpn.xml">
<!ENTITY I-D.ietf-idr-flowspec-nvo3 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-nvo3.xml">
<!ENTITY I-D.ietf-idr-flowspec-srv6 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-srv6.xml">
<!ENTITY I-D.ietf-idr-flowspec-mpls-match SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-mpls-match.xml">
<!ENTITY I-D.ietf-idr-bgp-flowspec-label SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-bgp-flowspec-label.xml">
<!ENTITY I-D.ietf-idr-flowspec-interfaceset SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-interfaceset.xml">
<!ENTITY I-D.ietf-idr-flowspec-path-redirect SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-path-redirect.xml">
<!ENTITY I-D.ietf-idr-flowspec-redirect-ip SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-redirect-ip.xml">
<!ENTITY I-D.ietf-idr-flowspec-v2 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-v2.xml">
<!ENTITY I-D.ietf-idr-rpd SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-rpd.xml">
<!ENTITY I-D.ietf-idr-fsv2-ip-basic SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-fsv2-ip-basic.xml">
<!ENTITY I-D.ietf-idr-wide-bgp-communities SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-wide-bgp-communities.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc category="std" docName="draft-hares-idr-fsv2-more-ip-actions-04"  ipr="trust200902">
  <front>
    <title abbrev="BGP FSv2 More IP Actions ">BGP Flow Specification Version 2 - More IP Actions </title>
    <author fullname="Susan Hares" initials="S" surname="Hares">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>7453 Hickory Hill</street>
          <city>Saline</city>
          <region>MI</region>
          <code>48176</code>
          <country>USA</country>
        </postal>
		<phone>+1-734-604-0332</phone>
        <email>shares@ndzh.com</email>
      </address>
    </author>
    <date year="2026" />
    <area>Routing Area</area>
    <workgroup>IDR Working Group</workgroup>
    <keyword>RFC</keyword>
    <keyword>Request for Comments</keyword>
    <keyword>I-D</keyword>
    <keyword>Internet-Draft</keyword>
    <keyword>FSv2 More IP Filters </keyword>
	<abstract>
	   <t>The BGP flow specification version 2 (FSv2) for Basic IP 
       defines user ordering of filters along with FSv1 IP Filters and 
	   FSv2 actions in Extended Communites. This draft suggests 
	   a method of encoding user ordered actions in a community attribute
       in BGP. 	   
	   </t>
    </abstract>
  </front>
  <middle>
<section anchor="intro" title="Introduction">
      <t> Version 2 of BGP flow specification (FSv2) is contained in a series of 
	  specifications (<xref target="I-D.ietf-idr-fsv2-ip-basic"></xref>), 
	 this document,and individuals specifications for IP Filters, IP actions, and non-IP actions 
     (MPLS, L2, SFC and tunneled IP).  This draft defines user-ordered FSv2 actions encoded in  
	  a BGP Community Path Attribute and how these actions interwork 
	  with the FSv2 actions encoded in Extended Community attributes. 
	  </t> 
	  <t>The remainder of this Introduction section provides an overview of the FSv2 specifications.
      </t> 
	  <t> Section 2 contains a description of the format and processing of the user ordered 
     actions encoded in the BGP Community Path Attribute in the FSv2 TLV. 	  
    Section 3 describes Action Components supported by FSv2. 	 
	Section 4-5 provides information on validation, manageability, and error handling for the 
	FSv2 Actions when the BGP Community Path Attribute is attached to the 
	BGP update message. Sections 6 and 7 contain considerations  
    security and IANA considerations for the FSv2 user ordered actions. 
	</t>
<section title="FSv2 Introduction"> 
  	  <t>BGP Flow Specification version 1 (FSv1) defined in 
	  <xref target="RFC8955"></xref>, <xref target="RFC8956"></xref>, and 
	  <xref target="RFC9117"></xref> specifies 2 SAFIs (133, 134) 
      to be used with IPv4 AFI (AFI = 1) and IPv6 AFI (AFI=2). 
	  </t>
  	  <t>BGP Flow Specification version 2 (FSv2) defined in
	  (<xref target="I-D.ietf-idr-fsv2-ip-basic"></xref>)
	  a new FSV2 AFI (TBD1) with two SAFIs (TBD2 (Unicast) and TBD3 (VPN)).  
	  FSv2 allows for user ordering of filters, dependency between filters, 
	  and specifying some component filters as mandatory or optional. 
	 </t>
	 <t> FSv1 and FSv2 use different AFI/SAFIs to send flow specification filters.  Since BGP  
	  route selection is performed per AFI/SAFI, this approach can be 
	  termed “ships in the night” based on AFI/SAFI. 
	  </t>	
      <t>A complete solution for FSv2 Actions to do the following requires 
      more space than is available in BGP Extended Communities. 	  
	 <list style="symbols">
	 <t>a user specified-order between the multiple actions associated with a filter, and  </t>
	 <t>have dependency between multiple actions. </t>
	 </list>
	   This document defines how to carry user-ordered FSv2 Actions in a BGP Community Path Attribute
	   (<xref target="I-D.ietf-idr-wide-bgp-communities"></xref>
	 </t>
	 <t>The following types of actions were defined in <xref target="I-D.ietf-idr-fsv2-ip-basic"></xref> in section 4.9.1 
	 <list>
	 <t>group, </t>
	 <t>redirect, </t>
     <t> Mark, Merge or traffic shape,</t>
     <t> Flag traffic for sampling, </t>
	 <t> terminate processing instructions, or </t>
     <t>logging, </t> 
     </list>
	 </t> 
  </section> 	 
  <section title="Definitions and Acronyms">
      <t><list>
  		  <t>AFI - Address Family Identifier</t>
		  <t>AS - Autonomous System </t>
		  <t>BGPSEC - secure BGP <xref target="RFC8205"></xref> updated by <xref target="RFC8206"></xref> </t>
  		  <t>BGP Session ephemeral state - state which does not survive the loss of BGP peer session.</t>
		  <t>Configuration state - state which persists across a reboot of software module within 
		      a routing system or a reboot of a hardware routing device.</t>
		  <t>CPA - BGP Community Path Attribute </t>  
		  <t>DDOs - Distributed Denial of Service</t>
		  <t>Ephemeral state - state which does not survive the reboot of a software module,
		   or a hardware reboot. Ephemeral state can be ephemeral configuration state or 
		   operational state.</t>
		  <t>FSv1 - Flow Specification version 1 [RFC8955] [RFC8956] </t>
  		  <t>FSv2 - Flow Specification version 2 (this document) </t>
		  <t>FS-EC - Flow Specification Actions in Extended Community </t>
		  <t>FSv2-CPA - FSv2 Actions in BGP Community Path Attribute </t>
		  <t>NETCONF - The Network Configuration Protocol <xref target="RFC6241"></xref>.</t>
		  <t>RESTCONF - The RESTCONF configuration Protocol <xref target="RFC8040"></xref> </t>
		  <t>RIB - Routing Information Base</t>
		  <t>ROA -  Route Origin Authentication <xref target="RFC6482"></xref></t>
		  <t>RR - Route Reflector.</t>
		  <t> SAFI – Subsequent Address Family Identifier </t>
        </list>
		</t>
    </section>
   <section title="RFC 2119 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 BCP 14 <xref target="RFC2119"></xref>
   <xref target="RFC8174"></xref> when, and only when, they appear in all capitals as shown here.    
	 </t>
	 </section> 
</section> 
<section title="Format of FSv2 Action in BGP Community Path Attribute ">
<t>The FSv2 actions may be sent in an Extended Community or a Community Path Attribute. 
User ordering of FSv2 actions requires using the Community Path Attribute. 
This section defines the FSv2 Container for the BGP community Path attribute.  
</t>
<t>This section defines a FSv2 Action in the BGP Community Path Attribute.
The first section reviews the format of the BGP Community Path Attribute. 
The second section defines the BGP Community Container and the Sub-TLV
types allowed within the container. The third section summarizes how the 
content of FSv2 Container is processed. 
</t>
<section title="BGP Community Path Attribute Common Header">
<t>
The BGP Community Path Attribute is defined in:  
 <xref target="I-D.ietf-idr-wide-bgp-communities"></xref>. 
 The format for the BGP Community Path Attribute is shown in 
 figure 2-1. 
<figure>
<artwork>

  BGP Community Path attribute common header 
  
   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 = FSv2 (TBD4)    |    Flags  |C|T| Reserved      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Length             |                           
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

			  Figure 1
</artwork>
</figure>
</t>
<t>where: 
<dl> 
<dt>Type: (TBD4)</dt><dd> the type of BGP Path Attribute Community.
This document specifies FSv2 BGP Path Attribute container.
</dd>
<dt>Flag: </dt> <dd> This one octet field is anoctet of bits with only two 
       bit that can be set as follows: 
<dl>
<dt>T = 1 - </dt> <dd> Transitive across AS boundaries</dd>
<dt>T = 0 - </dt> <dd> Non-Transitive across AS boundaries </dd>
<dt>C = 1 - </dt> <dd> Transitive across Confederation boundaries </dd>
<dt>C = 0 - </dt> <dd> dNon-Transitive across Confederation boundaries </dd>
</dl>
</dd> 
<dt>Reserved: </dt><dd> This one octet is reserved for future use.  
It is encoded zero for transmission and ignored up reception. </dd> 
<dt>Length: </dt><dd> This two octet field gives the length of the 
value portion of the BGP Community Path Attribute  <xref target="I-D.ietf-idr-wide-bgp-communities"></xref> 
which consists of the fields shown in figure 2-2. 
</dd>
</dl>
</t>
<t>Editor's note: Should this section be dropped? 
</t>
</section> 
<section title="FSv2 BGP Community Container Format">
<t>	The FSv2 Action Container allows for grouping of multiple 
FSv2 actions 
<figure>
<artwork>
FSv2 Action TLV 
 
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  FSv2 action length         | 
|      (2 octets)             |                        
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Dependency chain ID  (4 octets)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        User order (4 bytes)                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Action subTLVs (variable)                              | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     
			  Figure 2
</artwork>
</figure>
</t> 
<t>
Where: 
<dl>
<dt>Action length </dt><dd> This 2-octet field specifies ID for 
the set of FSv2 actions passed in the BGP container TLV.  </dd> 
<dt> Dependency chain </dt> <dd> A 32-bit unsigned integer in
network byte order.  When non-zero, the Dependent Filters Chain
value is used to associate multiple NLRI together that share
 dependencies.</dd>
<dt>User Action Order </dt><dd> This is a 4-octet field with the 
value for user defined action order.  A value of zero is reserved. Valid 
values are 1-0xFFFF. </dd>  
<dt> Action SubTLVs+ (variable): </dt> <dd> Sequence of Action SubTLVs with the
format of Type-length-value (see figure 2-4).  The type fields are defined 
in Table 2-3 </dd> 
<dt> FSv2 Action subTLVS </dt><dd> specifying the FSv2 actions
in the format shown in Figure 3. </dd>
</dl>          
</t>
<t>
The FSv2 Action TLVs have the following format: 
<figure>
<artwork>
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | FSv2 Action Family type       | Fsv2 Action Family length     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+--+-+
    |        FSv2 Action Component TLVs  (variable)                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	
	
			  Figure 3 	
</artwork>
</figure>
</t>
<t>
Where: 
<dl>
<dt>Fsv2 Action Family type (2 octets):</dt><dd> (2 octets)the following 
<list>
<t>100 - action failure processing </t>
<t>200 = group, </t>
<t>300 - redirect, </t>
<t>500 - Mark, Merge or traffic shape,</t>
<t>700 - Flag traffic for sampling, </t>
<t>900 - terminate action instructions, or </t>
<t>1000 - logging, </t> 
<t>4095 - reserved </t>
<t>Note: all values not defined are unassigned </t> 
 </list>
 </dd>
 <dt> FSv2 Action Family length (2 octets): </dt><dd> is the length of the 
list of FSv2 action components within the Family type.</dd>
<dt>FSv2 Action Component TLVs: (variable): </dt><dd>Defined below
(figure 4 and text descriptiosn) </dd>
</dl>
</t>
<t> 
<figure>
<artwork>

Action Comoponent format: 
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Action compnent type  |  Length                       |
| 4 bits|  12 bits              |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Action component value  (variable)                           | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

			  Figure 4
</artwork>
</figure>
</t>
<t>
Where FSv2 Action Flags are defined as:
</t>
<t>
<figure>
<artwork>

Action Flags 

        0   1   2   3
      +---+---+---+---+
      | O | R | R | R |
      +---+---+---+---+
	  
	      Figure 5
</artwork> 
</figure> 
</t>
<t>Where the fields are defined as:  
<dl>
<dt>O - Optional:</dt><dd>When 0, the FSv2 action
         component is mandatory and MUST be supported by the local
         implementation.  Otherwise, when 1, the action component is considered
         "optional".  When the component is mandatory and is not
         supported, the FSv2 filter rule is considered "invalid" for
         validation purposes.
</dd>
<dt>R - Reserved:</dt><dd> When not otherwise re-defined in a later
         document, this bit MUST be set to zero when sent and SHOULD be
         ignored on reception.
</dd> 
<dt>Action type: </dt> <dd> This is a 2 octet action type field. </dd>
<dt>Length: </dt><dd> This is a 2 octet length field for the action 
value </dd>
<dt>Action value: </dt><dd>Action values are defined by each action.
</dd> 
</dl>
</t>
</section> 
<section title="FSv2 Community Container Procedure">
<t>FSv2 Community container actions allow user-ordered actions to be 
associated with a filter-match rule.  Each FSv2 rule may have one or more
match conditions and one or more associated actions.
</t>
<t><xref target="I-D.ietf-idr-fsv2-ip-basic"></xref> defines
FSv2 NLRI operates in ships-in-the-night with the FSv1 NLRI. 
Flow Specification Extended Community actions can associated with FSv1 NLRI or
FSv2 NLRI.  Specifications for FSv2 Action are required to specify in the 
document how actions in the same action category
(see 4.9 <xref target="I-D.ietf-idr-fsv2-ip-basic"></xref>).
In practice, FSv1 actions in implementations define by configuration 
how action in the same category interoperate.    
</t>
<t>The precedence between FS Actions in Extend Community actions and 
the FSv2 Community Container Actions is that the FSv2 Community Container 
actions take precedence before the FSv2 Extended Community actions. 
If local policy alters that precedence between FS Extended Community 
actions and FSv2 Community container actions, it possible that the 
actions may have undesired effects due to the ordering of actions. 
</t>
<t> The basic principles for FSv2 Community container actions follows
the definitions found in <xref target="I-D.ietf-idr-wide-bgp-communities"></xref>
in section 3 that specify transitivity across Administrative and AS boundaries, 
Transitivity across AS confederation boundaries. The FSv2 Community Container re-uses 
the concepts of the FSv2 NLRI (dependency chain, user order, 
mandatory or optional action components). 
</t>
<t> the specific rules of processing the data within the FSv2 Community 
container for FSv2 are: 
<list>
<t> Actions are ordered first user-specified ordered carried in 
the FSv2 Action Container in the Community Attribute. 
Numerically smaller user-specified order values have better precedence than larger values.
</t>
<t> For actions with the same user-specified order, the actions then 
ordered by FSv2 action family type, then FSv2 action component type, 
and then the rules for each component type.</t> 
<t>Each FSv2 Action Community Container defines its own rules
governing FSv2 actions within the compnent. 
</t>
</list> 
</t>  
<t>Editor: The family type helps the default ordering of actions.  
Is this additional layer useful? 
</t>  
</section>
</section> 
<section title="Action Components by Action Families">
<section title="Action Failure Family">
<section title="Action Continue Option action component"> 
<t>
 <figure>
 <artwork>
 
   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Action Continue option (100)  |  Length (2 octets)            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |ACO-dependency |  AC-Failure   | AC Failure value              | 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
                  Figure 2-4 
 </artwork> 
  </figure> 
 </t>
 <t>where: 
 <dl>
 <dt>Action famiily: </dt><dd>Action Failure </dd>
 <dt>Action component: </dt><dd> Two octets with type for Action Continue Option (100)</dd>
 <dt>length: </dt> <dd>Two octets of length with value 4. </dd>
 <dt>ACO Dependency: </dt> <dd> The order dependency within the Action chain. 
  <dl>
  <dt>0 = </dt><dd> default order and interaction. For FSv2-EC this means a pre-defined order 
  and inter-dependency. </dd>
  <dt>1 = </dt><dd> Implementation specific order and interaction. </dd>
  </dl> 
  </dd>
  <dt> AC-failure-type: </dt><dd> 1 octet byte that determines the action on failure.   
 Actions may succeed or fail and an Action chain must deal with it.  
 The default value stored for an action chain that does not have this action chain is “stop on failure”.
 AC-Failure types values are:  
 <dl> 
 <dt>0x00 = </dt><dd>default – stop on failure </dd>
 <dt>0x01 = </dt><dd> continue on failure (best effort on actions)</dd> 
 <dt>0x02 = </dt><dd> conditional stop on failure   </dd> 
 <dt>0x03 = </dt><dd> rollback – do all or nothing  </dd> 
 </dl> 
 </dd>
 <dt>AC failure value - </dt> <dd> 2 octet action field zero filled. </dd>  
 </dl>
 </t> 
 <t>
 <dl>
  <dt>Interferes with: </dt><dd>No other FSv2 Action</dd>
</dl>
</t>
</section>
</section> 
<section title="Group Action Family ">
<section title="Traffic Filters based on Interface set (Ifset (0x03))">
<t>
 <figure>
 <artwork>

   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Group Interface set          |  Length                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |        Interface group                        |O I -  Flags   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  sequence of interfaces SubTLVs                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
 Each interface has the format: 
 
    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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |AFI            | SAFI          | interface adddress            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | interface address (continued) (4 or 16 octets)                |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 2-5  
 </artwork> 
 </figure>
 </t>
 <t>where: 
 <dl>
 <dt>Action Family:</dt><dd>Grouping  </dd>
 <dt>Action Component: </dt><dd> Two octets with value 0x0002. </dd> 
 <dt>length: </dt> <dd>Group filters by interface set  </dd>
 <dt> interface group: </dt><dd> Identifier for group (3 octets). </dd>
 <dt> Flags: </dt><dd> 1 octet of flag with bit 0 - indicating inbound filters, 
 and bit-1 indicating outbound filters. </dd> 
 <dt>sequences of interface addresses: </dt><dd> list of interfaces
with the format of AFI/SAFI, address. </dd>   
 </dl>
 </t> 
 <t>
 <dl>
  <dt>Interferes with: TAIS </dt> <dd> May interfere with 
 all other actions. </dd>
</dl>
</t>   
 </section>
</section> 
<section title="Redirect Action Family"> 
<t> The Redirect actions in Extended Community are included
in Table 2-1. The Redirect traffic component replaces 
these with a single action component that has ordering 
rules within the component. 
<figure>
<artwork>
 Table 2-1  
 
FSv2 Actions supported (Extended Community) 

ID  FSv2 Description               Name     FS document
==  =============================  =======  ========== 
100  Redirect with sub-byte for     Redirect                  
 
       to VRF (2 AS form)          RDIPvrf  RFC8955
       to VRF (IPv4 form)          RDIPvrf  RFC8955
       to VRF (4 AS form)          RDIPvrf  RFC8955 
       to IPv4 / copy              RDIPv4C  RDIP
       to IPv6 / copy              RDIPv6C  RDIP
       to VRF (IPv6 form)          RDIP6vrf RFC8956 
       to Indirection ID           RDIDC    RGID   
	   to SFC Path                 RDSFP    RFC9015

 
</artwork> 
</figure>
</t> 
<section title="Traffic Redirect Action component ">
<t>
<dl>
<dt>Summary: </dt> <dd> Redirect traffic upon Match of Filters </dd>
<dt>Description: </dt> <dd> The Traffic redirection actino allows for 
redirection to specific IP address (with or without a copy), 
redirection to an indirection-ID which can support local definitions or
Segment Routing (SR) definitions for SR-MPLS or SRv6. </dd>
<dt>Encoding:</dt><dd>Shown in Figure 2-8 </dd>
</dl>
</t>
<t>
 <figure>
 <artwork>

   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   Redirect traffic (100)       |  Length (2 octets)            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       4-ocet AS                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | AFI           | SAFI          | Redirect Type                 | 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |          redirect flags       |  redirect location (variable) |  
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 2-8 
 </artwork> 
  </figure> 
 </t>
 <t> where: 
 <dl>
 <dt>Action Familiy: </dt><dd>Redirect </dd> 
 <dt>Action type: </dt><dd> Two octets with value 0x0008. </dd> 
 <dt>length: </dt> <dd>length of SubTLV </dd>
 <dt>4-octet AS: </dt> <dd>The 4 octet aS is the AS of the originator 
   of this FSv2 action. </dd>
 <dt> AFI: </dt> <dd> The AFI of the redirect location </dd>
 <dt> SAFI: </dt> <dd> The SAFI of the redirect location </dd>
 <dt> Redirect Type </dt><dd> The 1-octet redirect type May be one of the following values: 
    <dl>
	<dt>VRF (100): </dt> <dd> Redirect to a VRF identifier </dd>
    <dt>IP address(200):  </dt> <dd> Redirect IP address encoded as IP address (AFI/SAFI) </dd>
	<dt>Redirect by local Indirect ID (300): </dt><dd> The 4-octet or 16 octet-value redirection location
	 operates as an indirect ID for localized IP indirection table. </dd>
	<dt>Redirect by Node-ID with SID/index for SR-MPLS (400): </dt><dd> The 4-octet redirect location is an indirect ID
      with the form of a Node ID with SID/index in MPLS-based Segment Routing.  This means means the 32-bit indirect ID 
	  is mapped to an MPLS label using the index as a global offset in the SID/label space.  
	  The 16-octet redirection location is invalid for this redirection type. </dd>
	<dt>Redirect by Node-ID with SID/label for SR-MPLS (500): </dt> <dd> The 4-octet redirect location has the form of 
      form of a Node ID with SID/label in MPLS-based Segment Routing.  This means means the 32-bit redirection location 
	  is mapped to an MPLS label using the redirect location as an MPLS label <xref target="RFC8402"></xref>.  
	  The 16-octet redirection location is invalid for this redirection type. </dd>
	<dt>Redirect by Binding Segment ID with SID index for SR-MPLS (600): </dt><dd> The 4-octet redirect location is 
	  is mapped to an MPLS binding label using the redirection location as a global offset in the SID/label space) 
	   The 16-octet redirection location is invalid for this redirection type. </dd>  
    <dt>Redirect by Binding Segment ID (BSID) with SID/label for SR-MPLS (700):</dt><dd> The 4-octet redirection location 
      is mapped to a MPLS binding label using the redirection location as a global label. <xref target="RFC8402"></xref> 
	   The 16-octet redirection location is invalid for this redirection type. </dd> 
    <dt>Redirect to Tunnel ID (800): </dt><dd> The 4-octet Tunnel ID is within a single administrative domain
      a 32-bit globally unique tunnel identifier.  The allocation and programming of the Tunnel ID within the 
	  local indirection-id table is outside scope of the document.   The 16-octet redirection location is 
	  invalid for this redirection type. </dd> 
    <dt>Node ID with SID/index in SRv6 (900): </dt> <dd> The 4-octet or 16-octet redirection location is mapped to 
	 an SRv6 SID using the indirection-id as global SRv6 SID or index. </dd>
	<dt>Binding Segment ID with SID/index in SRv6 (1000): </dt> <dd>The 4-octet or 16-octet redirection location is mapped 
	 to an SRv6 binding SID using the the redirection location as an index for global offset in the SID space). </dd> 
	<dt>Binding Segment ID with SID/index in SRv6 (1100): </dt> <dd> The 4-octet or 16-octet redirection location is 
	 mapped to an SRv6 binding SID using the indirection-id as global SRv6 SID. </dd> 
	 <dt>SFC path (1200): </dt> <dd> SFC Path(see below) </dd> 
	 </dl> 
 </dd>
 <dt>Flags </dt><dd> Where:
  <dl>
  <dt> RES: </dt><dd> is a 3 bit reserved field </dd>
  <dt> S-ID </dt><dd> is a 4 bit field field for sequence of indirect features. This is a carry-over from the 
  <xref target="I-D.ietf-idr-flowspec-path-redirect"></xref> functions. </dd> 
   <dt> C  </dt> <dd> is a 1 bit field indicating a copy of the packet. </dd>
  </dl> 
 </dd>  
 </dl>
 </t>
 <t>
 <figure> 
 <artwork> 
  
  0             1
  0 1 2 3 4 5 6 7
 +-+-+-+-+-+-+-+-+
 | RES | S-ID  |C|
 +-+-+-+-+-+-+-+-+

   Figure 2-9 
   
 </artwork>
 </figure> 
 </t>
<t>
<dl> 
<dt>Interferes with: </dt><dd> FSv2 redirection functions from the following FSv2 Extended Communities (FSv2-EC): 
  <dl>
  <dt>1) Redirect IP FSv2-EC: </dt><dd> See <xref target="RFC8955"></xref><xref target="RFC8956"></xref>.
   Common functions with Redirect types IP Address (0x00) or IP Address copy (0x01).  
   A change of overlapping functions with other redirect types (0x02-0x10). </dd>
  <dt>2) Redirect with copy FSv2-EC: </dt><dd> See <xref target="I-D.ietf-idr-flowspec-redirect-ip"></xref>).  
  Common function with redirect of type IP Adress with
   copy (0x01).  A change of overlapping functions with other redirect types (0x01, 0x02-0x10).  </dd>
  <dt>3)Redirect for SR-MPLS or SRv6: </dt><dd> See <xref target="I-D.ietf-idr-flowspec-path-redirect"></xref> 
   Potential overlap with redirect types (0x02-0x10). </dd>
  <dt>4) Redirect FS-EC for SFC Path </dt><dd> see <xref target="RFC9015"></xref>
  </dd>  
  </dl>
</dd>
</dl> 
</t>
</section>

<section title="SFC Classifier Redirect ">
<t>
<dl>
<dt>Summary: </dt> <dd> Action to put traffic into a specific 
entry point to a SFP.  </dd>
<dt>Description: </dt><dd> The FSv2-EC version of this 
action is contained in <xref target="RFC9015"></xref>, and this 
BGP Community Path attribute creates the same function 
that can be user-ordered FSv2 action. All rules regarding 
the fields specified in section 7.4 of <xref target="RFC9015"></xref> are to be 
utilized for this function.  The sub-type identifies the FS-EC action 
for classifying the flow, and only subtype 0x01 is valid.  Other
subtypes are outside the scope of this document.  If a given FSv2 action 
in BGP Community Path Attribute does not contain an installed SFPR
with the specified identifier by (SPI, SI, SFT), it MUST NOT be used for
dispositioning the packets of the specified flow. 
</dd>
<dt>Encoding: </dt> <dd> See Figure 2-x casts the encoding from 
section 7.4 of <xref target="RFC9015"></xref>into the FSv2-CPA. </dd> 
</dl>
</t>
<t>
<figure>
<artwork>

Value field for SFC Classifier CPA 
                          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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | sub-type(0x01)|    SPI                                        |  
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  SI           |      SFT      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Figure 2-11: The Format of the Flow Specification for SFC
                 Classifiers Extended Community
</artwork>
</figure> 
where:
<dl>
<dt>Sub-type: </dt><dd> (1 octet) Sub-type.  Only valid type is 0x01. </dd> 
<dt>SPI: </dt><dd>(3 octets) Service Path Identifier </dd>
 <dt>SI: </dt><dd>(1 octet) Service Indicator </dd>
 <dt>SFT: </dt><dd>(1 octet) Service Function Type </dd>
</dl>
</t>
<t>
<dl>
<dt>Interferes with: </dt><dd>Redirect actions </dd> 
</dl>
</t> 		   
</section> 

</section> 
<section title="Mark, Merge, and Shape Traffic Action Family">
    <table align="left">
    <name>Mark Merge Shape Traffic action Components</name>
     <thead>
       <tr>
       <th>Action Coponent</th>
        <th>Description</th>
        <th>Reference</th>
         </tr>
      </thead>
         <tbody>
          <tr>
          <td>0</td>
          <td>Reserved</td>
          <td>[this document]</td>
          </tr>
		   <tr>
             <td>100</td>
             <td>DSCP mark </td>
             <td>[this document]</td>
          </tr>
          <tr>
             <td>200</td>
             <td>Mark IPv4 CSID </td>
             <td>draft-lin-idr-cats-flowspec-ts</td>
          </tr>
		   <tr>
             <td>210</td>
             <td>Mark IPv6 CSID </td>
             <td>draft-lin-idr-cats-flowspec-ts</td>
          </tr>
		   <tr>
             <td>210</td>
             <td>Mark IPv6 CSID </td>
             <td>draft-lin-idr-cats-flowspec-ts</td>
          </tr>
		   <tr>
             <td>300</td>
             <td>set Traffic rate limits  </td>
             <td>[this draft]</td>
          </tr>
		   <tr>
             <td>400</td>
             <td>sample-copy </td>
             <td>[this draft]</td>
          </tr>
		  </tbody>
     </table>
<section title="Traffic Marking DSCP (100)">
<t>
<dl> 
<dt>Summary: </dt> <dd> Marking DSCP bits in traffic </dd>
<dt>Encoding: </dt> <dd> Encoding is shown in Figure 3-x </dd>
</dl>
</t>
<t>
 <figure>
 <artwork>

   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |        Action type (0x08)     |  Length (2 octets)            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |RR | DSCP      | Reserved                                      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
                  Figure 2-10 
 </artwork> 
  </figure> 
 </t>
 <t>where: 
 <dl>
 <dt>Action type: </dt><dd> Two octets with value 0x0009. </dd> 
 <dt>length: </dt> <dd> 4 octets indicating the length of the action value field </dd>  
 <dt>RR: </dt> <dd> 2 bits of zero in DSCP byte. </dd>
 <dt> DSCP </dt> <dd> 6 bits of DSCP value to mark in the IPv4 packet. </dd>
 <dt>reserved </dt><dd> Reserved - 3 octets of reserved bytes.  These bytes are 
set to zero on transmission and ignored upon receipt. </dd> 
 </dl>
 </t>
 <t>
 <dl>
 <dt>Interferes with: </dt><dd> No other FSv2 action. </dd>
</dl> 
</t>
</section>
		  
<section title="Traffic Rate limits (300)">
<t>
 <figure>
 <artwork>

   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |        Action type            |  Length (2 octets)            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  type of rate limit           |   length of rate field        |      
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Maximum rate of bytes                                 |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
                  Figure 2-6 
 </artwork> 
  </figure> 
 </t>
 <t>where: 
 <dl>
 <dt> Action Family: </dt><dd> Mark, Merge and Sahpe Traffic Family </dd>  
 <dt>Action component type: </dt><dd> Two octets with value 0x0006. </dd> 
 <dt>length: </dt> <dd>Two octets of length with value 4. </dd>
 <dt>type of rate field </dt><dd>type of rates (byte, packet, CATs packets) </dd> 
 <dt>length of rate field </dt><dd>4 bytes - if byte, packet, or CATS packets)  </dd> 
 <dt>Maximum rate of bytes per second: </dt><dd> 
   These 4 octets carry the maximum rate information in IEEE
   floating point [IEEE.754.1985] format, units being bytes per second.
   A traffic-rate of 0 should result on all traffic for the particular
   flow to be discarded.  On encoding, the traffic-rate MUST NOT be
   negative.  On decoding, negative values MUST be treated as zero
   (discard all traffic).
 </dd>
 </dl>
 </t> 
 <t>
 <dl>
  <dt>Interferes with: TRP </dt> <dd> May interfere with the traffic-rate-packets (TRP).
   A policy may allow both filtering by traffic-rate-
   packets and traffic-rate-bytes.  If the policy does not allow this,
   these two actions will conflict.   </dd>
</dl>
</t>   
</section>
</section> 
<section title="Sample of Copy Action Family">
<section title="Traffic Sample or Copy (400)">
<t>
 <figure>
 <artwork>

   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Traffic Sample  (400)     |  Length                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |        Sample/Copy Value      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 2-7 
 </artwork> 
  </figure> 
 </t>
 <t>where: 
 <dl>
 <dt>Action Family type: </dt><dd>Mark, Merge, Sample Traffic</dd>
 <dt>Action type: </dt><dd> Two octets (100) </dd> 
 <dt>length: </dt> <dd>Two octets of length with value 6. </dd>
 <dt>Sample/Copy Value </dt> <dd> 2 bytes of copy type </dd> 
 </dl>
 </t> 
 <t>Interferes with: TBD 
</t>   
</section>

</section>  
<section title="Terminate Action Family ">
<section title="Terminate Action Chain (100)">
<t>
<dl>
<dt>Summary: </dt> <dd> Terminate FS Aciton chain. </dd>
<dt>Description: </dt><dd> stops the action change at this action. 
</dd>
<dt>Encoding: </dt> <dd> See Figure 2-x casts the encoding from 
section 7.4 of <xref target="RFC9015"></xref>into the FSv2-CPA. </dd> 
</dl>
</t>
<t>
<figure>
<artwork>

Value field for Terminate FS Action 
                          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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | component type (100)          |  length                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | action upon Termate           |                        
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Figure 2-11: Format of the 
	
</artwork>
</figure> 
where:
<dl>
<dt> Action Family type: </dt><dd> Terminate action </dd>
<dt>component type: </dt><dd> (2 octets) 100 </dd> 
<dt>length: </dt><dd> (2 octets> length of action </dd> 
<dt>action upon terminate: </dt><dd> (2 octets) actions upon termination</dd> 
</dl>
</t>
<t>Editor: actions can include logging, checking something else, or 
perhaps an action chain.  Need to add more here. 
</t> 		   
</section> 
</section> 
</section> 
<section title="Validation and Ordering of Actions">
<section title="Validation of Flow Specification Actions">
<t> FSv2 actions may associate actions using Extended Communities or 
the BGP Community Container attribute (FSv2-BCA) with FSv2 NLRIs.  All the 
NLRIs in an UPDATE packet are associate with a FSv2 action found in 
either one or more FSv2 actions in an Extended Community or a FSv2
BGP Community container.  
</t>
<t>
Actions may conflict, duplicate, or complement other actions.
FSv2 BGP Community container actions have precedence over the FSv2 actions 
in an Extended Community. 
</t>
<t>Well-formed syntactically correct actions are logically linked to 
the filter rule(s) in the NLRI in the BGP Path Attributes. 
If one action in the ordered list fails, the default procedure is 
for the action process for this rule to stop and flag the error via system management.  
By explicit configuration, the action processing may continue after errors.
</t>
<t>Implementations MAY wish to log the actions taken by FS actions (FSv1 or FSv2).    
</t>
</section>
<section title="Ordering of Actions"> 
<t>
The normal processing of FSv2 actions are by first by user order. 
Within the same user order, by Action family type in ascending Order
where lower numbers have more precedence.  Within the 
same user order and action family type, by action component type 
where lower numbers have more precedence.  Within the 
same user order, action family type, and action component type, 
the component must specify precedence. 
</t>  
</section> 
<section title="Manageability of actions">
<t>It is important that the operator consider where actions can 
successfully be implement in computer hardware.  For example, 
if a flow specification action to mark traffic at a particular node 
cannot be done with the router's hardware, the distribution of 
flowspec rules with actions may be successful but the FSv2 
actions fail.  This failure to mark a DSCP may cause other problems. 
</t>
</section>
</section>
<section title="Error handling">
<t>The following error handling rules must be followed by 
all BGP speakers which support FSv2 Community Attribute: 
<list style="symbols">
<t>A Malformed BGP Community Container Attribute shall be considered 
malformed if any action TLVs or the Community container which is malformed.
</t>
<t>FSv2 Community Path attributes having TLVs which do not follow the 
FSv2 ordering rules described in this document 
MUST be considered as malformed by a BGP FSv2 propagator.
</t>
<t>An Update with a malformed Community Path Attribute shall 
execute the "treat-as-withdaw" behavior <xref target="RFC7606"></xref> 
</t>
<t> Note that a BGP speaker MUST NOT TLV type in the FSv2-CPA as an error.
</t>
</list>
</t>
<t>Please note that these rules augment the FSv2 rules for NLRI which state: 
<list style="symbols">
<t>FSv2 NLRI having TLVs which do not have the correct lengths or syntax must be considered MALFORMED.  
</t>
<t>FSv2 NLRIs having TLVs which do not follow the FSv2 ordering rules described in 
section 4.1 MUST be considered as malformed by a BGP FSv2 propagator.
</t>
</list>
The above two rules prevent any ambiguity that arises from the multiple copies of 
the same NLRI from multiple BGP FSv2 propagators. 
</t>
<t>A BGP implementation SHOULD treat such malformed NLRIs as ‘Treat-as-withdraw’ 
<xref target="RFC7606"></xref>  
</t>
<t>
An implementation for a BGP speaker supporting both FSv1 and FSv2 MUST 
support the error handling for both FSv1 and FSv2. 
</t>
</section>

 <section anchor="IANA" title="IANA Considerations">
   <t>This section complies with <xref target="RFC7153"></xref>.
   </t>
    <section title="BGP Community Container Type  ">
   <t>IANA is requested to assign a assign a value from 
    the "BGP Community Container Types" registry in the 
	BGP Parameters group with the value (TBD4) 
    for "Flow Specification Action Container". 	
    </t>
   </section> 

   <section title="FSv2 Action Family Types">
   <t>   IANA is requested to create the a new registry for "Flow
   Specification v2 Action Family Types".</t>
   <t>Registration Procedures: 0x01-0x3FFF Standards Action.
   </t>
    <table align="left">
    <name>Flow Specification v2 Action Family Types</name>
     <thead>
       <tr>
       <th>Type</th>
        <th>Description</th>
        <th>Reference</th>
         </tr>
      </thead>
         <tbody>
          <tr>
          <td>0</td>
          <td>Reserved</td>
          <td>[this document]</td>
          </tr>
          <tr>
             <td>1-99</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>
          <tr>
             <td>100</td>
             <td>Action Failure</td>
              <td>[this document]</td>
            </tr>
	    <tr>
             <td>101-199</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>
		  <tr>
             <td>200</td>
             <td>group</td>
              <td>[this document]</td>
            </tr>
	      <tr>
             <td>201-299</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>
		  <tr>
             <td>300</td>
             <td>redirect</td>
              <td>[this document]</td>
            </tr>
	      <tr>
             <td>301-499</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>
		   <tr>
             <td>500</td>
             <td>Mark,Merge or Traffic Shape</td>
              <td>[this document]</td>
            </tr>
	      <tr>
             <td>501-699</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>
		     <tr>
             <td>700</td>
             <td>Flag traffic for sampling</td>
              <td>[this document]</td>
            </tr>
	      <tr>
             <td>701-899</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>
		     <tr>
             <td>900</td>
             <td>terminate action instructions </td>
              <td>[this document]</td>
            </tr>
	      <tr>
             <td>901-999</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>
		     <tr>
             <td>1000</td>
             <td>logging </td>
              <td>[this document]</td>
            </tr>
	      <tr>
             <td>1001-4094</td>
             <td>Unassigned</td>
             <td>[this document]</td>
          </tr>    
		     <tr>
             <td>4095</td>
             <td>reserved </td>
              <td>[this document]</td>
            </tr>
         </tbody>
        </table>
		
      </section>
			
   <section title="FSV2 Action Components ">
   <t>IANA is requested to create the following entries 
      on a new "Flow Specification v2 Action Component Registry.</t> 
    <t>Registration Procedures: 0x01-0x3FFF Standards Action.</t>
	<t>Initial values TBD </t>
   </section>
   </section> 

 <section title="Security Considerations">
   <t>The use of ROA improves on <xref target="RFC8955"></xref>
   by checking to see of the route origination. This check can improve the 
   validation sequence for a multiple-AS environment.  
   </t>
   <t>>The use of BGPSEC  <xref target="RFC8205"></xref> to secure the packet
   can increase security of BGP flow specification information sent in the packet.  
   </t>
   <t>The use of the reduced validation within an AS <xref target="RFC9117"></xref>
   can provide adequate validation for distribution of flow specification within a single 
   autonomous system for prevention of DDoS. 
   </t>
   <t>Distribution of flow filters may provide insight into traffic being sent within 
   an AS, but this information should be composite information that does not reveal the
   traffic patterns of individuals. 
   </t>
</section>
</middle>
<back>
    <references title="Normative References">
	  &RFC0791;
      &RFC2119;
	  &RFC3032;
      &RFC4271;
	  &RFC4360;
	  &RFC4760;
	  &RFC5065;
	  &RFC5701;
	  &RFC6482;
	  &RFC7153;
	  &RFC7606;
	  &RFC8174;
	  &RFC8955;
	  &RFC8956;
	  &RFC9015;
	  &RFC9117;
	  &RFC9184;
	  &I-D.ietf-idr-flowspec-l2vpn;
	  &I-D.ietf-idr-flowspec-nvo3;
	  &I-D.ietf-idr-flowspec-srv6;
	  &I-D.ietf-idr-flowspec-interfaceset;
	  &I-D.ietf-idr-flowspec-path-redirect;
	  &I-D.ietf-idr-flowspec-mpls-match;
	  &I-D.ietf-idr-bgp-flowspec-label;
	  &I-D.ietf-idr-rpd;
	  &I-D.ietf-idr-flowspec-redirect-ip;
	  &I-D.ietf-idr-fsv2-ip-basic;
	  &I-D.ietf-idr-wide-bgp-communities;
	</references>
	<references title="Informative References">
	&RFC6241; 
	&RFC8040;
	&RFC8205;
	&RFC8206;
    &RFC8402;
	&I-D.ietf-idr-flowspec-v2;
	 </references>
  </back>
</rfc>