<?xml version='1.0' encoding='utf-8'?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="std"
      docName="draft-xpbs-pce-topology-filter-04"
      ipr="trust200902"
      obsoletes=""
      updates=""
      submissionType="IETF"
      xml:lang="en"
      tocInclude="true"
      tocDepth="4"
      symRefs="true"
      sortRefs="true"
      version="3">

	   
 <!-- ***** FRONT MATTER ***** -->
 <front>

   <title abbrev="PCEP Extensions for Topology Filter">Path Computation Element Communication Protocol (PCEP) Extensions for Topology Filter</title>
   <seriesInfo name="Internet-Draft" value="draft-xpbs-pce-topology-filter-04"/>
	
	<author fullname="Quan Xiong" initials="Q" surname="Xiong">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>

        <phone></phone>

        <email>xiong.quan@zte.com.cn</email>
      </address>
    </author>
	
   	<author fullname="Shaofu Peng" initials="S" surname="Peng">
      <organization>ZTE Corporation</organization>

      <address>
        <postal>
          <street>No.50 Software Avenue</street>
          
          <city>Nanjing</city>
          
          <region>Jiangsu</region>
  
          <code>210012</code>

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

        <phone></phone>

        <email>peng.shaofu@zte.com.cn</email>
      </address>
    </author>
	
   	<author fullname="Vishnu Pavan Beeram" initials="V" surname="Beeram">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street></street>
          
          <city></city>
          
          <region></region>
  
          <code></code>

          <country></country>
        </postal>

        <phone></phone>

        <email>vbeeram@juniper.net</email>
      </address>
    </author>

   	<author fullname="Tarek Saad" initials="T" surname="Saad">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street></street>
          
          <city></city>
          
          <region></region>
  
          <code></code>

          <country></country>
        </postal>

        <phone></phone>

        <email>tsaad@juniper.net</email>
      </address>
    </author>	

    <author fullname="Mike Koldychev" initials="M." surname="Koldychev">

      <organization>Ciena Corporation</organization>

      <address>

        <postal>

          <street>385 Terry Fox Dr.</street>

          <city>Kanata</city>

          <region>Ontario</region>

          <code>K2K 0L1</code>

          <country>Canada</country>

        </postal>

        <email>mkoldych@proton.me</email>

      </address>

    </author>
	
	
   <date year="2025"/>
   <area>Routing</area>
   <workgroup>PCE</workgroup>
   <keyword>topology</keyword>
   <abstract>
      <t>This document proposes a set of extensions for Path Computation Element 
	  Communication Protocol (PCEP) to support the topology filter during path 
	  computation.</t>
    </abstract>
  </front>
  
  <!-- ***** MIDDLE MATTER ***** -->
  
  <middle>
  
    <section numbered="true" toc="default">  <name>Introduction</name>
	
	<t><xref target="RFC5440"></xref> describes the Path Computation Element 
    Computation Protocol (PCEP) which is used between a Path Computation Element (PCE) 
    and a Path Computation Client (PCC) (or other PCE) to enable computation 
    of Multi-protocol Label Switching (MPLS) for Traffic Engineering Label 
    Switched Path (TE LSP). PCEP Extensions for the Stateful PCE Model <xref target="RFC8231"></xref> 
	describes a set of extensions to PCEP to enable active control of MPLS-TE and 
	Generalized MPLS (GMPLS) tunnels. As depicted in <xref target="RFC4655"></xref>, a PCE MUST be able
	to compute the path of a TE LSP by operating on the TED and considering 
	bandwidth and other constraints applicable to the TE LSP service request.</t> 
	 
	<t>A PCE may perform path computation based on the network topology 
	information collected through BGP-LS <xref target="RFC9552"></xref>.
	BGP-LS can get multiple link-state data from multiple IGP instance, or 
	multiple virtual topologies from a single IGP instance. In other cases,
	as per <xref target="I-D.ietf-teas-yang-topology-filter"></xref>,
	a path may be computed within a network topology such as a specified topology,
	a topology associated with a specific IGP domain, a topology learnt from 
	a specific TE information source, a topology defined by the application
	of one or more topology filters, a topology associated with an Network
	Resource Partition (NRP) and so on. The PCE MUST take the topology 
	related constraints into consideration during the path computation.</t>
	
	<t>As defined in <xref target="I-D.ietf-teas-yang-topology-filter"></xref>,
    a topology filter is a data construct that is used to filter network
    topologies. This document proposes a set of extensions for PCEP to 
	support the topology filter during path computation.</t>
	  
      <section numbered="true" toc="default"> <name>Terminology</name>
        <t>The terminology is defined as <xref target="RFC5440"></xref>, <xref target="RFC9552"></xref>
		and <xref target="RFC8795"></xref>.</t> 
      </section>
	  
      <section numbered="true" toc="default"> <name>Requirements Language</name>
        <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 <xref target="RFC2119" 
	   format="default"></xref>.</t>
      </section>
	  
    </section>
   <section numbered="true" toc="default"> <name>Topology Filter with PCE</name>
   
    <t>As defined in <xref target="I-D.ietf-teas-yang-topology-filter"></xref>,
	a topology filter specifies the topology reference or a set of filtering 
	rules. The topology filters carry a list of topology filters and a topology
	filter-set constitutes a list of topology filter references.</t>
	
	<t>The topology reference indicates a predefined TE topology or a specific
	IGP domain. A TE topology can be identified from a global scope such as a 
	provider ID, a client ID or a topology ID. And a specific IGP domain can 
	be identified by protocol ID, instance ID, division ID, algo ID and MT ID.
	The PCE should consider these identifiers as topology constraints during 
	path computation.</t>
	
	<t>The filtering rules specify a set of constraints on the topology including 
	include-any, include-all and exclude. A set of attributes that can be used as 
	rules to filter the topology such as link affinity, link name, node prefix, 
	AS number and TE information source. The filtering rules of these attributes 
	can be used to compute path at PCE.</t>
	
   </section>
	
	
    <section numbered="true" toc="default"> <name>PCEP Extensions</name>
	
    <section numbered="true" toc="default"> <name>TOPOLOGY-FILTER Object</name>
	
   <t>This document defines a new TOPOLOGY-FILTER object to carry the topology
   filter. The TOPOLOGY-FILTER object is optional and specifies the specific 
   topology to be taken into account by the PCE during path computation. The 
   TOPOLOGY-FILTER object can be carried within a PCReq message, or a PCRep
   message in case of unsuccessful path computation. </t>
	
    <t>TOPOLOGY-FILTER Object-Class is TBD1.</t>

    <t>TOPOLOGY-FILTER Object-Type is TBD2.</t>
	
	<t>The format of the TOPOLOGY-FILTER object body is:</t>
	
	<figure title="TOPOLOGY-FILTER Body Object Format">
        <artwork align="left" name="" type="" alt=""><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Reserved                        |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                      Optional TLVs                          //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	 ]]></artwork>
      </figure>
	  
	<t>Reserved (24 bits):  This field MUST be set to zero on transmission
      and MUST be ignored on receipt.</t>
	<t>Flags (8 bits):  No flags are currently defined.  Unassigned flags
      MUST be set to zero on transmission and MUST be ignored on
      receipt.</t>
	<t>The format of optional TLVs is defined in <xref target="RFC5440"></xref> and may be used 
	to carry topology filter information as defined in section.
	The existing topology constraints TLVs could also be reused
	such as Algorithm ID TLV and Domain ID TLV.</t>
	
	<section numbered="true" toc="default"> <name>IGP Domain Identifier</name>
	
    <t>As defined in <xref target="RFC9552"></xref>, the IGP domain has a 
	unique IGP representation by using the combination of Area-ID, Router-ID, 
	Protocol-ID, Multi-Topology Identifier (MT-ID), and BGP-LS Instance-ID. 
	This document defines some TLVs for topology filter to identify a IGP 
	domain within a referenced topology. The Protocol ID TLV is mandatory 
	to identify a IGP domain and others are optional to carry the additional
	information to further filter permitted resources within the domain. 
	These TLVs can be carried but each type can only be presented once. 
	And it MUST be applied to filter the resources that match all presenting 
	TLVs at the same time.</t>
	
	<section numbered="true" toc="default"> <name>Protocol ID TLV</name>

   <t>The Protocol ID TLV is mandatory to identify a IGP domain and the 
   format is as following shown:</t>
   
   <figure title="Protocol ID TLV" align="center">
     <artwork align="left"><![CDATA[
	
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Type=TBD3             |            Length=12          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Protocol-ID  |                  Reserved                     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Instance-ID                           |
    |                         (64 bits)                             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
	
    ]]></artwork>
   </figure>
   
   <t>The code point for the TLV type is TBD3. The TLV length is 12 octets.</t>
   
   <t>Protocol-ID (8 bits): defined in <xref target="RFC9552"></xref> section 5.2.</t>

   <t>Instance-ID (64 bits): defined in <xref target="RFC9552"></xref> section 5.2.</t>
   
   <t>Reserved: This fields MUST be set to zero on transmission and MUST be ignored on receipt.</t> 
  
  
  </section>
	
	<section numbered="true" toc="default"> <name>Multi-topology ID TLV</name>
	
    <t>The Multi-topology ID TLV is optional and is defined to carry the
    multi-topology-ID.</t>

   <t>The format of the Multi-topology ID TLV is :</t>
  
  
  <figure title="Multi-topology TLV" align="center">
      <artwork align="center"><![CDATA[
	 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type=TBD4             |            Length=4           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |R R R R|   Multi-Topology-ID   |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             
    ]]></artwork>
   </figure> 
   
   <t>The code point for the TLV type is TBD4. The TLV length is 4 octets.</t>
   
   <t>Multi-Topology-ID (12 bits): Semantics of the IS-IS MT-ID are defined
   in Section 7.2 of <xref target="RFC5120"></xref>. Semantics of the OSPF MT-ID are defined
   in Section 3.7 of <xref target="RFC4915"></xref>. As defined in section 3.2.1.5 
   of <xref target="RFC7752"></xref>, if the value is derived from OSPF, then
   the upper 9 bits MUST be set to 0.  Bits R are reserved and SHOULD be
   set to 0 when originated and ignored on receipt.</t>
   
   <t>Reserved (16 bits): This field MUST be set to zero on transmission
   and MUST be ignored on receipt.</t>
	</section>
	
	<section numbered="true" toc="default"> <name>Algorithm ID TLV</name>
	
	<t>The Algorithm ID TLV is optional and is defined to carry the
    Algorithm-ID.</t>

    <t>The Algorithm ID TLV MAY be inserted so as to provide the Flex-algo 
    plane information for the computed path. The format of the TLV is 
    defined in <xref target="I-D.ietf-pce-sid-algo"></xref> section 3.4.</t>
	</section>
	
    <section numbered="true" toc="default"> <name>Domain ID TLV</name>
	
	<t>The Domain ID TLV is optional and is defined to carry the
    Domain-ID.</t>

    <t>The Domain ID TLV MAY be inserted so as to identify the domains 
	served by the PCE. The format of the TLV is defined in 
	<xref target="RFC8685"></xref> section 3.2.2.</t>
	
	</section>	
   
   </section>
	  
   <section numbered="true" toc="default"> <name>TE Topology Identifier</name>
	
    <t>This document defines some TE Topology Identifier TLVs for
	topology filter to identify a predefined TE topology within a 
	referenced topology.</t>

 	<section numbered="true" toc="default"> <name>Provider ID TLV</name>

   <t>The Provider ID TLV is optional and the format is as 
   following shown:</t>
  
  
  <figure title="Provider ID TLV" align="center">
     <artwork align="center"><![CDATA[
	 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type=TBD5             |            Length=4           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Provider-ID                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   
             
    ]]></artwork>
   </figure> 
   
   <t>The code point for the TLV type is TBD5. The TLV length is 4 octets.</t>
   
   <t>Provider-ID (32 bits): an identifier to uniquely identify a 
   provider as defined in <xref target="RFC8776"></xref>.</t>
   
   </section>

	<section numbered="true" toc="default"> <name>Client ID TLV</name>

   <t>The Client ID TLV is optional and the format is as 
   following shown:</t>
  
  
  <figure title="Client ID TLV" align="center">
     <artwork align="center"><![CDATA[
	 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type=TBD6             |            Length=4           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Client-ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             
    ]]></artwork>
   </figure> 
   
   <t>The code point for the TLV type is TBD6. The TLV length is 4 octets.</t>
   
   <t>Client-ID (32 bits): an identifier to uniquely identify a 
   client as defined in <xref target="RFC8776"></xref>.</t>
   </section>   
   
   	<section numbered="true" toc="default"> <name>Topology ID TLV</name>

   <t>The Topology ID TLV is optional and the format is as 
   following shown:</t>
  
  
  <figure title="Topology ID TLV" align="center">
     <artwork align="center"><![CDATA[
	 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type=TBD7             |            Length=4           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Topology-ID                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
   
             
    ]]></artwork>
   </figure> 
   
   <t>The code point for the TLV type is TBD7. The TLV length is 4 octets.</t>
   
   <t>Topology-ID (32 bits): an identifier for a topology as defined in <xref target="RFC8776"></xref>.</t>
   </section>
   
   
   
   </section>
	
   <section numbered="true" toc="default"> <name>Filtering Rules TLV</name>
   	
	<t>This document defines a new Filtering Rules TLV for topology filter
	to carry a set of constrains on the topology by include-any, include-all 
	and exclude. </t>

	<t>The Filtering Rules TLV is optional and the format is as following shown :</t>
	
	<figure title="Filtering Rules TLV" align="center">
     <artwork align="left"><![CDATA[
	 
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |              Type=TBD8        |             Length            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Include-any                             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Include-all                             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Exclude                                 |      
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     //                     Optional sub-TLVs                        //
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 
      
    ]]></artwork>
   </figure>
   
    <t>The code point for the TLV type is TBD8. The TLV length is variable.</t>
	<t>The sub-TLVs carry the attributes that can be used as rules to 
	filter the topology.</t>
   
   <section numbered="true" toc="default"> <name>Link ID sub-TLV</name>
   <t>The Link ID is used to identify the link that is used 
   during the path calculation.</t> 
   
   <t>The Link ID sub-TLV is defined:</t>
   
	<figure title="Link ID sub-TLV">
        <artwork align="left" name="" type="" alt=""><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=TBD9   |     Length    |         Reserved              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Link-ID                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   	 ]]></artwork>
      </figure>
   <t>The code point for the TLV type is TBD9. The TLV length is 6 octets.</t>
   
   <t>Link-ID (32bits ): defined in IS-IS <xref target="RFC5307"></xref> and OSPF <xref target="RFC3630"></xref>.</t>
   
   </section>
   
   <section numbered="true" toc="default"> <name>Admin Group sub-TLV</name>
   
   <t>The Admin Group is used to include the links that is used 
   during the path calculation.</t> 
   
   <figure title="Admin Group sub-TLV " align="center">
     <artwork align="left"><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=TBD10   |     Length    |         Reserved              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Extended Admin Group                     |
   +-                                                             -+
   |                            ...                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ]]></artwork>
   </figure>
   
    <t>The code point for the sub-TLV type is TBD10. The length is variable.</t>
	
    <t>Extended Administrative Group: Extended Administrative Group as
      defined in <xref target="RFC7308"></xref>.</t>  
	</section>
	
  <section numbered="true" toc="default"> <name>Source Protocol sub-TLV</name>
	
  <t>The format of the Source Protocol sub-TLV is:</t>
   
   <figure title="Source Protocol sub-TLV" align="center">
     <artwork align="left"><![CDATA[
	
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Type=TBD11    |     Length    |   Reserved    | Protocol-ID  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Instance-ID                          |
    |                           (64 bits)                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	
             
    ]]></artwork>
   </figure>
   
   <t>The code point for the TLV type is TBD11. The TLV length is 10 octets.</t>
   
   <t>Protocol-ID (8 bits): defined in <xref target="RFC9552"></xref> section 5.2.</t>

   <t>Instance-ID (64 bits): defined in <xref target="RFC9552"></xref> section 5.2.</t>
 
   </section>
  </section> 
 
  </section>
	 
	<section numbered="true" toc="default"> <name>Procedures</name>
	
	<t>A PCC MAY insert a TOPOLOGY-FILTER object in PCReq message to 
	indicate the specific topology that MUST be considered by the PCE 
	during path computation. The PCE will compute the path with the
	constrains with the filtering rules and reply the result to the
	PCC with a PCRep message.</t>
	
	<t>The PCE could perform path computation based on the topology identified 
	by the topology filter rules that can be applied on either the native 
	topology or a user specified topology. The absence of the IGP Domain
	Identifier TLV and TE Topology Identifier TLV indicate that the PCE
	should compute within a native topology and only Filtering Rules TLV 
	is applied as the filtering rules.</t>
	
   </section>
	</section>
	
   <section numbered="true" toc="default"> <name>IANA Considerations</name>
	<section numbered="true" toc="default"> <name>TOPOLOGY-FILTER Object</name>
	<t>IANA is requested to make allocations for Topology Filter Object from the registry, as follows: </t>
	<t>TOPOLOGY-FILTER Object-Class is TBD1.</t>
    <t>TOPOLOGY-FILTER Object-Type is TBD2.</t>
	<t>The TLVs for Topology Filter Object is as follows:</t>
	  <table anchor="table_1" align="center">
          <name>TLVs for Topology Filter Object</name>
          <thead>
            <tr>
              <th align="center">Type</th>
              <th align="center">TLV</th>
              <th align="center">Reference</th>			  
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">TBD3</td>
              <td align="center">Protocol ID TLV</td>
              <td align="center">[this document]</td>			  
            </tr>			
            <tr>
              <td align="center">TBD4</td>			
              <td align="center">Multi-topology ID TLV</td>
              <td align="center">[this document]</td>
            </tr>
			<tr>
              <td align="center">TBD5</td>			
              <td align="center">Provider ID TLV</td>
              <td align="center">[this document]</td>
            </tr>
			<tr>
              <td align="center">TBD6</td>			
              <td align="center">Client ID TLV</td>
              <td align="center">[this document]</td>
            </tr>
			            <tr>
              <td align="center">TBD7</td>			
              <td align="center">Topology ID TLV</td>
              <td align="center">[this document]</td>
            </tr>
            <tr>
              <td align="center">TBD8</td>
              <td align="center">Filtering Rules TLV</td>
              <td align="center">[this document]</td>
            </tr>
          </tbody>
        </table>

	<t>IANA is requested to make allocations for sub-TLVs from the Filtering Rules TLV registry, as follows: </t>
	
		  <table anchor="table_3" align="center">
          <name>Sub-TLVs</name>
          <thead>
            <tr>
              <th align="center">Type</th>
              <th align="center">sub-TLVs for Filtering Rules TLV</th>
              <th align="center">Reference</th>			  
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">TBD9</td>
              <td align="center">Link ID sub-TLV</td>
              <td align="center">[this document]</td>			  
            </tr>
            <tr>
              <td align="center">TBD10</td>			
              <td align="center">Admin Group sub-TLV</td>
              <td align="center">[this document]</td>
            </tr>
            <tr>
              <td align="center">TBD11</td>
              <td align="center">Source Protocol sub-TLV</td>
              <td align="center">[this document]</td>
            </tr>
          </tbody>
        </table>
	</section>
	
   </section>
   
   <section numbered="true" toc="default"> <name>Acknowledgements</name>
   <t>The authors would like to thank Dhruv Dhody, Andrew Stone for their 
   review, suggestions and comments to this document.</t>
   </section>
   
   <section  numbered="true" toc="default"> <name>Security Considerations</name>
   <t>TBA</t>
   </section>
  </middle>
  
  <!--  *****BACK MATTER ***** -->

 <back>
   <references>
   
      <name>References</name>
	   <references>
	   <name>Normative References</name>
	    <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7752.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9552.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8776.xml"/>		
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8795.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6549.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8202.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5120.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4915.xml"/>
		<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5307.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3630.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5521.xml"/>
		<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7308.xml"/>
		<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8685.xml"/>		
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-teas-yang-topology-filter.xml"/>
  	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-sid-algo.xml"/>
     
      </references>	 
	</references>

 </back>
</rfc>
