rfc9604.original | rfc9604.txt | |||
---|---|---|---|---|
PCE Working Group S. Sivabalan | Internet Engineering Task Force (IETF) S. Sivabalan | |||
Internet-Draft Ciena Corporation | Request for Comments: 9604 Ciena Corporation | |||
Intended status: Standards Track C. Filsfils | Category: Standards Track C. Filsfils | |||
Expires: 21 September 2022 Cisco Systems, Inc. | ISSN: 2070-1721 Cisco Systems, Inc. | |||
J. Tantsura | J. Tantsura | |||
Microsoft Corporation | Nvidia | |||
S. Previdi | S. Previdi | |||
C. Li, Ed. | C. Li, Ed. | |||
Huawei Technologies | Huawei Technologies | |||
20 March 2022 | August 2024 | |||
Carrying Binding Label/Segment Identifier (SID) in PCE-based Networks. | Carrying Binding Label/SID in PCE-Based Networks | |||
draft-ietf-pce-binding-label-sid-15 | ||||
Abstract | Abstract | |||
In order to provide greater scalability, network confidentiality, and | In order to provide greater scalability, network confidentiality, and | |||
service independence, Segment Routing (SR) utilizes a Binding Segment | service independence, Segment Routing (SR) utilizes a Binding Segment | |||
Identifier (SID) (called BSID) as described in RFC 8402. It is | Identifier (BSID), as described in RFC 8402. It is possible to | |||
possible to associate a BSID to an RSVP-TE-signaled Traffic | associate a BSID to an RSVP-TE-signaled Traffic Engineering (TE) | |||
Engineering Label Switched Path or an SR Traffic Engineering path. | Label Switched Path (LSP) or an SR TE path. The BSID can be used by | |||
The BSID can be used by an upstream node for steering traffic into | an upstream node for steering traffic into the appropriate TE path to | |||
the appropriate TE path to enforce SR policies. This document | enforce SR policies. This document specifies the concept of binding | |||
specifies the concept of binding value, which can be either an MPLS | value, which can be either an MPLS label or a Segment Identifier | |||
label or Segment Identifier. It further specifies an extension to | (SID). It further specifies an extension to Path Computation Element | |||
Path Computation Element (PCE) communication Protocol(PCEP) for | Communication Protocol (PCEP) for reporting the binding value by a | |||
reporting the binding value by a Path Computation Client (PCC) to the | Path Computation Client (PCC) to the Path Computation Element (PCE) | |||
PCE to support PCE-based Traffic Engineering policies. | to support PCE-based TE policies. | |||
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 21 September 2022. | 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/rfc9604. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2024 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Motivation and Example . . . . . . . . . . . . . . . . . 4 | 1.1. Motivation and Example | |||
1.2. Summary of the Extension . . . . . . . . . . . . . . . . 5 | 1.2. Summary of the Extension | |||
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 | 2. Requirements Language | |||
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Terminology | |||
4. Path Binding TLV . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Path Binding TLV | |||
4.1. SRv6 Endpoint Behavior and SID Structure . . . . . . . . 8 | 4.1. SRv6 Endpoint Behavior and SID Structure | |||
5. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5. Operation | |||
6. Binding SID in SR-ERO . . . . . . . . . . . . . . . . . . . . 12 | 6. Binding SID in SR-ERO | |||
7. Binding SID in SRv6-ERO . . . . . . . . . . . . . . . . . . . 12 | 7. Binding SID in SRv6-ERO | |||
8. PCE Allocation of Binding label/SID . . . . . . . . . . . . . 12 | 8. PCE Allocation of Binding Label/SID | |||
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 14 | 9. Security Considerations | |||
9.1. Huawei . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 10. Manageability Considerations | |||
9.2. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 10.1. Control of Function and Policy | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 10.2. Information and Data Models | |||
11. Manageability Considerations . . . . . . . . . . . . . . . . 16 | 10.3. Liveness Detection and Monitoring | |||
11.1. Control of Function and Policy . . . . . . . . . . . . . 17 | 10.4. Verify Correct Operations | |||
11.2. Information and Data Models . . . . . . . . . . . . . . 17 | 10.5. Requirements on Other Protocols | |||
11.3. Liveness Detection and Monitoring . . . . . . . . . . . 17 | 10.6. Impact on Network Operations | |||
11.4. Verify Correct Operations . . . . . . . . . . . . . . . 17 | 11. IANA Considerations | |||
11.5. Requirements On Other Protocols . . . . . . . . . . . . 17 | 11.1. PCEP TLV Type Indicators | |||
11.6. Impact On Network Operations . . . . . . . . . . . . . . 17 | 11.1.1. TE-PATH-BINDING TLV | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 11.2. LSP Object | |||
12.1. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 17 | 11.3. PCEP Error Type and Value | |||
12.1.1. TE-PATH-BINDING TLV . . . . . . . . . . . . . . . . 18 | 12. References | |||
12.2. LSP Object . . . . . . . . . . . . . . . . . . . . . . . 19 | 12.1. Normative References | |||
12.3. PCEP Error Type and Value . . . . . . . . . . . . . . . 19 | 12.2. Informative References | |||
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | Acknowledgements | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | Contributors | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . 20 | Authors' Addresses | |||
14.2. Informative References . . . . . . . . . . . . . . . . . 22 | ||||
Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 24 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | ||||
1. Introduction | 1. Introduction | |||
A Path Computation Element (PCE) can compute Traffic Engineering | A Path Computation Element (PCE) can compute Traffic Engineering (TE) | |||
paths (TE paths) through a network where those paths are subject to | paths through a network where those paths are subject to various | |||
various constraints. Currently, TE paths are set up using either the | constraints. Currently, TE paths are set up using either the RSVP-TE | |||
RSVP-TE signaling protocol or Segment Routing (SR). We refer to such | signaling protocol or Segment Routing (SR). We refer to such paths | |||
paths as RSVP-TE paths and SR-TE paths respectively in this document. | as "RSVP-TE paths" and "SR-TE paths", respectively, in this document. | |||
As per [RFC8402] SR allows a head-end node to steer a packet flow | As per [RFC8402], SR allows a head-end node to steer a packet flow | |||
along a given path via a Segment Routing Policy (SR Policy). As per | along a given path via an SR Policy. As per [RFC9256], an SR Policy | |||
[I-D.ietf-spring-segment-routing-policy], an SR Policy is a framework | is a framework that enables the instantiation of an ordered list of | |||
that enables the instantiation of an ordered list of segments on a | segments on a node for implementing a source routing policy with a | |||
node for implementing a source routing policy with a specific intent | specific intent for traffic steering from that node. | |||
for traffic steering from that node. | ||||
As described in [RFC8402], a Binding Segment Identifier (BSID) is | As described in [RFC8402], a Binding SID (BSID) is bound to an SR | |||
bound to a Segment Routing (SR) Policy, instantiation of which may | Policy, instantiation of which may involve a list of Segment | |||
involve a list of Segment Identifiers (SIDs). Any packets received | Identifiers (SIDs). Any packets received with an active segment | |||
with an active segment equal to a BSID are steered onto the bound SR | equal to a BSID are steered onto the bound SR Policy. A BSID may be | |||
Policy. A BSID may be either a local (SR Local Block (SRLB)) or a | either a local (SR Local Block (SRLB)) or a global (SR Global Block | |||
global (SR Global Block (SRGB)) SID. As per Section 6.4 of | (SRGB)) SID. As per Section 6.4 of [RFC9256], a BSID can also be | |||
[I-D.ietf-spring-segment-routing-policy] a BSID can also be | ||||
associated with any type of interface or tunnel to enable the use of | associated with any type of interface or tunnel to enable the use of | |||
a non-SR interface or tunnel as a segment in a SID list. In this | a non-SR interface or tunnel as a segment in a SID list. In this | |||
document, the term 'binding label/SID' is used to generalize the | document, the term "binding label/SID" is used to generalize the | |||
allocation of binding value for both SR and non-SR paths. | allocation of a binding value for both SR and non-SR paths. | |||
[RFC5440] describes the PCEP for communication between a Path | [RFC5440] describes the PCEP for communication between a Path | |||
Computation Client (PCC) and a PCE or between a pair of PCEs as per | Computation Client (PCC) and a PCE or between a pair of PCEs as per | |||
[RFC4655]. [RFC8231] specifies extensions to PCEP that allow a PCC | [RFC4655]. [RFC8231] specifies extensions to PCEP that allow a PCC | |||
to delegate its Label Switched Paths (LSPs) to a stateful PCE. A | to delegate its Label Switched Paths (LSPs) to a stateful PCE. A | |||
stateful PCE can then update the state of LSPs delegated to it. | stateful PCE can then update the state of LSPs delegated to it. | |||
[RFC8281] specifies a mechanism allowing a PCE to dynamically | [RFC8281] specifies a mechanism allowing a PCE to dynamically | |||
instantiate an LSP on a PCC by sending the path and characteristics. | instantiate an LSP on a PCC by sending the path and characteristics. | |||
This document specifies an extension to PCEP to manage the binding of | This document specifies an extension to PCEP to manage the binding of | |||
label/SID that can be applied to SR, RSVP-TE, and other path setup | label/SID that can be applied to SR, RSVP-TE, and other path setup | |||
types. | types. | |||
[RFC8664] provides a mechanism for a PCE (acting as a network | [RFC8664] provides a mechanism for a PCE (acting as a network | |||
controller) to instantiate SR-TE paths (candidate paths) for an SR | controller) to instantiate SR-TE paths (candidate paths) for an SR | |||
Policy onto a head-end node (acting as a PCC) using PCEP. For more | Policy onto a head-end node (acting as a PCC) using PCEP. For more | |||
information on the SR Policy Architecture, see | information on the SR Policy Architecture, see [RFC9256]. | |||
[I-D.ietf-spring-segment-routing-policy]. | ||||
1.1. Motivation and Example | 1.1. Motivation and Example | |||
A binding label/SID has local significance to the ingress node of the | A binding label/SID has local significance to the ingress node of the | |||
corresponding TE path. When a stateful PCE is deployed for setting | corresponding TE path. When a stateful PCE is deployed for setting | |||
up TE paths, a binding label/SID reported from the PCC to the | up TE paths, a binding label/SID reported from the PCC to the | |||
stateful PCE is useful for the purpose of enforcing end-to-end TE/SR | stateful PCE is useful for enforcing an end-to-end TE/SR policy. A | |||
policy. A sample Data Center (DC) and IP/MPLS WAN use-case is | sample Data Center (DC) and IP/MPLS WAN use case is illustrated in | |||
illustrated in Figure 1 with a multi-domain PCE. In the IP/MPLS WAN, | Figure 1 with a multi-domain PCE. In the IP/MPLS WAN, an SR-TE LSP | |||
an SR-TE LSP is set up using the PCE. The list of SIDs of the SR-TE | is set up using the PCE. The list of SIDs of the SR-TE LSP is {A, B, | |||
LSP is {A, B, C, D}. The gateway node 1 (which is the PCC) allocates | C, D}. The gateway Node-1 (which is the PCC) allocates a binding SID | |||
a binding SID X and reports it to the PCE. In the MPLS DC network, | X and reports it to the PCE. In the MPLS DC network, an end-to-end | |||
an end-to-end SR-TE LSP is established. In order for the access node | SR-TE LSP is established. In order for the access node to steer the | |||
to steer the traffic towards Node-1 and over the SR-TE path in WAN, | traffic towards Node-1 and over the SR-TE path in WAN, the PCE passes | |||
the PCE passes the SID stack {Y, X} where Y is the node SID of the | the SID stack {Y, X} where Y is the node SID of the gateway Node-1 to | |||
gateway node-1 to the access node and X is the BSID. In the absence | the access node and X is the BSID. In the absence of the BSID X, the | |||
of the BSID X, the PCE would need to pass the SID stack {Y, A, B, C, | PCE would need to pass the SID stack {Y, A, B, C, D} to the access | |||
D} to the access node. This example also illustrates the additional | node. This example also illustrates the additional benefit of using | |||
benefit of using the binding label/SID to reduce the number of SIDs | the binding label/SID to reduce the number of SIDs imposed by the | |||
imposed by the access nodes with a limited forwarding capacity. | access nodes with a limited forwarding capacity. | |||
SID stack | SID stack | |||
{Y, X} +--------------+ | {Y, X} +--------------+ | |||
| Multi-domain | | | Multi-domain | | |||
_ _ _ _ _ _ _ _ _ _ _ _ _ _| PCE | | _ _ _ _ _ _ _ _ _ _ _ _ _ _| PCE | | |||
| +--------------+ | | +--------------+ | |||
| ^ | | ^ | |||
| | Binding | | | Binding | |||
| .-----. | SID (X) .-----. | | .-----. | SID (X) .-----. | |||
| ( ) | ( ) | | ( ) | ( ) | |||
skipping to change at page 4, line 45 ¶ | skipping to change at line 173 ¶ | |||
+------+ ( ) +-------+ ( ) +-------+ | +------+ ( ) +-------+ ( ) +-------+ | |||
|Access|_( MPLS DC Network )_|Gateway|_( IP/MPLS WAN )_|Gateway| | |Access|_( MPLS DC Network )_|Gateway|_( IP/MPLS WAN )_|Gateway| | |||
| Node | ( ==============> ) |Node-1 | ( ================> ) |Node-2 | | | Node | ( ==============> ) |Node-1 | ( ================> ) |Node-2 | | |||
+------+ ( SR-TE path ) +-------+ ( SR-TE path ) +-------+ | +------+ ( SR-TE path ) +-------+ ( SR-TE path ) +-------+ | |||
'--( )--' Node '--( )--' | '--( )--' Node '--( )--' | |||
( ) SID of ( ) | ( ) SID of ( ) | |||
'-----' Node-1 '-----' | '-----' Node-1 '-----' | |||
is Y SIDs for SR-TE LSP: | is Y SIDs for SR-TE LSP: | |||
{A, B, C, D} | {A, B, C, D} | |||
Figure 1: A Sample Use-case of Binding SID | Figure 1: A Sample Use Case of Binding SID | |||
Using the extension defined in this document, a PCC could report to | Using the extension defined in this document, a PCC could report to | |||
the stateful PCE the binding label/SID it allocated via a Path | the stateful PCE the binding label/SID it allocated via a Path | |||
Computation LSP State Report (PCRpt) message. It is also possible | Computation LSP State Report (PCRpt) message. It is also possible | |||
for a stateful PCE to request a PCC to allocate a specific binding | for a stateful PCE to request a PCC to allocate a specific binding | |||
label/SID by sending a Path Computation LSP Update Request (PCUpd) | label/SID by sending a Path Computation LSP Update Request (PCUpd) | |||
message. If the PCC can successfully allocate the specified binding | message. If the PCC can successfully allocate the specified binding | |||
value, it reports the binding value to the PCE. Otherwise, the PCC | value, it reports the binding value to the PCE. Otherwise, the PCC | |||
sends an error message to the PCE indicating the cause of the | sends an error message to the PCE indicating the cause of the | |||
failure. A local policy or configuration at the PCC SHOULD dictate | failure. A local policy or configuration at the PCC SHOULD dictate | |||
if the binding label/SID needs to be assigned. | if the binding label/SID needs to be assigned. | |||
1.2. Summary of the Extension | 1.2. Summary of the Extension | |||
To implement the needed changes to PCEP, in this document, we | To implement the needed changes to PCEP, this document introduces a | |||
introduce a new OPTIONAL TLV that a PCC can use in order to report | new OPTIONAL TLV that allows a PCC to report the binding label/SID | |||
the binding label/SID associated with a TE LSP, or a PCE to request a | associated with a TE LSP or a PCE to request a PCC to allocate any or | |||
PCC to allocate any or a specific binding label/SID value. This TLV | a specific binding label/SID value. This TLV is intended for TE LSPs | |||
is intended for TE LSPs established using RSVP-TE, SR-TE, or any | established using RSVP-TE, SR-TE, or any other future method. In the | |||
other future method. In the case of SR-TE LSPs, the TLV can carry a | case of SR-TE LSPs, the TLV can carry a binding label (for SR-TE | |||
binding label (for SR-TE path with MPLS data-plane) or a binding IPv6 | paths with the MPLS data plane) or a binding IPv6 SID (e.g., IPv6 | |||
SID (e.g., IPv6 address for SR-TE paths with IPv6 data-plane). | address for SR-TE paths with the IPv6 data plane). Throughout this | |||
Throughout this document, the term "binding value" means either an | document, the term "binding value" means either an MPLS label or a | |||
MPLS label or a SID. | SID. | |||
As another way to use the extension specified in this document, to | As another way to use the extension specified in this document, to | |||
support the PCE-based central controller [RFC8283] operation where | support the PCE-based central controller [RFC8283] operation where | |||
the PCE would take responsibility for managing some part of the MPLS | the PCE would take responsibility for managing some part of the MPLS | |||
label space for each of the routers that it controls, the PCE could | label space for each of the routers that it controls, the PCE could | |||
directly make the binding label/SID allocation and inform the PCC. | directly make the binding label/SID allocation and inform the PCC. | |||
See Section 8 for details. | See Section 8 for details. | |||
In addition to specifying a new TLV, this document specifies how and | In addition to specifying a new TLV, this document specifies how and | |||
when a PCC and PCE can use this TLV, how they can allocate a binding | when a PCC and PCE can use this TLV, how they can allocate a binding | |||
label/SID, and associated error handling. | label/SID, and the associated error handling. | |||
2. Requirements Language | 2. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Terminology | 3. Terminology | |||
The following terminologies are used in this document: | The following terminologies are used in this document: | |||
BSID: Binding Segment Identifier. | BSID: Binding SID | |||
binding label/SID: a generic term used for the binding segment for | binding label/SID: a generic term used for the binding segment for | |||
both SR and non-SR paths. | both SR and non-SR paths | |||
binding value: a generic term used for the binding segment as it can | binding value: a generic term used for the binding segment as it can | |||
be encoded in various formats (as per the binding type(BT)). | be encoded in various formats (as per the Binding Type (BT)) | |||
LSP: Label Switched Path. | LSP: Label Switched Path | |||
PCC: Path Computation Client. | PCC: Path Computation Client | |||
PCEP: Path Computation Element communication Protocol. | PCEP: Path Computation Element Communication Protocol | |||
RSVP-TE: Resource ReserVation Protocol-Traffic Engineering. | RSVP-TE: Resource Reservation Protocol - Traffic Engineering | |||
SID: Segment Identifier. | SID: Segment Identifier | |||
SR: Segment Routing. | SR: Segment Routing | |||
4. Path Binding TLV | 4. Path Binding TLV | |||
The new optional TLV called "TE-PATH-BINDING TLV" (whose format is | The new optional TLV called "TE-PATH-BINDING TLV" (the format is | |||
shown in Figure 2) is defined to carry the binding label/SID for a TE | shown in Figure 2) is defined to carry the binding label/SID for a TE | |||
path. This TLV is associated with the LSP object specified in | path. This TLV is associated with the LSP object specified in | |||
[RFC8231]. This TLV can also be carried in the PCEP-ERROR object | [RFC8231]. This TLV can also be carried in the PCEP-ERROR object | |||
[RFC5440] in case of error. Multiple instances of TE-PATH-BINDING | [RFC5440] in case of error. Multiple instances of TE-PATH-BINDING | |||
TLVs MAY be present in the LSP and PCEP-ERROR object. The type of | TLVs MAY be present in the LSP and PCEP-ERROR object. The type of | |||
this TLV is 55 (early allocated by IANA). The length is variable. | this TLV is 55. The length is variable. | |||
[Note to RFC Editor: Please remove "(early allocated by IANA)" before | ||||
publication] | ||||
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 = 55 | Length | | | Type = 55 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BT | Flags | Reserved | | | BT | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Binding Value (variable length) ~ | ~ Binding Value (variable length) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: TE-PATH-BINDING TLV | Figure 2: TE-PATH-BINDING TLV | |||
TE-PATH-BINDING TLV is a generic TLV such that it is able to carry | The TE-PATH-BINDING TLV is a generic TLV such that it is able to | |||
binding label/SID (i.e. MPLS label or SRv6 SID). It is formatted | carry binding label/SID (i.e., MPLS label or SRv6 SID). It is | |||
according to the rules specified in [RFC5440]. The value portion of | formatted according to the rules specified in [RFC5440]. The value | |||
the TLV comprises: | portion of the TLV comprises: | |||
Binding Type (BT): A one-octet field that identifies the type of | * Binding Type (BT): A one-octet field that identifies the type of | |||
binding included in the TLV. This document specifies the following | binding included in the TLV. This document specifies the | |||
BT values: | following BT values: | |||
* BT = 0: The binding value is a 20-bit MPLS label value. The TLV | - BT = 0: The binding value is a 20-bit MPLS label value. The | |||
is padded to 4-bytes alignment. The Length MUST be set to 7 (the | TLV is padded to 4-bytes alignment. The Length MUST be set to | |||
padding is not included in the length, as per [RFC5440] | 7 (the padding is not included in the length, as per [RFC5440], | |||
Section 7.1) and the first 20 bits are used to encode the MPLS | Section 7.1), and the first 20 bits are used to encode the MPLS | |||
label value. | label value. | |||
* BT = 1: The binding value is a 32-bit MPLS label stack entry as | - BT = 1: The binding value is a 32-bit MPLS Label Stack Entry as | |||
per [RFC3032] with Label, TC [RFC5462], S, and TTL values encoded. | per [RFC3032] with Label, Traffic Class (TC) [RFC5462], S, and | |||
Note that the receiver MAY choose to override TC, S, and TTL | TTL values encoded. Note that the receiver MAY choose to | |||
values according to its local policy. The Length MUST be set to | override TC, S, and TTL values according to its local policy. | |||
8. | The Length MUST be set to 8. | |||
* BT = 2: The binding value is an SRv6 SID with the format of a | - BT = 2: The binding value is an SRv6 SID with the format of a | |||
16-octet IPv6 address, representing the binding SID for SRv6. The | 16-octet IPv6 address, representing the binding SID for SRv6. | |||
Length MUST be set to 20. | The Length MUST be set to 20. | |||
* BT = 3: The binding value is a 24 octet field, defined in | - BT = 3: The binding value is a 24-octet field, defined in | |||
Section 4.1, that contains the SRv6 SID as well as its Behavior | Section 4.1, that contains the SRv6 SID as well as its Behavior | |||
and Structure. The Length MUST be set to 28. | and Structure. The Length MUST be set to 28. | |||
Section 12.1.1 defines the IANA registry used to maintain all these | Section 11.1.1 defines the IANA registry used to maintain these | |||
binding types as well as any future ones. Note that multiple TE- | binding types as well as any future ones. Note that multiple TE- | |||
PATH-BINDING TLVs with same or different Binding Types MAY be present | PATH-BINDING TLVs with the same or different binding types MAY be | |||
for the same LSP. A PCEP speaker could allocate multiple TE-PATH- | present for the same LSP. A PCEP speaker could allocate multiple | |||
BINDING TLVs (of the same BT), and use different binding values in | TE-PATH-BINDING TLVs (of the same BT) and use different binding | |||
different domains or use-cases based on a local policy. | values in different domains or use cases based on a local policy. | |||
Flags: 1 octet of flags. The following flag is defined in the new | * Flags: 1 octet of flags. The following flag is defined in the new | |||
registry "TE-PATH-BINDING TLV Flag field" as described in | "TE-PATH-BINDING TLV Flag field" registry as described in | |||
Section 12.1.1: | Section 11.1.1: | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|R| | | |R| | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Figure 3: Flags | Figure 3: Flags | |||
where: | Where: | |||
* R (Removal - 1 bit): When set, the requesting PCEP peer requires | - R (Removal - 1 bit): When set, the requesting PCEP peer | |||
the removal of the binding value for the LSP. When unset, the | requires the removal of the binding value for the LSP. When | |||
PCEP peer indicates that the binding value is added or retained | unset, the PCEP peer indicates that the binding value is added | |||
for the LSP. This flag is used in the PCRpt and PCUpd messages. | or retained for the LSP. This flag is used in the PCRpt and | |||
It is ignored in other PCEP messages. | PCUpd messages. It is ignored in other PCEP messages. | |||
* The unassigned flags MUST be set to 0 while sending and ignored on | - The unassigned flags MUST be set to 0 while sending and ignored | |||
receipt. | on receipt. | |||
Reserved: MUST be set to 0 while sending and ignored on receipt. | * Reserved: MUST be set to 0 while sending and ignored on receipt. | |||
Binding Value: A variable-length field, padded with trailing zeros to | * Binding Value: A variable-length field, padded with trailing zeros | |||
a 4-octet boundary. When the BT is 0, the 20 bits represent the MPLS | to a 4-octet boundary. When the BT is 0, the 20 bits represent | |||
label. When the BT is 1, the 32 bits represent the MPLS label stack | the MPLS label. When the BT is 1, the 32 bits represent the MPLS | |||
entry as per [RFC3032]. When the BT is 2, the 128 bits represent the | label stack entry as per [RFC3032]. When the BT is 2, the 128 | |||
SRv6 SID. When the BT is 3, the Binding Value also contains the SRv6 | bits represent the SRv6 SID. When the BT is 3, the binding value | |||
Endpoint Behavior and SID Structure, defined in Section 4.1. In this | also contains the SRv6 Endpoint Behavior and SID Structure, | |||
document, the TE-PATH-BINDING TLV is considered to be empty if no | defined in Section 4.1. In this document, the TE-PATH-BINDING TLV | |||
Binding Value is present. Note that the length of the TLV would be 4 | is considered to be empty if no binding value is present. Note | |||
in such a case. | that the length of the TLV would be 4 in such a case. | |||
4.1. SRv6 Endpoint Behavior and SID Structure | 4.1. SRv6 Endpoint Behavior and SID Structure | |||
This section specifies the format of the Binding Value in the TE- | This section specifies the format of the binding value in the TE- | |||
PATH-BINDING TLV when the BT is set to 3 for the SRv6 Binding SIDs | PATH-BINDING TLV when the BT is set to 3 for the SRv6 Binding SIDs | |||
[RFC8986]. The format is shown in Figure 4. | [RFC8986]. The format is 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| SRv6 Binding SID (16 octets) | | | SRv6 Binding SID (16 octets) | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved | Endpoint Behavior | | | Reserved | Endpoint Behavior | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LB Length | LN Length | Fun. Length | Arg. Length | | | LB Length | LN Length | Fun. Length | Arg. Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: SRv6 Endpoint Behavior and SID Structure | Figure 4: SRv6 Endpoint Behavior and SID Structure | |||
The Binding Value consists of: | The Binding Value consists of: | |||
* SRv6 Binding SID: 16 octets. The 128-bit IPv6 address, | * SRv6 Binding SID: 16 octets. The 128-bit IPv6 address, | |||
representing the binding SID for SRv6. | representing the binding SID for SRv6. | |||
* Reserved: 2 octets. It MUST be set to 0 on transmit and ignored | * Reserved: 2 octets. It MUST be set to 0 on transmit and ignored | |||
on receipt. | on receipt. | |||
* Endpoint Behavior: 2 octets. The Endpoint Behavior code point for | * Endpoint Behavior: 2 octets. The Endpoint Behavior code point for | |||
this SRv6 SID as per the IANA subregistry called "SRv6 Endpoint | this SRv6 SID as defined by the "SRv6 Endpoint Behaviors" registry | |||
Behaviors", created by [RFC8986]. When the field is set with the | [RFC8986]. When the field is set with the value 0, the Endpoint | |||
value 0, the endpoint behavior is considered unknown. | Behavior is considered unknown. | |||
* [RFC8986] defines an SRv6 SID as consisting of LOC:FUNCT:ARG, | * [RFC8986] defines an SRv6 SID as consisting of LOC:FUNCT:ARG, | |||
where a locator (LOC) is encoded in the L most significant bits of | where a locator (LOC) is encoded in the L most significant bits of | |||
the SID, followed by F bits of function (FUNCT) and A bits of | the SID, followed by F bits of function (FUNCT) and A bits of | |||
arguments (ARG). A locator may be represented as B:N where B is | arguments (ARG). A locator may be represented as B:N, where B is | |||
the SRv6 SID locator block (IPv6 prefix allocated for SRv6 SIDs by | the SRv6 SID locator block (IPv6 prefix allocated for SRv6 SIDs by | |||
the operator) and N is the identifier of the parent node | the operator) and N is the identifier of the parent node | |||
instantiating the SID called locator node. The following fields | instantiating the SID, called "locator node". The following | |||
are used to advertise the length of each individual part of the | fields are used to advertise the length of each individual part of | |||
SRv6 SID as defined in : | the SRv6 SID: | |||
- LB Length: 1 octet. SRv6 SID Locator Block length in bits. | - LB Length: 1 octet. SRv6 SID Locator Block length in bits. | |||
- LN Length: 1 octet. SRv6 SID Locator Node length in bits. | - LN Length: 1 octet. SRv6 SID Locator Node length in bits. | |||
- Function Length: 1 octet. SRv6 SID Function length in bits. | - Function Length: 1 octet. SRv6 SID Function length in bits. | |||
- Argument Length: 1 octet. SRv6 SID Arguments length in bits. | - Arguments Length: 1 octet. SRv6 SID Arguments length in bits. | |||
The total of the locator block, locator node, function, and argument | The total of the locator block, locator node, function, and arguments | |||
lengths MUST be lower or equal to 128 bits. If this condition is not | lengths MUST be less than or equal to 128 bits. If this condition is | |||
met, the corresponding TE-PATH-BINDING TLV is considered invalid. | not met, the corresponding TE-PATH-BINDING TLV is considered invalid. | |||
Also, if the Endpoint Behavior is found to be unknown or | Also, if the Endpoint Behavior is found to be unknown or | |||
inconsistent, it is considered invalid. A PCErr message with Error- | inconsistent, it is considered invalid. A PCErr message with Error- | |||
Type = 10 ("Reception of an invalid object") and Error-Value = 37 | Type = 10 ("Reception of an invalid object") and Error-value = 37 | |||
("Invalid SRv6 SID Structure") MUST be sent in such cases. | ("Invalid SRv6 SID Structure") MUST be sent in such cases. | |||
The SRv6 SID Structure could be used by the PCE for ease of | The SRv6 SID Structure could be used by the PCE for ease of | |||
operations and monitoring. For example, this information could be | operations and monitoring. For example, this information could be | |||
used for validation of SRv6 SIDs being instantiated in the network | used for validation of SRv6 SIDs being instantiated in the network | |||
and checked for conformance to the SRv6 SID allocation scheme chosen | and checked for conformance to the SRv6 SID allocation scheme chosen | |||
by the operator as described in Section 3.2 of [RFC8986]. In the | by the operator as described in Section 3.2 of [RFC8986]. In the | |||
future, PCE could also be used for verification and the automation | future, PCE could also be used for verification and for automatically | |||
for securing the SRv6 domain by provisioning filtering rules at SR | securing the SRv6 domain by provisioning filtering rules at SR domain | |||
domain boundaries as described in Section 5 of [RFC8754]. The | boundaries as described in Section 5 of [RFC8754]. The details of | |||
details of these potential applications are outside the scope of this | these potential applications are outside the scope of this document. | |||
document. | ||||
5. Operation | 5. Operation | |||
The binding value is usually allocated by the PCC and reported to a | The binding value is usually allocated by the PCC and reported to a | |||
PCE via a PCRpt message (see Section 8 where PCE does the | PCE via a PCRpt message (see Section 8 where PCE performs the | |||
allocation). If a PCE does not recognize the TE-PATH-BINDING TLV, it | allocation). If a PCE does not recognize the TE-PATH-BINDING TLV, it | |||
would ignore the TLV in accordance with [RFC5440]. If a PCE | would ignore the TLV in accordance with [RFC5440]. If a PCE | |||
recognizes the TLV but does not support the TLV, it MUST send a PCErr | recognizes the TLV but does not support the TLV, it MUST send a PCErr | |||
with Error-Type = 2 (Capability not supported). | with Error-Type = 2 ("Capability not supported"). | |||
Multiple TE-PATH-BINDING TLVs are allowed to be present in the same | Multiple TE-PATH-BINDING TLVs are allowed to be present in the same | |||
LSP object. This signifies the presence of multiple binding SIDs for | LSP object. This signifies the presence of multiple binding SIDs for | |||
the given LSP. In the case of multiple TE-PATH-BINDING TLVs, the | the given LSP. In the case of multiple TE-PATH-BINDING TLVs, the | |||
existing instances of TE-PATH-BINDING TLVs MAY be included in the LSP | existing instances of TE-PATH-BINDING TLVs MAY be included in the LSP | |||
object. In case of an error condition, the whole message is rejected | object. In case of an error condition, the whole message is | |||
and the resulting PCErr message MAY include the offending TE-PATH- | rejected, and the resulting PCErr message MAY include the offending | |||
BINDING TLV in the PCEP-ERROR object. | TE-PATH-BINDING TLV in the PCEP-ERROR object. | |||
If a PCE recognizes an invalid binding value (e.g., label value from | If a PCE recognizes an invalid binding value (e.g., label value from | |||
the reserved MPLS label space), it MUST send a PCErr message with | the reserved MPLS label space), it MUST send a PCErr message with | |||
Error-Type = 10 ("Reception of an invalid object") and Error Value = | Error-Type = 10 ("Reception of an invalid object") and Error-value = | |||
2 ("Bad label value") as specified in [RFC8664]. | 2 ("Bad label value") as specified in [RFC8664]. | |||
For SRv6 BSIDs, it is RECOMMENDED to always explicitly specify the | For SRv6 BSIDs, it is RECOMMENDED to always explicitly specify the | |||
SRv6 Endpoint Behavior and SID Structure in the TE-PATH-BINDING TLV | SRv6 Endpoint Behavior and SID Structure in the TE-PATH-BINDING TLV | |||
by setting the BT (Binding Type) to 3. This can enable the sender to | by setting BT to 3. This can enable the sender to have control of | |||
have control of the SRv6 Endpoint Behavior and SID Structure. A | the SRv6 Endpoint Behavior and SID Structure. A sender MAY choose to | |||
sender MAY choose to set the BT to 2, in which case the receiving | set the BT to 2, in which case the receiving implementation chooses | |||
implementation chooses how to interpret the SRv6 Endpoint Behavior | how to interpret the SRv6 Endpoint Behavior and SID Structure | |||
and SID Structure according to local policy. | according to local policy. | |||
If a PCC wishes to withdraw a previously reported binding value, it | If a PCC wishes to withdraw a previously reported binding value, it | |||
MUST send a PCRpt message with the specific TE-PATH-BINDING TLV with | MUST send a PCRpt message with the specific TE-PATH-BINDING TLV with | |||
R flag set to 1. If a PCC wishes to modify a previously reported | R flag set to 1. If a PCC wishes to modify a previously reported | |||
binding, it MUST withdraw the former binding value (with R flag set | binding, it MUST withdraw the former binding value (with R flag set | |||
in the former TE-PATH-BINDING TLV) and include a new TE-PATH-BINDING | in the former TE-PATH-BINDING TLV) and include a new TE-PATH-BINDING | |||
TLV containing the new binding value. Note that other instances of | TLV containing the new binding value. Note that other instances of | |||
TE-PATH-BINDING TLVs that are unchanged MAY also be included. If the | TE-PATH-BINDING TLVs that are unchanged MAY also be included. If the | |||
unchanged instances are not included, they will remain associated | unchanged instances are not included, they will remain associated | |||
with the LSP. | with the LSP. | |||
If a PCE requires a PCC to allocate a (or several) specific binding | If a PCE requires a PCC to allocate one (or several) specific binding | |||
value(s), it may do so by sending a PCUpd or PCInitiate message | value(s), it may do so by sending a PCUpd or PCInitiate message | |||
containing a TE-PATH-BINDING TLV(s). If the value(s) can be | containing one or more TE-PATH-BINDING TLVs. If the values can be | |||
successfully allocated, the PCC reports the binding value(s) to the | successfully allocated, the PCC reports the binding values to the | |||
PCE. If the PCC considers the binding value specified by the PCE | PCE. If the PCC considers the binding value specified by the PCE | |||
invalid, it MUST send a PCErr message with Error-Type = TBD2 | invalid, it MUST send a PCErr message with Error-Type = 32 ("Binding | |||
("Binding label/SID failure") and Error Value = TBD3 ("Invalid SID"). | label/SID failure") and Error-value = 1 ("Invalid SID"). If the | |||
If the binding value is valid, but the PCC is unable to allocate the | binding value is valid but the PCC is unable to allocate the binding | |||
binding value, it MUST send a PCErr message with Error-Type = TBD2 | value, it MUST send a PCErr message with Error-Type = 32 ("Binding | |||
("Binding label/SID failure") and Error Value = TBD4 ("Unable to | label/SID failure") and Error-value = 2 ("Unable to allocate the | |||
allocate the specified binding value"). Note that, in case of an | specified binding value"). Note that, in case of an error, the PCC | |||
error, the PCC rejects the PCUpd or PCInitiate message in its | rejects the PCUpd or PCInitiate message in its entirety and can | |||
entirety and can include the offending TE-PATH-BINDING TLV in the | include the offending TE-PATH-BINDING TLV in the PCEP-ERROR object. | |||
PCEP-ERROR object. | ||||
If a PCE wishes to request the withdrawal of a previously reported | If a PCE wishes to request the withdrawal of a previously reported | |||
binding value, it MUST send a PCUpd message with the specific TE- | binding value, it MUST send a PCUpd message with the specific TE- | |||
PATH-BINDING TLV with R flag set to 1. If a PCE wishes to modify a | PATH-BINDING TLV with R flag set to 1. If a PCE wishes to modify a | |||
previously requested binding value, it MUST request the withdrawal of | previously requested binding value, it MUST request the withdrawal of | |||
the former binding value (with R flag set in the former TE-PATH- | the former binding value (with R flag set in the former TE-PATH- | |||
BINDING TLV) and include a new TE-PATH-BINDING TLV containing the new | BINDING TLV) and include a new TE-PATH-BINDING TLV containing the new | |||
binding value. If a PCC receives a PCUpd message with TE-PATH- | binding value. If a PCC receives a PCUpd message with TE-PATH- | |||
BINDING TLV where the R flag is set to 1, but either the binding | BINDING TLV where the R flag is set to 1, but either the binding | |||
value is missing (empty TE-PATH-BINDING TLV) or the binding value is | value is missing (empty TE-PATH-BINDING TLV) or the binding value is | |||
incorrect, it MUST send a PCErr message with Error-Type = TBD2 | incorrect, it MUST send a PCErr message with Error-Type = 32 | |||
("Binding label/SID failure") and Error Value = TBD6 ("Unable to | ("Binding label/SID failure") and Error-value = 4 ("Unable to remove | |||
remove the binding value"). | the binding value"). | |||
In some cases, a stateful PCE may want to request that the PCC | In some cases, a stateful PCE may want to request that the PCC | |||
allocate a binding value of the PCC's own choosing. It instructs the | allocate a binding value of the PCC's own choosing. It instructs the | |||
PCC by sending a PCUpd message containing an empty TE-PATH-BINDING | PCC by sending a PCUpd message containing an empty TE-PATH-BINDING | |||
TLV, i.e., no binding value is specified (bringing the Length field | TLV, i.e., no binding value is specified (bringing the Length field | |||
of the TLV to 4). A PCE can also request a PCC to allocate a binding | of the TLV to 4). A PCE can also request that a PCC allocate a | |||
value at the time of initiation by sending a PCInitiate message with | binding value at the time of initiation by sending a PCInitiate | |||
an empty TE-PATH-BINDING TLV. Only one such instance of empty TE- | message with an empty TE-PATH-BINDING TLV. Only one such instance of | |||
PATH-BINDING TLV, per BT, SHOULD be included in the LSP object and | empty TE-PATH-BINDING TLV, per BT, SHOULD be included in the LSP | |||
others ignored on receipt. If the PCC is unable to allocate a new | object; others should be ignored on receipt. If the PCC is unable to | |||
binding value as per the specified BT, it MUST send a PCErr message | allocate a new binding value as per the specified BT, it MUST send a | |||
with Error-Type = TBD2 ("Binding label/SID failure") and Error-Value | PCErr message with Error-Type = 32 ("Binding label/SID failure") and | |||
= TBD5 ("Unable to allocate a new binding label/SID"). | Error-value = 3 ("Unable to allocate a new binding label/SID"). | |||
As previously noted, if a message contains an invalid TE-PATH-BINDING | As previously noted, if a message contains an invalid TE-PATH-BINDING | |||
TLV that leads to an error condition, the whole message is rejected | TLV that leads to an error condition, the whole message is rejected | |||
including any other valid instances of TE-PATH-BINDING TLVs, if any. | including any other valid instances of TE-PATH-BINDING TLVs, if any. | |||
The resulting error message MAY include the offending TE-PATH-BINDING | The resulting error message MAY include the offending TE-PATH-BINDING | |||
TLV in the PCEP-ERROR object. | TLV in the PCEP-ERROR object. | |||
If a PCC receives a TE-PATH-BINDING TLV in any message other than | If a PCC receives a TE-PATH-BINDING TLV in any message other than | |||
PCUpd or PCInitiate, it MUST close the corresponding PCEP session | PCUpd or PCInitiate, it MUST close the corresponding PCEP session | |||
with the reason "Reception of a malformed PCEP message" (according to | with the reason "Reception of a malformed PCEP message" (according to | |||
[RFC5440]). Similarly, if a PCE receives a TE-PATH-BINDING TLV in | [RFC5440]). Similarly, if a PCE receives a TE-PATH-BINDING TLV in | |||
any message other than a PCRpt or if the TE-PATH-BINDING TLV is | any message other than a PCRpt or if the TE-PATH-BINDING TLV is | |||
associated with any object other than an LSP or PCEP-ERROR object, | associated with any object other than an LSP or PCEP-ERROR object, | |||
the PCE MUST close the corresponding PCEP session with the reason | the PCE MUST close the corresponding PCEP session with the reason | |||
"Reception of a malformed PCEP message" (according to [RFC5440]). | "Reception of a malformed PCEP message" (according to [RFC5440]). | |||
If a TE-PATH-BINDING TLV is absent in the PCRpt message and no | If a TE-PATH-BINDING TLV is absent in the PCRpt message and no | |||
binding values were reported before, the PCE MUST assume that the | binding values were previously reported, the PCE MUST assume that the | |||
corresponding LSP does not have any binding. Similarly, if TE-PATH- | corresponding LSP does not have any binding. Similarly, if TE-PATH- | |||
BINDING TLV is absent in the PCUpd message and no binding values were | BINDING TLV is absent in the PCUpd message and no binding values were | |||
reported before, the PCC's local policy dictates how the binding | previously reported, the PCC's local policy dictates how the binding | |||
allocations are made for a given LSP. | allocations are made for a given LSP. | |||
Note that some binding types have similar information but different | Note that some binding types have similar information but different | |||
binding value formats. For example, BT=(2 or 3) is used for the SRv6 | binding value formats. For example, BT=(2 or 3) is used for the SRv6 | |||
SID and BT=(0 or 1) is used for the MPLS Label. In case a PCEP | SID, and BT=(0 or 1) is used for the MPLS Label. In case a PCEP | |||
speaker receives multiple TE-PATH-BINDING TLVs with the same SRv6 SID | speaker receives multiple TE-PATH-BINDING TLVs with the same SRv6 SID | |||
or MPLS Label but different BT values, it MUST send a PCErr message | or MPLS Label but different BT values, it MUST send a PCErr message | |||
with Error-Type = TBD2 ("Binding label/SID failure") and Error-Value | with Error-Type = 32 ("Binding label/SID failure") and Error-value = | |||
= TBD7 ("Inconsistent binding types"). | 5 ("Inconsistent binding types"). | |||
6. Binding SID in SR-ERO | 6. Binding SID in SR-ERO | |||
In PCEP messages, LSP route information is carried in the Explicit | In PCEP messages, LSP route information is carried in the Explicit | |||
Route Object (ERO), which consists of a sequence of subobjects. | Route Object (ERO), which consists of a sequence of subobjects. | |||
[RFC8664] defines the "SR-ERO subobject" capable of carrying a SID as | [RFC8664] defines the "SR-ERO subobject" capable of carrying a SID as | |||
well as the identity of the node/adjacency (NAI) represented by the | well as the identity of the Node or Adjacency Identifier (NAI) | |||
SID. The NAI Type (NT) field indicates the type and format of the | represented by the SID. The NAI Type (NT) field indicates the type | |||
NAI contained in the SR-ERO. In case of binding SID, the NAI MUST | and format of the NAI contained in the SR-ERO. In case of binding | |||
NOT be included and NT MUST be set to zero. [RFC8664] Section 5.2.1 | SID, the NAI MUST NOT be included and NT MUST be set to zero. | |||
specifies bit settings and error handling in the case when NT=0. | Section 5.2.1 of [RFC8664] specifies bit settings and error handling | |||
in the case when NT=0. | ||||
7. Binding SID in SRv6-ERO | 7. Binding SID in SRv6-ERO | |||
[I-D.ietf-pce-segment-routing-ipv6] defines the "SRv6-ERO subobject" | [RFC9603] defines the "SRv6-ERO subobject" for an SRv6 SID. | |||
for an SRv6 SID. Similarly to SR-ERO (Section 6), the NAI MUST NOT | Similarly to SR-ERO (Section 6), the NAI MUST NOT be included and the | |||
be included and the NT MUST be set to zero. [RFC8664] Section 5.2.1 | NT MUST be set to zero. Section 5.2.1 of [RFC8664] specifies bit | |||
specifies bit settings and error handling in the case when NT=0. | settings and error handling in the case when NT=0. | |||
8. PCE Allocation of Binding label/SID | 8. PCE Allocation of Binding Label/SID | |||
Section 5 already includes the scenario where a PCE requires a PCC to | Section 5 already includes the scenario where a PCE requires a PCC to | |||
allocate a specified binding value by sending a PCUpd or PCInitiate | allocate a specified binding value by sending a PCUpd or PCInitiate | |||
message containing a TE-PATH-BINDING TLV. This section specifies an | message containing a TE-PATH-BINDING TLV. This section specifies an | |||
OPTIONAL feature for the PCE to allocate the binding label/SID of its | OPTIONAL feature for the PCE to allocate the binding label/SID of its | |||
own accord in the case where the PCE also controls the label space of | own accord in the case where the PCE also controls the label space of | |||
the PCC and can make the label allocation on its own as described in | the PCC and can make the label allocation on its own as described in | |||
[RFC8283]. Note that the act of requesting a specific binding value | [RFC8283]. Note that the act of requesting a specific binding value | |||
(Section 5) is different from the act of allocating a binding label/ | (Section 5) is different from the act of allocating a binding label/ | |||
SID as described in this section. | SID as described in this section. | |||
[RFC8283] introduces the architecture for PCE as a central controller | [RFC8283] introduces the architecture for PCE as a central controller | |||
as an extension of the architecture described in [RFC4655] and | as an extension of the architecture described in [RFC4655] and | |||
assumes the continued use of PCEP as the protocol used between PCE | assumes the continued use of PCEP as the protocol used between PCE | |||
and PCC. [RFC9050] specifies the procedures and PCEP extensions for | and PCC. [RFC9050] specifies the procedures and PCEP extensions for | |||
using the PCE as the central controller. It assumes that the | using the PCE as the central controller. It assumes that the | |||
exclusive label range to be used by a PCE is known and set on both | exclusive label range to be used by a PCE is known and set on both | |||
PCEP peers. A future extension could add the capability to advertise | PCEP peers. A future extension could add the capability to advertise | |||
this range via a possible PCEP extension as well (see | this range via a possible PCEP extension as well (see | |||
[I-D.li-pce-controlled-id-space]). | [PCE-ID-SPACE]). | |||
When PCECC operations are supported as per [RFC9050], the binding | When PCE as a Central Controller (PCECC) operations are supported as | |||
label/SID MAY also be allocated by the PCE itself. Both peers need | per [RFC9050], the binding label/SID MAY also be allocated by the PCE | |||
to exchange the PCECC capability as described in [RFC9050] before the | itself. Both peers need to exchange the PCECC capability as | |||
PCE can allocate the binding label/SID on its own. | described in [RFC9050] before the PCE can allocate the binding label/ | |||
SID on its own. | ||||
A new P flag in the LSP object [RFC8231] is introduced to indicate | A new P flag in the LSP object [RFC8231] is introduced to indicate | |||
that the allocation needs to be made by the PCE. Note that the P | that the allocation needs to be made by the PCE. Note that the P | |||
flag could be used for other types of allocations (such as path | flag could be used for other types of allocations (such as path | |||
segments [I-D.ietf-pce-sr-path-segment]) in future. | segments [PCEP-SR]) in the future. | |||
* P (PCE-allocation): If the bit is set to 1, it indicates that the | P (PCE-allocation): If the bit is set to 1, it indicates that the | |||
PCC requests PCE to make allocations for this LSP. The TE-PATH- | PCC requests that the PCE make allocations for this LSP. The TE- | |||
BINDING TLV in the LSP object identifies that the allocation is | PATH-BINDING TLV in the LSP object identifies that the allocation | |||
for a binding label/SID. A PCC MUST set this bit to 1 and include | is for a binding label/SID. A PCC MUST set this bit to 1 and | |||
a TE-PATH-BINDING TLV in the LSP object if it wishes to request | include a TE-PATH-BINDING TLV in the LSP object if it wishes to | |||
for allocation of binding label/SID by the PCE in the PCEP | request an allocation for a binding label/SID by the PCE in the | |||
message. A PCE MUST also set this bit to 1 and include a TE-PATH- | PCEP message. A PCE MUST also set this bit to 1 and include a TE- | |||
BINDING TLV to indicate that the binding label/SID is allocated by | PATH-BINDING TLV to indicate that the binding label/SID is | |||
PCE and encoded in the PCEP message towards the PCC. Further, if | allocated by PCE and encoded in the PCEP message towards the PCC. | |||
the binding label/SID is allocated by the PCC, the PCE MUST set | Further, if the binding label/SID is allocated by the PCC, the PCE | |||
this bit to 0 and follow the procedure described in Section 5. | MUST set this bit to 0 and follow the procedure described in | |||
Section 5. | ||||
Note that - | Note that: | |||
* A PCE could allocate the binding label/SID of its own accord for a | * A PCE could allocate the binding label/SID of its own accord for a | |||
PCE-initiated or delegated LSP, and inform the PCC in the | PCE-initiated or PCE-delegated LSP and inform the PCC in the | |||
PCInitiate message or PCUpd message by setting P=1 and including | PCInitiate message or PCUpd message by setting P=1 and including | |||
TE-PATH-BINDING TLV in the LSP object. | TE-PATH-BINDING TLV in the LSP object. | |||
* To let the PCC allocate the binding label/SID, a PCE MUST set P=0 | * To let the PCC allocate the binding label/SID, a PCE MUST set P=0 | |||
and include an empty TE-PATH-BINDING TLV ( i.e., no binding value | and include an empty TE-PATH-BINDING TLV (i.e., no binding value | |||
is specified) in the LSP object in PCInitiate/PCUpd message. | is specified) in the LSP object in the PCInitiate/PCUpd message. | |||
* To request that the PCE allocate the binding label/SID, a PCC MUST | * To request that the PCE allocate the binding label/SID, a PCC MUST | |||
set P=1, D=1, and include an empty TE-PATH-BINDING TLV in PCRpt | set P=1, D=1, and include an empty TE-PATH-BINDING TLV in the | |||
message. The PCE will attempt to allocate it and respond to the | PCRpt message. The PCE will attempt to allocate it and respond to | |||
PCC with PCUpd message including the allocated binding label/SID | the PCC with a PCUpd message that includes the allocated binding | |||
in the TE-PATH-BINDING TLV and P=1, D=1 in the LSP object. If the | label/SID in the TE-PATH-BINDING TLV and P=1 and D=1 in the LSP | |||
PCE is unable to allocate, it MUST send a PCErr message with | object. If the PCE is unable to allocate the binding label/SID, | |||
Error-Type = TBD2 ("Binding label/SID failure") and Error-Value = | it MUST send a PCErr message with Error-Type = 32 ("Binding label/ | |||
TBD5 ("Unable to allocate a new binding label/SID"). | SID failure") and Error-value = 3 ("Unable to allocate a new | |||
binding label/SID"). | ||||
* If one or both speakers (PCE and PCC) have not indicated support | * If one or both speakers (PCE and PCC) have not indicated support | |||
and willingness to use the PCEP extensions for the PCECC as per | and willingness to use the PCEP extensions for the PCECC as per | |||
[RFC9050] and a PCEP peer receives P=1 in the LSP object, it MUST: | [RFC9050] and a PCEP peer receives P=1 in the LSP object, they | |||
MUST: | ||||
- send a PCErr message with Error-Type=19 (Invalid Operation) and | - send a PCErr message with Error-Type = 19 ("Invalid Operation") | |||
Error-value=16 (Attempted PCECC operations when PCECC | and Error-value = 16 ("Attempted PCECC operations when PCECC | |||
capability was not advertised) and | capability was not advertised") and | |||
- terminate the PCEP session. | - terminate the PCEP session. | |||
* A legacy PCEP speaker that does not recognize the P flag in the | * A legacy PCEP speaker that does not recognize the P flag in the | |||
LSP object would ignore it in accordance with [RFC8231]. | LSP object would ignore it in accordance with [RFC8231]. | |||
It is assumed that the label range to be used by a PCE is known and | It is assumed that the label range to be used by a PCE is known and | |||
set on both PCEP peers. The exact mechanism is out of the scope of | set on both PCEP peers. The exact mechanism is out of the scope of | |||
[RFC9050] or this document. Note that the specific BSID could be | [RFC9050] and this document. Note that the specific BSID could be | |||
from the PCE-controlled or the PCC-controlled label space. The PCE | from the PCE-controlled or the PCC-controlled label space. The PCE | |||
can directly allocate the label from the PCE-controlled label space | can directly allocate the label from the PCE-controlled label space | |||
using P=1 as described above, whereas the PCE can request the | using P=1 as described above, whereas the PCE can request the | |||
allocation of a specific BSID from the PCC-controlled label space | allocation of a specific BSID from the PCC-controlled label space | |||
with P=0 as described in Section 5. | with P=0 as described in Section 5. | |||
Note that, the P-Flag in the LSP object SHOULD NOT be set to 1 | Note that the P flag in the LSP object SHOULD NOT be set to 1 without | |||
without the presence of TE-PATH-BINDING TLV or any other future TLV | the presence of TE-PATH-BINDING TLV or any other future TLV defined | |||
defined for PCE allocation. On receipt of such an LSP object, the | for PCE allocation. On receipt of such an LSP object, the P flag is | |||
P-Flag is ignored. The presence of TE-PATH-BINDING TLV with P=1 | ignored. The presence of TE-PATH-BINDING TLV with P=1 indicates the | |||
indicates the allocation is for the binding label/SID. In the | allocation is for the binding label/SID. In the future, some other | |||
future, some other TLV (such as one defined in | TLV (such as one defined in [PCEP-SR]) could also be used alongside | |||
[I-D.ietf-pce-sr-path-segment]) could also be used alongside P=1 to | P=1 to indicate allocation of a different attribute. A future | |||
indicate allocation of a different attribute. A future document | document should not attempt to assign semantics to P=1 without | |||
should not attempt to assign semantics to P=1 without limiting its | limiting the scope to one that both PCEP peers can agree on. | |||
scope that both PCEP peers could agree on. | ||||
9. Implementation Status | ||||
[Note to the RFC Editor - remove this section before publication, as | ||||
well as remove the reference to RFC 7942.] | ||||
This section records the status of known implementations of the | ||||
protocol defined by this specification at the time of posting of this | ||||
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 | ||||
running code, which may serve as evidence of valuable experimentation | ||||
and feedback that have made the implemented protocols more mature. | ||||
It is up to the individual working groups to use this information as | ||||
they see fit". | ||||
9.1. Huawei | ||||
* Organization: Huawei | ||||
* Implementation: Huawei's Router and Controller | ||||
* Description: An experimental code-point is used and will be | ||||
modified to the value allocated in this document. | ||||
* Maturity Level: Production | ||||
* Coverage: Full | ||||
* Contact: c.l@huawei.com | ||||
9.2. Cisco | ||||
* Organization: Cisco Systems | ||||
* Implementation: Head-end and controller. | ||||
* Description: An experimental code-point is used and will be | ||||
modified to the value allocated in this document. | ||||
* Maturity Level: Production | ||||
* Coverage: Full | ||||
* Contact: mkoldych@cisco.com | ||||
10. Security Considerations | 9. Security Considerations | |||
The security considerations described in [RFC5440], [RFC8231], | The security considerations described in [RFC5440], [RFC8231], | |||
[RFC8281], [RFC8664], and [RFC9050] are applicable to this | [RFC8281], [RFC8664], and [RFC9050] are applicable to this | |||
specification. No additional security measure is required. | specification. No additional security measure is required. | |||
As described in [RFC8402] and [RFC8664], SR intrinsically involves an | As described in [RFC8402] and [RFC8664], SR intrinsically involves an | |||
entity (whether head-end or a central network controller) controlling | entity (whether head-end or a central network controller) controlling | |||
and instantiating paths in the network without the involvement of | and instantiating paths in the network without the involvement of | |||
(other) nodes along those paths. Binding SIDs are in effect | (other) nodes along those paths. Binding SIDs are in effect | |||
shorthand aliases for longer path representations, and the alias | shorthand aliases for longer path representations, and the alias | |||
skipping to change at page 16, line 29 ¶ | skipping to change at line 656 ¶ | |||
PCE, and rogue actions by either PCC or PCE could result in shifting | PCE, and rogue actions by either PCC or PCE could result in shifting | |||
or misdirecting traffic in ways that are hard for other nodes to | or misdirecting traffic in ways that are hard for other nodes to | |||
detect. In particular, when a PCE propagates paths of the form {A, | detect. In particular, when a PCE propagates paths of the form {A, | |||
B, BSID} to other entities, the BSID values are opaque, and a rogue | B, BSID} to other entities, the BSID values are opaque, and a rogue | |||
PCE can substitute a BSID from a different LSP in such paths to move | PCE can substitute a BSID from a different LSP in such paths to move | |||
traffic without the recipient of the path knowing the ultimate | traffic without the recipient of the path knowing the ultimate | |||
destination. | destination. | |||
The case of BT=3 provides additional opportunities for malfeasance, | The case of BT=3 provides additional opportunities for malfeasance, | |||
as it purports to convey information about internal SRv6 SID | as it purports to convey information about internal SRv6 SID | |||
structure. There is no mechanism defined to validate this internal | Structure. There is no mechanism defined to validate this internal | |||
structure information, and mischaracterizing the division of bits | structure information, and mischaracterizing the division of bits | |||
into locator block, locator node, function, and argument can result | into locator block, locator node, function, and argument can result | |||
in different interpretation of the bits by PCC and PCE. Most | in different interpretation of the bits by PCC and PCE. Most | |||
notably, shifting bits into or out of the "argument" is a direct | notably, shifting bits into or out of the "argument" is a direct | |||
vector for affecting processing, but other attacks are also possible. | vector for affecting processing, but other attacks are also possible. | |||
Thus, as per [RFC8231], it is RECOMMENDED that these PCEP extensions | Thus, as per [RFC8231], it is RECOMMENDED that these PCEP extensions | |||
only be activated on authenticated and encrypted sessions across PCEs | only be activated on authenticated and encrypted sessions across PCEs | |||
and PCCs belonging to the same administrative authority, using | and PCCs belonging to the same administrative authority, using | |||
Transport Layer Security (TLS) [RFC8253], as per the recommendations | Transport Layer Security (TLS) [RFC8253], as per the recommendations | |||
and best current practices in BCP195 [RFC7525] (unless explicitly set | and best current practices in RFC 9325 [BCP195] (unless explicitly | |||
aside in [RFC8253]). | set aside in [RFC8253]). | |||
11. Manageability Considerations | 10. Manageability Considerations | |||
All manageability requirements and considerations listed in | All manageability requirements and considerations listed in | |||
[RFC5440], [RFC8231], and [RFC8664] apply to PCEP protocol extensions | [RFC5440], [RFC8231], and [RFC8664] apply to PCEP protocol extensions | |||
defined in this document. In addition, requirements and | defined in this document. In addition, requirements and | |||
considerations listed in this section apply. | considerations listed in this section apply. | |||
11.1. Control of Function and Policy | 10.1. Control of Function and Policy | |||
A PCC implementation SHOULD allow the operator to configure the | A PCC implementation SHOULD allow the operator to configure the | |||
policy the PCC needs to apply when allocating the binding label/SID. | policy the PCC needs to apply when allocating the binding label/SID. | |||
If BT is set to 2, the operator needs to have local policy set to | If BT is set to 2, the operator needs to have local policy set to | |||
decide the SID structure and the SRv6 Endpoint Behavior of the BSID. | decide the SID structure and the SRv6 Endpoint Behavior of the BSID. | |||
11.2. Information and Data Models | 10.2. Information and Data Models | |||
The PCEP YANG module [I-D.ietf-pce-pcep-yang] will be extended to | The PCEP YANG module [PCEP-YANG] will be extended to include policy | |||
include policy configuration for binding label/SID allocation. | configuration for binding label/SID allocation. | |||
11.3. Liveness Detection and Monitoring | 10.3. Liveness Detection and Monitoring | |||
The mechanisms defined in this document do not imply any new liveness | The mechanisms defined in this document do not imply any new liveness | |||
detection and monitoring requirements in addition to those already | detection and monitoring requirements in addition to those already | |||
listed in [RFC5440]. | listed in [RFC5440]. | |||
11.4. Verify Correct Operations | 10.4. Verify Correct Operations | |||
The mechanisms defined in this document do not imply any new | The mechanisms defined in this document do not imply any new | |||
operation verification requirements in addition to those already | operation verification requirements in addition to those already | |||
listed in [RFC5440], [RFC8231], and [RFC8664]. | listed in [RFC5440], [RFC8231], and [RFC8664]. | |||
11.5. Requirements On Other Protocols | 10.5. Requirements on Other Protocols | |||
The mechanisms defined in this document do not imply any new | The mechanisms defined in this document do not imply any new | |||
requirements on other protocols. | requirements on other protocols. | |||
11.6. Impact On Network Operations | 10.6. Impact on Network Operations | |||
The mechanisms defined in [RFC5440], [RFC8231], and [RFC8664] also | The mechanisms defined in [RFC5440], [RFC8231], and [RFC8664] also | |||
apply to the PCEP extensions defined in this document. | apply to the PCEP extensions defined in this document. | |||
12. IANA Considerations | 11. IANA Considerations | |||
IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | IANA has allocated code points for the protocol elements described in | |||
registry. This document requests IANA actions to allocate code | this document in the "Path Computation Element Protocol (PCEP) | |||
points for the protocol elements defined in this document. | Numbers" registry group. | |||
12.1. PCEP TLV Type Indicators | 11.1. PCEP TLV Type Indicators | |||
This document defines a new PCEP TLV; IANA is requested to confirm | This document defines a new PCEP TLV. IANA has allocated the | |||
the following early allocations from the "PCEP TLV Type Indicators" | following in the "PCEP TLV Type Indicators" registry within the PCEP | |||
subregistry of the PCEP Numbers registry, as follows: | Numbers registry group: | |||
+=======+=================+===============+ | +=======+=================+===========+ | |||
| Value | Description | Reference | | | Value | Description | Reference | | |||
+=======+=================+===============+ | +=======+=================+===========+ | |||
+-------+-----------------+---------------+ | | 55 | TE-PATH-BINDING | RFC 9604 | | |||
| 55 | TE-PATH-BINDING | This document | | +-------+-----------------+-----------+ | |||
+-------+-----------------+---------------+ | ||||
Table 1 | Table 1 | |||
12.1.1. TE-PATH-BINDING TLV | 11.1.1. TE-PATH-BINDING TLV | |||
IANA is requested to create a new subregistry "TE-PATH-BINDING TLV BT | IANA has created the "TE-PATH-BINDING TLV BT Field" registry to | |||
field" to manage the value of the Binding Type field in the TE-PATH- | manage the values of the binding type field in the TE-PATH-BINDING | |||
BINDING TLV. Initial values for the subregistry are given below. | TLV. Initial values are shown below. New values are assigned by | |||
New values are assigned by Standards Action [RFC8126]. | Standards Action [RFC8126]. | |||
+=======+======================================+===============+ | +=======+======================================+===========+ | |||
| Value | Description | Reference | | | Value | Description | Reference | | |||
+=======+======================================+===============+ | +=======+======================================+===========+ | |||
+-------+--------------------------------------+---------------+ | | 0 | MPLS Label | RFC 9604 | | |||
| 0 | MPLS Label | This document | | +-------+--------------------------------------+-----------+ | |||
+-------+--------------------------------------+---------------+ | | 1 | MPLS Label Stack Entry | RFC 9604 | | |||
| 1 | MPLS Label Stack Entry | This document | | +-------+--------------------------------------+-----------+ | |||
+-------+--------------------------------------+---------------+ | | 2 | SRv6 SID | RFC 9604 | | |||
| 2 | SRv6 SID | This document | | +-------+--------------------------------------+-----------+ | |||
+-------+--------------------------------------+---------------+ | | 3 | SRv6 SID with Behavior and Structure | RFC 9604 | | |||
| 3 | SRv6 SID with Behavior and Structure | This document | | +-------+--------------------------------------+-----------+ | |||
+-------+--------------------------------------+---------------+ | | 4-255 | Unassigned | | | |||
| 4-255 | Unassigned | This document | | +-------+--------------------------------------+-----------+ | |||
+-------+--------------------------------------+---------------+ | ||||
Table 2 | Table 2 | |||
IANA is requested to create a new subregistry "TE-PATH-BINDING TLV | IANA has created a new "TE-PATH-BINDING TLV Flag Field" registry to | |||
Flag field" to manage the Flag field in the TE-PATH-BINDING TLV. New | manage the Flag field in the TE-PATH-BINDING TLV. New values are to | |||
values are to be assigned by Standards Action [RFC8126]. Each bit | be assigned by Standards Action [RFC8126]. Each bit should be | |||
should be tracked with the following qualities: | tracked with the following qualities: | |||
* Bit number (count from 0 as the most significant bit) | * Bit number (count from 0 as the most significant bit) | |||
* Description | * Description | |||
* Reference | * Reference | |||
+=====+=============+===============+ | ||||
| Bit | Description | Reference | | +=====+=============+===========+ | |||
+=====+=============+===============+ | | Bit | Description | Reference | | |||
+-----+-------------+---------------+ | +=====+=============+===========+ | |||
| 0 | R (Removal) | This document | | | 0 | R (Removal) | RFC 9604 | | |||
+-----+-------------+---------------+ | +-----+-------------+-----------+ | |||
| 1-7 | Unassigned | This document | | | 1-7 | Unassigned | | | |||
+-----+-------------+---------------+ | +-----+-------------+-----------+ | |||
Table 3 | Table 3 | |||
12.2. LSP Object | 11.2. LSP Object | |||
IANA is requested to confirm the early allocation for a new code- | IANA has allocated a code point in the "LSP Object Flag Field" | |||
point in the "LSP Object Flag Field" sub-registry for the new P flag | registry for the new P flag as follows: | |||
as follows: | ||||
+=====+================+===============+ | +=====+================+===========+ | |||
| Bit | Description | Reference | | | Bit | Description | Reference | | |||
+=====+================+===============+ | +=====+================+===========+ | |||
+-----+----------------+---------------+ | | 0 | PCE-allocation | RFC 9604 | | |||
| 0 | PCE-allocation | This document | | +-----+----------------+-----------+ | |||
+-----+----------------+---------------+ | ||||
Table 4 | Table 4 | |||
12.3. PCEP Error Type and Value | 11.3. PCEP Error Type and Value | |||
This document defines a new Error-type and associated Error-Values | ||||
for the PCErr message. IANA is requested to allocate new error-type | ||||
and error-values within the "PCEP-ERROR Object Error Types and | ||||
Values" subregistry of the PCEP Numbers registry, as follows: | ||||
+============+================+========================+===========+ | ||||
| Error-Type | Meaning | Error-value | Reference | | ||||
+============+================+========================+===========+ | ||||
+------------+----------------+------------------------+-----------+ | ||||
| TBD2 | Binding label/ | 0: Unassigned | This | | ||||
| | SID failure | | document | | ||||
+------------+----------------+------------------------+-----------+ | ||||
| | | TBD3: Invalid SID | This | | ||||
| | | | document | | ||||
+------------+----------------+------------------------+-----------+ | ||||
| | | TBD4: Unable to | This | | ||||
| | | allocate the specified | document | | ||||
| | | binding value | | | ||||
+------------+----------------+------------------------+-----------+ | ||||
| | | TBD5: Unable to | This | | ||||
| | | allocate a new binding | document | | ||||
| | | label/SID | | | ||||
+------------+----------------+------------------------+-----------+ | ||||
| | | TBD6: Unable to remove | This | | ||||
| | | the binding value | document | | ||||
+------------+----------------+------------------------+-----------+ | ||||
| | | TBD7: Inconsistent | This | | ||||
| | | binding types | document | | ||||
+------------+----------------+------------------------+-----------+ | ||||
Table 5 | This document defines a new Error-Type and associated Error-values | |||
for the PCErr message. IANA has allocated a new Error-Type and | ||||
Error-values within the "PCEP-ERROR Object Error Types and Values" | ||||
registry of the PCEP Numbers registry group, as follows: | ||||
13. Acknowledgements | +============+================+===========================+ | |||
| Error-Type | Meaning | Error-value | | ||||
+============+================+===========================+ | ||||
| 32 | Binding label/ | 0: Unassigned | | ||||
| | SID failure +---------------------------+ | ||||
| | | 1: Invalid SID | | ||||
| | +---------------------------+ | ||||
| | | 2: Unable to allocate the | | ||||
| | | specified binding value | | ||||
| | +---------------------------+ | ||||
| | | 3: Unable to allocate a | | ||||
| | | new binding label/SID | | ||||
| | +---------------------------+ | ||||
| | | 4: Unable to remove the | | ||||
| | | binding value | | ||||
| | +---------------------------+ | ||||
| | | 5: Inconsistent binding | | ||||
| | | types | | ||||
+------------+----------------+---------------------------+ | ||||
We would like to thank Milos Fabian, Mrinmoy Das, Andrew Stone, Tom | Table 5 | |||
Petch, Aijun Wang, Olivier Dugeon, and Adrian Farrel for their | ||||
valuable comments. | ||||
Thanks to Julien Meuric for shepherding. Thanks to John Scudder for | 12. References | |||
the AD review. | ||||
Thanks to Theresa Enghardt for the GENART review. | 12.1. Normative References | |||
Thanks to Martin Vigoureux, Benjamin Kaduk, Eric Vyncke, Lars Eggert, | [BCP195] Best Current Practice 195, | |||
Murray Kucherawy, and Erik Kline for the IESG reviews. | <https://www.rfc-editor.org/info/bcp195>. | |||
At the time of writing, this BCP comprises the following: | ||||
14. References | Moriarty, K. and S. Farrell, "Deprecating TLS 1.0 and TLS | |||
1.1", BCP 195, RFC 8996, DOI 10.17487/RFC8996, March 2021, | ||||
<https://www.rfc-editor.org/info/rfc8996>. | ||||
14.1. Normative References | Sheffer, Y., Saint-Andre, P., and T. Fossati, | |||
"Recommendations for Secure Use of Transport Layer | ||||
Security (TLS) and Datagram Transport Layer Security | ||||
(DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | ||||
2022, <https://www.rfc-editor.org/info/rfc9325>. | ||||
[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>. | |||
[RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | |||
<https://www.rfc-editor.org/info/rfc3032>. | <https://www.rfc-editor.org/info/rfc3032>. | |||
skipping to change at page 21, line 25 ¶ | skipping to change at line 854 ¶ | |||
[RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | |||
Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
<https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
[RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching | [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching | |||
(MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic | (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic | |||
Class" Field", RFC 5462, DOI 10.17487/RFC5462, February | Class" Field", RFC 5462, DOI 10.17487/RFC5462, February | |||
2009, <https://www.rfc-editor.org/info/rfc5462>. | 2009, <https://www.rfc-editor.org/info/rfc5462>. | |||
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
"Recommendations for Secure Use of Transport Layer | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
Security (TLS) and Datagram Transport Layer Security | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | <https://www.rfc-editor.org/info/rfc8126>. | |||
2015, <https://www.rfc-editor.org/info/rfc7525>. | ||||
[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>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Extensions for Stateful PCE", RFC 8231, | Extensions for Stateful PCE", RFC 8231, | |||
DOI 10.17487/RFC8231, September 2017, | DOI 10.17487/RFC8231, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8231>. | <https://www.rfc-editor.org/info/rfc8231>. | |||
skipping to change at page 22, line 22 ¶ | skipping to change at line 892 ¶ | |||
Decraene, B., Litkowski, S., and R. Shakir, "Segment | Decraene, B., Litkowski, S., and R. Shakir, "Segment | |||
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | |||
July 2018, <https://www.rfc-editor.org/info/rfc8402>. | July 2018, <https://www.rfc-editor.org/info/rfc8402>. | |||
[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>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
<https://www.rfc-editor.org/info/rfc8126>. | ||||
[RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | |||
D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | |||
(SRv6) Network Programming", RFC 8986, | (SRv6) Network Programming", RFC 8986, | |||
DOI 10.17487/RFC8986, February 2021, | DOI 10.17487/RFC8986, February 2021, | |||
<https://www.rfc-editor.org/info/rfc8986>. | <https://www.rfc-editor.org/info/rfc8986>. | |||
[RFC9050] Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "Path | [RFC9050] Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Procedures and Extensions for Using the PCE as a Central | Procedures and Extensions for Using the PCE as a Central | |||
Controller (PCECC) of LSPs", RFC 9050, | Controller (PCECC) of LSPs", RFC 9050, | |||
DOI 10.17487/RFC9050, July 2021, | DOI 10.17487/RFC9050, July 2021, | |||
<https://www.rfc-editor.org/info/rfc9050>. | <https://www.rfc-editor.org/info/rfc9050>. | |||
[I-D.ietf-pce-segment-routing-ipv6] | [RFC9603] Li, C., Ed., Kaladharan, P., Sivabalan, S., Koldychev, M., | |||
Li, C., Negi, M., Sivabalan, S., Koldychev, M., | and Y. Zhu, "Path Computation Element Communication | |||
Kaladharan, P., and Y. Zhu, "PCEP Extensions for Segment | Protocol (PCEP) Extensions for IPv6 Segment Routing", | |||
Routing leveraging the IPv6 data plane", Work in Progress, | RFC 9603, DOI 10.17487/RFC9603, July 2024, | |||
Internet-Draft, draft-ietf-pce-segment-routing-ipv6-12, 6 | <https://www.rfc-editor.org/info/rfc9603>. | |||
March 2022, <https://www.ietf.org/internet-drafts/draft- | ||||
ietf-pce-segment-routing-ipv6-12.txt>. | ||||
14.2. Informative References | 12.2. Informative References | |||
[PCE-ID-SPACE] | ||||
Li, C., Shi, H., Wang, A., Cheng, W., and C. Zhou, "Path | ||||
Computation Element Communication Protocol (PCEP) | ||||
extension to advertise the PCE Controlled Identifier | ||||
Space", Work in Progress, Internet-Draft, draft-ietf-pce- | ||||
controlled-id-space-00, 4 June 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-pce- | ||||
controlled-id-space-00>. | ||||
[PCEP-SR] Li, C., Chen, M., Cheng, W., Gandhi, R., and Q. Xiong, | ||||
"Path Computation Element Communication Protocol (PCEP) | ||||
Extension for Path Segment in Segment Routing (SR)", Work | ||||
in Progress, Internet-Draft, draft-ietf-pce-sr-path- | ||||
segment-09, 26 February 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-pce-sr- | ||||
path-segment-09>. | ||||
[PCEP-YANG] | ||||
Dhody, D., Beeram, V. P., Hardwick, J., and J. Tantsura, | ||||
"A YANG Data Model for Path Computation Element | ||||
Communications Protocol (PCEP)", Work in Progress, | ||||
Internet-Draft, draft-ietf-pce-pcep-yang-25, 21 May 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-pce- | ||||
pcep-yang-25>. | ||||
[RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | |||
Computation 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>. | |||
[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>. | |||
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., | [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., | |||
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header | Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header | |||
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, | (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, | |||
<https://www.rfc-editor.org/info/rfc8754>. | <https://www.rfc-editor.org/info/rfc8754>. | |||
[I-D.ietf-spring-segment-routing-policy] | [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, | |||
Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and | A., and P. Mattes, "Segment Routing Policy Architecture", | |||
P. Mattes, "Segment Routing Policy Architecture", Work in | RFC 9256, DOI 10.17487/RFC9256, July 2022, | |||
Progress, Internet-Draft, draft-ietf-spring-segment- | <https://www.rfc-editor.org/info/rfc9256>. | |||
routing-policy-21, 19 March 2022, | ||||
<https://www.ietf.org/archive/id/draft-ietf-spring- | ||||
segment-routing-policy-21.txt>. | ||||
[I-D.ietf-pce-pcep-yang] | Acknowledgements | |||
Dhody, D., Hardwick, J., Beeram, V. P., and J. Tantsura, | ||||
"A YANG Data Model for Path Computation Element | ||||
Communications Protocol (PCEP)", Work in Progress, | ||||
Internet-Draft, draft-ietf-pce-pcep-yang-18, 25 January | ||||
2022, <https://www.ietf.org/archive/id/draft-ietf-pce- | ||||
pcep-yang-18.txt>. | ||||
[I-D.li-pce-controlled-id-space] | We would like to thank Milos Fabian, Mrinmoy Das, Andrew Stone, Tom | |||
Li, C., Chen, M., Wang, A., Cheng, W., and C. Zhou, "PCE | Petch, Aijun Wang, Olivier Dugeon, and Adrian Farrel for their | |||
Controlled ID Space", Work in Progress, Internet-Draft, | valuable comments. | |||
draft-li-pce-controlled-id-space-10, 24 February 2022, | ||||
<https://www.ietf.org/archive/id/draft-li-pce-controlled- | ||||
id-space-10.txt>. | ||||
[I-D.ietf-pce-sr-path-segment] | Thanks to Julien Meuric for shepherding. Thanks to John Scudder for | |||
Li, C., Chen, M., Cheng, W., Gandhi, R., and Q. Xiong, | the AD review. | |||
"Path Computation Element Communication Protocol (PCEP) | ||||
Extension for Path Segment in Segment Routing (SR)", Work | ||||
in Progress, Internet-Draft, draft-ietf-pce-sr-path- | ||||
segment-05, 13 February 2022, | ||||
<https://www.ietf.org/archive/id/draft-ietf-pce-sr-path- | ||||
segment-05.txt>. | ||||
Appendix A. Contributor Addresses | Thanks to Theresa Enghardt for the GENART review. | |||
Thanks to Martin Vigoureux, Benjamin Kaduk, Eric Vyncke, Lars Eggert, | ||||
Murray Kucherawy, and Erik Kline for the IESG reviews. | ||||
Contributors | ||||
Jonathan Hardwick | Jonathan Hardwick | |||
Microsoft | Microsoft | |||
United Kingdom | United Kingdom | |||
Email: jonhardwick@microsoft.com | ||||
EMail: jonhardwick@microsoft.com | ||||
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 | ||||
Mahendra Singh Negi | Mahendra Singh Negi | |||
RtBrick India | RtBrick India | |||
N-17L, Floor-1, 18th Cross Rd, HSR Layout Sector-3 | N-17L, Floor-1, 18th Cross Rd, HSR Layout Sector-3 | |||
Bangalore, Karnataka 560102 | Bangalore 560102 | |||
Karnataka | ||||
India | India | |||
Email: mahend.ietf@gmail.com | ||||
EMail: mahend.ietf@gmail.com | ||||
Mike Koldychev | Mike Koldychev | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
2000 Innovation Drive | 2000 Innovation Drive | |||
Kanata, Ontario K2K 3E8 | Kanata Ontario K2K 3E8 | |||
Canada | Canada | |||
Email: mkoldych@cisco.com | Email: mkoldych@cisco.com | |||
Zafar Ali | Zafar Ali | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: zali@cisco.com | Email: zali@cisco.com | |||
Authors' Addresses | Authors' Addresses | |||
Siva Sivabalan | Siva Sivabalan | |||
Ciena Corporation | Ciena Corporation | |||
Email: msiva282@gmail.com | Email: msiva282@gmail.com | |||
Clarence Filsfils | Clarence Filsfils | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Pegasus Parc | Pegasus Parc | |||
BRABANT 1831 De kleetlaan 6a | De Kleetlaan 6a | |||
1831 Brabant | ||||
Belgium | Belgium | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
Jeff Tantsura | Jeff Tantsura | |||
Microsoft Corporation | Nvidia | |||
Email: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com | |||
Stefano Previdi | Stefano Previdi | |||
Huawei Technologies | Huawei Technologies | |||
Email: stefano@previdi.net | Email: stefano@previdi.net | |||
Cheng Li (editor) | Cheng Li (editor) | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Campus, No. 156 Beiqing Rd. | Huawei Campus, No. 156 Beiqing Rd. | |||
Beijing | Beijing | |||
End of changes. 141 change blocks. | ||||
552 lines changed or deleted | 476 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |