<?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-06"
      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-06"/>
	
	<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>Cisco Systems</organization>

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

          <country></country>
        </postal>

        <phone></phone>

        <email>tsaad.net@gmail.com</email>
      </address>
    </author>	

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

      <organization>Ciena Corporation</organization>

      <address>

        <postal>

          <street></street>

          <city></city>

          <region></region>

          <code></code>

          <country></country>

        </postal>

        <email>mkoldych@ciena.com</email>

      </address>

    </author>
	
	
   <date year="2026"/>
   <area>Routing</area>
   <workgroup>PCE</workgroup>
   <keyword>topology</keyword>
   <abstract>
      <t>A topology filter is a data construct that is used to filter network
      topologies. The Path Computation Element (PCE) MUST take into account the 
	  topology related constraints during the path computation. This document 
	  proposes a set of extensions for Path Computation Element Communication 
	  Protocol (PCEP) to support the topology filter.</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>
	or YANG <xref target="RFC8776"></xref>. It 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) as per <xref target="RFC9543"></xref> 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", "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 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, a Topology ID as per <xref target="RFC8776"></xref>.
    A logical topology can also be associated with an NRP as per <xref target="RFC9543"></xref>
    and an NRP can be identified using NRP Identifier (NRP-ID) as per <xref target="I-D.ietf-teas-ns-ip-mpls"></xref>.
    An 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 as per <xref target="RFC9552"></xref>. 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. </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>A specific IGP domain can be identified by a combination of Protocol ID, 
	Instance ID, MT-ID as per <xref target="RFC9552"></xref> and Division ID as 
	per <xref target="RFC8685"></xref> and Algorithm ID as per <xref target="I-D.ietf-pce-sid-algo"></xref>.
	This document defines some TLVs for topology filter to identify an IGP domain
	within a referenced topology. The Protocol ID TLV is mandatory to identify an 
	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 an IGP domain and it is defined to 
   carry the Protocol ID and Instance ID.</t>
   
   <t>The format of the Protocol ID TLV is :</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 MT-ID.</t>

   <t>The format of the Multi-topology ID TLV is :</t>
  
  
  <figure title="Multi-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=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): it indicates the IS-IS MT-ID as defined in 
   Sections 7.1 and 7.2 of <xref target="RFC5120"></xref> or the OSPF MT-ID as 
   defined in Section 3.7 of <xref target="RFC4915"></xref>. </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 4.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>NRP TLV</name>
   
	<t>The NRP TLV is optional and is defined to carry the NRP-ID to filter the NRP topology.</t>

    <t>The NRP TLV MAY be inserted so as to provide the NRP information for the 
	computed path. The format of the TLV is defined in <xref target="I-D.ietf-pce-pcep-nrp"></xref> section 2.1.</t>		
	</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            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Exclude-any                             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Include-any                             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Include-all                             |    
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     //                     Optional sub-TLVs                        //
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 
      
    ]]></artwork>
   </figure>
   
    <t>The code point for the TLV type is TBD8. The TLV length is variable.</t>
	
	<t>The fields of Exclude-any, Include-any and Include-all are identical to
   the fields of the LSPA object as per <xref target="RFC5440"></xref> and 
   the SESSION-ATTRIBUTE object as per <xref target="RFC3209"></xref>.</t>
   
	<t>The sub-TLVs carry the attributes that can be used as rules to 
	filter the topology and some sub-TLVs are defined in the following sections.</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>The TOPOLOGY-FILTER object can be carried within a PCReq message, 
	or a PCRep message in case of unsuccessful path computation. In this 
	unsuccessful case, the PCRep message also contains a NO-PATH object, 
	and the TOPOLOGY-FILTER object is used to indicate the set of topology
	constriants that could not be satisfied.</t>
	
	<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>Operational Considerations</name>
	  
	  <t>A PCEP implementation MAY allow the capability of supporting the 
	  PCEP extensions introduced in this document. All manageability and operational 
	  requirements and considerations listed in <xref target="RFC5440"></xref> and <xref target="RFC8231"></xref>, 
	  apply to this document.</t>
	  
	  <t>The PCEP extensions defined in this document do not impose any new 
	  requirements on other protocols but rely on the topology information from
	  IGP, BGP-LS or YANG data model.</t>
	  
	  <t>A PCEP implementation supporting this document SHOULD allow the
      operator to view the topology filter capability defined in this document.
	  and take the topology constraints into account during the path 
	  computation especially the topology filtering rules which is defined in 
	  <xref target="I-D.ietf-teas-yang-topology-filter"></xref>.</t>
	  
	  <t>The PCEP YANG module is defined in <xref target="I-D.ietf-pce-pcep-yang"></xref>.  
	  In future, this YANG module should be extended or augmented to provide
      the additional information relating to topology filter.</t>
	  
	  </section>

   
   <section  numbered="true" toc="default"> <name>Security Considerations</name>

   <t>This document defines a new Topology Filter Object, which do not
   introduce any new security considerations beyond those already listed
   in <xref target="RFC4655"></xref>, <xref target="RFC5440"></xref>, 
   <xref target="RFC8231"></xref>, <xref target="RFC8685"></xref> and 
   <xref target="I-D.ietf-pce-sid-algo"></xref>.</t>
   
   <t>The security considerations described in <xref target="RFC8795"></xref> and 
   <xref target="I-D.ietf-teas-yang-topology-filter"></xref> apply to 
   the topology filter described in this document as well.</t>   
   </section>
  </middle>
  
  <!--  *****BACK MATTER ***** -->

 <back>
   <references>
   
      <name>References</name>
	   <references><name>Infomative References</name>
		<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3209.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9543.xml"/>	
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-teas-ns-ip-mpls"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-pcep-yang"/>
      </references>			
	   <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.8174.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.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.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.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"/>
  	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-pcep-nrp.xml"/>
      </references>
	</references>

 </back>
</rfc>
