<?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 RFC8300 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8300.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 RFC8986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8986.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-wide-bgp-communities SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-wide-bgp-communities.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 "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-idr-flowspec-mpls-match-02.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-network-slice-ts 
  SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-network-slice-ts.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-6man-enhanced-vpn-vtn-id 
  SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-6man-enhanced-vpn-vtn-id.xml">
<!ENTITY I-D.hares-idr-fsv2-ip-basic SYSTEM "https://xml.resource.org/public/rfc/bibxml3/reference.I-D.hares-idr-fsv2-ip-basic.xml">
<!ENTITY I-D.hares-idr-fsv2-more-ip-filters SYSTEM "https://xml.resource.org/public/rfc/bibxml3/reference.I-D.hares-idr-fsv2-more-ip-filters.xml">
<!ENTITY I-D.hares-idr-fsv2-more-ip-actions SYSTEM "https://xml.resource.org/public/rfc/bibxml3/reference.I-D.hares-idr-fsv2-more-ip-actions.xml">
<!ENTITY I-D.cui-idr-content-filter-flowspec 
  SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.cui-idr-content-filter-flowspec.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-filters-02"  ipr="trust200902">
  <front>
    <title abbrev="FSv2 More IP Filters">BGP Flow Specification Version 2 - More IP Filters </title>
    <author fullname="Susan Hares" initials="S" surname="Hares">
      <organization>Hickory Hill Consulting</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="2024" />
    <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 
	   FSv1 actions. This draft suggests additional IP Filters for 
	   Flow Specification FSv2.   
	   </t>
    </abstract>
  </front>
  <middle>
<section anchor="intro" title="Introduction">
      <t>
	  Version 2 of BGP flow specification was original defined in 
	  <xref target="I-D.ietf-idr-flowspec-v2"></xref> (denoted FSv2).  However, the full 
	  FSv2 specification contains more than initial implementers desired.  Therefore, this 
	  original FSv2 draft remains an WG draft, but the content will be split out into 
	  functions that implementers can manage. Section 1.4 contains the list of documents
	  intended to be the split of the original FSv2 documents. 
	  </t> 
	  <t> FSv2 specifies new user-ordered filters that will be used with the IPv4 (AFI=1) and 
	  IPv6 (AFI=2) 2 new SAFIs (TBD1, TBD2) for FSv2 to be used with 5 AFIs   
	  (1, 2, 6, 25, and 31) to allow user-ordered lists of traffic match filters for user-ordered 
	  traffic match actions encoded in Communities (Wide or Extended). 
	  </t>
	  <t>This draft specifies defines extensions to the FSv2 Basic IP package
      <xref target="I-D.hares-idr-fsv2-ip-basic"></xref>to support 
      additional IP filters for IP packet and payload. The filters are passed in the 
	  Extended IP Filters (type 2) of the subTLVs.  This filter form contains 
	  a filter version number so filters can be added easily. 
	 </t> 
	  <t>BGP Flow Specifiction version 1 (FSv1) as defined in 
	  <xref target="RFC8955"></xref>, <xref target="RFC8956"></xref>, and 
	  <xref target="RFC9117"></xref> specified 2 SAFIs (133, 134) 
      to be used with IPv4 AFI (AFI = 1) and IPv6 AFI (AFI=2). 
	  FSV2 specifies 2 new SAFIs (TBD1, TBD2) for FSv2 to be used with 5 AFIs   
	  (1, 2, 6, 25, and 31) to allow user-ordered lists of traffic match filters for user-ordered 
	  traffic match actions encoded in Communities (Wide or Extended). The first SAFI (TBD1) 
	  will be used for IP forwarding, and the second SAFI (TBD2) will be used with VPNs. The supported 
	  AFI/SAFI combinations in FSV2 are:
	  <list style="symbols">
	  <t> IPV4 (AFI=1, SAFI=TBD1), </t>
	  <t> IPv6 (AFI=2, SAFI=TBD1), </t>
	  <t> L2   (AFI=6, SAFI=TBD1), </t>
	  <t> SFC  (AFI=31, SAFI=TBD1), </t>
	  <t> BGP/MPLS IPv4 VPN (AFI=1, SAFI=TBD2), </t> 
	  <t> BGP/MPLS IPV6 VPN (AFI=2, SAFI=TBD2), </t>
	  <t> BGP/MPLS L2VPN (AFI=25, SAFI=TBD2), and </t>
      <t> SFC VPN (AFI=31, SAFI=TBD2)</t>
      </list> 	  
	 </t>
     <t> FSv2 specifies new IP filter that will be used with the IPv4 (AFI=1) and 
	  IPv6 (AFI=2) 2 new SAFIs (TBD1, TBD2) for FSv2 to be used with 5 AFIs   
	  (1, 2, 6, 25, and 31) to allow user-ordered lists of traffic match filters for user-ordered 
	  traffic match actions encoded in Communities (Wide or Extended).
      This document specifies IP filters used with IPvr (AFI=1) and IPv6 (AFI=2). 	  
	  </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>	  
	 Section 2 contains a description of the format of the FSv2 NLRI for the  
	 the Extended IP Filters type (type 2). Section 3 provides three new Filters
     approved in IDR WG drafts.  Section 4 provides potential filters from 
     individual drafts. 	 
	 </t>
	<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 persist across a reboot of software module within 
		      a routing system or a reboot of a hardware routing device.</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>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 title="FSv2 Refesher ">
 <t>Note from Editor: This review section is here for 
 the initial drafts to help with interim.  It will be deleted
 as it is in <xref target="I-D.hares-idr-fsv2-ip-basic"></xref>. 
 </t> 
 <t>
 A BGP Flow Specification (version 1 or version 2) is an n-tuple containing one or more match criteria 
 that can be applied to IP traffic, traffic encapsulated in IP traffic or 
 traffic associated with IP traffic.  The following are examples of such traffic: 
 IP packet or an IP packet inside a L2 packet (Ethernet), an MPLS packet, and SFC flow.
</t> 
<t>
 Flow Specification  NLRI may be associated with a set of path 
attributes depending on the particular application to determine what 
happens upon matching the data flow filter.  FSv1 and FSv2 support specifying 
the Extended Community specify a set of actions with 
a default order and known interactions.  FSv2 also supports 
the ability to have user ordered actions by using 
the FSv2 type of Community BGP Path Attribute.  
 </t>
 <t>
 A particular application is identified by a specific AFI/SAFI (Address 
 Family Identifier/Subsequent Address Family Identifier) and corresponds to a 
 distinct set of RIBs. Those RIBs should be treated independently of each 
 other in order to assure noninterference between distinct applications. 
 FSv1 data is sent in a different NLRI than FSv2 NLRI. 
 </t>
 <t>
 BGP processing treats the NLRI as a key to entries in AFI/SAFI BGP 
 databases.  Entries that are placed in the Loc-RIB are then associated with 
 a given set of semantics which are application dependent. Standard BGP 
 mechanisms such as update filtering by NLRI or by attributes such as AS_PATH or 
 large communities apply to the BGP Flow Specification defined NLRI-types.  
 </t>
 <t>
 Network operators can control the propagation of BGP routes by enabling or 
 disabling the exchange of routes for a particular AFI/SAFI pair on a 
 particular peering session.  As such, the Flow Specification may be 
 distributed to only a portion of the BGP infrastructure. 
 </t>
<t>
Flow Specification v2 allows the user to order the flow specification rules and the actions 
associated with a rule. Each FSv2 rule may have one or more match conditions 
and one or more associated actions. 
The IDR WG draft <xref target="I-D.ietf-idr-flowspec-v2"></xref> 
contains the complete solution for FSv2. However, this complete solution makes 
implementation of these features a large task so, please see the next section on 
how the complete solution is broken into a series of solutions. 
This section describres the complete solution.  
</t>
<t>
This FSv2 specification supports the components and actions for the following: 
<list style="symbols">
<t>IPv4 (AFI=1, SAFI=TBD1) [defined in FSv2-DDOS], 
</t>
<t>IPv6 (AFI=2, SAFI=TBD2) [defined in FSv2-DDOS],
</t>
<t>L2 (AFI=6, SAFI=TDB1) [defined in FSv2-L2],
</t>
<t>BGP/MPLS IPv4 VPN: (AFI=1, SAFI=TBD2),
</t>
<t> BGP/MPLS IPv6 VPN: (AFI=2, SAFI=TBD2),
</t>
<t> BGP/MPLS L2VPN (AFI=25, SAFI=TDB2) [defined in FSv2-L2], 
</t>
<t> SFC: (AFI=31, SAFI=TBD1) [defined in FSv2-SFC], and 
</t>
<t> SFC VPN (AFI=31, SAFI=TBD2) [defined in FSv2-SFC].
</t>
</list>
</t>
<t>The FSv2 specification for tunnel traffic is outside the 
scope of this specification. The FSv1 specification for tunneled 
traffic is in <xref target="I-D.ietf-idr-flowspec-nvo3"></xref>. 
The FSv2 tunnel traffic for FSv2 will be added to this list.  
</t>
<t>FSv2 operates in the ships-in-the night model with FSv1 so network 
operators can manipulate which the distribution of FSv2 
and FSv1 using configuration parameters.  
Since the lack of deterministic ordering was an FSv1 problem, 
this specification provides rules and protocol features to keep 
filters in a deterministic order between FSv1 and FSv2. 
</t>
<t>
The basic principles regarding ordering of flow specification filter rules are: 
<list>
<t>1) Rule-0 (zero) is defined to be 0/0 with the “permit-all” action. </t>
<t>2) FSv2 rules are ordered based on user-specified order. 
<list>
<t>The user-specified order is carried in the FSv2 NLRI and a 
numerical lower value takes precedence over a numerically higher value.  
For rules received with the same order value, the FSv1 rules apply 
(order by component type and then by value of the components).  
 </t>
</list>
</t>
<t>3) FSv2 rules are added starting with Rule 1 and FSv1 rules are added after FSv2 rules 
<list>
<t>For example, BGP Peer A has FSv2 data base with 10 FSv2 rules (1-10).  FSv1 user number
is configured to start at 301 so 10 FSv1 rules are added at 301-310. 
 </t>
</list>  
</t>
<t>4) An FSv2 peer may receive BGP NLRI routes from a FSv1 peer or a BGP peer that does not support FSv1 or FSv2.  
The capabilities sent by a BGP peer indicate whether the AFI/SAFI can be received (FSv1 NLRI or FSv2 NLRI).
</t>
<t>5) Associate a chain of actions to rules based on user-defined action number (1-n).  (optional) 
<list>
<t>If no actions are associated with a filter rule, the default is to drop traffic the filter rules match</t>
<t>An action chain of 1-n actions can be associated with a set of filter rules can 
via Extended Communities or Wide Communities.  Only Wide Communities can associate a user-defined
order for the actions. Extended Community actions occur after actions with a 
user specified order (see section 5.2 for details).  
</t>    
</list> 
</t>
</list>
</t>
<t>
Figure 2-2 provides a logical diagram of the FSv2 structure
<figure>
<artwork>
 
       +--------------------------------+ 	
       |          Rule Group            | 
       +--------------------------------+			   
         ^          ^                  ^
         |          |---------         |
         |                   |         ------
         |                   |               |
+--------^-------+   +-------^-----+     +---^-----+
|      Rule1     |   |     Rule2   | ... |  Rule-n |
+----------------+   +-------------+     +---------+ 
                      :  :   :    :     
    :.................:  :   :    :
    :	     |...........:   :    :
 +--V--+ +--V-------+        :    :        
 |order| |identifie | .......:    :   
 +-----+ +----------+ :           :
                      :           :
   +------------------V--+  +-----V----------------+
   |Rule Match condition |  | Rule Action          |
   +---------------------+  +----------------------+
    :	   :     :    :       :      :   :   :   |
 +--V--+   :     :    :    +--V---+  :   :   :   V
 | Rule|   :     :    :    |action|  :   :   :  +-----------+
 | name|   :     :    :    |order |  :   :   :  |action name|
 +-----+   :     :    :    +------+  :   :   :  +-----------+
           :     :    :              :   :   :.............
           :     :    :              :   :                :     
      .....:     .    :.....       ..:   :......          :
      :          :         :       :           :          :
 +----V---+  +---V----+ +--V---+ +-V------+ +--V-----+ +--V---+
 |  Match |  | match  | |match | | Action | | action | |action|
 |Operator|  |variable| |Value | |Operator| |Variable| | Value|
 +--------+  +--------+ +------+ +--------+ +--------+ +------+

   Figure 2-2: BGP FSv2 Data storage
</artwork>
</figure>
</t>
</section>
  
<section title="FSv2 Series of Specifications">
<t>
The full FSV2 information is contained in 
<xref target="I-D.ietf-idr-flowspec-v2"></xref>. 
</t>
<t>
Feedback from the implementers indicate that the 
Flow Specification v2 needs to broken into drafts based on the 
use cases the technology supports.  These include IPv4/IPv6 IP 
Basic Filters for DDOS, IPv4/IPv6 filters beyond DDOS, BGP/MPLS IPv4 VPN, 
BGP/MPLS IPv6 VPN,  BGP/MPLS L2VPN, Segment routing (SRMPLS, SRv6), 
SFC, SFC VPN, L2, L2 VPNs, and tunneled traffic (e.g., nv03 WG tunnels).   
</t>
<t>
The following is the list of planned drafts: 
<list style="hanging">
<t hangText="FSv2 IP Basic:">(<xref target="I-D.hares-idr-fsv2-ip-basic"></xref>)
describes the minimal set of functions each FSv2 implementation must support. 
</t>
<t hangText="FSv2 More IP Filters:">(this document) defines a road map for 
additional IP filters.  This base specification provides the format of the 
NLRI for IP Extended Filters" and gives templates for components used 
in the IP Extended Filters for FSv2.  Temporarily, it list the IP Extended 
Filters - both filters approved by the IDR WG and the proposed filters.   
</t>
<t hangText="FSv2 More IP Actions:"> (<xref target="I-D.hares-idr-fsv2-more-ip-actions"></xref>) 
This draft provides:
<list>
<t> Template for additional FSv2 IP Actions in Extended Communities,</t>
<t> Template for additional FSv2 IP Actions in Community Path Attribute, </t>
<t> List of IDR WG approved IP Actions (in standardization process), </t>
<t> List of IP Actions proposed for IDR WG standarization) </t> 
</list>
</t>
<t hangText="FSv2 Non-IP Filters drafts:"> This group of drafts will include
new proposals and revisions of the following existing IDR work:  
<list style="hanging">
<t hangText="FSv2 MPLS Filters and Actions:">((draft-hares-idr-fsv2-mpls-Filters) 
This base specification provides the format of the MPLS filters and actions.  
</t>
<t hangText="FSv2 L2 Filters and Actions:"> Revision of [I-D.ietf-idr-flowspec-l2vpn]
for FSv2. 
</t>
<t hangText="FSv2 L2 Filters and Actions:"> Revision of [I-D.ietf-idr-flowspec-nvo3]
for FSv2. 
</t>
</list>   
</t>
</list>
</t>
</section> 

</section> 

<section title="Extended IP Filters SubTLV ">
<t>
The format of the FSv2 NLRI field for IP Filters is defined in
the original FSv2 draft <xref target="I-D.ietf-idr-flowspec-v2"></xref> 
and in the first of the FSv2 series drafts <xref target="I-D.hares-idr-fsv2-ip-basic"></xref>.
As a review, the FSv2 NLRI with 
</t>
<t>The format of the NLRI for Basic IP Filters (type 1) is also defined in 
<xref target="I-D.hares-idr-fsv2-ip-basic"></xref>.
This document defines the format of NLRI for the FSv2 Extended IP Filter type
(type 2).  Figure 3-1 provides the general header and Figure 3-2 provides
the definition of the "value" portion.  Figure 3-3 provides a diagram of 
the component types.  
</t>
<t> 
The key differences is that the extended IP filter types 
starts with a IP Filters identifier before SubTLVs with the filter components.  
</t>
<t>
 <figure>
 <artwork>
 +-------------------------------+
 | NLRI length (2 octets)        |
 +-------------------------------+
 | TLVs+                         |
 | +===========================+ |
 | | order (4 octets)          | |
 | +---------------------------+ |
 | | Dependent filters chain   | | 
 | |(type, chain ID, count,    | |
 | | item) (8 octets)          | |
 | +---------------------------+ | 
 | + FSv2 Filter type 2        + |
 | +---------------------------+ |
 | + length TLVs (2 octet)     + |
 | + --------------------------+ |
 | + value (variable)          + |
 | +---------------------------+ |
 +-------------------------------+

  Figure 3-1 - FSv2 NLRI with Extended IP Filter type. 
</artwork>
 </figure>
</t>
<t>
Where: 
<list> 
  <t> Dependent Filters Chain: 8 octets for identifying a chain of 
   FSv2 filters that must be deployed at the same time.  
   <list style="hanging">
   <t hangText="Why needed in FSv2 filters:">Flow spedcification filters 
   distributed in BGP UPDATE packets may be broken into multiple 
   packets. In FSv2, the dependent filter ID allows the filter chains
   to be identified across all user-defined or default filters.
   The rules can be installed from BGP into the firewall after 
   all filters have been installed.
   </t>   
   <t hangText="Components of the field ">The field has the following components:
   <list>
   <t> version: (1 octet) identifies format of field (zero is reserved)
   </t>
   <t> Chain ID: (3 octet): Identifier for filter chain (zero is reserved)  
   </t>    
   <t> Count of items (2 octet): count of item on chains 
   </t>
   <t> item on chain: (2 octets): filter sequence number on chain
   </t>
   </list> 
   </t>
   </list> 
  </t> 
</list> 
</t>
<t>Where: the IP Filter type has a value field has a series of SubTLV 
as shown in figure 3-2. 
</t>
<t>
<figure>
<artwork>
 +-------------------------------+
 |  +--------------------------+ |
 |  | FSv2 Extended Filters    | | 
 |  | version (1 octet)        | |
 |  +--------------------------+ |
 |  |  Components+ (SUB-TLVs)  | |
 |  +--------------------------+ |	
 +-------------------------------+

 Figure 3-2 - FSv2 for Extended IP filters 
</artwork>
</figure>
</t>
<t> Where: FSv2 Extended Filters version - gives a version number for 
the group of Extended IP Components supported.  For example, 
the first version could support just the components listed 
in Table 3-1. 
</t> 
<t>
And Component SubTLV has the format of  
<figure>
<artwork>
    +-------------------------------+
    |  Component Type (1 octet)     |
    +-------------------------------+
    |  length (2 octets)            |
    + ------------------------------+
    |  value (variable)             |
    +-------------------------------+
     Figure 3-3 – IP header SubTLV format  

</artwork>
</figure>
</t>
<t>
Where:
<list>
<t>Component type: component values are defined in 
the “Flow Specification Component types” registry for IPv4 and IPv6 by 
<xref target="RFC8955"></xref>, <xref target="RFC8956"></xref>, and 
<xref target="I-D.ietf-idr-flowspec-srv6"></xref>
</t>
<t>length: length of SubTLV (varies depending on the component type)>  
</t>
<t>value: dependent on component type.  The component types 
supported are based on the FSv2 filter version.  
<list>
<t> The component types supported for FSv2 IP Extended Filters
depends on the Extended Capability version. 
</t>
<t>
 For descriptions of value portions for components 1-13 see 
<xref target="RFC8955"></xref> and <xref target="RFC8956"></xref>. 
Potential new filter components are listed in Table 3-3.  
</t>
</list>
</t>
</list>
</t> 
<t>
<figure>
<artwork>
Table 3-1 Extended IP Filters Components 
SubTLV  
-type     Definition
======    ==========================
   0 -    Reserved 
   1 -    IP Destination prefix 
   2 -    IP Source prefix 
   3 –    IPv4 Protocol / 
          IPv6 Upper Layer Protocol
   4 –    Port  
   5 –    Destination Port 
   6 –    Source Port
   7 –    ICMPv4 type / ICMPv6 type  
   8 –    ICMPv4 code / ICPv6 code 
   9 –    TCP Flags 
  10 –    Packet length
  11 –    DSCP  
  12 –    Fragment 
  13 –    Flow Label 
  14 -    TTL 
  15 -    Reserved 
  16 -    SID in Routing IPv6 Header 
  17 -    NRP-ID in Hop-by-Hop IPv6 Header
  18 -    Payload component 
 </artwork>
</figure>
</t>
<t>
<figure> 
<artwork>
Table 3-2 Extended IP Component Ranges
(proposed) 

Sub-TLV range   Definition 
-------------  -------------
   1-13        V1 filters 
  14-63        IP Extended Filters 
  64-150       Non-IP filters
 151-180       Associated Data filters 
 181-191       Reserved
 192-249       FCFS
 250-255       Reserved  
</artwork>
</figure> 
</t>
<t>
Ordering within the TLV in FSv2: The transmission of SubTLVs within a 
flow specification rule MUST be sent ascending order by SubTLV type.  
If the SubTLV types are the same, then the value fields are compared 
using mechanisms defined in <xref target="RFC8955"></xref>
and <xref target="RFC8956"></xref> and MUST be in ascending order.  
NLRIs having TLVs which do not follow the above ordering rules MUST be considered as
 malformed by a BGP FSv2 propagator. This rule prevents any ambiguities that arise
 from the multiple copies of the same NLRI from multiple BGP FSv2 propagators. 
 A BGP implementation SHOULD treat such malformed NLRIs as "Treat-as-withdraw" 
<xref target="RFC7606"></xref>.  
</t>
<t>See <xref target="RFC8955"></xref>, <xref target="RFC8956"></xref>, and
<xref target="I-D.ietf-idr-flowspec-srv6"></xref>. for specific details. 
</t>
</section>
<section title="Template for New FSv2 IP Filters">
<t>Summary: 1 line summary of function 
</t>
<t>Component ID: TBD-X1 (14) 
</t>
<t>Packet filtering: 
<list>
<t>This should be a choice of IPv4, IPv6, L2 Frame, MPLS frame, tunnel 
</t>
</list>
</t>
<t>What fitering in packet: specific field 
</t>
<t>Encoding: encoding of values in component. (below is example of v1 component) 
<list>
<t>&lt;[numeric_op, value]+&gt; 
</t>
<t>where:
<list>
<t>numeric_op - definition 
</t>
<t>value - (give definition)
</t>
</list>
</t>
</list>
</t>
<t>Ordering within component: by full value of number_op
 concatenated with value </t>
<t>dependency between components: no issues 
</t>
<t>conflict with other filters: none</t>
<t>reference document: [this document] 
</t>
<t>Examples in: in section (fill in section number)
</t>
</section> 
<section title="Review of existing proposals (For review only)">
<t>This section provides examples of the use of templates
for existing drafts.  This section is for example only. 
</t>
<section title="New Filter Components (IDR approved)">
<t>This approved Filters will be moved into individual drafts
</t>
<section title="TTL (type=TTL-Type (TBD1)">
<t>Summary: TTL filter defines matches for 8-bit TTL field in IP header
</t>
<t>Component ID: TBD-X1
</t>
<t>What packet filtering: IPv4 
</t>
<t>What fitering in packet: 8 bit TTL field 
</t>
<t>Encoding: &lt;[numeric_op, value]+&gt;
<list>
<t>where: 
<list>
<t>numeric_op - is defined by Flow Specification v1
</t>
<t>value is a 1 octet value for TTL.
</t>
</list>
</t>
</list>
</t>
<t>ordering within component: by full value of number_op concatenated with value </t>
<t>dependency between components: 
<list>
<t>User ordering of filters can place this at any point in the filter chain.
</t>
<t>Default component order:  V1 ordering does not have TTL default need to be set 
by IDR WG.  User ordering cn set this in order. 
</t>
</list>
</t>
<t>conflict: none</t>
<t>reference: draft-bergeon-flowspec-ttl-match-00.txt </t>
<t>examples in: section 6  
</t>
</section>

 <section title="Parts of SID (type=16 (0x40))">
 <t>Summary: IPv6 Service Identifier (SRv6 SID) Matches 
 (<xref target="I-D.ietf-idr-flowspec-srv6"></xref> )
</t>
<t>component ID: TBD-X2 (16) 
</t>
<t>What Packet filtering: IPv6 
</t> 
<t>What filtering in IPv6 Packet: Segment Routing Header (SRH) (<xref target="RFC8402"></xref>)
<list>
<t>SID in SRH: <xref target="RFC8402"></xref> defines SRv6 Segment Identifier (SID) as an IPv6 address
   explicitly associated with the segment. <xref target="RFC8986"></xref> defines 
   the SID format as: "LOC:FUNCT:ARG" where:
   <list> 
   <t>locator (LOC) is encoded in the L most significant bits of the SID, </t>
   <t> followed by F bits of function (FUNCT), and </t>
   <t>  A bits of arguments (ARG). </t>
  </list>
</t>
</list> 
</t>
<t>Encoding FSv2 Component: Parts of SID Filter: defines a list of match 
bit match criteria for some combinations of the
LOC (location), FUNCT (function) and ARG (arguments) 
fields in the SID or or whole SID.     
<list> 
<t>Length: variable</t>
<t>Component Value format: [type, LOC-Len, FUNCT-Len, ARG-Len, [op, value]+]
</t>
<t>where:
<list style="symbols">
<t>type (1 octet):  This indicates the new component type 
(TBD1, which is to be assigned by IANA).
</t>
<t>LOC-Len (1 octet):  This indicates the length in bits of LOC  in SID.
</t>
<t>FUNCT-Len (1 octet):  This indicates the length in bits of FUNCT in SID.
</t>
<t>ARG-Len (1 octet):  This indicates the length in bits of ARG in SID.
</t>
<t>[op, value]+:  This contains a list of {operator, value} pairs that are used to match some parts of SID. 
</t>
</list>
</t>
<t>The total of three lengths (i.e., LOC length + FUNCT length + ARG
length) MUST NOT be greater than 128.  If it is greater than 128, an
error occurs and it is treated as a withdrawal [RFC7606] and
[RFC4760].
</t>
<t>The operator (op) byte is encoded as:
<figure>
<artwork>
      0   1   2   3   4   5   6   7
    +---+---+---+---+---+---+---+---+
    | e | a | field type|lt |gt |eq |
    +---+---+---+---+---+---+---+---+
            Figure 3-5

</artwork>
</figure>
</t>
<t>where: 
<list>
<t>where the behavior of each operator bit has clear similarity with that
of [RFC8955]'s Numeric Operator field. 
</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: 
<list>
<t>000: SID's LOC
</t>
<t>001: SID's FUNCT
</t>
<t>010: SID's ARG
</t>
<t>011: SID's LOC:FUNCT (the concatenation of the LOC and FUNCTION fields) 
</t>
<t>100: SID's FUNCT:ARG (the concatenation of the FUNCTION and ARG fields) 
</t>
<t>101: SID's LOC:FUNCT:ARG (the concatenation of the FUNCTION and ARG fields) 
</t>
</list>
</t>
<t>Note: For an unknown field type, Error Handling is to "treat as withdrawal" [RFC7606]
and [RFC4760].
</t>
<t>lt: less than comparison between data' and value'.
</t>
<t>gt: greater than comparison between data' and value'.
</t>
<t>eq: equality between data' and value'.
</t>
</list>
</t>
<t>The data' and value' used in lt, gt and eq are indicated by the field
type in an operator and the value field following the operator.
</t>
<t>The length of the value field depends on the field type and is 
the length of the SID parts being matched (see Table 3, Figure 3-6) 
in bytes, rounded up if that length is not a multiple of 8. 
</t>
<t>
<figure>
<artwork>
         Table 3 - SID Parts fields 

       +-----------------------+------------------------------+
       | Field Type            | Value                        |
       +=======================+==============================+
       | SID's LOC             | value of LOC bits            |
       +-----------------------+------------------------------+
       | SID's FUNCT           | value of FUNCT bits          |
       +-----------------------+------------------------------+
       | SID's ARG             | value of ARG bits            |
       +-----------------------+------------------------------+
       | SID's LOC:FUNCT       | value of LOC:FUNCT bits      |
       +-----------------------+------------------------------+
       | SID's FUNCT:ARG       | value of FUNCT:ARG bits      |
       +-----------------------+------------------------------+
       | SID's LOC:FUNCT:ARG   | value of LOC:FUNCT:ARG bits  |
       +-----------------------+------------------------------+
                          

</artwork>
</figure>
</t>
<t>
<figure>
<artwork>
        ------------------ SID,  128 bits ----------------
       /                                                  \ 
      +-----------+-----------+-----------+----------------+
      |    LOC    |   FUNCT   |    ARG    |      ...       |
      +-----------+-----------+-----------+----------------+
       \         / \         / \         / \              /
          j bits     k bits       m bits    128-j-k-m bits
       \                     /
         LOC:FUNCT, j+k bits
                   \                     /
                     FUNCT:ARG, k+m bits
       \                                 /
         -- LOC:FUNCT:ARG, j+k+m bits –

                              Figure 3-6

</artwork>
</figure>
</t>
</list>
</t>
<t>Dependency between components: TBD
</t>
<t>conflicts between components: TBD 
</t>
<t>reference: <xref target="I-D.ietf-idr-flowspec-srv6"></xref> 
</t> 
<t>Examples in: TBD
</t>
</section> 
<section title="NRP ID Filter(type=17) (0x11)">
<t>Summary: Network Resource Partition ID Component 
</t> 
<t>IP Packet filtering: IPv6 
</t> 
<t>What filtering: IPv6 Hop-by-Hop Options Header (<xref target="RFC8402"></xref>)
</t> 
<t>Description: Option in Next-Hop-Options header in IPv6 packet (<xref target="RFC8402"></xref>, section 4).
  A Network Resource Partition (NRP) option carries around the network resource 
  partition information (NRP) in the Hop-by-Hop options header (<xref target="I-D.ietf-6man-enhanced-vpn-vtn-id"></xref>). 
  This IPv6 Extension head has:
   <list> 
   <t>Flags (flags): This is a 8 bit flag field in a single octet.  One bit, "S" defined in most significant bit. The 
     S stands for strict match of NRP ID field. The NRP Flags field is filtered for by the FSv2 component Flags field. 
   </t>
   <t> Context type (CT): - 1 octet field indicating the semantics and length of NRP-ID field.  The value of CT=0
   indicates a 4-octet NRP ID.   </t> 
   <t> followed by F bits of function (FUNCT), and </t>
   <t>  A bits of arguments (ARG). </t>
  </list>
</t>
<t>FSv2 NRP ID Component: Defines match for NRP ID in the 
NRP option of Hop-by-Hop Header. This FSv2 
component has following format:
</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
                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                       |  Option Type  |  Opt Data Len |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Flags     | Context Type  |            Reserved           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ~                            NRP ID                             ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	   
	         Figure: NRP FSv2 Component 
</artwork>
</figure>
</t>
<t>
<list> 
<t> Flags - This field is 2 octets with only the most signficant bit defined as Global Bit (g). 
<list>
<t> Global bit (g): When set, it indicates the NRP ID to be matched with a globally unique NRP ID. 
Otherwise, the NRP-ID is to be a domain significant NRP ID.  The global NRP ID has been 
coordinated among these domains. 
</t>
</list> 
</t>
<t>Reserved: This a 2-octet field reserved for future use. It SHOULD be set to zero on transmission and MUST be ignored on receipt. 
</t>
<t>NRP ID: This is a 4-octet identifier which is used to identify an NRP
</t> 
</list> 
</t> 
<t> Interactions with: (TBD) 
</t> 
<t> reference: <xref target="I-D.ietf-idr-flowspec-network-slice-ts"></xref>
</t> 
 </section> 
</section> 
<section title="Proposed Filter components"> 
<t>The documents in this section are proposed filters. 
Each of these proposals would be included in an individual draft.
</t>
<section title="IP Payloads Match type=18 (0x12)) ">
<t>Summary: IP Payload filter 
</t>
<t>IP Packet filtering: IPv4 or IPv6 
</t> 
<t>What filtering in packet: Data in header or within the payload.  
</t> 
<t>Encoding: The filter has an offset to filter data from the point specified in the "offset-type field" for 
using a filter of specific length (content-length) with a specific pattern (content).  The type of packet
IPv4 or IPv6 is specified in Type of IP packet. 
<list> 
<t> The structure of the component is: 
<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
                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                       |  Option Type  | component Len |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | PType | Otype |   offset  (offset-value)      | content length|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        content                                |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	   
	         Figure 3-x: FSv2 IP Payload Match Component 
</artwork>
</figure>
</t>
<t>Where the 
<list style="symbols">
<t> Ptype - 4 bit field indicating the packet type via AFI (IPv4 or IPv6) 
<list> 
<t> IPv4 = 1 </t>
<t> IPv6 = 2 </t> 
</list> 
</t> 
<t> Otype - 4 bit field indicating the offset type where 
<list>
<t> 0 = IP header </t>
<t> 1 = IP header data </t> 
<t> 2 = Data within TCP/UDP  </t> 
</list>
</t> 
<t> offset - is number of bytes to the payload from the point defined by Ptype and Otype. 
</t> 
<t> content length - length of the content. 
</t>
<t> content - content filter field to match (significant field bit zero). 
</t>
</list>
</t>
</list> 
</t>
<t> Ordering within component: (TBD)
</t>
<t> interacts with components: (TBD) 
</t> 
<t> reference: <xref target="I-D.cui-idr-content-filter-flowspec"></xref>
</t> 
 </section> 

<section title="Group ID (type=19 (0x13))">
<t>Summary: Filter on Group ID 
</t> 
<t>IP Packet filtering: IPv4 or IPv6 
</t> 
<t>What filtering: Group ID specified sub-type 
</t> 
<t>What Filtering in Packet: The filter looks for a specific type of 
group ID within either the IPv4 or IPv6 packet header.  
</t>
<t>Encoding of component: The structure of the component is the following 
<list> 
<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
                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                       |  Option Type  |  Opt Data Len |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Packet Type   | Offset type   | Group type    | SubGroup type |       
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	   | Offset value                  |  GMask length | SG Mask length| 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         
       |                        Group Mask                             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        Group ID value                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
	   |                        Sub-Group Mask                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        Sub-Group Value                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
	         Figure 3-x: FSv2 IP Payload Match Component 
</artwork>
</figure>
</t>
<t>Where the 
<list style="symbols">
<t> Packet type - 8 bit field indicating the packet type 
<list> 
<t> IPv4 = 1 </t>
<t> IPv6 = 2 </t> 
</list> 
</t> 
<t> Offset type - 4 bit field indicating the offset type where 
<list>
<t> 0 = IP header </t>
<t> 1 = IP header data </t> 
<t> 2 = Data within TCP/UDP  </t> 
</list>
</t> 
<t> offset - is number of bytes to the payload from the point defined by Ptype and Otype. 
</t> 
<t> Group type - 1 octet field indicating the type of group ID 
<list>
<t> 0 = Reserved </t>
<t> 1 = Indirection ID </t> 
<t> 2 = Interface group </t> 
<t> 3 = CATS ID </t> 
<t> 4 = SAV ID  </t> 
<t> 5 = APN ID  </t> 
</list>
</t> 
<t> Sub-Group type - Sub group within filters.  
<list>
<t> 0 = Reserved </t>
<t> 1 = data traffic (Inbound/outbound) </t>
<t> 1 = data traffic  Inbound only  </t>
<t> 2 = data traffic  outbound only  </t>
</list>
</t> 
<t> Group Mask - (variable) Group field mask 
</t>
<t> Group ID value - (variable) Group ID value to match 
</t>
<t>Sub Group Mask - (variable) Sub-Group Mask
</t>
<t>Sub-Group Value - (variable) Sub-Group value to match on
</t> 
</list>
</t>
</list>
</t>
<t>ordering within component: TBD
</t>
<t>dependency between components: TBD
</t>
<t>conflicts with other components:  (TBD) 
</t> 
<t> reference: TBD (this is just a sample). 
</t> 
</section> 
</section> 
</section> 
 <section anchor="IANA" title="IANA Considerations">
   <t>This section complies with <xref target="RFC7153"></xref>.
   </t>

   <section title="Filter IP Component types">
   <t>IANA is requested to indicate [this draft] as a reference on the 
   following assignments in the Flow Specification Component Types 
   Registry: 
   </t>
   <t>
   <figure>
   <artwork>
 ID    Name         Reference
 ----  -----------  -----------------------------------------
 14    TTL          [this document]
 15    Partial SID  [draft-ietf-idr-flowspec-srv6]
                    [this document] 
 16    NRP ID       [this document] 
                    [draft-ietf-idr-flowspec-network-slice-ts]
 17    payload      [this document]  
                    [draft-cui-content-filter-flowspec-00] 
 18    Group ID     [this document] 
                    [draft-ietf-idr-flowspec-path-redirect]
                    [draft-peng-idr-apn-bgp-flowspec]
					[draft-lin-idr-cats-flowspec-ts]
					[draft-geng-idr-flowspec-sav]
   </artwork>
   </figure>
   </t>
   </section>
   <section title="FSV2 Filter versions ">
   <t>IANA is requested to create the following three new egistries 
      on a new "Flow Specification v2 Parameters” web page.  
   </t>
   <t>
   <figure>
   <artwork>
   Name: BGP FSv2 Filter Version types 
   Reference: [this document]
   Registration Procedures: 0x01-0x3F Standards Action.
							0x40-0x6F FCFS
							0x70-0xFF reserved 
							
    Type    Use                     Reference
   -----    ---------------         ---------------
    0x00    IP basic only           [this document]
                                    [FSv2 IP basic] 
    0x01    Extended IP Filters 1   [This document] 
	           
			   Figure 4-1
   </artwork>
   </figure>
   </t>
  <t>
   <figure>
   <artwork>
   Name: BGP Group Types 
   Reference: [this document]
   Registration Procedures: 0x01-0x3F Standards Action.
                            0x40-0x6F FCFS 
							0x70-0xFF reserved 

    Type    Use                     Reference
   -----    ---------------         ---------------
    0x00    reserved                [this document] 
	0x01    Indirection ID          [this document] 
    0x01    Interface Group         [this document] 
    0x02    CATs group              [this document] 
    0x03    SAVNet group            [this document] 
    0x04    APN group               [this document] 
    
               Figure 4-2 Groups 
   </artwork>
   </figure>
   </t>
   <t>
   <figure>
   <artwork>
   Name: BGP Sub Group Types 
   Reference: [this document]
   Registration Procedures: 0x01-0x3F Standards Action.
                            0x40-0x5F FCFS 
							0x5F-0xFF reserved 

    Type    Use                     Reference
   -----    ---------------         ---------------
    0x00    Inbound/outbound        [this document] 
    0x01    Inbound on              [this document] 
    0x02    Outbound only           [this document] 
    0x03    SubGroup ID based       [this document] 
	       
		      figure 4-3 Sub-Group types 
	</artwork>
   </figure>
   </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-wide-bgp-communities;
	  &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-flowspec-network-slice-ts;
	  &I-D.ietf-6man-enhanced-vpn-vtn-id;
	  &I-D.hares-idr-fsv2-ip-basic;
	  &I-D.hares-idr-fsv2-more-ip-filters;
	  &I-D.hares-idr-fsv2-more-ip-actions; 
	</references>
	<references title="Informative References">
	&RFC6241; 
	&RFC8040;
	&RFC8205;
	&RFC8206;
	&RFC8300;
	&RFC8402; 
	&RFC8986;
	&I-D.ietf-idr-flowspec-v2;
    &I-D.cui-idr-content-filter-flowspec; 
	 </references>
  </back>
</rfc>