rfc9168.original | rfc9168.txt | |||
---|---|---|---|---|
Network Working Group D. Dhody | Internet Engineering Task Force (IETF) D. Dhody | |||
Internet-Draft Huawei Technologies | Request for Comments: 9168 Huawei Technologies | |||
Intended status: Standards Track A. Farrel | Category: Standards Track A. Farrel | |||
Expires: May 3, 2021 Old Dog Consulting | ISSN: 2070-1721 Old Dog Consulting | |||
Z. Li | Z. Li | |||
Huawei Technologies | Huawei Technologies | |||
October 30, 2020 | January 2022 | |||
PCEP Extension for Flow Specification | Path Computation Element Communication Protocol (PCEP) Extension for | |||
draft-ietf-pce-pcep-flowspec-12 | Flow Specification | |||
Abstract | Abstract | |||
The Path Computation Element (PCE) is a functional component capable | The Path Computation Element (PCE) is a functional component capable | |||
of selecting paths through a traffic engineering network. These | of selecting paths through a traffic engineering (TE) network. These | |||
paths may be supplied in response to requests for computation, or may | paths may be supplied in response to requests for computation or may | |||
be unsolicited requests issued by the PCE to network elements. Both | be unsolicited requests issued by the PCE to network elements. Both | |||
approaches use the PCE Communication Protocol (PCEP) to convey the | approaches use the PCE Communication Protocol (PCEP) to convey the | |||
details of the computed path. | details of the computed path. | |||
Traffic flows may be categorized and described using "Flow | Traffic flows may be categorized and described using "Flow | |||
Specifications". RFC XXXX defines the Flow Specification and | Specifications". RFC 8955 defines the Flow Specification and | |||
describes how Flow Specification Components are used to describe | describes how Flow Specification components are used to describe | |||
traffic flows. RFC XXXX also defines how Flow Specifications may be | traffic flows. RFC 8955 also defines how Flow Specifications may be | |||
distributed in BGP to allow specific traffic flows to be associated | distributed in BGP to allow specific traffic flows to be associated | |||
with routes. | with routes. | |||
This document specifies a set of extensions to PCEP to support | This document specifies a set of extensions to PCEP to support | |||
dissemination of Flow Specifications. This allows a PCE to indicate | dissemination of Flow Specifications. This allows a PCE to indicate | |||
what traffic should be placed on each path that it is aware of. | what traffic should be placed on each path that it is aware of. | |||
The extensions defined in this document include the creation, update, | The extensions defined in this document include the creation, update, | |||
and withdrawal of Flow Specifications via PCEP, and can be applied to | and withdrawal of Flow Specifications via PCEP and can be applied to | |||
tunnels initiated by the PCE or to tunnels where control is delegated | tunnels initiated by the PCE or to tunnels where control is delegated | |||
to the PCE by the PCC. Furthermore, a PCC requesting a new path can | to the PCE by the Path Computation Client (PCC). Furthermore, a PCC | |||
include Flow Specifications in the request to indicate the purpose of | requesting a new path can include Flow Specifications in the request | |||
the tunnel allowing the PCE to factor this into the path computation. | to indicate the purpose of the tunnel allowing the PCE to factor this | |||
into the path computation. | ||||
RFC Editor Note: Please replace XXXX in the Abstract with the RFC | ||||
number assigned to draft-ietf-idr-rfc5575bis when it is published. | ||||
Please remove this note. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
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 | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on May 3, 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9168. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Revised BSD License text as described in Section 4.e of the | |||
the Trust Legal Provisions and are provided without warranty as | Trust Legal Provisions and are provided without warranty as described | |||
described in the Simplified BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Terminology | |||
3. Procedures for PCE Use of Flow Specifications . . . . . . . . 6 | 3. Procedures for PCE Use of Flow Specifications | |||
3.1. Context for PCE Use of Flow Specifications . . . . . . . 6 | 3.1. Context for PCE Use of Flow Specifications | |||
3.2. Elements of Procedure . . . . . . . . . . . . . . . . . . 7 | 3.2. Elements of the Procedure | |||
3.2.1. Capability Advertisement . . . . . . . . . . . . . . 7 | 3.2.1. Capability Advertisement | |||
3.2.2. Dissemination Procedures . . . . . . . . . . . . . . 8 | 3.2.1.1. PCEP Open Message | |||
3.2.3. Flow Specification Synchronization . . . . . . . . . 9 | 3.2.1.2. IGP PCE Capabilities Advertisement | |||
4. PCE FlowSpec Capability TLV . . . . . . . . . . . . . . . . . 10 | 3.2.2. Dissemination Procedures | |||
5. PCEP FLOWSPEC Object . . . . . . . . . . . . . . . . . . . . 10 | 3.2.3. Flow Specification Synchronization | |||
6. Flow Filter TLV and L2 Flow Filter TLV . . . . . . . . . . . 13 | 4. PCE FlowSpec Capability TLV | |||
7. Flow Specification TLVs . . . . . . . . . . . . . . . . . . . 13 | 5. PCEP FLOWSPEC Object | |||
7.1. L2 Flow Specification TLVs . . . . . . . . . . . . . . . 17 | 6. Flow Filter TLV | |||
8. Detailed Procedures . . . . . . . . . . . . . . . . . . . . . 18 | 7. Flow Specification TLVs | |||
8.1. Default Behavior and Backward Compatibility . . . . . . . 18 | 8. Detailed Procedures | |||
8.2. Composite Flow Specifications . . . . . . . . . . . . . . 19 | 8.1. Default Behavior and Backward Compatibility | |||
8.3. Modifying Flow Specifications . . . . . . . . . . . . . . 19 | 8.2. Composite Flow Specifications | |||
8.4. Multiple Flow Specifications . . . . . . . . . . . . . . 19 | 8.3. Modifying Flow Specifications | |||
8.5. Adding and Removing Flow Specifications . . . . . . . . . 20 | 8.4. Multiple Flow Specifications | |||
8.6. VPN Identifiers . . . . . . . . . . . . . . . . . . . . . 20 | 8.5. Adding and Removing Flow Specifications | |||
8.7. Priorities and Overlapping Flow Specifications . . . . . 20 | 8.6. VPN Identifiers | |||
9. PCEP Messages . . . . . . . . . . . . . . . . . . . . . . . . 21 | 8.7. Priorities and Overlapping Flow Specifications | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | 9. PCEP Messages | |||
10.1. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 24 | 10. IANA Considerations | |||
10.1.1. PCEP FLOWSPEC Object Flag Field . . . . . . . . . . 24 | 10.1. PCEP Objects | |||
10.2. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 25 | 10.1.1. PCEP FLOWSPEC Object Flag Field | |||
10.3. Flow Specification TLV Type Indicators . . . . . . . . . 25 | 10.2. PCEP TLV Type Indicators | |||
10.4. L2 Flow Specification TLV Type Indicators . . . . . . . 26 | 10.3. Flow Specification TLV Type Indicators | |||
10.5. PCEP Error Codes . . . . . . . . . . . . . . . . . . . . 27 | 10.4. PCEP Error Codes | |||
10.6. PCE Capability Flag . . . . . . . . . . . . . . . . . . 27 | 10.5. PCE Capability Flag | |||
11. Implementation Status . . . . . . . . . . . . . . . . . . . . 27 | 11. Security Considerations | |||
12. Security Considerations . . . . . . . . . . . . . . . . . . . 28 | 12. Manageability Considerations | |||
13. Manageability Considerations . . . . . . . . . . . . . . . . 29 | 12.1. Management of Multiple Flow Specifications | |||
13.1. Management of Multiple Flow Specifications . . . . . . . 29 | 12.2. Control of Function through Configuration and Policy | |||
13.2. Control of Function through Configuration and Policy . . 30 | 12.3. Information and Data Models | |||
13.3. Information and Data Models . . . . . . . . . . . . . . 30 | 12.4. Liveness Detection and Monitoring | |||
13.4. Liveness Detection and Monitoring . . . . . . . . . . . 31 | 12.5. Verifying Correct Operation | |||
13.5. Verifying Correct Operation . . . . . . . . . . . . . . 31 | 12.6. Requirements for Other Protocols and Functional Components | |||
13.6. Requirements on Other Protocols and Functional | 12.7. Impact on Network Operation | |||
Components . . . . . . . . . . . . . . . . . . . . . . . 31 | 13. References | |||
13.7. Impact on Network Operation . . . . . . . . . . . . . . 31 | 13.1. Normative References | |||
14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31 | 13.2. Informative References | |||
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 | Acknowledgements | |||
15.1. Normative References . . . . . . . . . . . . . . . . . . 32 | Contributors | |||
15.2. Informative References . . . . . . . . . . . . . . . . . 33 | Authors' Addresses | |||
Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 35 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 | ||||
1. Introduction | 1. Introduction | |||
[RFC4655] defines the Path Computation Element (PCE), a functional | [RFC4655] defines the Path Computation Element (PCE), a functional | |||
component capable of computing paths for use in traffic engineering | component capable of computing paths for use in traffic engineering | |||
networks. PCE was originally conceived for use in Multiprotocol | networks. PCE was originally conceived for use in Multiprotocol | |||
Label Switching (MPLS) for Traffic Engineering (TE) networks to | Label Switching (MPLS) for traffic engineering (TE) networks to | |||
derive the routes of Label Switched Paths (LSPs). However, the scope | derive the routes of Label Switched Paths (LSPs). However, the scope | |||
of PCE was quickly extended to make it applicable to Generalized MPLS | of PCE was quickly extended to make it applicable to networks | |||
(GMPLS)-controlled networks, and more recent work has brought other | controlled by Generalized MPLS (GMPLS), and more recent work has | |||
traffic engineering technologies and planning applications into scope | brought other traffic engineering technologies and planning | |||
(for example, Segment Routing (SR) [RFC8664]). | applications into scope (for example, Segment Routing (SR) | |||
[RFC8664]). | ||||
[RFC5440] describes the Path Computation Element Communication | [RFC5440] describes the PCE Communication Protocol (PCEP). PCEP | |||
Protocol (PCEP). PCEP defines the communication between a Path | defines the communication between a Path Computation Client (PCC) and | |||
Computation Client (PCC) and a PCE, or between PCE and PCE, enabling | a PCE, or between PCE and PCE, enabling computation of the path for | |||
computation of path for MPLS-TE LSPs. | MPLS-TE LSPs. | |||
Stateful PCE [RFC8231] specifies a set of extensions to PCEP to | Stateful PCE [RFC8231] specifies a set of extensions to PCEP to | |||
enable control of TE-LSPs by a PCE that retains state about the LSPs | enable control of TE-LSPs by a PCE that retains state about the LSPs | |||
provisioned in the network (a stateful PCE). [RFC8281] describes the | provisioned in the network (a stateful PCE). [RFC8281] describes the | |||
setup, maintenance, and teardown of LSPs initiated by a stateful PCE | setup, maintenance, and teardown of LSPs initiated by a stateful PCE | |||
without the need for local configuration on the PCC, thus allowing | without the need for local configuration on the PCC, thus allowing | |||
for a dynamic network that is centrally controlled. [RFC8283] | for a dynamic network that is centrally controlled. [RFC8283] | |||
introduces the architecture for PCE as a central controller and | introduces the architecture for PCE as a central controller and | |||
describes how PCE can be viewed as a component that performs | describes how PCE can be viewed as a component that performs | |||
computation to place 'flows' within the network and decide how these | computation to place "flows" within the network and decide how these | |||
flows are routed. | flows are routed. | |||
The description of traffic flows by the combination of multiple Flow | The description of traffic flows by the combination of multiple Flow | |||
Specification Components and their dissemination as traffic flow | Specification components and their dissemination as traffic flow | |||
specifications (Flow Specifications) is described for BGP in | specifications (Flow Specifications) is described for BGP in | |||
[I-D.ietf-idr-rfc5575bis]. In BGP, a Flow Specification is comprised | [RFC8955]. In BGP, a Flow Specification is comprised of traffic | |||
of traffic filtering rules and is associated with actions to perform | filtering rules and is associated with actions to perform on the | |||
on the packets that match the Flow Specification. The BGP routers | packets that match the Flow Specification. The BGP routers that | |||
that receive a Flow Specification can classify received packets | receive a Flow Specification can classify received packets according | |||
according to the traffic filtering rules and can direct packets based | to the traffic filtering rules and can direct packets based on the | |||
on the associated actions. | associated actions. | |||
When a PCE is used to initiate tunnels (such as TE-LSPs or SR paths) | When a PCE is used to initiate tunnels (such as TE-LSPs or SR paths) | |||
using PCEP, it is important that the head end of the tunnels | using PCEP, it is important that the head end of the tunnels | |||
understands what traffic to place on each tunnel. The data flows | understands what traffic to place on each tunnel. The data flows | |||
intended for a tunnel can be described using Flow Specification | intended for a tunnel can be described using Flow Specification | |||
Components. When PCEP is in use for tunnel initiation it makes sense | components. When PCEP is in use for tunnel initiation, it makes | |||
for that same protocol to be used to distribute the Flow | sense for that same protocol to be used to distribute the Flow | |||
Specification Components that describe what data is to flow on those | Specification components that describe what data is to flow on those | |||
tunnels. | tunnels. | |||
This document specifies a set of extensions to PCEP to support | This document specifies a set of extensions to PCEP to support | |||
dissemination of Flow Specification Components. We term the | dissemination of Flow Specification components. We term the | |||
description of a traffic flow using Flow Specification Components as | description of a traffic flow using Flow Specification components as | |||
a "Flow Specification". This term is conceptually the same as the | a "Flow Specification". This term is conceptually the same as the | |||
term used in [I-D.ietf-idr-rfc5575bis], however, no mechanism is | term used in [RFC8955]; however, no mechanism is provided to | |||
provided to distribute an action associated with the Flow | distribute an action associated with the Flow Specification because | |||
Specification because there is only one action that is applicable in | there is only one action that is applicable in the PCEP context (that | |||
the PCEP context (that is, directing the matching traffic to the | is, directing the matching traffic to the identified LSP). | |||
identified LSP). | ||||
The extensions defined in this document include the creation, update, | The extensions defined in this document include the creation, update, | |||
and withdrawal of Flow Specifications via PCEP, and can be applied to | and withdrawal of Flow Specifications via PCEP and can be applied to | |||
tunnels initiated by the PCE or to tunnels where control is delegated | tunnels initiated by the PCE or to tunnels where control is delegated | |||
to the PCE by the PCC. Furthermore, a PCC requesting a new path can | to the PCE by the PCC. Furthermore, a PCC requesting a new path can | |||
include Flow Specifications in the request to indicate the purpose of | include Flow Specifications in the request to indicate the purpose of | |||
the tunnel allowing the PCE to factor this into the path computation. | the tunnel allowing the PCE to factor this into the path computation. | |||
Flow Specifications are carried in TLVs within a new object called | Flow Specifications are carried in TLVs within a new object called | |||
the FLOWSPEC object defined in this document. The flow filtering | the FLOWSPEC object defined in this document. The flow filtering | |||
rules indicated by the Flow Specifications are mainly defined by BGP | rules indicated by the Flow Specifications are mainly defined by BGP | |||
Flow Specifications. | Flow Specifications. | |||
Note that PCEP-installed Flow Specifications are intended to be | Note that PCEP-installed Flow Specifications are intended to be | |||
installed only at the head-end of the LSP to which they direct | installed only at the head end of the LSP to which they direct | |||
traffic. It is acceptable (and potentially desirable) that other | traffic. It is acceptable (and potentially desirable) that other | |||
routers in the network have Flow Specifications installed that match | routers in the network have Flow Specifications installed that match | |||
the same traffic, but direct it onto different routes or to different | the same traffic but direct it onto different routes or to different | |||
LSPs. Those other Flow Specifications may be installed using the | LSPs. Those other Flow Specifications may be installed using the | |||
PCEP extensions defined in this document, may be distributed using | PCEP extensions defined in this document, distributed using BGP per | |||
BGP per [I-D.ietf-idr-rfc5575bis], or may be configured using manual | [RFC8955], or configured using manual operations. Since this | |||
operations. Since this document is about PCEP-installed Flow | document is about PCEP-installed Flow Specifications, those other | |||
Specifications, those other Flow Specifications at other routers are | Flow Specifications at other routers are out of scope. In this | |||
out of scope. In this context, however, it is worth noting that | context, however, it is worth noting that changes to the wider | |||
changes to the wider routing system (such as the distribution and | routing system (such as the distribution and installation of BGP Flow | |||
installation of BGP Flow Specifications, or fluctuations in the IGP | Specifications, or fluctuations in the IGP link state database) might | |||
link state database) might mean that traffic matching the PCEP Flow | mean that traffic matching the PCEP Flow Specification never reaches | |||
Specification never reaches the head end of the LSP at which the PCEP | the head end of the LSP at which the PCEP Flow Specification has been | |||
Flow Specification has been installed. This may or may not be | installed. This may or may not be desirable according to the | |||
desirable according to the operator's traffic engineering and routing | operator's traffic engineering and routing policies and is | |||
policies, and is particularly applicable at LSPs that do not have | particularly applicable at LSPs that do not have their head ends at | |||
their head ends at the ingress-edge of the network, but it is not an | the ingress edge of the network, but it is not an effect that this | |||
effect that this document seeks to address. | document seeks to address. | |||
2. Terminology | 2. Terminology | |||
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 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
This document uses the following terms defined in [RFC5440]: PCC, | This document uses the following terms defined in [RFC5440]: PCC, | |||
PCE, PCEP Peer. | PCE, and PCEP Peer. | |||
The following term from [I-D.ietf-idr-rfc5575bis] is used frequently | The following term from [RFC8955] is used frequently throughout this | |||
throughout this document: | document: | |||
A Flow Specification is an n-tuple consisting of several matching | | A Flow Specification is an n-tuple consisting of several matching | |||
criteria that can be applied to IP traffic. A given IP packet is | | criteria that can be applied to IP traffic. A given IP packet is | |||
said to match the defined Flow Specification if it matches all the | | said to match the defined Flow Specification if it matches all the | |||
specified criteria. | | specified criteria. | |||
[I-D.ietf-idr-rfc5575bis] also states that "A given Flow | [RFC8955] also states that "[a] given Flow Specification may be | |||
Specification may be associated with a set of attributes," and that, | associated with a set of attributes" and that "...attributes can be | |||
"...attributes can be used to encode a set of predetermined actions." | used to encode a set of predetermined actions." However, in the | |||
However, in the context of this document, no action is explicitly | context of this document, no action is explicitly specified as | |||
specified associated with the Flow Specification since the action | associated with the Flow Specification since the action of forwarding | |||
"forward all matching traffic onto the associated path" is implicit. | all matching traffic onto the associated path is implicit. | |||
How an implementation decides how to filter traffic that matches a | How an implementation decides to filter traffic that matches a Flow | |||
Flow Specification does not form part of this specification, but a | Specification does not form part of this specification, but a flag is | |||
flag is provided to indicate whether the sender of a PCEP message | provided to indicate whether the sender of a PCEP message that | |||
that includes a Flow Specification intends it to be installed as a | includes a Flow Specification intends it to be installed as a Longest | |||
Longest Prefix Match route or as a Flow Specification policy. | Prefix Match (LPM) route or as a Flow Specification policy. | |||
This document uses the terms "stateful PCE" and "active PCE" as | This document uses the terms "stateful PCE" and "active PCE" as | |||
advocated in [RFC7399]. | advocated in [RFC7399]. | |||
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 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
3. Procedures for PCE Use of Flow Specifications | 3. Procedures for PCE Use of Flow Specifications | |||
3.1. Context for PCE Use of Flow Specifications | 3.1. Context for PCE Use of Flow Specifications | |||
In the PCE architecture there are five steps in the setup and use of | In the PCE architecture, there are five steps in the setup and use of | |||
LSPs: | LSPs: | |||
1. Decide which LSPs to set up. The decision may be made by a user, | 1. Decide which LSPs to set up. The decision may be made by a user, | |||
by a PCC, or by the PCE. There can be a number of triggers for | by a PCC, or by the PCE. There can be a number of triggers for | |||
this including user intervention and dynamic response to changes | this, including user intervention and dynamic response to changes | |||
in traffic demands. | in traffic demands. | |||
2. Decide what properties to assign to an LSP. This can include | 2. Decide what properties to assign to an LSP. This can include | |||
bandwidth reservations, priorities, and DSCP (i.e., MPLS Traffic | bandwidth reservations, priorities, and the Differentiated | |||
Class field). This function is also determined by user | Services Code Point (DSCP) (i.e., MPLS Traffic Class field). | |||
configuration or in response to predicted or observed traffic | This function is also determined by user configuration or in | |||
demands. | response to predicted or observed traffic demands. | |||
3. Decide what traffic to put on the LSP. This is effectively | 3. Decide what traffic to put on the LSP. This is effectively | |||
determining which traffic flows to assign to which LSPs, and | determining which traffic flows to assign to which LSPs; | |||
practically, this is closely linked to the first two decisions | practically, this is closely linked to the first two decisions | |||
listed above. | listed above. | |||
4. Cause the LSP to be set up and modified to have the right | 4. Cause the LSP to be set up and modified to have the right | |||
characteristics. This will usually involve the PCE advising or | characteristics. This will usually involve the PCE advising or | |||
instructing the PCC at the head end of the LSP, and the PCC will | instructing the PCC at the head end of the LSP, and the PCC will | |||
then signal the LSP across the network. | then signal the LSP across the network. | |||
5. Tell the head end of the LSP what traffic to put on the LSP. | 5. Tell the head end of the LSP what traffic to put on the LSP. | |||
This may happen after or at the same time as the LSP is set up. | This may happen after or at the same time as the LSP is set up. | |||
This step is the subject of this document. | This step is the subject of this document. | |||
3.2. Elements of Procedure | 3.2. Elements of the Procedure | |||
There are three elements of procedure: | There are three elements in the procedure: | |||
o A PCE and a PCC must be able to indicate whether or not they | 1. A PCE and a PCC must be able to indicate whether or not they | |||
support the use of Flow Specifications. | support the use of Flow Specifications. | |||
o A PCE or PCC must be able to include Flow Specifications in PCEP | 2. A PCE or PCC must be able to include Flow Specifications in PCEP | |||
messages with clear understanding of the applicability of those | messages with a clear understanding of the applicability of those | |||
Flow Specifications in each case. This includes whether the use | Flow Specifications in each case. This includes whether the use | |||
of such information is mandatory, constrained, or optional, and | of such information is mandatory, constrained, or optional and | |||
how overlapping Flow Specifications will be resolved. | how overlapping Flow Specifications will be resolved. | |||
o Flow Specification information/state must be synchronized between | 3. Flow Specification information/state must be synchronized between | |||
PCEP peers so that, on recovery, the peers have the same | PCEP peers so that, on recovery, the peers have the same | |||
understanding of which Flow Specifications apply just as is | understanding of which Flow Specifications apply just as is | |||
required in the case of stateful PCE and LSP delegation (see | required in the case of stateful PCE and LSP delegation (see | |||
Section 5.6 of [RFC8231]). | Section 5.6 of [RFC8231]). | |||
The following subsections describe these points. | The following subsections describe these points. | |||
3.2.1. Capability Advertisement | 3.2.1. Capability Advertisement | |||
As with most PCEP capability advertisements, the ability to support | As with most PCEP capability advertisements, the ability to support | |||
Flow Specifications can be indicated in the PCEP OPEN message or in | Flow Specifications can be indicated in the PCEP Open message or in | |||
IGP PCE capability advertisements. | IGP PCE capability advertisements. | |||
3.2.1.1. PCEP OPEN Message | 3.2.1.1. PCEP Open Message | |||
During PCEP session establishment, a PCC or PCE that supports the | During PCEP session establishment, a PCC or PCE that supports the | |||
procedures described in this document announces this fact by | procedures described in this document announces this fact by | |||
including the "PCE FlowSpec Capability" TLV (described in Section 4) | including the PCE FlowSpec Capability TLV (described in Section 4) in | |||
in the OPEN Object carried in the PCEP Open message. | the OPEN object carried in the PCEP Open message. | |||
The presence of the PCE FlowSpec Capability TLV in the OPEN Object in | The presence of the PCE FlowSpec Capability TLV in the OPEN object in | |||
a PCE's OPEN message indicates that the PCE can distribute FlowSpecs | a PCE's Open message indicates that the PCE can distribute FlowSpecs | |||
to PCCs and can receive FlowSpecs in messages from PCCs. | to PCCs and can receive FlowSpecs in messages from PCCs. | |||
The presence of the PCE FlowSpec Capability TLV in the OPEN Object in | The presence of the PCE FlowSpec Capability TLV in the OPEN object in | |||
a PCC's OPEN message indicates that the PCC supports the FlowSpec | a PCC's Open message indicates that the PCC supports the FlowSpec | |||
functionality described in this document. | functionality described in this document. | |||
If either one of a pair of PCEP peers does not include the PCE | If either one of a pair of PCEP peers does not include the PCE | |||
FlowSpec Capability TLV in the OPEN Object in its OPEN message, then | FlowSpec Capability TLV in the OPEN object in its Open message, then | |||
the other peer MUST NOT include a FLOWSPEC object in any PCEP message | the other peer MUST NOT include a FLOWSPEC object in any PCEP message | |||
sent to the peer. If a FLOWSPEC object is received when support has | sent to the peer. If a FLOWSPEC object is received when support has | |||
not been indicated, the receiver will respond with a PCErr message | not been indicated, the receiver will respond with a PCErr message | |||
reporting the objects containing the FlowSpec as described in | reporting the objects containing the FlowSpec as described in | |||
[RFC5440]: that is, it will use "Unknown Object" if it does not | ||||
[RFC5440]: that is, it will use 'Unknown Object' if it does not | support this specification and "Not supported object" if it supports | |||
support this specification, and 'Not supported object' if it supports | ||||
this specification but has not chosen to support FLOWSPEC objects on | this specification but has not chosen to support FLOWSPEC objects on | |||
this PCEP session. | this PCEP session. | |||
3.2.1.2. IGP PCE Capabilities Advertisement | 3.2.1.2. IGP PCE Capabilities Advertisement | |||
The ability to advertise support for PCEP and PCE features in IGP | The ability to advertise support for PCEP and PCE features in IGP | |||
advertisements is provided for OSPF in [RFC5088] and for IS-IS in | advertisements is provided for OSPF in [RFC5088] and for IS-IS in | |||
[RFC5089]. The mechanism uses the PCE Discovery TLV which has a PCE- | [RFC5089]. The mechanism uses the PCE Discovery TLV, which has a | |||
CAP-FLAGS sub-TLV containing bit-flags each of which indicates | PCE-CAP-FLAGS sub-TLV containing bit flags, each of which indicates | |||
support for a different feature. | support for a different feature. | |||
This document defines a new PCE-CAP-FLAGS sub-TLV bit, the FlowSpec | This document defines a new PCE-CAP-FLAGS sub-TLV bit, the FlowSpec | |||
Capable flag (bit number TBD1). Setting the bit indicates that an | Capable flag (bit number 16). Setting the bit indicates that an | |||
advertising PCE supports the procedures defined in this document. | advertising PCE supports the procedures defined in this document. | |||
Note that while PCE FlowSpec Capability may be advertised during | Note that while PCE FlowSpec capability may be advertised during | |||
discovery, PCEP speakers that wish to use Flow Specification in PCEP | discovery, PCEP speakers that wish to use Flow Specification in PCEP | |||
MUST negotiate PCE FlowSpec Capability during PCEP session setup, as | MUST negotiate PCE FlowSpec capability during PCEP session setup, as | |||
specified in Section 3.2.1.1. A PCC MAY initiate PCE FlowSpec | specified in Section 3.2.1.1. A PCC MAY initiate PCE FlowSpec | |||
Capability negotiation at PCEP session setup even if it did not | capability negotiation at PCEP session setup even if it did not | |||
receive any IGP PCE capability advertisement, and a PCEP peer that | receive any IGP PCE capability advertisement, and a PCEP peer that | |||
advertised support for FlowSpec in the IGP is not obliged to support | advertised support for FlowSpec in the IGP is not obliged to support | |||
these procedures on any given PCEP session. | these procedures on any given PCEP session. | |||
3.2.2. Dissemination Procedures | 3.2.2. Dissemination Procedures | |||
This section describes the procedures to support Flow Specifications | This section describes the procedures to support Flow Specifications | |||
in PCEP messages. | in PCEP messages. | |||
The primary purpose of distributing Flow Specification information is | The primary purpose of distributing Flow Specification information is | |||
to allow a PCE to indicate to a PCC what traffic it should place on a | to allow a PCE to indicate to a PCC what traffic it should place on a | |||
path (such as an LSP or an SR path). This means that the Flow | path (such as an LSP or an SR path). This means that the Flow | |||
Specification may be included in: | Specification may be included in: | |||
o PCInitiate messages so that an active PCE can indicate the traffic | * PCInitiate messages so that an active PCE can indicate the traffic | |||
to place on a path at the time that the PCE instantiates the path. | to place on a path at the time that the PCE instantiates the path. | |||
o PCUpd messages so that an active PCE can indicate or change the | * PCUpd messages so that an active PCE can indicate or change the | |||
traffic to place on a path that has already been set up. | traffic to place on a path that has already been set up. | |||
o PCRpt messages so that a PCC can report the traffic that the PCC | * PCRpt messages so that a PCC can report the traffic that the PCC | |||
will place on the path. | will place on the path. | |||
o PCReq messages so that a PCC can indicate what traffic it plans to | * PCReq messages so that a PCC can indicate what traffic it plans to | |||
place on a path at the time it requests the PCE to perform a | place on a path when it requests that the PCE perform a | |||
computation in case that information aids the PCE in its work. | computation in case that information aids the PCE in its work. | |||
o PCRep messages so that a PCE that has been asked to compute a path | * PCRep messages so that a PCE that has been asked to compute a path | |||
can suggest which traffic could be placed on a path that a PCC may | can suggest which traffic could be placed on a path that a PCC may | |||
be about to set up. | be about to set up. | |||
o PCErr messages so that issues related to paths and the traffic | * PCErr messages so that issues related to paths and the traffic | |||
they carry can be reported to the PCE by the PCC, and so that | they carry can be reported to the PCE by the PCC and problems with | |||
problems with other PCEP messages that carry Flow Specifications | other PCEP messages that carry Flow Specifications can be | |||
can be reported. | reported. | |||
To carry Flow Specifications in PCEP messages, this document defines | To carry Flow Specifications in PCEP messages, this document defines | |||
a new PCEP object called the PCEP FLOWSPEC object. The object is | a new PCEP object called the "PCEP FLOWSPEC object". The object is | |||
OPTIONAL in the messages described above and MAY appear more than | OPTIONAL in the messages described above and MAY appear more than | |||
once in each message. | once in each message. | |||
To describe a traffic flow, the PCEP FLOWSPEC object carries one of | To describe a traffic flow, the PCEP FLOWSPEC object carries a Flow | |||
the following combinations of TLVs: | Filter TLV. | |||
o zero or one Flow Filter TLV | ||||
o one L2 Flow Filter TLV | ||||
o both a Flow Filter TLV and an L2 Flow Filter TLV | ||||
The inclusion of multiple PCEP FLOWSPEC objects allows multiple | The inclusion of multiple PCEP FLOWSPEC objects allows multiple | |||
traffic flows to be placed on a single path. | traffic flows to be placed on a single path. | |||
Once a PCE and PCC have established that they can both support the | Once a PCE and PCC have established that they can both support the | |||
use of Flow Specifications in PCEP messages, such information may be | use of Flow Specifications in PCEP messages, such information may be | |||
exchanged at any time for new or existing paths. | exchanged at any time for new or existing paths. | |||
The application and prioritization of Flow Specifications is | The application and prioritization of Flow Specifications are | |||
described in Section 8.7. | described in Section 8.7. | |||
As per [RFC8231], any attributes of the path received from a PCE are | As per [RFC8231], any attributes of the path received from a PCE are | |||
subject to PCC's local policy. This holds good for the Flow | subject to the PCC's local policy. This holds true for the Flow | |||
Specifications as well. | Specifications as well. | |||
3.2.3. Flow Specification Synchronization | 3.2.3. Flow Specification Synchronization | |||
The Flow Specifications are carried along with the LSP State | The Flow Specifications are carried along with the LSP state | |||
information as per [RFC8231] making the Flow Specifications part of | information as per [RFC8231], making the Flow Specifications part of | |||
the LSP database (LSP-DB). Thus, the synchronization of the Flow | the LSP database (LSP-DB). Thus, the synchronization of the Flow | |||
Specification information is done as part of LSP-DB synchronization. | Specification information is done as part of LSP-DB synchronization. | |||
This may be achieved using normal state synchronization procedures as | This may be achieved using normal state synchronization procedures as | |||
described in [RFC8231] or enhanced state synchronization procedures | described in [RFC8231] or enhanced state synchronization procedures | |||
as defined in [RFC8232]. | as defined in [RFC8232]. | |||
The approach selected will be implementation and deployment specific | The approach selected will be implementation and deployment specific | |||
and will depend on issues such as how the databases are constructed | and will depend on issues such as how the databases are constructed | |||
and what level of synchronization support is needed. | and what level of synchronization support is needed. | |||
4. PCE FlowSpec Capability TLV | 4. PCE FlowSpec Capability TLV | |||
The PCE-FLOWSPEC-CAPABILITY TLV is an optional TLV that can be | The PCE-FLOWSPEC-CAPABILITY TLV is an optional TLV that can be | |||
carried in the OPEN Object [RFC5440] to exchange PCE FlowSpec | carried in the OPEN object [RFC5440] to exchange the PCE FlowSpec | |||
capabilities of the PCEP speakers. | capabilities of the PCEP speakers. | |||
The format of the PCE-FLOWSPEC-CAPABILITY TLV follows the format of | The format of the PCE-FLOWSPEC-CAPABILITY TLV follows the format of | |||
all PCEP TLVs as defined in [RFC5440] and is shown in Figure 1. | all PCEP TLVs as defined in [RFC5440] and is shown in Figure 1. | |||
0 1 2 3 | 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 | 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=TBD2 | Length=2 | | | Type=51 | Length=2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Value=0 | Padding | | | Value=0 | Padding | | |||
+---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
Figure 1: PCE-FLOWSPEC-CAPABILITY TLV format | Figure 1: PCE-FLOWSPEC-CAPABILITY TLV Format | |||
The type of the PCE-FLOWSPEC-CAPABILITY TLV is TBD2 and it has a | The type of the PCE-FLOWSPEC-CAPABILITY TLV is 51, and it has a fixed | |||
fixed length of 2 octets. The Value field MUST be set to 0 and MUST | length of 2 octets. The Value field MUST be set to 0 and MUST be | |||
be ignored on receipt. The two bytes of padding MUST be set to zero | ignored on receipt. The two bytes of padding MUST be set to zero and | |||
and ignored on receipt. | ignored on receipt. | |||
The inclusion of this TLV in an OPEN object indicates that the sender | The inclusion of this TLV in an OPEN object indicates that the sender | |||
can perform FlowSpec handling as defined in this document. | can perform FlowSpec handling as defined in this document. | |||
5. PCEP FLOWSPEC Object | 5. PCEP FLOWSPEC Object | |||
The PCEP FLOWSPEC object defined in this document is compliant with | The PCEP FLOWSPEC object defined in this document is compliant with | |||
the PCEP object format defined in [RFC5440]. It is OPTIONAL in the | the PCEP object format defined in [RFC5440]. It is OPTIONAL in the | |||
PCReq, PCRep, PCErr, PCInitiate, PCRpt, and PCUpd messages and MAY be | PCReq, PCRep, PCErr, PCInitiate, PCRpt, and PCUpd messages and MAY be | |||
present zero, one, or more times. Each instance of the object | present zero, one, or more times. Each instance of the object | |||
specifies a separate traffic flow. | specifies a separate traffic flow. | |||
The PCEP FLOWSPEC object carries a FlowSpec filter rule encoded in a | The PCEP FLOWSPEC object MAY carry a FlowSpec filter rule encoded in | |||
TLV (a Flow Filter TLV, a single L2 Flow Filter TLV, or both) as | a Flow Filter TLV as defined in Section 6. | |||
defined in Section 6). | ||||
The FLOWSPEC Object-Class is TBD3 (to be assigned by IANA). | The FLOWSPEC Object-Class is 43 (to be assigned by IANA). | |||
The FLOWSPEC Object-Type is 1. | The FLOWSPEC Object-Type is 1. | |||
The format of the body of the PCEP FLOWSPEC object is shown in | The format of the body of the PCEP FLOWSPEC object is shown in | |||
Figure 2 | Figure 2. | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| FS-ID | | | FS-ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| AFI | Reserved | Flags |L|R| | | AFI | Reserved | Flags |L|R| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
// TLVs // | // TLVs // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: PCEP FLOWSPEC Object Body Format | Figure 2: PCEP FLOWSPEC Object Body Format | |||
FS-ID (32-bits): A PCEP-specific identifier for the FlowSpec | FS-ID (32 bits): A PCEP-specific identifier for the FlowSpec | |||
information. A PCE or PCC creates an FS-ID for each FlowSpec that it | information. A PCE or PCC creates an FS-ID for each FlowSpec that | |||
originates, and the value is unique within the scope of that PCE or | it originates, and the value is unique within the scope of that | |||
PCC and is constant for the lifetime of a PCEP session. All | PCE or PCC and is constant for the lifetime of a PCEP session. | |||
subsequent PCEP messages can identify the FlowSpec using the FS-ID. | All subsequent PCEP messages can identify the FlowSpec using the | |||
The values 0 and 0xFFFFFFFF are reserved and MUST NOT be used. Note | FS-ID. The values 0 and 0xFFFFFFFF are reserved and MUST NOT be | |||
that [I-D.gont-numeric-ids-sec-considerations] gives advice on | used. Note that [NUMERIC-IDS-SEC] gives advice on assigning | |||
assigning transient numeric identifiers such as the FS-ID so as to | transient numeric identifiers such as the FS-ID so as to minimize | |||
minimise security risks. | security risks. | |||
AFI (16-bits): Address Family Identifier as used in BGP [RFC4760] | AFI (16 bits): Address Family Identifier as used in BGP [RFC4760] | |||
(AFI=1 for IPv4 or VPNv4, AFI=2 for IPv6 and VPNv6 as per as per | (AFI=1 for IPv4 or VPNv4, AFI=2 for IPv6 and VPNv6 as per | |||
[I-D.ietf-idr-flow-spec-v6]). | [RFC8956]). | |||
Reserved (8-bits): MUST be set to zero on transmission and ignored on | Reserved (8 bits): MUST be set to zero on transmission and ignored | |||
receipt. | on receipt. | |||
Flags (8-bits): Two flags are currently assigned - | Flags (8 bits): Two flags are currently assigned: | |||
R bit: The Remove bit is set when a PCEP FLOWSPEC object is | R bit: The Remove bit is set when a PCEP FLOWSPEC object is | |||
included in a PCEP message to indicate removal of the Flow | included in a PCEP message to indicate removal of the Flow | |||
Specification from the associated tunnel. If the bit is clear, | Specification from the associated tunnel. If the bit is clear, | |||
the Flow Specification is being added or modified. | the Flow Specification is being added or modified. | |||
L bit: The Longest Prefix Match (LPM) bit is set to indicate that | L bit: The Longest Prefix Match (LPM) bit is set to indicate that | |||
the Flow Specification is to be installed as a route subject to | the Flow Specification is to be installed as a route subject to | |||
longest prefix match forwarding. If the bit is clear, the Flow | LPM forwarding. If the bit is clear, the Flow Specification | |||
Specification described by the Flow Filter TLV (see Section 6) is | described by the Flow Filter TLV (see Section 6) is to be | |||
to be installed as a Flow Specification. If the bit is set, only | installed as a Flow Specification. If the bit is set, only | |||
Flow Specifications that describe IPv4 or IPv6 destinations are | Flow Specifications that describe IPv4 or IPv6 destinations are | |||
meaningful in the Flow Filter TLV and others are ignored. If the | meaningful in the Flow Filter TLV, and others are ignored. If | |||
L is set and the receiver does not support the use of Flow | the L is set and the receiver does not support the use of Flow | |||
Specifications that are present in the Flow Filter TLV for the | Specifications that are present in the Flow Filter TLV for the | |||
installation of a route subject to longest prefix match | installation of a route subject to LPM forwarding, then the | |||
forwarding, then the PCEP peer MUST respond with a PCErr message | PCEP peer MUST respond with a PCErr message with Error-Type 30 | |||
with error-type TBD8 (FlowSpec Error) and error-value 5 | (FlowSpec Error) and Error-value 5 (Unsupported LPM Route). | |||
(Unsupported LPM Route). | ||||
Unassigned bits MUST be set to zero on transmission and ignored on | Unassigned bits MUST be set to zero on transmission and ignored on | |||
receipt. | receipt. | |||
If the PCEP speaker receives a message with R bit set in the FLOWSPEC | If the PCEP speaker receives a message with the R bit set in the | |||
object and the Flow Specification identified with a FS-ID does not | FLOWSPEC object and the Flow Specification identified with an FS-ID | |||
exist, it MUST generate a PCErr with Error-type TBD8 (FlowSpec | does not exist, it MUST generate a PCErr with Error-Type 30 (FlowSpec | |||
Error), error-value 4 (Unknown FlowSpec). | Error) and Error-value 4 (Unknown FlowSpec). | |||
If the PCEP speaker does not understand or support the AFI in the | If the PCEP speaker does not understand or support the AFI in the | |||
FLOWSPEC message, the PCEP peer MUST respond with a PCErr message | FLOWSPEC message, the PCEP peer MUST respond with a PCErr message | |||
with error-type TBD8 (FlowSpec Error), error-value 2 (Malformed | with Error-Type 30 (FlowSpec Error) and Error-value 2 (Malformed | |||
FlowSpec). | FlowSpec). | |||
The following TLVs can be used in the FLOWSPEC object: | The following TLVs can be used in the FLOWSPEC object: | |||
o Speaker Entity Identifier TLV: As specified in [RFC8232], the | Speaker Entity Identifier TLV: As specified in [RFC8232], the | |||
SPEAKER-ENTITY-ID TLV encodes a unique identifier for the node | SPEAKER-ENTITY-ID TLV encodes a unique identifier for the node | |||
that does not change during the lifetime of the PCEP speaker. | that does not change during the lifetime of the PCEP speaker. | |||
This is used to uniquely identify the FlowSpec originator and thus | This is used to uniquely identify the FlowSpec originator and thus | |||
used in conjunction with FS-ID to uniquely identify the FlowSpec | is used in conjunction with the FS-ID to uniquely identify the | |||
information. This TLV MUST be included. If the TLV is missing, | FlowSpec information. This TLV MUST be included. If the TLV is | |||
the PCEP peer MUST respond with a PCErr message with error-type | missing, the PCEP peer MUST respond with a PCErr message with | |||
TBD8 (FlowSpec Error), error-value 2 (Malformed FlowSpec). If | Error-Type 30 (FlowSpec Error) and Error-value 2 (Malformed | |||
more than one instance of this TLV is present, the first MUST be | FlowSpec). If more than one instance of this TLV is present, the | |||
processed and subsequence instances MUST be ignored. | first MUST be processed, and subsequent instances MUST be ignored. | |||
o Flow Filter TLV (variable): One TLV MAY be included. The Flow | Flow Filter TLV (variable): One TLV MAY be included. The Flow | |||
Filter TLV is OPTIONAL when the R bit is set. | Filter TLV is OPTIONAL when the R bit is set. | |||
o L2 Flow Filter TLV (variable): One TLV MAY be included. The L2 | The Flow Filter TLV MUST be present when the R bit is clear. If the | |||
Flow Filter TLV is OPTIONAL when the R bit is set. | TLV is missing when the R bit is clear, the PCEP peer MUST respond | |||
with a PCErr message with Error-Type 30 (FlowSpec Error) and Error- | ||||
value 2 (Malformed FlowSpec). | ||||
At least one Flow Filter TLV or one L2 Flow Filter TLV MUST be | Filtering based on the L2 fields is out of scope of this document. | |||
present when the R bit is clear. If both TLVs are missing when the R | ||||
bit is clear, the PCEP peer MUST respond with a PCErr message with | ||||
error-type TBD8 (FlowSpec Error) and error-value 2 (Malformed | ||||
FlowSpec). A Flow Filter TLV and a L2 Flow Filter TLV MAY both be | ||||
present when filtering is based on both L3 and L2 fields. | ||||
6. Flow Filter TLV and L2 Flow Filter TLV | 6. Flow Filter TLV | |||
Two new PCEP TLVs are defined to convey Flow Specification filtering | One new PCEP TLV is defined to convey Flow Specification filtering | |||
rules that specify what traffic is carried on a path. The TLVs | rules that specify what traffic is carried on a path. The TLV | |||
follow the format of all PCEP TLVs as defined in [RFC5440]. The Type | follows the format of all PCEP TLVs as defined in [RFC5440]. The | |||
field values come from the codepoint space for PCEP TLVs and has the | Type field values come from the code point space for PCEP TLVs and | |||
value TBD4 for Flow Filter TLV and TBD9 for L2 Flow Filter TLV. | has the value 52 for Flow Filter TLV. | |||
The Value fields of the TLVs contain one or more sub-TLVs (the Flow | The Value field of the TLV contains one or more sub-TLVs (the Flow | |||
Specification TLVs or L2 Flow Specification TLVs) as defined in | Specification TLVs) as defined in Section 7, and they represent the | |||
Section 7, and they represent the complete definition of a Flow | complete definition of a Flow Specification for traffic to be placed | |||
Specification for traffic to be placed on the tunnel. This tunnel is | on the tunnel. This tunnel is indicated by the PCEP message in which | |||
indicated by the PCEP message in which the PCEP FLOWSPEC object is | the PCEP FLOWSPEC object is carried. The set of Flow Specification | |||
carried. The set of Flow Specification TLVs and L2 Flow Filter TLVs | TLVs in a single instance of a Flow Filter TLV is combined to | |||
in a single instance of a Flow Filter TLV are combined to indicate | indicate the specific Flow Specification. Note that the PCEP | |||
the specific Flow Specification. Note that the PCEP FLOWSPEC object | FLOWSPEC object can include just one Flow Filter TLV. | |||
can include just one Flow Filter TLV, just one L2 Flow Filter TLV, or | ||||
one of each TLV. | ||||
Further Flow Specifications can be included in a PCEP message by | Further Flow Specifications can be included in a PCEP message by | |||
including additional FLOWSPEC objects. | including additional FLOWSPEC objects. | |||
In the future, there may be a desire to add support for L2 Flow | ||||
Specifications (such as described in [BGP-L2VPN]). | ||||
7. Flow Specification TLVs | 7. Flow Specification TLVs | |||
The Flow Filter TLV carries one or more Flow Specification TLVs. The | The Flow Filter TLV carries one or more Flow Specification TLVs. The | |||
Flow Specification TLV follows the format of all PCEP TLVs as defined | Flow Specification TLV follows the format of all PCEP TLVs as defined | |||
in [RFC5440]. However, the Type values are selected from a separate | in [RFC5440]. However, the Type values are selected from a separate | |||
IANA registry (see Section 10.3) rather than from the common PCEP TLV | IANA registry (see Section 10.3) rather than from the common PCEP TLV | |||
registry. | registry. | |||
Type values are chosen so that there can be commonality with Flow | Type values are chosen so that there can be commonality with Flow | |||
Specifications defined for use with BGP [I-D.ietf-idr-rfc5575bis] and | Specifications defined for use with BGP [RFC8955] [RFC8956]. This is | |||
[I-D.ietf-idr-flow-spec-v6]. This is possible because the BGP Flow | possible because the BGP Flow Spec encoding uses a single octet to | |||
Spec encoding uses a single octet to encode the type where as PCEP | encode the type, whereas PCEP uses 2 octets. Thus, the space of | |||
uses two octets. Thus the space of values for the Type field is | values for the Type field is partitioned as shown in Table 1. | |||
partitioned as shown in Figure 3. | ||||
Range | | +===========+=======================================+ | |||
---------------+--------------------------------------------------- | | Range | Description | | |||
0 .. 255 | Per BGP registry defined by | +===========+=======================================+ | |||
| [I-D.ietf-idr-rfc5575bis] and | | 0-255 | Per BGP Flow Spec registry defined by | | |||
| [I-D.ietf-idr-flow-spec-v6]. | | | [RFC8955] and [RFC8956]. | | |||
| Not to be allocated in this registry. | | | | | |||
| | | | Not to be allocated in this registry. | | |||
256 .. 65535 | New PCEP Flow Specifications allocated according | +-----------+---------------------------------------+ | |||
| to the registry defined in this document. | | 256-65535 | New PCEP Flow Specifications | | |||
| | allocated according to the registry | | ||||
| | defined in this document. | | ||||
+-----------+---------------------------------------+ | ||||
Figure 3: Flow Specification TLV Type Ranges | Table 1: Flow Specification TLV Type Ranges | |||
[I-D.ietf-idr-rfc5575bis] is the reference for the registry "Flow | [RFC8955] is the reference for the "Flow Spec Component Types" | |||
Spec Component Types" and defines the allocations it contains. | registry and defines the allocations it contains. [RFC8956] | |||
[I-D.ietf-idr-flow-spec-v6] requested for another registry "Flow Spec | requested the creation of the "Flow Spec IPv6 Component Types" | |||
IPv6 Component Types" and requested initial allocations in it. If | registry, as well as its initial allocations. If the AFI (in the | |||
the AFI (in the FLOWSPEC object) is set to IPv4, the range 0..255 is | FLOWSPEC object) is set to IPv4, the range 0..255 is as per "Flow | |||
as per "Flow Spec Component Types" [I-D.ietf-idr-rfc5575bis]; if the | Spec Component Types" [RFC8955]; if the AFI is set to IPv6, the range | |||
AFI is set to IPv6, the range 0..255 is as per "Flow Spec IPv6 | 0..255 is as per "Flow Spec IPv6 Component Types" [RFC8956]. | |||
Component Types" [I-D.ietf-idr-flow-spec-v6]. | ||||
The content of the Value field in each TLV is specific to the type/ | The content of the Value field in each TLV is specific to the type/ | |||
AFI and describes the parameters of the Flow Specification. The | AFI and describes the parameters of the Flow Specification. The | |||
definition of the format of many of these Value fields is inherited | definition of the format of many of these Value fields is inherited | |||
from BGP specifications. Specifically, the inheritance is from | from BGP specifications. Specifically, the inheritance is from | |||
[I-D.ietf-idr-rfc5575bis] and [I-D.ietf-idr-flow-spec-v6], but may | [RFC8955] and [RFC8956], but it may also be inherited from future BGP | |||
also be inherited from future BGP specifications. | specifications. | |||
When multiple Flow Specification TLVs are present in a single Flow | When multiple Flow Specification TLVs are present in a single Flow | |||
Filter TLV they are combined to produce a more detailed specification | Filter TLV, they are combined to produce a more detailed | |||
of a flow. For examples and rules about how this is achieved, see | specification of a flow. For examples and rules about how this is | |||
[I-D.ietf-idr-rfc5575bis]. As described in [I-D.ietf-idr-rfc5575bis] | achieved, see [RFC8955]. As described in [RFC8955], where it says "A | |||
where it says "A given component type MAY (exactly once) be present | given component type MAY (exactly once) be present in the Flow | |||
in the Flow Specification," a Flow Filter TLV MUST NOT contain more | Specification", a Flow Filter TLV MUST NOT contain more than one Flow | |||
than one Flow Specification TLV of the same type: an implementation | Specification TLV of the same type: an implementation that receives a | |||
that receives a PCEP message with a Flow Flter TLV that contains more | PCEP message with a Flow Filter TLV that contains more than one Flow | |||
than one Flow Specification TLV of the same type MUST respond with a | Specification TLV of the same type MUST respond with a PCErr message | |||
PCErr message with error-type TBD8 (FlowSpec Error), error-value 2 | with Error-Type 30 (FlowSpec Error) and Error-value 2 (Malformed | |||
(Malformed FlowSpec) and MUST NOT install the Flow Specification. | FlowSpec) and MUST NOT install the Flow Specification. | |||
An implementation that receives a PCEP message carrying a Flow | An implementation that receives a PCEP message carrying a Flow | |||
Specification TLV with a type value that it does not recognize or | Specification TLV with a type value that it does not recognize or | |||
does not support MUST respond with a PCErr message with error-type | support MUST respond with a PCErr message with Error-Type 30 | |||
TBD8 (FlowSpec Error), error-value 1 (Unsupported FlowSpec) and MUST | (FlowSpec Error) and Error-value 1 (Unsupported FlowSpec) and MUST | |||
NOT install the Flow Specification. | NOT install the Flow Specification. | |||
When used in other protocols (such as BGP), these Flow Specifications | When used in other protocols (such as BGP), these Flow Specifications | |||
are also associated with actions to indicate how traffic matching the | are also associated with actions to indicate how traffic matching the | |||
Flow Specification should be treated. In PCEP, however, the only | Flow Specification should be treated. In PCEP, however, the only | |||
action is to associate the traffic with a tunnel and to forward | action is to associate the traffic with a tunnel and to forward | |||
matching traffic onto that path, so no encoding of an action is | matching traffic onto that path, so no encoding of an action is | |||
needed. | needed. | |||
Section 8.7 describes how overlapping Flow Specifications are | Section 8.7 describes how overlapping Flow Specifications are | |||
prioritized and handled. | prioritized and handled. | |||
All Flow Specification TLVs with Types in the range 0 to 255 have | All Flow Specification TLVs with Types in the range 0 to 255 have | |||
Values defined for use in BGP (for example, in | values defined for use in BGP (for example, in [RFC8955] and | |||
[I-D.ietf-idr-rfc5575bis] and [I-D.ietf-idr-flow-spec-v6]) and are | [RFC8956]) and are set using the BGP encoding but without the type | |||
set using the BGP encoding, but without the type octet (the relevant | octet (the relevant information is in the Type field of the TLV). | |||
information is in the Type field of the TLV). The Value field is | The Value field is padded with trailing zeros to achieve 4-byte | |||
padded with trailing zeros to achieve 4-byte alignment. | alignment. | |||
This document defines the following new types: | This document defines the following new types: | |||
+-------+-------------------------+-----------------------------+ | +======+=====================+==================+ | |||
| Type | Description | Value defined in | | | Type | Description | Value Defined In | | |||
| | | | | +======+=====================+==================+ | |||
+-------+-------------------------+-----------------------------+ | | 256 | Route Distinguisher | RFC 9168 | | |||
| TBD5 | Route Distinguisher | [This.I-D] | | +------+---------------------+------------------+ | |||
+-------+-------------------------+-----------------------------+ | | 257 | IPv4 Multicast Flow | RFC 9168 | | |||
| TBD6 | IPv4 Multicast Flow | [This.I-D] | | +------+---------------------+------------------+ | |||
+-------+-------------------------+-----------------------------+ | | 258 | IPv6 Multicast Flow | RFC 9168 | | |||
| TBD7 | IPv6 Multicast Flow | [This.I-D] | | +------+---------------------+------------------+ | |||
+-------+-------------------------+-----------------------------+ | ||||
Figure 4: Table of Flow Specification TLV Types defined in this | Table 2: Flow Specification TLV Types Defined | |||
document | in this Document | |||
To allow identification of a VPN in PCEP via a Route Distinguisher | To allow identification of a VPN in PCEP via a Route Distinguisher | |||
(RD) [RFC4364], a new TLV - ROUTE-DISTINGUISHER TLV is defined in | (RD) [RFC4364], a new TLV, ROUTE-DISTINGUISHER TLV, is defined in | |||
this document. A Flow Specification TLV with Type TBD5 (ROUTE- | this document. A Flow Specification TLV with Type 256 (ROUTE- | |||
DISTINGUISHER TLV) carries an RD Value, used to identify that other | DISTINGUISHER TLV) carries an RD value, which is used to identify | |||
flow filter information (for example, an IPv4 destination prefix) is | that other flow filter information (for example, an IPv4 destination | |||
associated with a specific VPN identified by the RD. See Section 8.6 | prefix) is associated with a specific VPN identified by the RD. See | |||
for further discussion of VPN identification. | Section 8.6 for further discussion of VPN identification. | |||
0 1 2 3 | 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 | 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=8 | | | Type=256 | Length=8 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Route Distinguisher | | | Route Distinguisher | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: The Format of the ROUTE-DISTINGUISHER TLV | Figure 3: The Format of the ROUTE-DISTINGUISHER TLV | |||
The format of RD is as per [RFC4364]. | The format of the RD is as per [RFC4364]. | |||
Although it may be possible to describe a multicast Flow | Although it may be possible to describe a multicast Flow | |||
Specification from the combination of other Flow Specification TLVs | Specification from the combination of other Flow Specification TLVs | |||
with specific values, it is more convenient to use a dedicated Flow | with specific values, it is more convenient to use a dedicated Flow | |||
Specification TLV. Flow Specification TLVs with Type values TBD6 and | Specification TLV. Flow Specification TLVs with Type values 257 and | |||
TBD7 are used to identify a multicast flow for IPv4 and IPv6 | 258 are used to identify a multicast flow for IPv4 and IPv6, | |||
respectively. The Value field is encoded as shown in Figure 6. | respectively. The Value field is encoded as shown in Figure 4. | |||
0 1 2 3 | 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 | 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 |S|G| Src Mask Len | Grp Mask Len | | | Reserved |S|G| Src Mask Len | Grp Mask Len | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Source Address ~ | ~ Source Address ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Group multicast Address ~ | ~ Group multicast Address ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: Multicast Flow Specification TLV Encoding | Figure 4: Multicast Flow Specification TLV Encoding | |||
The address fields and address mask lengths of the two Multicast Flow | The address fields and address mask lengths of the two Multicast Flow | |||
Specification TLVs contain source and group prefixes for matching | Specification TLVs contain source and group prefixes for matching | |||
against packet flows noting that the two address fields are 32 bits | against packet flows. Note that the two address fields are 32 bits | |||
for an IPv4 Multicast Flow and 128 bits for an IPv6 Multicast Flow. | for an IPv4 Multicast Flow and 128 bits for an IPv6 Multicast Flow. | |||
The Reserved field MUST be set to zero and ignored on receipt. | The Reserved field MUST be set to zero and ignored on receipt. | |||
Two bit flags (S and G) are defined to describe the multicast | Two bit flags (S and G) are defined to describe the multicast | |||
wildcarding in use. If the S bit is set, then source wildcarding is | wildcarding in use. If the S bit is set, then source wildcarding is | |||
in use and the values in the Source Mask Length and Source Address | in use, and the values in the Source Mask Length and Source Address | |||
fields MUST be ignored. If the G bit is set, then group wildcarding | fields MUST be ignored. If the G bit is set, then group wildcarding | |||
is in use and the values in the Group Mask Length and Group multicast | is in use, and the values in the Group Mask Length and Group | |||
Address fields MUST be ignored. The G bit MUST NOT be set unless the | multicast Address fields MUST be ignored. The G bit MUST NOT be set | |||
S bit is also set: if a Multicast Flow Specification TLV is received | unless the S bit is also set: if a Multicast Flow Specification TLV | |||
with S bit = 0 and G bit = 1 the receiver MUST respond with a PCErr | is received with S bit = 0 and G bit = 1, the receiver MUST respond | |||
with Error-type TBD8 (FlowSpec Error) and error-value 2 (Malformed | with a PCErr with Error-Type 30 (FlowSpec Error) and Error-value 2 | |||
FlowSpec). | (Malformed FlowSpec). | |||
The three multicast mappings may be achieved as follows: | The three multicast mappings may be achieved as follows: | |||
(S, G) - S bit = 0, G bit = 0, the Source Address and Group | (S, G) - S bit = 0, G bit = 0, the Source Address and Group | |||
multicast Address prefixes are both used to define the multicast | multicast Address prefixes are both used to define the multicast | |||
flow. | flow. | |||
(*, G) - S bit = 1, G bit = 0, the Group multicast Address prefix | (*, G) - S bit = 1, G bit = 0, the Group multicast Address prefix | |||
is used to define the multicast flow, but the Source Address | is used to define the multicast flow, but the Source Address | |||
prefix is ignored. | prefix is ignored. | |||
(*, *) = S bit = 1, G bit = 1, the Source Address and Group | (*, *) - S bit = 1, G bit = 1, the Source Address and Group | |||
multicast Address prefixes are both ignored. | multicast Address prefixes are both ignored. | |||
7.1. L2 Flow Specification TLVs | ||||
The L2 Flow Filter TLV carries one or more L2 Flow Specification TLV. | ||||
The L2 Flow Specification TLV follows the format of all PCEP TLVs as | ||||
defined in [RFC5440]. However, the Type values are selected from a | ||||
separate IANA registry (see Section 10.4) rather than from the common | ||||
PCEP TLV registry. | ||||
Type values are chosen so that there can be commonality with L2 Flow | ||||
Specifications defined for use with BGP | ||||
[I-D.ietf-idr-flowspec-l2vpn]. This is possible because the BGP Flow | ||||
Spec encoding uses a single octet to encode the type where as PCEP | ||||
uses two octets. Thus the space of values for the Type field is | ||||
partitioned as shown in Figure 7. | ||||
Range | | ||||
---------------+------------------------------------------------- | ||||
0 .. 255 | Per BGP registry defined by | ||||
| [I-D.ietf-idr-flowspec-l2vpn]. | ||||
| Not to be allocated in this registry. | ||||
| | ||||
256 .. 65535 | New PCEP Flow Specifications allocated according | ||||
| to the registry defined in this document. | ||||
Figure 7: L2 Flow Specification TLV Type Ranges | ||||
[I-D.ietf-idr-flowspec-l2vpn] is the reference for the registry "L2 | ||||
Flow Spec Component Types" and defines the allocations it contains. | ||||
The content of the Value field in each TLV is specific to the type | ||||
and describes the parameters of the Flow Specification. The | ||||
definition of the format of many of these Value fields is inherited | ||||
from BGP specifications. Specifically, the inheritance is from | ||||
[I-D.ietf-idr-flowspec-l2vpn], but may also be inherited from future | ||||
BGP specifications. | ||||
When multiple L2 Flow Specification TLVs are present in a single L2 | ||||
Flow Filter TLV they are combined to produce a more detailed | ||||
specification of a flow. Similarly, when both Flow Filter TLV and L2 | ||||
Flow Filter TLV are present, they are combined to produce a more | ||||
detailed specification of a flow. | ||||
An implementation that receives a PCEP message carrying a L2 Flow | ||||
Specification TLV with a type value that it does not recognize or | ||||
does not support MUST respond with a PCErr message with error-type | ||||
TBD8 (FlowSpec Error), error-value 1 (Unsupported FlowSpec) and MUST | ||||
NOT install the Flow Specification. | ||||
All L2 Flow Specification TLVs with Types in the range 0 to 255 have | ||||
their Values interpretted as defined for use in BGP (for example, in | ||||
[I-D.ietf-idr-flowspec-l2vpn]) and are set using the BGP encoding, | ||||
but without the type octet (the relevant information is in the Type | ||||
field of the TLV). The Value field is padded with trailing zeros to | ||||
achieve 4-byte alignment. | ||||
This document defines no new types. | ||||
In the rest of the document when the Flow Specification is mentioned, | ||||
it includes the L2 Flow Specifications as well. | ||||
8. Detailed Procedures | 8. Detailed Procedures | |||
This section outlines some specific detailed procedures for using the | This section outlines some specific detailed procedures for using the | |||
protocol extensions defined in this document. | protocol extensions defined in this document. | |||
8.1. Default Behavior and Backward Compatibility | 8.1. Default Behavior and Backward Compatibility | |||
The default behavior is that no Flow Specification is applied to a | The default behavior is that no Flow Specification is applied to a | |||
tunnel. That is, the default is that the FLOWSPEC object is not used | tunnel. That is, the default is that the FLOWSPEC object is not | |||
as is the case in all systems before the implementation of this | used, as is the case in all systems before the implementation of this | |||
specification. | specification. | |||
In this case, it is a local matter (such as through configuration) | In this case, it is a local matter (such as through configuration) | |||
how tunnel head ends are instructed what traffic to place on a | how tunnel head ends are instructed in terms of what traffic to place | |||
tunnel. | on a tunnel. | |||
[RFC5440] describes how receivers respond when they see unknown PCEP | [RFC5440] describes how receivers respond when they see unknown PCEP | |||
objects. | objects. | |||
8.2. Composite Flow Specifications | 8.2. Composite Flow Specifications | |||
Flow Specifications may be represented by a single Flow Specification | Flow Specifications may be represented by a single Flow Specification | |||
TLV or may require a more complex description using multiple Flow | TLV or may require a more complex description using multiple Flow | |||
Specification TLVs. For example, a flow indicated by a source- | Specification TLVs. For example, a flow indicated by a source- | |||
destination pair of IPv6 addresses would be described by the | destination pair of IPv6 addresses would be described by the | |||
combination of Destination IPv6 Prefix and Source IPv6 Prefix Flow | combination of Destination IPv6 Prefix and Source IPv6 Prefix Flow | |||
Specification TLVs. | Specification TLVs. | |||
8.3. Modifying Flow Specifications | 8.3. Modifying Flow Specifications | |||
A PCE may want to modify a Flow Specification associated with a | A PCE may want to modify a Flow Specification associated with a | |||
tunnel, or a PCC may want to report a change to the Flow | tunnel, or a PCC may want to report a change to the Flow | |||
Specification it is using with a tunnel. | Specification it is using with a tunnel. | |||
It is important that the specific Flow Specification is identified so | It is important to identify the specific Flow Specification so it is | |||
that it is clear that this is a modification of an existing flow and | clear that this is a modification of an existing flow and not the | |||
not the addition of a new flow as described in Section 8.4. The FS- | addition of a new flow as described in Section 8.4. The FS-ID field | |||
ID field of the PCEP FLOWSPEC object is used to identify a specific | of the PCEP FLOWSPEC object is used to identify a specific Flow | |||
Flow Specification in the context of the content of the Speaker | Specification in the context of the content of the Speaker Entity | |||
Entity Identifier TLV. | Identifier TLV. | |||
When modifying a Flow Specification, all Flow Specification TLVs for | When modifying a Flow Specification, all Flow Specification TLVs for | |||
the intended specification of the flow MUST be included in the PCEP | the intended specification of the flow MUST be included in the PCEP | |||
FLOWSPEC object. the FS-ID MUST be retained from the previous | FLOWSPEC object. The FS-ID MUST be retained from the previous | |||
description of the flow, and the same Speaker Entity Identity TLV | description of the flow, and the same Speaker Entity Identifier TLV | |||
MUST be used. | MUST be used. | |||
8.4. Multiple Flow Specifications | 8.4. Multiple Flow Specifications | |||
It is possible that traffic from multiple flows will be placed on a | It is possible that traffic from multiple flows will be placed on a | |||
single tunnel. In some cases it is possible to define these within a | single tunnel. In some cases, it is possible to define these within | |||
single PCEP FLOWSPEC object by widening the scope of a Flow | a single PCEP FLOWSPEC object by widening the scope of a Flow | |||
Specification TLV: for example, traffic to two destination IPv4 | Specification TLV: for example, traffic to two destination IPv4 | |||
prefixes might be captured by a single Flow Specification TLV with | prefixes might be captured by a single Flow Specification TLV with | |||
type 'Destination' with a suitably adjusted prefix. However, this is | type "Destination" with a suitably adjusted prefix. However, this is | |||
unlikely to be possible in most scenarios, and it must be recalled | unlikely to be possible in most scenarios, and it must be recalled | |||
that it is not permitted to include two Flow Specification TLVs of | that it is not permitted to include two Flow Specification TLVs of | |||
the same type within one Flow Filter TLV. | the same type within one Flow Filter TLV. | |||
The normal procedure, therefore, is to carry each Flow Specification | The normal procedure, therefore, is to carry each Flow Specification | |||
in its own PCEP FLOWSPEC object. Multiple objects may be present on | in its own PCEP FLOWSPEC object. Multiple objects may be present on | |||
a single PCEP message, or multiple PCEP messages may be used. | a single PCEP message, or multiple PCEP messages may be used. | |||
8.5. Adding and Removing Flow Specifications | 8.5. Adding and Removing Flow Specifications | |||
The Remove bit in the PCEP FLOWSPEC object is left clear when a Flow | The Remove bit in the PCEP FLOWSPEC object is left clear when a Flow | |||
Specification is being added or modified. | Specification is being added or modified. | |||
To remove a Flow Specification, a PCEP FLOWSPEC object is included | To remove a Flow Specification, a PCEP FLOWSPEC object is included | |||
with the FS-ID matching the one being removed, and the R bit set to | with the FS-ID matching the one being removed, and the R bit is set | |||
indicate removal. In this case it is not necessary to include any | to indicate removal. In this case, it is not necessary to include | |||
Flow Specification TLVs. | any Flow Specification TLVs. | |||
If the R bit is set and Flow Specification TLVs are present, an | If the R bit is set and Flow Specification TLVs are present, an | |||
implementation MAY ignore them. If the implementation checks the | implementation MAY ignore them. If the implementation checks the | |||
Flow Specification TLVs against those recorded for the FS-ID and | Flow Specification TLVs against those recorded for the FS-ID and | |||
Speaker Entity Identity of the Flow Specification being removed and | Speaker Entity Identifier of the Flow Specification being removed and | |||
finds a mismatch, the Flow Specification matching the FS-ID MUST | finds a mismatch, the Flow Specification matching the FS-ID MUST | |||
still be removed and the implementation SHOULD record a local | still be removed, and the implementation SHOULD record a local | |||
exception or log. | exception or log. | |||
8.6. VPN Identifiers | 8.6. VPN Identifiers | |||
VPN instances are identified in BGP using Route Distinguishers (RDs) | VPN instances are identified in BGP using RDs [RFC4364]. These | |||
[RFC4364]. These values are not normally considered to have any | values are not normally considered to have any meaning outside of the | |||
meaning outside of the network, and they are not encoded in data | network, and they are not encoded in data packets belonging to the | |||
packets belonging to the VPNs. However, RDs provide a useful way of | VPNs. However, RDs provide a useful way of identifying VPN instances | |||
identifying VPN instances and are often manually or automatically | and are often manually or automatically assigned to VPNs as they are | |||
assigned to VPNs as they are provisioned. | provisioned. | |||
Thus the RD provides a useful way to indicate that traffic for a | Thus, the RD provides a useful way to indicate that traffic for a | |||
particular VPN should be placed on a given tunnel. The tunnel head | particular VPN should be placed on a given tunnel. The tunnel head | |||
end will need to interpret this Flow Specification not as a filter on | end will need to interpret this Flow Specification not as a filter on | |||
the fields of data packets, but using the other mechanisms that it | the fields of data packets but rather using the other mechanisms that | |||
already uses to identify VPN traffic. This could be based on the | it already uses to identify VPN traffic. These mechanisms could be | |||
incoming port (for port-based VPNs) or may leverage knowledge of the | based on the incoming port (for port-based VPNs) or may leverage | |||
VRF that is in use for the traffic. | knowledge of the VPN Routing and Forwarding (VRF) that is in use for | |||
the traffic. | ||||
8.7. Priorities and Overlapping Flow Specifications | 8.7. Priorities and Overlapping Flow Specifications | |||
Flow specifications can overlap. For example, two different flow | Flow Specifications can overlap. For example, two different Flow | |||
specifications may be identical except for the length of the prefix | Specifications may be identical except for the length of the prefix | |||
in the destination address. In these cases the PCC must determine | in the destination address. In these cases, the PCC must determine | |||
how to prioritize the flow specifications so as to know to which path | how to prioritize the Flow Specifications so as to know which path to | |||
to assign packets that match both flow specifications. That is, the | assign packets that match both Flow Specifications. That is, the PCC | |||
PCC must assign a precedence to the flow specifications so that it | must assign a precedence to the Flow Specifications so that it checks | |||
checks each incoming packet for a match in a predictable order. | each incoming packet for a match in a predictable order. | |||
The processing of BGP Flow Specifications is described in | The processing of BGP Flow Specifications is described in [RFC8955]. | |||
[I-D.ietf-idr-rfc5575bis]. Section 5.1 of that document explains the | Section 5.1 of that document explains the order of traffic filtering | |||
order of traffic filtering rules to be executed by an implementation | rules to be executed by an implementation of that specification. | |||
of that specification. | ||||
PCCs MUST apply the same ordering rules as defined in | PCCs MUST apply the same ordering rules as defined in [RFC8955]. | |||
[I-D.ietf-idr-rfc5575bis]. | ||||
Furthermore, it is possible that Flow Specifications will be | Furthermore, it is possible that Flow Specifications will be | |||
distributed by BGP as well as by PCEP as described in this document. | distributed by BGP as well as by PCEP as described in this document. | |||
In such cases implementations supporting both approaches MUST apply | In such cases, implementations supporting both approaches MUST apply | |||
the prioritization and ordering rules as set out in | the prioritization and ordering rules as set out in [RFC8955] | |||
[I-D.ietf-idr-rfc5575bis] regardless of which protocol distributed | regardless of which protocol distributed the Flow Specifications. | |||
the Flow Specifications. However, implementations MAY provide a | However, implementations MAY provide a configuration control to allow | |||
configuration control to allow one protocol to take precedence over | one protocol to take precedence over the other; this may be | |||
the other as this may be particularly useful if the Flow | particularly useful if the Flow Specifications make identical matches | |||
Specifications make identical matches on traffic, but have different | on traffic but have different actions. It is RECOMMENDED that a | |||
actions. It is RECOMMENDED that when two Flow Specifications | message be logged for the operator to understand the behavior when | |||
distributed by different protocols overlap, and especially when one | two Flow Specifications distributed by different protocols overlap, | |||
acts to replace another, that a message be logged for the operator to | especially when one acts to replace another. | |||
understand the behaviour. | ||||
Section 13.1 of this document covers manageability considerations | Section 12.1 of this document covers manageability considerations | |||
relevant to the prioritized ordering of flow specifications. | relevant to the prioritized ordering of Flow Specifications. | |||
An implementation that receives a PCEP message carrying a Flow | An implementation that receives a PCEP message carrying a Flow | |||
Specification that it cannot resolve against other Flow | Specification that it cannot resolve against other Flow | |||
Specifications already installed (for example, because the new Flow | Specifications already installed (for example, because the new Flow | |||
Specification has irresolvable conflicts with other Flow | Specification has irresolvable conflicts with other Flow | |||
Specifications that are already installed) MUST respond with a PCErr | Specifications that are already installed) MUST respond with a PCErr | |||
message with error-type TBD8 (FlowSpec Error), error-value 3 | message with Error-Type 30 (FlowSpec Error) and Error-value 3 | |||
(Unresolvable Conflict) and MUST NOT install the Flow Specification. | (Unresolvable Conflict) and MUST NOT install the Flow Specification. | |||
9. PCEP Messages | 9. PCEP Messages | |||
This section describes the format of messages that contain FLOWSPEC | This section describes the format of messages that contain FLOWSPEC | |||
objects. The only difference to previous message formats is the | objects. The only difference from previous message formats is the | |||
inclusion of that object. | inclusion of that object. | |||
The figures in this section use the notation defined in [RFC5511]. | The figures in this section use the notation defined in [RFC5511]. | |||
The FLOWSPEC object is OPTIONAL and MAY be carried in the PCEP | The FLOWSPEC object is OPTIONAL and MAY be carried in the PCEP | |||
messages. | messages. | |||
The PCInitiate message is defined in [RFC8281] and updated as below: | The PCInitiate message is defined in [RFC8281] and updated as below: | |||
<PCInitiate Message> ::= <Common Header> | <PCInitiate Message> ::= <Common Header> | |||
skipping to change at page 23, line 23 ¶ | skipping to change at line 949 ¶ | |||
<path> | <path> | |||
[<flowspec-list>] | [<flowspec-list>] | |||
Where: | Where: | |||
<path>::= <intended-path> | <path>::= <intended-path> | |||
[<actual-attribute-list><actual-path>] | [<actual-attribute-list><actual-path>] | |||
<intended-attribute-list> | <intended-attribute-list> | |||
<flowspec-list> ::= <FLOWSPEC> [<flowspec-list>] | <flowspec-list> ::= <FLOWSPEC> [<flowspec-list>] | |||
The PCReq message is defined in [RFC5440] and updated in [RFC8231], | The PCReq message is defined in [RFC5440] and updated in [RFC8231]; | |||
it is further updated below for flow specification: | it is further updated below for a Flow Specification: | |||
<PCReq Message>::= <Common Header> | <PCReq Message>::= <Common Header> | |||
[<svec-list>] | [<svec-list>] | |||
<request-list> | <request-list> | |||
Where: | Where: | |||
<svec-list>::= <SVEC>[<svec-list>] | <svec-list>::= <SVEC>[<svec-list>] | |||
<request-list>::= <request>[<request-list>] | <request-list>::= <request>[<request-list>] | |||
skipping to change at page 24, line 5 ¶ | skipping to change at line 975 ¶ | |||
[<BANDWIDTH>] | [<BANDWIDTH>] | |||
[<metric-list>] | [<metric-list>] | |||
[<RRO>[<BANDWIDTH>]] | [<RRO>[<BANDWIDTH>]] | |||
[<IRO>] | [<IRO>] | |||
[<LOAD-BALANCING>] | [<LOAD-BALANCING>] | |||
[<flowspec-list>] | [<flowspec-list>] | |||
Where: | Where: | |||
<flowspec-list> ::= <FLOWSPEC> [<flowspec-list>] | <flowspec-list> ::= <FLOWSPEC> [<flowspec-list>] | |||
The PCRep message is defined in [RFC5440] and updated in [RFC8231], | The PCRep message is defined in [RFC5440] and updated in [RFC8231]; | |||
it is further updated below for flow specification: | it is further updated below for a Flow Specification: | |||
<PCRep Message> ::= <Common Header> | <PCRep Message> ::= <Common Header> | |||
<response-list> | <response-list> | |||
Where: | Where: | |||
<response-list>::=<response>[<response-list>] | <response-list>::=<response>[<response-list>] | |||
<response>::=<RP> | <response>::=<RP> | |||
[<LSP>] | [<LSP>] | |||
[<NO-PATH>] | [<NO-PATH>] | |||
[<attribute-list>] | [<attribute-list>] | |||
[<path-list>] | [<path-list>] | |||
[<flowspec-list>] | [<flowspec-list>] | |||
Where: | Where: | |||
<flowspec-list> ::= <FLOWSPEC> [<flowspec-list>] | <flowspec-list> ::= <FLOWSPEC> [<flowspec-list>] | |||
10. IANA Considerations | 10. IANA Considerations | |||
IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | This document requests that IANA allocate code points for the | |||
registry. This document requests IANA actions to allocate code | protocol elements defined in this document. | |||
points for the protocol elements defined in this document. | ||||
10.1. PCEP Objects | 10.1. PCEP Objects | |||
Each PCEP object has an Object-Class and an Object-Type. IANA | IANA maintains a subregistry called "PCEP Objects" within the "Path | |||
maintains a subregistry called "PCEP Objects". IANA is requested to | Computation Element Protocol (PCEP) Numbers" registry. Each PCEP | |||
make an assignment from this subregistry as follows: | object has an Object-Class and an Object-Type, and IANA has allocated | |||
new code points in this subregistry as follows: | ||||
Object-Class | Value Name | Object-Type | Reference | +====================+==========+=======================+===========+ | |||
-------------+-------------+------------------------+---------------- | | Object-Class Value | Name | Object-Type | Reference | | |||
TBD3 | FLOWSPEC | 0: Reserved | [This.I-D] | +====================+==========+=======================+===========+ | |||
| | 1: Flow Specification | [This.I-D] | | 43 | FLOWSPEC | 0: Reserved | RFC 9168 | | |||
| | +-----------------------+-----------+ | ||||
| | | 1: Flow | RFC 9168 | | ||||
| | | Specification | | | ||||
+--------------------+----------+-----------------------+-----------+ | ||||
Table 3: PCEP Objects Subregistry Additions | ||||
10.1.1. PCEP FLOWSPEC Object Flag Field | 10.1.1. PCEP FLOWSPEC Object Flag Field | |||
This document requests that a new sub-registry, named "FLOWSPEC | This document requests that a new subregistry, "FLOWSPEC Object Flag | |||
Object Flag Field", is created within the "Path Computation Element | Field", be created within the "Path Computation Element Protocol | |||
Protocol (PCEP) Numbers" registry to manage the Flag field of the | (PCEP) Numbers" registry to manage the Flag field of the FLOWSPEC | |||
FLOWSPEC object. New values are to be assigned by Standards Action | object. New values are to be assigned by Standards Action [RFC8126]. | |||
[RFC8126]. Each bit should be tracked with the following qualities: | Each bit should be tracked with the following qualities: | |||
o Bit number (counting from bit 0 as the most significant bit) | * Bit number (counting from bit 0 as the most significant bit) | |||
o Capability description | * Capability description | |||
o Defining RFC | * Defining RFC | |||
The initial population of this registry is as follows: | The initial population of this registry is as follows: | |||
Bit | Description | Reference | +=====+================+===========+ | |||
-----+--------------------+------------- | | Bit | Description | Reference | | |||
0-5 | Unnassigned | | +=====+================+===========+ | |||
6 | LPM (L bit) | [This.I-D] | | 0-5 | Unassigned | | | |||
7 | Remove (R bit) | [This.I-D] | +-----+----------------+-----------+ | |||
| 6 | LPM (L bit) | RFC 9168 | | ||||
+-----+----------------+-----------+ | ||||
| 7 | Remove (R bit) | RFC 9168 | | ||||
+-----+----------------+-----------+ | ||||
Table 4: Initial Contents of the | ||||
FLOWSPEC Object Flag Field | ||||
Registry | ||||
10.2. PCEP TLV Type Indicators | 10.2. PCEP TLV Type Indicators | |||
IANA maintains a subregistry called "PCEP TLV Type Indicators". IANA | IANA maintains a subregistry called "PCEP TLV Type Indicators" within | |||
is requested to make an assignment from this subregistry as follows: | the "Path Computation Element Protocol (PCEP) Numbers" registry. | |||
IANA has made the following allocations in this subregistry: | ||||
Value | Meaning | Reference | +=======+=============================+===========+ | |||
--------+------------------------------+------------- | | Value | Description | Reference | | |||
TBD2 | PCE-FLOWSPEC-CAPABILITY TLV | [This.I-D] | +=======+=============================+===========+ | |||
TBD4 | FLOW FILTER TLV | [This.I-D] | | 51 | PCE-FLOWSPEC-CAPABILITY TLV | RFC 9168 | | |||
TBD9 | L2 FLOW FILTER TLV | [This.I-D] | +-------+-----------------------------+-----------+ | |||
| 52 | FLOW FILTER TLV | RFC 9168 | | ||||
+-------+-----------------------------+-----------+ | ||||
Table 5: PCEP TLV Type Indicators Subregistry | ||||
Additions | ||||
10.3. Flow Specification TLV Type Indicators | 10.3. Flow Specification TLV Type Indicators | |||
IANA is requested to create a new subregistry call the "PCEP Flow | IANA has created a new subregistry called "PCEP Flow Specification | |||
Specification TLV Type Indicators" registry. | TLV Type Indicators" within the "Path Computation Element Protocol | |||
(PCEP) Numbers" registry. | ||||
Allocations from this registry are to be made according to the | Allocations from this registry are to be made according to the | |||
following assignment policies [RFC8126]: | following assignment policies [RFC8126]: | |||
Range | Assignment policy | +=============+===================================+ | |||
---------------+--------------------------------------------------- | | Range | Registration Procedures | | |||
0 .. 255 | Reserved - must not be allocated. | +=============+===================================+ | |||
| Usage mirrors the BGP FlowSpec registry | | 0-255 | Reserved - must not be allocated. | | |||
| [I-D.ietf-idr-rfc5575bis] and | | | | | |||
| [I-D.ietf-idr-flow-spec-v6]. | | | Usage mirrors the BGP Flow Spec | | |||
| | | | registry [RFC8955] [RFC8956]. | | |||
256 .. 64506 | Specification Required | +-------------+-----------------------------------+ | |||
| | | 256-64506 | Specification Required | | |||
64507 .. 65531 | First Come First Served | +-------------+-----------------------------------+ | |||
| | | 64507-65531 | First Come First Served | | |||
65532 .. 65535 | Experimental | +-------------+-----------------------------------+ | |||
| 65532-65535 | Experimental Use | | ||||
IANA is requested to pre-populate this registry with values defined | +-------------+-----------------------------------+ | |||
in this document as follows, taking the new values from the range 256 | ||||
to 64506: | ||||
Value | Meaning | ||||
-------+------------------------ | ||||
TBD5 | Route Distinguisher | ||||
TBD6 | IPv4 Multicast | ||||
TBD7 | IPv6 Multicast | ||||
10.4. L2 Flow Specification TLV Type Indicators | Table 6: Registration Procedures for the PCEP | |||
Flow Specification TLV Type Indicators | ||||
Subregistry | ||||
IANA is requested to create a new subregistry called the "PCEP L2 | IANA has populated this registry with values defined in this document | |||
Flow Specification TLV Type Indicators" registry. | as follows, taking the new values from the range 256 to 64506: | |||
Allocations from this registry are to be made according to the | +=======+=====================+ | |||
following assignment policies [RFC8126]: | | Value | Meaning | | |||
+=======+=====================+ | ||||
| 256 | Route Distinguisher | | ||||
+-------+---------------------+ | ||||
| 257 | IPv4 Multicast | | ||||
+-------+---------------------+ | ||||
| 258 | IPv6 Multicast | | ||||
+-------+---------------------+ | ||||
Range | Assignment policy | Table 7: Initial Contents | |||
---------------+--------------------------------------------------- | of the PCEP Flow | |||
0 .. 255 | Reserved - must not be allocated. | Specification TLV Type | |||
| Usage mirrors the BGP L2 FlowSpec registry | Indicators Subregistry | |||
| [I-D.ietf-idr-flowspec-l2vpn]. | ||||
| | ||||
256 .. 64506 | Specification Required | ||||
| | ||||
64507 .. 65531 | First Come First Served | ||||
| | ||||
65532 .. 65535 | Experimental | ||||
10.5. PCEP Error Codes | 10.4. PCEP Error Codes | |||
IANA maintains a subregistry called "PCEP-ERROR Object Error Types | IANA maintains a subregistry called "PCEP-ERROR Object Error Types | |||
and Values". Entries in this subregistry are described by Error-Type | and Values" within the "Path Computation Element Protocol (PCEP) | |||
and Error-value. IANA is requested to make the following assignment | Numbers" registry. Entries in this subregistry are described by | |||
from this subregistry: | Error-Type and Error-value. IANA has added the following assignment | |||
to this subregistry: | ||||
Error-| Meaning | Error-value | Reference | ||||
Type | | | | ||||
-------+--------------------+----------------------------+----------- | ||||
TBD8 | FlowSpec error | 0: Unassigned | [This.I-D] | ||||
| | 1: Unsupported FlowSpec | [This.I-D] | ||||
| | 2: Malformed FlowSpec | [This.I-D] | ||||
| | 3: Unresolvable Conflict | [This.I-D] | ||||
| | 4: Unknown FlowSpec | [This.I-D] | ||||
| | 5: Unsupported LPM Route | [This.I-D] | ||||
| | 6-255: Unassigned | [This.I-D] | ||||
10.6. PCE Capability Flag | ||||
IANA maintains a subregistry called "Open Shortest Path First v2 | ||||
(OSPFv2) Parameters" with a sub-registry called "Path Computation | ||||
Element (PCE) Capability Flags". IANA is requested to assign a new | ||||
capability bit from this registry as follows: | ||||
Bit | Capability Description | Reference | +============+================+=========================+===========+ | |||
-------+-------------------------------+------------ | | Error-Type | Meaning | Error-value | Reference | | |||
TBD1 | FlowSpec | [This.I-D] | +============+================+=========================+===========+ | |||
| 30 | FlowSpec error | 0: Unassigned | RFC 9168 | | ||||
| | +-------------------------+-----------+ | ||||
| | | 1: Unsupported | RFC 9168 | | ||||
| | | FlowSpec | | | ||||
| | +-------------------------+-----------+ | ||||
| | | 2: Malformed | RFC 9168 | | ||||
| | | FlowSpec | | | ||||
| | +-------------------------+-----------+ | ||||
| | | 3: Unresolvable | RFC 9168 | | ||||
| | | Conflict | | | ||||
| | +-------------------------+-----------+ | ||||
| | | 4: Unknown | RFC 9168 | | ||||
| | | FlowSpec | | | ||||
| | +-------------------------+-----------+ | ||||
| | | 5: Unsupported | RFC 9168 | | ||||
| | | LPM Route | | | ||||
| | +-------------------------+-----------+ | ||||
| | | 6-255: | RFC 9168 | | ||||
| | | Unassigned | | | ||||
+------------+----------------+-------------------------+-----------+ | ||||
11. Implementation Status | Table 8: PCEP-ERROR Object Error Types and Values Subregistry | |||
Additions | ||||
[NOTE TO RFC EDITOR : This whole section and the reference to RFC | 10.5. PCE Capability Flag | |||
7942 is to be removed before publication as an RFC] | ||||
This section records the status of known implementations of the | IANA has registered a new capability bit in the OSPF Parameters "Path | |||
protocol defined by this specification at the time of posting of this | Computation Element (PCE) Capability Flags" registry as follows: | |||
Internet-Draft, and is based on a proposal described in [RFC7942]. | ||||
The description of implementations in this section is intended to | ||||
assist the IETF in its decision processes in progressing drafts to | ||||
RFCs. Please note that the listing of any individual implementation | ||||
here does not imply endorsement by the IETF. Furthermore, no effort | ||||
has been spent to verify the information presented here that was | ||||
supplied by IETF contributors. This is not intended as, and must not | ||||
be construed to be, a catalog of available implementations or their | ||||
features. Readers are advised to note that other implementations may | ||||
exist. | ||||
According to [RFC7942], "this will allow reviewers and working groups | +=====+========================+===========+ | |||
to assign due consideration to documents that have the benefit of | | Bit | Capability Description | Reference | | |||
running code, which may serve as evidence of valuable experimentation | +=====+========================+===========+ | |||
and feedback that have made the implemented protocols more mature. | | 16 | FlowSpec | RFC 9168 | | |||
It is up to the individual working groups to use this information as | +-----+------------------------+-----------+ | |||
they see fit". | ||||
At the time of posting the -12 version of this document, there are no | Table 9: Path Computation Element (PCE) | |||
known implementations of this mechanism. It is believed that two | Capability Flags Registry Additions | |||
vendors are considering prototype implementations, but these plans | ||||
are too vague to make any further assertions. | ||||
12. Security Considerations | 11. Security Considerations | |||
We may assume that a system that utilizes a remote PCE is subject to | We may assume that a system that utilizes a remote PCE is subject to | |||
a number of vulnerabilities that could allow spurious LSPs or SR | a number of vulnerabilities that could allow spurious LSPs or SR | |||
paths to be established or that could result in existing paths being | paths to be established or that could result in existing paths being | |||
modified or torn down. Such systems, therefore, apply security | modified or torn down. Such systems, therefore, apply security | |||
considerations as described in [RFC5440], Section 2.5 of [RFC6952], | considerations as described in [RFC5440], Section 2.5 of [RFC6952], | |||
[RFC8253], and [I-D.ietf-idr-rfc5575bis]. | [RFC8253], and [RFC8955]. | |||
The description of Flow Specifications associated with paths set up | The description of Flow Specifications associated with paths set up | |||
or controlled by a PCE add a further detail that could be attacked | or controlled by a PCE adds a further detail that could be attacked | |||
without tearing down LSPs or SR paths, but causing traffic to be | without tearing down LSPs or SR paths but causes traffic to be | |||
misrouted within the network. Therefore, the use of the security | misrouted within the network. Therefore, the use of the security | |||
mechanisms for PCEP referenced above is important. | mechanisms for PCEP referenced above is important. | |||
Visibility into the information carried in PCEP does not have direct | Visibility into the information carried in PCEP does not have direct | |||
privacy concerns for end-users' data, however, knowledge of how data | privacy concerns for end users' data; however, knowledge of how data | |||
is routed in a network may make that data more vulnerable. Of | is routed in a network may make that data more vulnerable. Of | |||
course, the ability to interfere with the way data is routed also | course, the ability to interfere with the way data is routed also | |||
makes the data more vulnerable. Furthermore, knowledge of the | makes the data more vulnerable. Furthermore, knowledge of the | |||
connected end-points (such as multicast receivers or VPN sites) is | connected endpoints (such as multicast receivers or VPN sites) is | |||
usually considered private customer information. Therefore, | usually considered private customer information. Therefore, | |||
implementations or deployments concerned with protecting privacy MUST | implementations or deployments concerned with protecting privacy MUST | |||
apply the mechanisms described in the documents referenced above: in | apply the mechanisms described in the documents referenced above, in | |||
particular to secure the PCEP session using IPSec per Sections 10.4 | particular, to secure the PCEP session using IPsec per Sections 10.4 | |||
to 10.6 of [RFC5440] or TLS per [RFC8253]. Note that TCP-MD5 | to 10.6 of [RFC5440] or TLS per [RFC8253]. Note that TCP-MD5 | |||
security as originally suggested in [RFC5440] does not provide | security as originally suggested in [RFC5440] does not provide | |||
sufficient security or privacy guarantees, and SHOULD NOT be relied | sufficient security or privacy guarantees and SHOULD NOT be relied | |||
upon. | upon. | |||
Experience with Flow Specifications in BGP systems indicates that | Experience with Flow Specifications in BGP systems indicates that | |||
they can become complex and that the overlap of Flow Specifications | they can become complex and that the overlap of Flow Specifications | |||
installed in different orders can lead to unexpected results. | installed in different orders can lead to unexpected results. | |||
Although this is not directly a security issue per se, the confusion | Although this is not directly a security issue per se, the confusion | |||
and unexpected forwarding behavior may be engineered or exploited by | and unexpected forwarding behavior may be engineered or exploited by | |||
an attacker. Furthermore, this complexity might give rise to a | an attacker. Furthermore, this complexity might give rise to a | |||
situation where the forwarding behaviors might create gaps in the | situation where the forwarding behaviors might create gaps in the | |||
monitoring and inspection of particular traffic or provide a path | monitoring and inspection of particular traffic or provide a path | |||
that avoids expected mitigations. Therefore, implementers and | that avoids expected mitigations. Therefore, implementers and | |||
operators SHOULD pay careful attention to the Manageability | operators SHOULD pay careful attention to the manageability | |||
Considerations described in Section 13 and familiarize themselves | considerations described in Section 12 and familiarize themselves | |||
with the careful explanations in [I-D.ietf-idr-rfc5575bis]. | with the careful explanations in [RFC8955]. | |||
13. Manageability Considerations | 12. Manageability Considerations | |||
The feature introduced by this document enables operational | The feature introduced by this document enables operational | |||
manageability of networks operated in conjunction with a PCE and | manageability of networks operated in conjunction with a PCE and | |||
using PCEP. Without this feature, but in the case of a stateful | using PCEP. In the case of a stateful active PCE or with PCE- | |||
active PCE or with PCE-initiated services, additional manual | initiated services, in the absence of this feature, additional manual | |||
configuration is needed to tell the head-ends what traffic to place | configuration is needed to tell the head ends what traffic to place | |||
on the network services (LSPs, SR paths, etc.). | on the network services (LSPs, SR paths, etc.). | |||
This section follows the advice and guidance of [RFC6123]. | This section follows the advice and guidance of [RFC6123]. | |||
13.1. Management of Multiple Flow Specifications | 12.1. Management of Multiple Flow Specifications | |||
Experience with flow specification in BGP suggests that there can be | Experience with Flow Specification in BGP suggests that there can be | |||
a lot of complexity when two or more flow specifications overlap. | a lot of complexity when two or more Flow Specifications overlap. | |||
This can arise, for example, with addresses indicated using prefixes, | This can arise, for example, with addresses indicated using prefixes | |||
and could cause confusion about what traffic should be placed on | and could cause confusion about what traffic should be placed on | |||
which path. Unlike the behavior in a distributed routing system, it | which path. Unlike the behavior in a distributed routing system, it | |||
is not important to the routing stablity and consistency of the | is not important to the routing stability and consistency of the | |||
network that each head-end implementation applies the same rules to | network that each head-end implementation applies the same rules to | |||
disambiguate overlapping Flow Specifications, but it is important | disambiguate overlapping Flow Specifications, but it is important | |||
that: | that: | |||
o A network operator can easily find out what traffic is being | * a network operator can easily find out what traffic is being | |||
placed on which path and why. This will facilitate analysis of | placed on which path and why. This will facilitate analysis of | |||
the network and diagnosis of faults. | the network and diagnosis of faults. | |||
o A PCE is able to correctly predict the effect of instructions it | * a PCE be able to correctly predict the effect of instructions it | |||
gives to a PCC. This will ensure that traffic is correctly placed | gives to a PCC. This will ensure that traffic is correctly placed | |||
on the network without causing congestion or other network | on the network without causing congestion or other network | |||
inefficiencies, and that traffic is correctly delivered. | inefficiencies and that traffic is correctly delivered. | |||
To that end, a PCC MUST enable an operator to view the the Flow | To that end, a PCC MUST enable an operator to view the Flow | |||
Specifications that it has installed, and these MUST be presented in | Specifications that it has installed, and these MUST be presented in | |||
order of precedence such that when two Flow Specifications overlap, | order of precedence such that when two Flow Specifications overlap, | |||
the one that will be serviced with higher precedence is presented to | the one that will be serviced with higher precedence is presented to | |||
the operator first. | the operator first. | |||
A discussion of precedence ordering for flow specifications is found | A discussion of precedence ordering for Flow Specifications is found | |||
in Section 8.7. | in Section 8.7. | |||
13.2. Control of Function through Configuration and Policy | 12.2. Control of Function through Configuration and Policy | |||
Support for the function described in this document implies that a | Support for the function described in this document implies that a | |||
functional element that is capable of requesting a PCE to compute and | functional element that is capable of requesting that a PCE compute | |||
control a path is also able to configure the specification of what | and control a path is also able to configure the specification of | |||
traffic should be placed on that path. Where there is a human | what traffic should be placed on that path. Where there is a human | |||
involved in this action, configuration of the Flow Specification must | involved in this action, configuration of the Flow Specification must | |||
be available through an interface (such as a graphical user interface | be available through an interface (such as a graphical user interface | |||
or a command line interface). Where a distinct software component | or a Command Line Interface). Where a distinct software component | |||
(i.e., one not co-implemented with the PCE) is used, a protocol | (i.e., one not co-implemented with the PCE) is used, a protocol | |||
mechanism will be required that could be PCEP itself or could be a | mechanism will be required that could be PCEP itself or a data model, | |||
data model such as extensions to the YANG model for requesting path | such as extensions to the YANG model for requesting path computation | |||
computation [I-D.ietf-teas-yang-path-computation]. | [TEAS-YANG-PATH]. | |||
Implementations MAY be constructed with a configurable switch to say | Implementations MAY be constructed with a configurable switch to | |||
whether they support the functions defined in this document. | indicate whether they support the functions defined in this document. | |||
Otherwise, such implementations MUST indicate that they support the | Otherwise, such implementations MUST indicate that they support the | |||
function as described in Section 4. If an implementation supports | function as described in Section 4. If an implementation allows | |||
configurable support of this function, that support MAY be | configurable support of this function, that support MAY be | |||
configurable per peer or once for the whole implementation. | configurable per peer or once for the whole implementation. | |||
As mentioned in Section 13.1, a PCE implementation SHOULD provide a | As mentioned in Section 12.1, a PCE implementation SHOULD provide a | |||
mechanism to configure variations in the precedence ordering of Flow | mechanism to configure variations in the precedence ordering of Flow | |||
Specifications per PCC. | Specifications per PCC. | |||
13.3. Information and Data Models | 12.3. Information and Data Models | |||
The YANG model in [I-D.ietf-pce-pcep-yang] can be used to model and | The YANG model in [PCE-PCEP-YANG] can be used to model and monitor | |||
monitor PCEP states and messages. To make that YANG model useful for | PCEP states and messages. To make that YANG model useful for the | |||
the extensions described in this document, it would need to be | extensions described in this document, it would need to be augmented | |||
augmented to cover the new protocol elements. | to cover the new protocol elements. | |||
Similarly, as noted in Section 13.2, the YANG model defined in | Similarly, as noted in Section 12.2, the YANG model defined in | |||
[I-D.ietf-teas-yang-path-computation] could be extended to allow | [TEAS-YANG-PATH] could be extended to allow the specification of Flow | |||
specification of Flow Specifications. | Specifications. | |||
Finally, as mentioned in Section 13.1, a PCC implementation SHOULD | Finally, as mentioned in Section 12.1, a PCC implementation SHOULD | |||
provide a mechanism to allow an operator to read the Flow | provide a mechanism to allow an operator to read the Flow | |||
Specifications from a PCC and to understand in what order they will | Specifications from a PCC and to understand in what order they will | |||
be executed. This could be achieved using a new YANG model. | be executed. This could be achieved using a new YANG model. | |||
13.4. Liveness Detection and Monitoring | 12.4. Liveness Detection and Monitoring | |||
The extensions defined in this document do not require any additional | The extensions defined in this document do not require any additional | |||
liveness detection and monitoring support. See [RFC5440] and | liveness detection and monitoring support. See [RFC5440] and | |||
[RFC5886] for more information. | [RFC5886] for more information. | |||
13.5. Verifying Correct Operation | 12.5. Verifying Correct Operation | |||
The chief element of operation that needs to be verified (in addition | The chief element of operation that needs to be verified (in addition | |||
to the operation of the protocol elements as described in [RFC5440]) | to the operation of the protocol elements as described in [RFC5440]) | |||
is the installation, precedence, and correct operation of the Flow | is the installation, precedence, and correct operation of the Flow | |||
Specifications at a PCC. | Specifications at a PCC. | |||
In addition to the YANG model for reading Flow Specifications | In addition to the YANG model, for reading Flow Specifications | |||
described in Section 13.3, tools may be needed to inject Operations | described in Section 12.3, tools may be needed to inject Operations | |||
and Management (OAM) traffic at the PCC that matches specific | and Management (OAM) traffic at the PCC that matches specific | |||
criteria so that it can be monitored as traveling along the desired | criteria so that it can be monitored while traveling along the | |||
path. Such tools are outside the scope of this document. | desired path. Such tools are outside the scope of this document. | |||
13.6. Requirements on Other Protocols and Functional Components | 12.6. Requirements for Other Protocols and Functional Components | |||
This document places no requirements on other protocols or | This document places no requirements on other protocols or | |||
components. | components. | |||
13.7. Impact on Network Operation | 12.7. Impact on Network Operation | |||
The use of the features described in this document clearly have an | The use of the features described in this document clearly have an | |||
important impact on network traffic since they cause traffic to be | important impact on network traffic since they cause traffic to be | |||
routed on specific paths in the network. However, in practice, these | routed on specific paths in the network. However, in practice, these | |||
changes make no direct changes to the network operation because | changes make no direct changes to the network operation because | |||
traffic is already placed on those paths using some pre-existing | traffic is already placed on those paths using some pre-existing | |||
configuration mechanism. Thus, the significant change is the | configuration mechanism. Thus, the significant change is the | |||
reduction in mechanisms that have to be applied, rather than a change | reduction in mechanisms that have to be applied rather than a change | |||
to how the traffic is passed through the network. | to how the traffic is passed through the network. | |||
14. Acknowledgements | 13. References | |||
Thanks to Julian Lucek, Sudhir Cheruathur, Olivier Dugeon, Jayant | ||||
Agarwal, Jeffrey Zhang, Acee Lindem, Vishnu Pavan Beeram, Julien | ||||
Meuric, Deborah Brungard, Eric Vyncke, Erik Kline, Benjamin Kaduk, | ||||
Martin Duke, Roman Danyliw, and Alvaro Retana for useful discussions | ||||
and comments. | ||||
15. References | ||||
15.1. Normative References | ||||
[I-D.ietf-idr-flow-spec-v6] | ||||
Loibl, C., Raszuk, R., and S. Hares, "Dissemination of | ||||
Flow Specification Rules for IPv6", draft-ietf-idr-flow- | ||||
spec-v6-17 (work in progress), October 2020. | ||||
[I-D.ietf-idr-flowspec-l2vpn] | ||||
Weiguo, H., Eastlake, D., Litkowski, S., and S. Zhuang, | ||||
"BGP Dissemination of L2 Flow Specification Rules", draft- | ||||
ietf-idr-flowspec-l2vpn-15 (work in progress), May 2020. | ||||
[I-D.ietf-idr-rfc5575bis] | 13.1. Normative References | |||
Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M. | ||||
Bacher, "Dissemination of Flow Specification Rules", | ||||
draft-ietf-idr-rfc5575bis-27 (work in progress), October | ||||
2020. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | |||
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
2006, <https://www.rfc-editor.org/info/rfc4364>. | 2006, <https://www.rfc-editor.org/info/rfc4364>. | |||
skipping to change at page 33, line 29 ¶ | skipping to change at line 1375 ¶ | |||
Path Computation Element Communication Protocol (PCEP)", | Path Computation Element Communication Protocol (PCEP)", | |||
RFC 8253, DOI 10.17487/RFC8253, October 2017, | RFC 8253, DOI 10.17487/RFC8253, October 2017, | |||
<https://www.rfc-editor.org/info/rfc8253>. | <https://www.rfc-editor.org/info/rfc8253>. | |||
[RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Extensions for PCE-Initiated LSP Setup in a Stateful PCE | Extensions for PCE-Initiated LSP Setup in a Stateful PCE | |||
Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | |||
<https://www.rfc-editor.org/info/rfc8281>. | <https://www.rfc-editor.org/info/rfc8281>. | |||
15.2. Informative References | [RFC8955] Loibl, C., Hares, S., Raszuk, R., McPherson, D., and M. | |||
Bacher, "Dissemination of Flow Specification Rules", | ||||
RFC 8955, DOI 10.17487/RFC8955, December 2020, | ||||
<https://www.rfc-editor.org/info/rfc8955>. | ||||
[I-D.gont-numeric-ids-sec-considerations] | [RFC8956] Loibl, C., Ed., Raszuk, R., Ed., and S. Hares, Ed., | |||
"Dissemination of Flow Specification Rules for IPv6", | ||||
RFC 8956, DOI 10.17487/RFC8956, December 2020, | ||||
<https://www.rfc-editor.org/info/rfc8956>. | ||||
13.2. Informative References | ||||
[BGP-L2VPN] | ||||
Hao, W., Eastlake, D. E., Litkowski, S., and S. Zhuang, | ||||
"BGP Dissemination of L2 Flow Specification Rules", Work | ||||
in Progress, Internet-Draft, draft-ietf-idr-flowspec- | ||||
l2vpn-18, 24 October 2021, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-idr- | ||||
flowspec-l2vpn-18>. | ||||
[NUMERIC-IDS-SEC] | ||||
Gont, F. and I. Arce, "Security Considerations for | Gont, F. and I. Arce, "Security Considerations for | |||
Transient Numeric Identifiers Employed in Network | Transient Numeric Identifiers Employed in Network | |||
Protocols", draft-gont-numeric-ids-sec-considerations-05 | Protocols", Work in Progress, Internet-Draft, draft-gont- | |||
(work in progress), July 2020. | numeric-ids-sec-considerations-06, 5 December 2020, | |||
<https://datatracker.ietf.org/doc/html/draft-gont-numeric- | ||||
[I-D.ietf-pce-pcep-yang] | ids-sec-considerations-06>. | |||
Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | ||||
YANG Data Model for Path Computation Element | ||||
Communications Protocol (PCEP)", draft-ietf-pce-pcep- | ||||
yang-14 (work in progress), July 2020. | ||||
[I-D.ietf-teas-yang-path-computation] | [PCE-PCEP-YANG] | |||
Busi, I., Belotti, S., Lopez, V., Sharma, A., and Y. Shi, | Dhody, D., Hardwick, J., Beeram, V. P., and J. Tantsura, | |||
"Yang model for requesting Path Computation", draft-ietf- | "A YANG Data Model for Path Computation Element | |||
teas-yang-path-computation-10 (work in progress), July | Communications Protocol (PCEP)", Work in Progress, | |||
2020. | Internet-Draft, draft-ietf-pce-pcep-yang-17, 23 October | |||
2021, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
pce-pcep-yang-17>. | ||||
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | |||
Element (PCE)-Based Architecture", RFC 4655, | Computation Element (PCE)-Based Architecture", RFC 4655, | |||
DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
<https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
[RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | [RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | |||
Zhang, "OSPF Protocol Extensions for Path Computation | Zhang, "OSPF Protocol Extensions for Path Computation | |||
Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088, | Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088, | |||
January 2008, <https://www.rfc-editor.org/info/rfc5088>. | January 2008, <https://www.rfc-editor.org/info/rfc5088>. | |||
[RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | [RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | |||
Zhang, "IS-IS Protocol Extensions for Path Computation | Zhang, "IS-IS Protocol Extensions for Path Computation | |||
skipping to change at page 34, line 36 ¶ | skipping to change at line 1447 ¶ | |||
BGP, LDP, PCEP, and MSDP Issues According to the Keying | BGP, LDP, PCEP, and MSDP Issues According to the Keying | |||
and Authentication for Routing Protocols (KARP) Design | and Authentication for Routing Protocols (KARP) Design | |||
Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | |||
<https://www.rfc-editor.org/info/rfc6952>. | <https://www.rfc-editor.org/info/rfc6952>. | |||
[RFC7399] Farrel, A. and D. King, "Unanswered Questions in the Path | [RFC7399] Farrel, A. and D. King, "Unanswered Questions in the Path | |||
Computation Element Architecture", RFC 7399, | Computation Element Architecture", RFC 7399, | |||
DOI 10.17487/RFC7399, October 2014, | DOI 10.17487/RFC7399, October 2014, | |||
<https://www.rfc-editor.org/info/rfc7399>. | <https://www.rfc-editor.org/info/rfc7399>. | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
Code: The Implementation Status Section", BCP 205, | ||||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
<https://www.rfc-editor.org/info/rfc7942>. | ||||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An | [RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An | |||
Architecture for Use of PCE and the PCE Communication | Architecture for Use of PCE and the PCE Communication | |||
Protocol (PCEP) in a Network with Central Control", | Protocol (PCEP) in a Network with Central Control", | |||
RFC 8283, DOI 10.17487/RFC8283, December 2017, | RFC 8283, DOI 10.17487/RFC8283, December 2017, | |||
<https://www.rfc-editor.org/info/rfc8283>. | <https://www.rfc-editor.org/info/rfc8283>. | |||
[RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | |||
and J. Hardwick, "Path Computation Element Communication | and J. Hardwick, "Path Computation Element Communication | |||
Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | |||
DOI 10.17487/RFC8664, December 2019, | DOI 10.17487/RFC8664, December 2019, | |||
<https://www.rfc-editor.org/info/rfc8664>. | <https://www.rfc-editor.org/info/rfc8664>. | |||
Appendix A. Contributors | [TEAS-YANG-PATH] | |||
Busi, I., Belotti, S., Lopez, V., Sharma, A., and Y. Shi, | ||||
"YANG Data Model for requesting Path Computation", Work in | ||||
Progress, Internet-Draft, draft-ietf-teas-yang-path- | ||||
computation-16, 6 September 2021, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | ||||
yang-path-computation-16>. | ||||
Acknowledgements | ||||
Thanks to Julian Lucek, Sudhir Cheruathur, Olivier Dugeon, Jayant | ||||
Agarwal, Jeffrey Zhang, Acee Lindem, Vishnu Pavan Beeram, Julien | ||||
Meuric, Deborah Brungard, Éric Vyncke, Erik Kline, Benjamin Kaduk, | ||||
Martin Duke, Roman Danyliw, and Alvaro Retana for useful discussions | ||||
and comments. | ||||
Contributors | ||||
Shankara | Shankara | |||
Huawei Technologies | Huawei Technologies | |||
Divyashree Techno Park, | Divyashree Techno Park, Whitefield | |||
Whitefield Bangalore, | Bangalore 560066 | |||
Karnataka | Karnataka | |||
560066 | ||||
India | India | |||
Email: shankara@huawei.com | Email: shankara@huawei.com | |||
Qiandeng Liang | Qiandeng Liang | |||
Huawei Technologies | Huawei Technologies | |||
101 Software Avenue, | ||||
Yuhuatai District | Yuhuatai District | |||
Nanjing | 101 Software Avenue, | |||
210012 | Nanjing, 210012 | |||
China | China | |||
Email: liangqiandeng@huawei.com | Email: liangqiandeng@huawei.com | |||
Cyril Margaria | Cyril Margaria | |||
Juniper Networks | Juniper Networks | |||
200 Somerset Corporate Boulevard, Suite 4001 | 200 Somerset Corporate Boulevard, Suite 4001 | |||
Bridgewater, NJ | Bridgewater, NJ 08807 | |||
08807 | United States of America | |||
USA | ||||
Email: cmargaria@juniper.net | Email: cmargaria@juniper.net | |||
Colby Barth | Colby Barth | |||
Juniper Networks | Juniper Networks | |||
200 Somerset Corporate Boulevard, Suite 4001 | 200 Somerset Corporate Boulevard, Suite 4001 | |||
Bridgewater, NJ | Bridgewater, NJ 08807 | |||
08807 | United States of America | |||
USA | ||||
Email: cbarth@juniper.net | Email: cbarth@juniper.net | |||
Xia Chen | Xia Chen | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Bld., No.156 Beiqing Rd. | Huawei Bld., No. 156 Beiqing Rd. | |||
Beijing | Beijing, 100095 | |||
100095 | ||||
China | China | |||
Email: jescia.chenxia@huawei.com | Email: jescia.chenxia@huawei.com | |||
Shunwan Zhuang | Shunwan Zhuang | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Bld., No.156 Beiqing Rd. | Huawei Bld., No. 156 Beiqing Rd. | |||
Beijing | Beijing, 100095 | |||
100095 | ||||
China | China | |||
Email: zhuangshunwan@huawei.com | Email: zhuangshunwan@huawei.com | |||
Cheng Li | Cheng Li | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Campus, No. 156 Beiqing Rd. | Huawei Campus, No. 156 Beiqing Rd. | |||
Beijing 100095 | Beijing, 100095 | |||
China | China | |||
Email: c.l@huawei.com | Email: c.l@huawei.com | |||
Authors' Addresses | Authors' Addresses | |||
Dhruv Dhody | Dhruv Dhody | |||
Huawei Technologies | Huawei Technologies | |||
Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
Bangalore, Karnataka 560066 | Bangalore 560066 | |||
Karnataka | ||||
India | India | |||
Email: dhruv.ietf@gmail.com | Email: dhruv.ietf@gmail.com | |||
Adrian Farrel | Adrian Farrel | |||
Old Dog Consulting | Old Dog Consulting | |||
Email: adrian@olddog.co.uk | Email: adrian@olddog.co.uk | |||
Zhenbin Li | Zhenbin Li | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Bld., No.156 Beiqing Rd. | Huawei Bldg., No. 156 Beiqing Rd. | |||
Beijing 100095 | Beijing | |||
100095 | ||||
China | China | |||
Email: lizhenbin@huawei.com | Email: lizhenbin@huawei.com | |||
End of changes. 215 change blocks. | ||||
743 lines changed or deleted | 667 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |