Internet-Draft | PCEP Extensions for Topology Filter | May 2025 |
Xiong, et al. | Expires 29 November 2025 | [Page] |
This document proposes a set of extensions for Path Computation Element Communication Protocol (PCEP) to support the topology filter during path computation.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 29 November 2025.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
[RFC5440] 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 [RFC8231] describes a set of extensions to PCEP to enable active control of MPLS-TE and Generalized MPLS (GMPLS) tunnels. As depicted in [RFC4655], 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.¶
A PCE may perform path computation based on the network topology information collected through BGP-LS [RFC9552]. 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 [I-D.ietf-teas-yang-topology-filter], 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.¶
As defined in [I-D.ietf-teas-yang-topology-filter], 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.¶
The terminology is defined as [RFC5440], [RFC9552] and [RFC8795].¶
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 [RFC2119].¶
As defined in [I-D.ietf-teas-yang-topology-filter], 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.¶
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.¶
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.¶
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.¶
TOPOLOGY-FILTER Object-Class is TBD1.¶
TOPOLOGY-FILTER Object-Type is TBD2.¶
The format of the TOPOLOGY-FILTER object body is:¶
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 // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved (24 bits): This field MUST be set to zero on transmission and MUST be ignored on receipt.¶
Flags (8 bits): No flags are currently defined. Unassigned flags MUST be set to zero on transmission and MUST be ignored on receipt.¶
The format of optional TLVs is defined in [RFC5440] 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.¶
As defined in [RFC9552], 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.¶
The Protocol ID TLV is mandatory to identify a IGP domain and the format is as following shown:¶
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) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD3. The TLV length is 12 octets.¶
Protocol-ID (8 bits): defined in [RFC9552] section 5.2.¶
Instance-ID (64 bits): defined in [RFC9552] section 5.2.¶
Reserved: This fields MUST be set to zero on transmission and MUST be ignored on receipt.¶
The Multi-topology ID TLV is optional and is defined to carry the multi-topology-ID.¶
The format of the Multi-topology ID TLV is :¶
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD4. The TLV length is 4 octets.¶
Multi-Topology-ID (12 bits): Semantics of the IS-IS MT-ID are defined in Section 7.2 of [RFC5120]. Semantics of the OSPF MT-ID are defined in Section 3.7 of [RFC4915]. As defined in section 3.2.1.5 of [RFC7752], 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.¶
Reserved (16 bits): This field MUST be set to zero on transmission and MUST be ignored on receipt.¶
The Algorithm ID TLV is optional and is defined to carry the Algorithm-ID.¶
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 [I-D.ietf-pce-sid-algo] section 3.4.¶
The Domain ID TLV is optional and is defined to carry the Domain-ID.¶
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 [RFC8685] section 3.2.2.¶
This document defines some TE Topology Identifier TLVs for topology filter to identify a predefined TE topology within a referenced topology.¶
The Provider ID TLV is optional and the format is as following shown:¶
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD5. The TLV length is 4 octets.¶
Provider-ID (32 bits): an identifier to uniquely identify a provider as defined in [RFC8776].¶
The Client ID TLV is optional and the format is as following shown:¶
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD6. The TLV length is 4 octets.¶
Client-ID (32 bits): an identifier to uniquely identify a client as defined in [RFC8776].¶
The Topology ID TLV is optional and the format is as following shown:¶
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD7. The TLV length is 4 octets.¶
Topology-ID (32 bits): an identifier for a topology as defined in [RFC8776].¶
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.¶
The Filtering Rules TLV is optional and the format is as following shown :¶
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 // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD8. The TLV length is variable.¶
The sub-TLVs carry the attributes that can be used as rules to filter the topology.¶
The Link ID is used to identify the link that is used during the path calculation.¶
The Link ID sub-TLV is defined:¶
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD9. The TLV length is 6 octets.¶
Link-ID (32bits ): defined in IS-IS [RFC5307] and OSPF [RFC3630].¶
The Admin Group is used to include the links that is used during the path calculation.¶
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 | +- -+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the sub-TLV type is TBD10. The length is variable.¶
Extended Administrative Group: Extended Administrative Group as defined in [RFC7308].¶
The format of the Source Protocol sub-TLV is:¶
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) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The code point for the TLV type is TBD11. The TLV length is 10 octets.¶
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.¶
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.¶
IANA is requested to make allocations for Topology Filter Object from the registry, as follows:¶
TOPOLOGY-FILTER Object-Class is TBD1.¶
TOPOLOGY-FILTER Object-Type is TBD2.¶
The TLVs for Topology Filter Object is as follows:¶
Type | TLV | Reference |
---|---|---|
TBD3 | Protocol ID TLV | [this document] |
TBD4 | Multi-topology ID TLV | [this document] |
TBD5 | Provider ID TLV | [this document] |
TBD6 | Client ID TLV | [this document] |
TBD7 | Topology ID TLV | [this document] |
TBD8 | Filtering Rules TLV | [this document] |
IANA is requested to make allocations for sub-TLVs from the Filtering Rules TLV registry, as follows:¶
The authors would like to thank Dhruv Dhody, Andrew Stone for their review, suggestions and comments to this document.¶
TBA¶