draft-ietf-pce-association-diversity-06.txt | draft-ietf-pce-association-diversity-07.txt | |||
---|---|---|---|---|
PCE Working Group S. Litkowski | PCE Working Group S. Litkowski | |||
Internet-Draft Orange | Internet-Draft Orange | |||
Intended status: Standards Track S. Sivabalan | Intended status: Standards Track S. Sivabalan | |||
Expires: August 7, 2019 Cisco Systems, Inc. | Expires: December 6, 2019 Cisco Systems, Inc. | |||
C. Barth | C. Barth | |||
Juniper Networks | Juniper Networks | |||
M. Negi | M. Negi | |||
Huawei Technologies | Huawei Technologies | |||
February 3, 2019 | June 4, 2019 | |||
Path Computation Element communication Protocol (PCEP) extension for | Path Computation Element communication Protocol (PCEP) extension for | |||
signaling LSP diversity constraint | signaling LSP diversity constraint | |||
draft-ietf-pce-association-diversity-06 | draft-ietf-pce-association-diversity-07 | |||
Abstract | Abstract | |||
This document introduces a simple mechanism to associate a group of | This document introduces a simple mechanism to associate a group of | |||
Label Switched Paths (LSPs) via an extension to the Path Computation | Label Switched Paths (LSPs) via an extension to the Path Computation | |||
Element (PCE) Communication Protocol (PCEP) with the purpose of | Element (PCE) Communication Protocol (PCEP) with the purpose of | |||
computing diverse paths for those LSPs. The proposed extension | computing diverse paths for those LSPs. The proposed extension | |||
allows a Path Computation Client (PCC) to advertise to a PCE that a | allows a Path Computation Client (PCC) to advertise to a PCE that a | |||
particular LSP belongs to a disjoint-group, thus the PCE knows that | particular LSP belongs to a disjoint-group, thus the PCE knows that | |||
LSPs in the same group needs to be disjoint from each other. | LSPs in the same group needs to be disjoint from each other. | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on August 7, 2019. | This Internet-Draft will expire on December 6, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Protocol extension . . . . . . . . . . . . . . . . . . . . . 7 | 4. Protocol extension . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.1. Association group . . . . . . . . . . . . . . . . . . . . 7 | 4.1. Association group . . . . . . . . . . . . . . . . . . . . 7 | |||
4.2. Disjoint TLVs . . . . . . . . . . . . . . . . . . . . . . 9 | 4.2. Disjoint TLVs . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.3. Disjointness objective functions . . . . . . . . . . . . 10 | 4.3. Relationship to SVEC . . . . . . . . . . . . . . . . . . 10 | |||
4.4. P-flag considerations . . . . . . . . . . . . . . . . . . 12 | 4.4. Disjointness objective functions . . . . . . . . . . . . 10 | |||
4.5. Disjointness computation issues . . . . . . . . . . . . . 14 | 4.5. P-flag considerations . . . . . . . . . . . . . . . . . . 12 | |||
4.6. Disjointness computation issues . . . . . . . . . . . . . 14 | ||||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.1. Association object Type Indicators . . . . . . . . . . . 16 | 6.1. Association Type . . . . . . . . . . . . . . . . . . . . 16 | |||
6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 16 | 6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.3. Objective Functions . . . . . . . . . . . . . . . . . . . 16 | 6.3. Objective Functions . . . . . . . . . . . . . . . . . . . 17 | |||
6.4. NO-PATH-VECTOR bit Flags . . . . . . . . . . . . . . . . 17 | 6.4. NO-PATH-VECTOR Bit Flags . . . . . . . . . . . . . . . . 17 | |||
6.5. PCEP-ERROR codes . . . . . . . . . . . . . . . . . . . . 17 | 6.5. PCEP-ERROR codes . . . . . . . . . . . . . . . . . . . . 18 | |||
7. Manageability Considerations . . . . . . . . . . . . . . . . 17 | 7. Manageability Considerations . . . . . . . . . . . . . . . . 18 | |||
7.1. Control of Function and Policy . . . . . . . . . . . . . 17 | 7.1. Control of Function and Policy . . . . . . . . . . . . . 18 | |||
7.2. Information and Data Models . . . . . . . . . . . . . . . 17 | 7.2. Information and Data Models . . . . . . . . . . . . . . . 18 | |||
7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 17 | 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 18 | |||
7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 18 | 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 19 | |||
7.5. Requirements On Other Protocols . . . . . . . . . . . . . 18 | 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 19 | |||
7.6. Impact On Network Operations . . . . . . . . . . . . . . 18 | 7.6. Impact On Network Operations . . . . . . . . . . . . . . 19 | |||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 18 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 19 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 19 | 9.2. Informative References . . . . . . . . . . . . . . . . . 20 | |||
Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 21 | Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 22 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
1. Introduction | 1. Introduction | |||
[RFC5440] describes the Path Computation Element communication | [RFC5440] describes the Path Computation Element communication | |||
Protocol (PCEP) which enables the communication between a Path | Protocol (PCEP) which enables the communication between a Path | |||
Computation Client (PCC) and a Path Control Element (PCE), or between | Computation Client (PCC) and a Path Control Element (PCE), or between | |||
two PCEs based on the PCE architecture [RFC4655]. | two PCEs based on the PCE architecture [RFC4655]. | |||
PCEP Extensions for Stateful PCE Model [RFC8231] describes a set of | PCEP Extensions for Stateful PCE Model [RFC8231] describes a set of | |||
extensions to PCEP to enable active control of MPLS-TE and GMPLS | extensions to PCEP to enable active control of MPLS-TE and GMPLS | |||
tunnels. [RFC8281] describes the setup and teardown of PCE-initiated | tunnels. [RFC8281] describes the setup and teardown of PCE-initiated | |||
LSPs under the active stateful PCE model, without the need for local | LSPs under the active stateful PCE model, without the need for local | |||
configuration on the PCC, thus allowing for a dynamic network. | configuration on the PCC, thus allowing for a dynamic network. | |||
[I-D.ietf-pce-association-group] introduces a generic mechanism to | [I-D.ietf-pce-association-group] introduces a generic mechanism to | |||
create a grouping of LSPs which can then be used to define | create a grouping of LSPs in the context of a PCE which can then be | |||
associations between a set of LSPs and a set of attributes (such as | used to define associations between a set of LSPs and a set of | |||
configuration parameters or behaviors) and is equally applicable to | attributes (such as configuration parameters or behaviors) and is | |||
the active and passive modes of a stateful PCE [RFC8231] or a | equally applicable to the active and passive modes of a stateful PCE | |||
stateless PCE [RFC5440]. | [RFC8231] or a stateless PCE [RFC5440]. | |||
This document specifies a PCEP extension to signal that a particular | This document specifies a PCEP extension to signal that a particular | |||
group of LSPs should use diverse paths including the requested type | group of LSPs should use diverse paths including the requested type | |||
of diversity. A PCC can use this extension to signal to a PCE that a | of diversity. A PCC can use this extension to signal to a PCE that a | |||
particular LSP belongs to a disjoint-group. When a PCE receives LSP | particular LSP belongs to a disjoint-group. When a PCE receives LSP | |||
states belonging to the same disjoint-group from some PCCs, the PCE | states belonging to the same disjoint-group from some PCCs, the PCE | |||
should ensure that the LSPs within the group are disjoint from each | should ensure that the LSPs within the group are disjoint from each | |||
other. | other. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
skipping to change at page 3, line 40 ¶ | skipping to change at page 3, line 45 ¶ | |||
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 BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. Terminology | 2. Terminology | |||
The following terminology is used in this document. | The following terminology is used in this document. | |||
LSR: Label Switch Router. | DAG: Disjoint Association Group. | |||
MPLS: Multiprotocol Label Switching. | MPLS: Multiprotocol Label Switching. | |||
OF: Objective Function. | ||||
PCC: Path Computation Client. Any client application requesting a | PCC: Path Computation Client. Any client application requesting a | |||
path computation to be performed by a Path Computation Element. | path computation to be performed by a Path Computation Element. | |||
PCE: Path Computation Element. An entity (component, application, | PCE: Path Computation Element. An entity (component, application, | |||
or network node) that is capable of computing a network path or | or network node) that is capable of computing a network path or | |||
route based on a network graph and applying computational | route based on a network graph and applying computational | |||
constraints. | constraints. | |||
PCEP: Path Computation Element Communication Protocol. | PCEP: Path Computation Element Communication Protocol. | |||
skipping to change at page 5, line 34 ¶ | skipping to change at page 5, line 34 ¶ | |||
Figure 1 - Disjoint paths with different head-ends and tail-ends | Figure 1 - Disjoint paths with different head-ends and tail-ends | |||
In the figure above, consider that the customer wants to have two | In the figure above, consider that the customer wants to have two | |||
disjoint paths between CE1/CE2 and CE3/CE4. From an IP/MPLS network | disjoint paths between CE1/CE2 and CE3/CE4. From an IP/MPLS network | |||
point view, in this example, the CEs are connected to different PEs | point view, in this example, the CEs are connected to different PEs | |||
to maximize their disjointness. When LSPs originate from different | to maximize their disjointness. When LSPs originate from different | |||
head-ends, distributed computation of diverse paths can be difficult. | head-ends, distributed computation of diverse paths can be difficult. | |||
Whereas, computation via a centralized PCE ensures path disjointness | Whereas, computation via a centralized PCE ensures path disjointness | |||
correctness and simplicity. | correctness and simplicity. | |||
[RFC5440] defines a mechanism for the synchronization of a set of | Section 4.3 describes the relationship between the disjoint | |||
path computation requests by using the SVEC (Synchronization VECtor) | association group and Synchronization VECtor (SVEC) object. | |||
object, that specifies the list of synchronized requests that can | ||||
either be dependent or independent. The SVEC object identify the | ||||
relationship between the set of path computation requests, identified | ||||
by 'Request-ID-number' in RP (Request Parameters) object. [RFC6007] | ||||
further clarified the use of the SVEC list for synchronized path | ||||
computations when computing dependent requests as well as described a | ||||
number of usage scenarios for SVEC lists within single-domain and | ||||
multi-domain environments. | ||||
The SVEC object includes a Flags field that indicates the potential | ||||
dependency between the set of path computation request in a similar | ||||
way as the Flags field in the TLVs defined in this document. The | ||||
path computation request in the PCReq message MAY use both SVEC | ||||
object to identify the related path computation request as well as to | ||||
identify the diversity association group. The PCE MUST try to find a | ||||
path that meets both the constraints. It is possible that the | ||||
diversity set in the association group is different from the one in | ||||
SVEC object, this might be true for the same LSP as well. The PCE | ||||
would consider both the objects as per the processing rules and aim | ||||
to find a path that meets both these constraints. In case no such | ||||
path is possible (or the constraints are incompatible), the PCE MUST | ||||
send a path computation reply (PCRep) with NO-PATH object indicating | ||||
path computation failure as per [RFC5440]. | ||||
The PCEP extension for stateful PCE [RFC8231] defined new PCEP | The PCEP extension for stateful PCE [RFC8231] defined new PCEP | |||
messages - PCRpt, PCUpd and PCInitiate [RFC8281]. These messages | messages - Path Computation Report (PCRpt), Path Computation Update | |||
uses PLSP-ID in the LSP object for identification. Moreover to allow | (PCUpd) and Path Computation Initiate (PCInitiate) [RFC8281]. These | |||
diversity between LSPs originating from different PCCs, the generic | messages uses PLSP-ID in the LSP object for identification. Moreover | |||
mechanism to create a grouping of LSPs is described in | to allow diversity between LSPs originating from different PCCs, the | |||
generic mechanism to create a grouping of LSPs is described in | ||||
[I-D.ietf-pce-association-group] (that is equally applicable to the | [I-D.ietf-pce-association-group] (that is equally applicable to the | |||
active and passive modes of a stateful PCE). | active and passive modes of a stateful PCE). | |||
Using PCEP, the PCC could indicate that the disjoint path computation | Using PCEP, the PCC could indicate that the disjoint path computation | |||
is required, such indication should include disjointness parameters | is required, such indication should include disjointness parameters | |||
such as the type of disjointness, the disjoint group identifiers, and | such as the type of disjointness, the disjoint group identifiers, and | |||
any customization parameters according to the configured local | any customization parameters according to the configured local | |||
policy. As mentioned previously, the extension described in | policy. As mentioned previously, the extension described in | |||
[I-D.ietf-pce-association-group] is well suited to associate a set of | [I-D.ietf-pce-association-group] is well suited to associate a set of | |||
LSPs with a particular disjoint-group. | LSPs with a particular disjoint-group. | |||
The management of the disjoint group-ids will be a key point for the | The management of the disjoint group-ids will be a key point for the | |||
operator as the Association ID field is limited to 65535. The local | operator as the Association ID field is limited to 65535. The local | |||
configuration of IPv4/IPv6 association source, or Global Association | configuration of IPv4/IPv6 association source, or Global Association | |||
Source/Extended Association ID should allow to overcome this | Source/Extended Association ID should allow to overcome this | |||
limitation as described in [I-D.ietf-pce-association-group]. When a | limitation as described in [I-D.ietf-pce-association-group]. When a | |||
PCC or PCE initiates all the LSPs in a particular disjoint-group, it | PCC or PCE initiates all the LSPs in a particular disjoint-group, it | |||
can set the IPv4/IPv6 association source as one of its own IP | can set the IPv4/IPv6 association source as one of its own IP | |||
skipping to change at page 7, line 35 ¶ | skipping to change at page 7, line 5 ¶ | |||
'-----' '-----' | '-----' '-----' | |||
Case 1: Disjointness initiated by Case 2: Disjointness initiated by | Case 1: Disjointness initiated by Case 2: Disjointness initiated by | |||
PCE and enforced by PCC PCC and enforced by PCE | PCE and enforced by PCC PCC and enforced by PCE | |||
Figure 2 - Sample use-cases for carrying disjoint-group over PCEP | Figure 2 - Sample use-cases for carrying disjoint-group over PCEP | |||
session | session | |||
Using the disjoint-group within a PCEP messages may have two purpose: | Using the disjoint-group within a PCEP messages may have two purpose: | |||
o Information: in case the PCE is performing the path computation, | o Configuration: Used to communicate the configured disjoint | |||
it may communicate to the PCC the disjoint parameters. | requirement to a PCEP peer. | |||
o Configuration: in case the PCC are configured with disjoint | o Status: Used to communicate the status of the computed | |||
requirements, these are communicated to the PCE. | disjointness. | |||
4. Protocol extension | 4. Protocol extension | |||
4.1. Association group | 4.1. Association group | |||
As per [I-D.ietf-pce-association-group], LSPs are associated with | As per [I-D.ietf-pce-association-group], LSPs are associated with | |||
other LSPs with which they interact by adding them to a common | other LSPs with which they interact by adding them to a common | |||
association group. The Association parameters, as described in | association group. The Association parameters, as described in | |||
[I-D.ietf-pce-association-group] as the combination of the mandatory | [I-D.ietf-pce-association-group] as the combination of the mandatory | |||
fields Association type, Association ID and Association Source in the | fields Association type, Association ID and Association Source in the | |||
ASSOCIATION object, that uniquely identify the association group, | ASSOCIATION object, that uniquely identify the association group | |||
uniquely identify the disjoint group. If the optional TLVs - Global | belonging to this association. If the optional TLVs - Global | |||
Association Source or Extended Association ID are included, then they | Association Source or Extended Association ID are included, then they | |||
are included in combination with mandatory fields to uniquely | are included in combination with mandatory fields to uniquely | |||
identifying the association group. This document defines a new | identifying the association group. This document defines a new | |||
Association type, based on the generic Association object - | Association type, based on the generic Association object - | |||
o Association type = TBD1 ("Disjointness Association Type") for | o Association type = TBD1 ("Disjointness Association Type") for | |||
Disjoint Association Group (DAG). | Disjoint Association Group (DAG). | |||
[I-D.ietf-pce-association-group] specify the mechanism for the | [I-D.ietf-pce-association-group] specify the mechanism for the | |||
capability advertisement of the association types supported by a PCEP | capability advertisement of the association types supported by a PCEP | |||
skipping to change at page 8, line 34 ¶ | skipping to change at page 8, line 4 ¶ | |||
operator manually on the PCEP peers and the LSPs belonging to this | operator manually on the PCEP peers and the LSPs belonging to this | |||
associations is conveyed via PCEP messages to the PCEP peer; or the | associations is conveyed via PCEP messages to the PCEP peer; or the | |||
association group could be created dynamically by the PCEP speaker | association group could be created dynamically by the PCEP speaker | |||
and both the association group information and the LSPs belonging to | and both the association group information and the LSPs belonging to | |||
the association group is conveyed to the PCEP peer. The Operator- | the association group is conveyed to the PCEP peer. The Operator- | |||
configured Association Range MUST be set for this association-type to | configured Association Range MUST be set for this association-type to | |||
mark a range of association identifiers that are used for operator- | mark a range of association identifiers that are used for operator- | |||
configured associations to avoid any association identifier clash | configured associations to avoid any association identifier clash | |||
within the scope of the association source. (Refer | within the scope of the association source. (Refer | |||
[I-D.ietf-pce-association-group].) | [I-D.ietf-pce-association-group].) | |||
A disjoint group can have two or more LSPs. But a PCE may be limited | A disjoint group can have two or more LSPs. But a PCE may be limited | |||
in how many LSPs it can take into account when computing | in how many LSPs it can take into account when computing | |||
disjointness. If a PCE receives more LSPs in the group than it can | disjointness. If a PCE receives more LSPs in the group than it can | |||
handle in its computation algorithm, it SHOULD apply disjointness | handle in its computation algorithm, it SHOULD apply disjointness | |||
computation to only a subset of LSPs in the group. The subset of | computation to only a subset of LSPs in the group. The subset of | |||
disjoint LSPs will be decided by PCE as a local matter. | disjoint LSPs will be decided by PCE as a local policy. Local | |||
polices MAY define the computational behavior for the other LSPs in | ||||
Local polices on the PCC or PCE MAY define the computational behavior | the group. For example, the PCE may provide no path, a shortest | |||
for the other LSPs in the group. For example, the PCE may provide no | path, or a constrained path based on relaxing disjointness, etc. The | |||
path, a shortest path, or a constrained path based on relaxing | disjoint status is informed to the PCC. | |||
disjointness, etc. | ||||
Associating a particular LSP to multiple disjoint groups is | Associating a particular LSP to multiple disjoint groups is | |||
authorized from a protocol perspective, however there is no insurance | authorized from a protocol perspective, however there is no assurance | |||
that the PCE will be able to compute properly the multi-disjointness | that the PCE will be able to compute properly the multi-disjointness | |||
constraint. | constraint. | |||
4.2. Disjoint TLVs | 4.2. Disjoint TLVs | |||
The disjoint group MUST carry the following TLV: | The disjoint group MUST carry the following TLV: | |||
o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some | o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some | |||
disjointness configuration parameters. | disjointness configuration parameters. | |||
In addition, the disjoint group MAY carry the following TLV: | In addition, the disjoint group MAY carry the following TLV: | |||
o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the | o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the | |||
computed disjointness. This is applicable for messages from PCE | computed disjointness. This is applicable for messages from PCE | |||
to PCC (PCUpd, PCInitiate or PCRep message). | to PCC (PCUpd, PCInitiate or PCRep message). | |||
o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor | o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor | |||
specific behavioral information, described in [RFC7470]. | specific behavioral information, described in [RFC7470]. | |||
o OF-List TLV: Used to communicate the disjointness objective | ||||
function. See Section 4.4. | ||||
The DISJOINTNESS-CONFIGURATION-TLV is shown in the following figure: | The DISJOINTNESS-CONFIGURATION-TLV is shown in the following figure: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type = TBD2 | Length | | | Type = TBD2 | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags |T|P|S|N|L| | | Flags |T|P|S|N|L| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 9, line 50 ¶ | skipping to change at page 9, line 20 ¶ | |||
* N (Node diverse) bit: when set, this indicates that the | * N (Node diverse) bit: when set, this indicates that the | |||
computed paths within the disjoint group MUST NOT have any node | computed paths within the disjoint group MUST NOT have any node | |||
in common. | in common. | |||
* S (SRLG diverse) bit: when set, this indicates that the | * S (SRLG diverse) bit: when set, this indicates that the | |||
computed paths within the disjoint group MUST NOT share any | computed paths within the disjoint group MUST NOT share any | |||
SRLG (Shared Risk Link Group). | SRLG (Shared Risk Link Group). | |||
* P (Shortest path) bit: when set, this indicates that the | * P (Shortest path) bit: when set, this indicates that the | |||
computed path of the LSP SHOULD satisfies all constraints and | computed path of the LSP SHOULD satisfy all the constraints and | |||
objective functions first without considering the diversity | objective functions first without considering the diversity | |||
constraint. This means that an LSP with P flag set should be | constraint. This means that an LSP with P flag set should be | |||
placed as if the disjointness constraint has not been | placed as if the disjointness constraint has not been | |||
configured, while the other LSP in the association with P flag | configured, while the other LSP in the association with P flag | |||
unset should be placed by taking into account the disjointness | unset should be placed by taking into account the disjointness | |||
constraint. Setting P flag changes the relationship between | constraint. Setting P flag changes the relationship between | |||
LSPs to a unidirectional relationship (LSP 1 with P=0 depends | LSPs to a one-sided relationship (LSP 1 with P=0 depends of LSP | |||
of LSP 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 | 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 with | |||
with P=0). | P=0). Multiple LSPs in the same disjoint group may have the | |||
P-flag set. In such a case, those LSPs may not be disjoint | ||||
from each other but will be disjoint from others LSPs in the | ||||
group that have the P-flag unset. | ||||
* T (Strict disjointness) bit: when set, if disjoint paths cannot | * T (Strict disjointness) bit: when set, if disjoint paths cannot | |||
be found, PCE should return no path for LSPs that could not be | be found, PCE SHOULD return no path for LSPs that could not be | |||
be disjoint. When unset, PCE is allowed to relax disjointness | be disjoint. When unset, PCE is allowed to relax disjointness | |||
by using either applying a requested objective function or any | by using either applying a requested objective function or any | |||
other behavior if no objective function is requested (e.g.: | other behavior if no objective function is requested (e.g.: | |||
using a lower disjoint type (link instead of node) or relaxing | using a lower disjoint type (link instead of node) or relaxing | |||
disjointness constraint at all). | disjointness constraint fully). | |||
* Unassigned bits are considered reserved. They MUST be set to 0 | ||||
on transmission and MUST be ignored on receipt. | ||||
If a PCEP speaker receives a disjoint-group without DISJOINTNESS- | If a PCEP speaker receives a disjoint-group without DISJOINTNESS- | |||
CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6 | CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6 | |||
(Mandatory Object missing) and Error-value=TBD7 (DISJOINTNESS- | (Mandatory Object missing) and Error-value=TBD8 (DISJOINTNESS- | |||
CONFIGURATION-TLV missing). | CONFIGURATION-TLV missing). | |||
The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- | The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- | |||
CONFIGURATION-TLV with a different type TBD3 (in TLV): | CONFIGURATION-TLV with a different type TBD3 (in the TLV). The flags | |||
L, N, and S are set based if the computed path meet the disjointness | ||||
criteria. The flag P is set to indicate that the computed path is | ||||
the shortest and the flag T has no meaning in the DISJOINTNESS- | ||||
STATUS-TLV and MUST NOT be set while sending and ignored on receipt. | ||||
Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV is be | Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV is be | |||
automatically applicable to the DISJOINTNESS-STATUS-TLV. | automatically applicable to the DISJOINTNESS-STATUS-TLV. | |||
4.3. Disjointness objective functions | 4.3. Relationship to SVEC | |||
[RFC5440] defines a mechanism for the synchronization of a set of | ||||
path computation requests by using the SVEC object, that specifies | ||||
the list of synchronized requests that can either be dependent or | ||||
independent. The SVEC object identify the relationship between the | ||||
set of path computation requests, identified by 'Request-ID-number' | ||||
in RP (Request Parameters) object. [RFC6007] further clarified the | ||||
use of the SVEC list for synchronized path computations when | ||||
computing dependent requests as well as described a number of usage | ||||
scenarios for SVEC lists within single-domain and multi-domain | ||||
environments. | ||||
The SVEC object includes a Flags field that indicates the potential | ||||
dependency between the set of path computation request in a similar | ||||
way as the Flags field in the TLVs defined in this document. The | ||||
path computation request in the PCReq message MAY use both SVEC and | ||||
ASSOCIATION object to identify the related path computation request | ||||
as well as the diversity association group. The PCE MUST try to find | ||||
a path that meets both the constraints. It is possible that the | ||||
diversity requirement in the association group is different from the | ||||
one in SVEC object. The PCE would consider both the objects as per | ||||
the processing rules and aim to find a path that meets both these | ||||
constraints. In case no such path is possible (or the constraints | ||||
are incompatible), the PCE MUST send a path computation reply (PCRep) | ||||
with NO-PATH object indcating path computation failure as per | ||||
[RFC5440]. | ||||
4.4. Disjointness objective functions | ||||
An objective function (OF) MAY be applied to the disjointness | An objective function (OF) MAY be applied to the disjointness | |||
computation to drive the PCE computation behavior. In this case, the | computation to drive the PCE computation behavior. In this case, the | |||
OF-List TLV (defined in ([RFC5541]) is used as an optional TLV in the | OF-List TLV (defined in ([RFC5541]) is used as an optional TLV in the | |||
Association Group Object. The PCEP OF-List TLV allow multiple OF- | Association Group Object. The PCEP OF-List TLV allow multiple OF- | |||
Codes inside the TLV, a sender SHOULD include a single OF-Code in the | Codes inside the TLV, a sender SHOULD include a single OF-Code in the | |||
OF-List TLV when included in the Association Group, and the receiver | OF-List TLV when included in the Association Group, and the receiver | |||
MUST consider the first OF-code only and ignore others if included. | MUST consider the first OF-code only and ignore others if included. | |||
To minimize the common shared resources (Node, Link or SRLG) between | To minimize the common shared resources (Node, Link or SRLG) between | |||
skipping to change at page 11, line 25 ¶ | skipping to change at page 11, line 32 ¶ | |||
MSN | MSN | |||
* Name: Minimize the number of shared (common) Nodes. | * Name: Minimize the number of shared (common) Nodes. | |||
* Objective Function Code: TBD6 | * Objective Function Code: TBD6 | |||
* Description: Find a set of paths such that it passes through the | * Description: Find a set of paths such that it passes through the | |||
least number of shared (common) nodes. | least number of shared (common) nodes. | |||
If the OF-list TLV is included in the Association Object, the OF Code | ||||
inside the OF Object MUST include one of the disjoint OFs defined in | ||||
this document. If this condition is not met, the PCEP speaker MUST | ||||
respond with a PCErr message with Error-Type=10 (Reception of an | ||||
invalid object) and Error-Value=TBD9 (Incompatible OF codes). | ||||
[RFC5440] uses SVEC diversity flag for node, link or SRLG to describe | [RFC5440] uses SVEC diversity flag for node, link or SRLG to describe | |||
the potential disjointness between the set of path computation | the potential disjointness between the set of path computation | |||
requests used in PCEP protocol. | requests used in PCEP protocol. | |||
This document defines three new OF codes to maximize diversity as | This document defines three new OF codes to maximize diversity as | |||
much as possible, in other words, minimize the common shared | much as possible, in other words, minimize the common shared | |||
resources (Node,Link or SRLG) between a set of paths. | resources (Node,Link or SRLG) between a set of paths. | |||
It may be interesting to note that the diversity flags in the SVEC | It may be interesting to note that the diversity flags in the SVEC | |||
object and OF for diversity can be used together. Some example of | object and OF for diversity can be used together. Some example of | |||
skipping to change at page 12, line 5 ¶ | skipping to change at page 12, line 15 ¶ | |||
o SVEC object with node-diverse bit=1 and OF=MSS - full node diverse | o SVEC object with node-diverse bit=1 and OF=MSS - full node diverse | |||
with as much as SRLG-diversity as possible. | with as much as SRLG-diversity as possible. | |||
o SVEC object with domain-diverse bit=1;link diverse bit=1 and | o SVEC object with domain-diverse bit=1;link diverse bit=1 and | |||
OF=MSS - full domain and node diverse path with as much as SRLG- | OF=MSS - full domain and node diverse path with as much as SRLG- | |||
diversity as possible. | diversity as possible. | |||
o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- | o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- | |||
diversity. | diversity. | |||
4.4. P-flag considerations | 4.5. P-flag considerations | |||
As mentioned in Section 4.2, the P-flag (when set) indicates that the | As mentioned in Section 4.2, the P-flag (when set) indicates that the | |||
computed path of the LSP SHOULD satisfies all constraints and | computed path of the LSP SHOULD satisfies all constraints and | |||
objective functions first without considering the diversity | objective functions first without considering the diversity | |||
constraint. This could be required in some primary/backup scenarios | constraint. This could be required in some primary/backup scenarios | |||
where the primary path should use the more optimal path available | where the primary path should use the more optimal path available | |||
(taking into account the other constraints). When disjointness is | (taking into account the other constraints). When disjointness is | |||
computed, it is important for the algorithm to know that it should | computed, it is important for the algorithm to know that it should | |||
try to optimize the path of one or more LSPs in the disjoint group | try to optimize the path of one or more LSPs in the disjoint group | |||
(for instance the primary path) while other paths are allowed to be | (for instance the primary path) while other paths are allowed to be | |||
longer (compared to a similar path without the disjointness | costlier (compared to a similar path without the disjointness | |||
constraint). Without such a hint, the disjointness algorithm may set | constraint). Without such a hint, the disjointness algorithm may set | |||
a path for all LSPs that may not completely fulfill the customer | a path for all LSPs that may not completely fulfill the customer | |||
requirement. | requirement. | |||
_________________________________________ | _________________________________________ | |||
/ \ | / \ | |||
/ +------+ \ | / +------+ \ | |||
| | PCE | | | | | PCE | | | |||
| +------+ | | | +------+ | | |||
| | | | | | |||
skipping to change at page 12, line 40 ¶ | skipping to change at page 12, line 50 ¶ | |||
| +------+ | | +------+ | | | +------+ | | +------+ | | |||
| | | | | | | | | | |||
| | | | | | | | | | |||
| +------+ | | +------+ | | | +------+ | | +------+ | | |||
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | |||
| +------+ \ | / +------+ | | | +------+ \ | / +------+ | | |||
| \ | 10 / | | | \ | 10 / | | |||
\ +-- R5 --------- R6 / | \ +-- R5 --------- R6 / | |||
\_________________________________________/ | \_________________________________________/ | |||
Cost of all the links is 1, unless explicitly marked otherwise. | ||||
Figure 3 | Figure 3 | |||
In the figure above, a customer has two dual homed sites (CE1/CE3 and | In the figure above, a customer has two dual homed sites (CE1/CE3 and | |||
CE2/CE4). Consider, this customer wants two disjoint paths between | CE2/CE4). Consider, this customer wants two disjoint paths between | |||
the two sites. Due to physical meshing, the customer wants to use | the two sites. Due to physical meshing, the customer wants to use | |||
CE1 and CE2 as primary ( and CE3 and CE4 are hosted in a remote site | CE1 and CE2 as primary ( and CE3 and CE4 are hosted in a remote site | |||
for redundancy purpose). | for redundancy purpose). | |||
Without any hint (constraint) provided, the PCE may compute the two | Without any hint (constraint) provided, the PCE may compute the two | |||
disjoint LSPs together, leading to PE1->PE2 using a path | disjoint LSPs together, leading to PE1->PE2 using a path | |||
PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4. In this case, | PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4. In this case, | |||
even if the disjointness constraint is fulfilled, the path from PE1 | even if the disjointness constraint is fulfilled, the path from PE1 | |||
to PE2 does not use the best optimal path available in the network | to PE2 does not use the best optimal path available in the network | |||
(RTD may be higher): the customer requirement is thus not completely | (path delay may be higher): the customer requirement is thus not | |||
fulfilled. | completely fulfilled. | |||
The usage of the P-Flag allows the PCE to know that a particular LSP | The usage of the P-Flag allows the PCE to know that a particular LSP | |||
should be tied to the best path as if the disjointness constraint was | should be tied to the best path as if the disjointness constraint was | |||
not requested. | not requested. | |||
In our example, if the P-Flag is set to the LSP PE1->PE2, the PCE | In our example, if the P-Flag is set to the LSP PE1->PE2, the PCE | |||
should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the | should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the | |||
other LSP should be disjoint from this path. The second LSP will be | other LSP should be disjoint from this path. The second LSP will be | |||
placed on PE3->R5->R6->PE4 as it is allowed to be longer. | placed on PE3->R5->R6->PE4 as it is allowed to be costlier. | |||
Driving the PCE disjointness computation may be done in other ways by | Driving the PCE disjointness computation may be done in other ways, | |||
for instance setting a metric boundary reflecting an RTD boundary. | for instance setting a metric boundary reflecting an path delay | |||
Other constraints may also be used. | boundary. Other constraints may also be used. | |||
The P-Flag allows a simple expression that the disjointness | The P-Flag allows a simple expression that the disjointness | |||
constraint should not make the LSP worst. | constraint should not make the LSP worst. | |||
Any constraint added to a path disjointness computation may reduce | Any constraint added to a path disjointness computation may reduce | |||
the chance to find suitable paths. The usage of the P-flag, as any | the chance to find suitable paths. The usage of the P-flag, as any | |||
other constraint, may prevent to find a disjoint path. In the | other constraint, may prevent to find a disjoint path. In the | |||
example above, if we consider that the router R5 is down, if PE1->PE2 | example above, if we consider that the router R5 is down, if PE1->PE2 | |||
has the P-flag set, there is no room available to place PE3->PE4 (the | has the P-flag set, there is no room available to place PE3->PE4 (the | |||
disjointness constraint cannot be fulfilled). If PE->PE2 has the | disjointness constraint cannot be fulfilled). If PE->PE2 has the | |||
P-flag unset, the algorithm may be able to place PE1->PE2 on R1->R2 | P-flag unset, the algorithm may be able to place PE1->PE2 on R1->R2 | |||
link leaving a room for PE3->PE4 using the R3->R4 link. When using | link leaving a room for PE3->PE4 using the R3->R4 link. When using | |||
P-flag or any additional constraint on top of the disjointness | P-flag or any additional constraint on top of the disjointness | |||
constraint, the user should be aware that there is less chance to | constraint, the user should be aware that there is less chance to | |||
fulfill the disjointness constraint. | fulfill the disjointness constraint. | |||
Multiple LSPs in the same disjoint group may have the P-flag set. In | ||||
such a case, those LSPs may not be disjoint from each other but will | ||||
be disjoint from others LSPs in the group that have the P-flag unset. | ||||
_________________________________________ | _________________________________________ | |||
/ \ | / \ | |||
/ +------+ \ | / +------+ \ | |||
| | PCE | | | | | PCE | | | |||
| +------+ | | | +------+ | | |||
| | | | | | |||
| | | | | | |||
| +------+ 10 +------+ | | | +------+ 10 +------+ | | |||
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 | |||
| +------+ | \ | +------+ | | | +------+ | \ | +------+ | | |||
| | \2 | | | | | \2 | | | |||
| | \ | | | | | \ | | | |||
| +------+ | \ | +------+ | | | +------+ | \ | +------+ | | |||
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 | |||
| +------+ +------+ | | | +------+ +------+ | | |||
| | | | | | |||
\ / | \ / | |||
\_________________________________________/ | \_________________________________________/ | |||
Cost of all the links is 1, unless explicitly marked otherwise. | ||||
Figure 4 | Figure 4 | |||
In the figure above, we still consider the same previous | In the figure above, we still consider the same previous | |||
requirements, so PE1->PE2 LSP should be optimized (P-flag set) while | requirements, so PE1->PE2 LSP should be optimized (P-flag set) while | |||
PE3->PE4 should be disjoint and may use a longer path. | PE3->PE4 should be disjoint and may use a costlier path. | |||
Regarding PE1->PE2, there are two paths that are satisfying the | Regarding PE1->PE2, there are two paths that are satisfying the | |||
constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and | constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and | |||
PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one | PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one | |||
of the paths or even use both (using both may happen in case Segment | of the paths. | |||
Routing TE is used, allowing ECMP). | ||||
If the implementation elects only one path, there is a chance that | If the implementation elects only one path, there is a chance that | |||
picking up one path may prevent disjointness. In our example, if | picking up one path may prevent disjointness. In our example, if | |||
path 2 is used for PE1->PE2, there is no room left for PE3->PE4 while | path 2 is used for PE1->PE2, there is no room left for PE3->PE4 while | |||
if path 1 is used, PE3->PE4 can be placed on R3->R4 link. | if path 1 is used, PE3->PE4 can be placed on R3->R4 link. | |||
When P-flag is set for an LSP and when ECMPs are available, an | When P-flag is set for an LSP and when ECMPs are available, an | |||
implementation MAY select a path that allows disjointness. | implementation should aim to select a path that allows disjointness. | |||
4.5. Disjointness computation issues | 4.6. Disjointness computation issues | |||
There may be some cases where the PCE is not able to provide a set of | There may be some cases where the PCE is not able to provide a set of | |||
disjoint paths for one or more LSPs in the association. | disjoint paths for one or more LSPs in the association. | |||
When the T-bit is set (Strict disjointness requested), if | When the T-bit is set (Strict disjointness requested), if | |||
disjointness cannot be ensured for one or more LSPs, the PCE SHOULD | disjointness cannot be ensured for one or more LSPs, the PCE SHOULD | |||
reply with a PCUpd message containing an empty ERO. In addition to | reply with a PCUpd message containing an empty ERO. In addition to | |||
the empty ERO Object, the PCE MAY add the NO-PATH-VECTOR TLV | the empty ERO Object, the PCE MAY add the NO-PATH-VECTOR TLV | |||
([RFC5440]) in the LSP Object. | ([RFC5440]) in the LSP Object. | |||
skipping to change at page 15, line 31 ¶ | skipping to change at page 15, line 31 ¶ | |||
level of disjointness computed. | level of disjointness computed. | |||
There are some cases where the PCE may need to completely relax the | There are some cases where the PCE may need to completely relax the | |||
disjointness constraint in order to provide a path to all the LSPs | disjointness constraint in order to provide a path to all the LSPs | |||
that are part of the association. A mechanism that allows the PCE to | that are part of the association. A mechanism that allows the PCE to | |||
fully relax a constraint is considered by the authors as more global | fully relax a constraint is considered by the authors as more global | |||
to PCEP rather than linked to the disjointness use case. As a | to PCEP rather than linked to the disjointness use case. As a | |||
consequence, it is considered as out of scope of the document. | consequence, it is considered as out of scope of the document. | |||
All LSPs in a particular disjoint group MUST use the same combination | All LSPs in a particular disjoint group MUST use the same combination | |||
of T,S,N,L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCE | of T,S,N,L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCEP | |||
receives PCRpt messages for LSPs belonging to the same disjoint group | peer receives a PCEP messages for LSPs belonging to the same disjoint | |||
but having an inconsistent combination of T,S,N,L flags, the PCE | group but having an inconsistent combination of T,S,N,L flags, the | |||
SHOULD NOT try to compute disjointness path and SHOULD reply a PCErr | PCEP peer SHOULD NOT try to add the LSPs in disjoint group and SHOULD | |||
with Error-type 26 (Association Error) and Error-Value 6 (Association | reply with a PCErr with Error-type 26 (Association Error) and Error- | |||
information mismatch) to all PCCs involved in the disjoint group. | Value 6 (Association information mismatch). | |||
5. Security Considerations | 5. Security Considerations | |||
This document defines one new type for association, which do not add | This document defines one new type for association, which do not add | |||
any new security concerns beyond those discussed in [RFC5440], | any new security concerns beyond those discussed in [RFC5440], | |||
[RFC8231] and [I-D.ietf-pce-association-group] in itself. | [RFC8231] and [I-D.ietf-pce-association-group] in itself. | |||
As stated in [I-D.ietf-pce-association-group], much of the | As stated in [I-D.ietf-pce-association-group], much of the | |||
information carried in the Disjointness Association object, as per | information carried in the Disjointness Association object, as per | |||
this document is not extra sensitive. It often reflects information | this document is not extra sensitive. It often reflects information | |||
skipping to change at page 16, line 10 ¶ | skipping to change at page 16, line 10 ¶ | |||
provides a much easier grouping of related LSPs and messages. The | provides a much easier grouping of related LSPs and messages. The | |||
disjointness association could provides an adversary with the | disjointness association could provides an adversary with the | |||
opportunity to eavesdrop on the relationship between the LSPs. Thus | opportunity to eavesdrop on the relationship between the LSPs. Thus | |||
securing the PCEP session using Transport Layer Security (TLS) | securing the PCEP session using Transport Layer Security (TLS) | |||
[RFC8253], as per the recommendations and best current practices in | [RFC8253], as per the recommendations and best current practices in | |||
[RFC7525], is RECOMMENDED. | [RFC7525], is RECOMMENDED. | |||
6. IANA Considerations | 6. IANA Considerations | |||
6.1. Association object Type Indicators | 6.1. Association Type | |||
This document defines the following new association type originally | ||||
defined in [I-D.ietf-pce-association-group]. | ||||
Value Name Reference | This document defines a new Association type, originally described in | |||
[I-D.ietf-pce-association-group]. IANA is requested to make the | ||||
assignment of a new value for the sub-registry "ASSOCIATION Type | ||||
Field" (request to be created in [I-D.ietf-pce-association-group]), | ||||
as follows: | ||||
TBD1 Disjoint-group | +------------------+-----------------------------+-------------+ | |||
Association Type [This I.D.] | | Association type | Association Name | Reference | | |||
+------------------+-----------------------------+-------------+ | ||||
| TBD1 | Disjoint-group Association | [This.I-D] | | ||||
+------------------+-----------------------------+-------------+ | ||||
6.2. PCEP TLVs | 6.2. PCEP TLVs | |||
This document defines the following new PCEP TLVs: | This document defines following new PCEP TLVs and the IANA is | |||
requested to make the assignment of new values for the existing "PCEP | ||||
TLV Type Indicators" registry as follows: | ||||
Value Name Reference | +----------+---------------------------------+-------------+ | |||
| TLV Type | TLV Name | Reference | | ||||
+----------+---------------------------------+-------------+ | ||||
| TBD2 | Disjointness Configuration TLV | [This.I-D] | | ||||
| TBD3 | Disjointness Status TLV | [This.I-D] | | ||||
+----------+---------------------------------+-------------+ | ||||
TBD2 DISJOINTNESS-CONFIGURATION-TLV [This I.D.] | This document requests that a new sub-registry, named "Disjointness | |||
TBD3 DISJOINTNESS-STATUS-TLV [This I.D.] | Configuration TLV Flag Field", is created within the "Path | |||
Computation Element Protocol (PCEP) Numbers" registry to manage the | ||||
Flag field in the Disjointness Configuration TLV. New values are to | ||||
be assigned by Standards Action [RFC8126]. Each bit should be | ||||
tracked with the following qualities: | ||||
IANA is requested to manage the space of flags carried in the | o Bit number (count from 0 as the most significant bit) | |||
DISJOINTNESS-CONFIGURATION-TLV defined in this document, numbering | ||||
them from 0 as the least significant bit. | ||||
New bit numbers may be allocated in future. | o Flag Name | |||
IANA is requested to allocate the following bit numbers in the | o Reference | |||
DISJOINTNESS-CONFIGURATION-TLV flag space: | +------------+-------------------------+-------------+ | |||
| Bit Number | Name | Reference | | ||||
+------------+-------------------------+-------------+ | ||||
| 31 | L - Link Diverse | [This.I-D] | | ||||
| 30 | N - Node Diverse | [This.I-D] | | ||||
| 29 | S - SRLG Diverse | [This.I-D] | | ||||
| 28 | P - Shortest Path | [This.I-D] | | ||||
| 27 | T - Strict Disjointness | [This.I-D] | | ||||
+------------+-------------------------+-------------+ | ||||
Bit Number Name Reference | Table 1: Disjointness Configuration TLV | |||
0 Link disjointness [This I.D.] | ||||
1 Node disjointness [This I.D.] | ||||
2 SRLG disjointness [This I.D.] | ||||
3 Shortest-path [This I.D.] | ||||
4 Strict disjointness [This I.D.] | ||||
6.3. Objective Functions | 6.3. Objective Functions | |||
three new Objective Functions have been defined. IANA has made the | Three new Objective Functions have been defined in this document. | |||
following allocations from the PCEP "Objective Function" sub- | IANA is requested to make the following allocations from the PCEP | |||
registry: | "Objective Function" sub-registry: | |||
Value Description Reference | +------------+----------------------------------------+-------------+ | |||
TBD4 MSL [This I.D.] | | Code Point | Name | Reference | | |||
TBD5 MSN [This I.D.] | +------------+----------------------------------------+-------------+ | |||
TBD6 MSS [This I.D.] | | TBD4 | Minimize the number of shared Links | [This.I-D] | | |||
| | (MSL) | | | ||||
| TBD5 | Minimize the number of shared SRLGs | [This.I-D] | | ||||
| | (MSS) | | | ||||
| TBD6 | Minimize the number of shared Nodes | [This.I-D] | | ||||
| | (MSN) | | | ||||
+------------+----------------------------------------+-------------+ | ||||
6.4. NO-PATH-VECTOR bit Flags | 6.4. NO-PATH-VECTOR Bit Flags | |||
This documents defines new bits for the NO-PATH-VECTOR TLV in the | This documents defines new bits for the NO-PATH-VECTOR TLV in the | |||
"NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation | "NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation | |||
Element Protocol (PCEP) Numbers" registry: | Element Protocol (PCEP) Numbers" registry. IANA is requested to make | |||
the following allocation: | ||||
Bit Number Name Reference | +------------+-----------------------------------------+------------+ | |||
TBD7 Disjoint path not found [This I.D.] | | Bit Number | Name | Reference | | |||
+------------+-----------------------------------------+------------+ | ||||
| TBD7 | Disjoint path not found | [This.I-D] | | ||||
| TBD8 | Requested disjoint computation not | [This.I-D] | | ||||
| | supported | | | ||||
+------------+-----------------------------------------+------------+ | ||||
TBD8 Requested disjointness [This I.D.] | Table 2: NO-PATH-VECTOR TLV | |||
computation not supported | ||||
6.5. PCEP-ERROR codes | 6.5. PCEP-ERROR codes | |||
IANA is requested to allocate new Error Types and Error Values within | This document defines new Error-Type and Error-Value related to path | |||
the " PCEP-ERROR Object Error Types and Values" sub-registry of the | protection association. IANA is requested to allocate new error | |||
PCEP Numbers registry, as follows: | values within the "PCEP-ERROR Object Error Types and Values" sub- | |||
registry of the PCEP Numbers registry, as follows: | ||||
Error-Type Meaning | +----------+-------------------------+------------------------------+ | |||
6 Mandatory Object missing | | Error- | Meaning | Reference | | |||
Error-value=TBD7: DISJOINTNESS-CONFIGURATION | | Type | | | | |||
TLV missing | +----------+-------------------------+------------------------------+ | |||
| 6 | Mandatory Object | [I-D.ietf-pce-association-gr | | ||||
| | missing | oup] | | ||||
| | Error-value=TBD8: | [This.I-D] | | ||||
| | DISJOINTNESS- | | | ||||
| | CONFIGURATION TLV | | | ||||
| | missing | | | ||||
| 10 | Reception of an invalid | [RFC5440] | | ||||
| | object | | | ||||
| | Error-value=TBD9: | [This.I-D] | | ||||
| | Incompatible OF codes | | | ||||
+----------+-------------------------+------------------------------+ | ||||
7. Manageability Considerations | 7. Manageability Considerations | |||
7.1. Control of Function and Policy | 7.1. Control of Function and Policy | |||
An operator MUST be allowed to configure the disjointness | An operator SHOULD be allowed to configure the disjointness | |||
associations and parameters at PCEP peers and associate it with the | association groups and disjoint parameters at the PCEP peers and | |||
LSPs. | associate it with the LSPs. The Operator-configured Association | |||
Range MUST be allowed to be set by the operator. Operator SHOULD be | ||||
allowed to set the local policies to define various disjoint | ||||
computational behavior at the PCE. | ||||
7.2. Information and Data Models | 7.2. Information and Data Models | |||
[RFC7420] describes the PCEP MIB, there are no new MIB Objects for | An implementation SHOULD allow the operator to view the disjoint | |||
this document. | associations configured or created dynamically. Further | |||
implementation SHOULD allow to view disjoint associations reported by | ||||
each peer, and the current set of LSPs in this association. The PCEP | ||||
YANG module [I-D.ietf-pce-pcep-yang] includes association groups | ||||
information. | ||||
7.3. Liveness Detection and Monitoring | 7.3. Liveness Detection and Monitoring | |||
Mechanisms defined in this document do not imply any new liveness | 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]. | |||
7.4. Verify Correct Operations | 7.4. Verify Correct Operations | |||
Mechanisms defined in this document do not imply any new operation | Mechanisms defined in this document do not imply any new operation | |||
verification requirements in addition to those already listed in | verification requirements in addition to those already listed in | |||
[RFC5440]. | [RFC5440]. | |||
7.5. Requirements On Other Protocols | 7.5. Requirements On Other Protocols | |||
Mechanisms defined in this document do not imply any new requirements | Mechanisms defined in this document do not imply any new requirements | |||
on other protocols. | on other protocols. | |||
7.6. Impact On Network Operations | 7.6. Impact On Network Operations | |||
Mechanisms defined in this document do not have any impact on network | Mechanisms defined in [RFC5440], Section 8.6 also apply to PCEP | |||
operations in addition to those already listed in [RFC5440]. | extensions defined in this document. Additionally, a PCEP | |||
implementation SHOULD allow a limit to be placed on the number of | ||||
LSPs that can belong to a disjoint association group. | ||||
8. Acknowledgments | 8. Acknowledgments | |||
A special thanks to author of [I-D.ietf-pce-association-group], this | A special thanks to author of [I-D.ietf-pce-association-group], this | |||
document borrow some of the text from it. Authors would also like to | document borrow some of the text from it. Authors would also like to | |||
thank Adrian Farrel for his useful comments. | thank Adrian Farrel for his useful comments. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[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>. | |||
[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>. | ||||
[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>. | |||
[RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of | [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of | |||
Objective Functions in the Path Computation Element | Objective Functions in the Path Computation Element | |||
Communication Protocol (PCEP)", RFC 5541, | Communication Protocol (PCEP)", RFC 5541, | |||
DOI 10.17487/RFC5541, June 2009, | DOI 10.17487/RFC5541, June 2009, | |||
<https://www.rfc-editor.org/info/rfc5541>. | <https://www.rfc-editor.org/info/rfc5541>. | |||
skipping to change at page 19, line 15 ¶ | skipping to change at page 20, line 19 ¶ | |||
[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>. | |||
[I-D.ietf-pce-association-group] | [I-D.ietf-pce-association-group] | |||
Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., | Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., | |||
Dhody, D., and Y. Tanaka, "PCEP Extensions for | Dhody, D., and Y. Tanaka, "PCEP Extensions for | |||
Establishing Relationships Between Sets of LSPs", draft- | Establishing Relationships Between Sets of LSPs", draft- | |||
ietf-pce-association-group-07 (work in progress), December | ietf-pce-association-group-09 (work in progress), April | |||
2018. | 2019. | |||
9.2. Informative References | 9.2. Informative References | |||
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
Element (PCE)-Based Architecture", RFC 4655, | 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>. | |||
[RFC6007] Nishioka, I. and D. King, "Use of the Synchronization | [RFC6007] Nishioka, I. and D. King, "Use of the Synchronization | |||
VECtor (SVEC) List for Synchronized Dependent Path | VECtor (SVEC) List for Synchronized Dependent Path | |||
Computations", RFC 6007, DOI 10.17487/RFC6007, September | Computations", RFC 6007, DOI 10.17487/RFC6007, September | |||
2010, <https://www.rfc-editor.org/info/rfc6007>. | 2010, <https://www.rfc-editor.org/info/rfc6007>. | |||
[RFC7470] Zhang, F. and A. Farrel, "Conveying Vendor-Specific | [RFC7470] Zhang, F. and A. Farrel, "Conveying Vendor-Specific | |||
Constraints in the Path Computation Element Communication | Constraints in the Path Computation Element Communication | |||
Protocol", RFC 7470, DOI 10.17487/RFC7470, March 2015, | Protocol", RFC 7470, DOI 10.17487/RFC7470, March 2015, | |||
<https://www.rfc-editor.org/info/rfc7470>. | <https://www.rfc-editor.org/info/rfc7470>. | |||
[RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | ||||
Hardwick, "Path Computation Element Communication Protocol | ||||
(PCEP) Management Information Base (MIB) Module", | ||||
RFC 7420, DOI 10.17487/RFC7420, December 2014, | ||||
<https://www.rfc-editor.org/info/rfc7420>. | ||||
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | |||
"Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | |||
2015, <https://www.rfc-editor.org/info/rfc7525>. | 2015, <https://www.rfc-editor.org/info/rfc7525>. | |||
[RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | |||
"PCEPS: Usage of TLS to Provide a Secure Transport for the | "PCEPS: Usage of TLS to Provide a Secure Transport for the | |||
Path Computation Element Communication Protocol (PCEP)", | Path Computation Element Communication Protocol (PCEP)", | |||
RFC 8253, DOI 10.17487/RFC8253, October 2017, | RFC 8253, DOI 10.17487/RFC8253, October 2017, | |||
<https://www.rfc-editor.org/info/rfc8253>. | <https://www.rfc-editor.org/info/rfc8253>. | |||
[RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Extensions for PCE-Initiated LSP Setup in a Stateful PCE | Extensions for PCE-Initiated LSP Setup in a Stateful PCE | |||
Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | |||
<https://www.rfc-editor.org/info/rfc8281>. | <https://www.rfc-editor.org/info/rfc8281>. | |||
[I-D.ietf-pce-pcep-yang] | ||||
Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | ||||
YANG Data Model for Path Computation Element | ||||
Communications Protocol (PCEP)", draft-ietf-pce-pcep- | ||||
yang-11 (work in progress), March 2019. | ||||
Appendix A. Contributor Addresses | Appendix A. Contributor Addresses | |||
Dhruv Dhody | Dhruv Dhody | |||
Huawei Technologies | Huawei Technologies | |||
Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
Bangalore, Karnataka 560066 | Bangalore, Karnataka 560066 | |||
India | India | |||
EMail: dhruv.ietf@gmail.com | EMail: dhruv.ietf@gmail.com | |||
End of changes. 67 change blocks. | ||||
165 lines changed or deleted | 244 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |