draft-ietf-pce-association-diversity-02.txt | draft-ietf-pce-association-diversity-03.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: March 15, 2018 Cisco Systems, Inc. | Expires: August 31, 2018 Cisco Systems, Inc. | |||
C. Barth | C. Barth | |||
Juniper Networks | Juniper Networks | |||
D. Dhody | D. Dhody | |||
Huawei | Huawei | |||
September 11, 2017 | February 27, 2018 | |||
Path Computation Element communication Protocol extension for signaling | Path Computation Element communication Protocol extension for signaling | |||
LSP diversity constraint | LSP diversity constraint | |||
draft-ietf-pce-association-diversity-02 | draft-ietf-pce-association-diversity-03 | |||
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 Communication Protocol (PCEP) with the purpose of computing | Element Communication Protocol (PCEP) with the purpose of computing | |||
diverse paths for those LSPs. The proposed extension allows a PCC to | diverse paths for those LSPs. The proposed extension allows a PCC to | |||
advertise to a PCE the belonging of a particular LSP to a disjoint- | advertise to a PCE the belonging of a particular LSP to a disjoint- | |||
group, thus the PCE knows that LSPs in the same group must be | group, thus the PCE knows that LSPs in the same group must be | |||
disjoint from each other. | 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 March 15, 2018. | This Internet-Draft will expire on August 31, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
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. Mandatory TLV . . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Mandatory TLV . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.3. Optional TLVs . . . . . . . . . . . . . . . . . . . . . . 9 | 4.3. Optional TLVs . . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.4. Disjointness objective functions . . . . . . . . . . . . 9 | 4.4. Disjointness objective functions . . . . . . . . . . . . 10 | |||
4.5. P-flag considerations . . . . . . . . . . . . . . . . . . 9 | 4.5. P-flag considerations . . . . . . . . . . . . . . . . . . 11 | |||
4.6. Disjointness computation issues . . . . . . . . . . . . . 12 | 4.6. Disjointness computation issues . . . . . . . . . . . . . 14 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
6.1. Association object Type Indicators . . . . . . . . . . . 13 | 6.1. Association object Type Indicators . . . . . . . . . . . 15 | |||
6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 14 | 6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
6.3. NO-PATH-VECTOR bit Flags . . . . . . . . . . . . . . . . 14 | 6.3. Objective Functions . . . . . . . . . . . . . . . . . . . 16 | |||
6.4. PCEP-ERROR codes . . . . . . . . . . . . . . . . . . . . 14 | 6.4. NO-PATH-VECTOR bit Flags . . . . . . . . . . . . . . . . 16 | |||
7. Manageability Considerations . . . . . . . . . . . . . . . . 15 | 6.5. PCEP-ERROR codes . . . . . . . . . . . . . . . . . . . . 16 | |||
7.1. Control of Function and Policy . . . . . . . . . . . . . 15 | 7. Manageability Considerations . . . . . . . . . . . . . . . . 16 | |||
7.2. Information and Data Models . . . . . . . . . . . . . . . 15 | 7.1. Control of Function and Policy . . . . . . . . . . . . . 16 | |||
7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 15 | 7.2. Information and Data Models . . . . . . . . . . . . . . . 17 | |||
7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 15 | 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 17 | |||
7.5. Requirements On Other Protocols . . . . . . . . . . . . . 15 | 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 17 | |||
7.6. Impact On Network Operations . . . . . . . . . . . . . . 15 | 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 17 | |||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | 7.6. Impact On Network Operations . . . . . . . . . . . . . . 17 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 16 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | 9.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
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 [I-D.ietf-pce-stateful-pce] | PCEP Extensions for Stateful PCE Model [RFC8231] describes a set of | |||
describes a set of extensions to PCEP to enable active control of | extensions to PCEP to enable active control of MPLS-TE and GMPLS | |||
MPLS-TE and GMPLS tunnels. [I-D.ietf-pce-pce-initiated-lsp] | tunnels. [RFC8281] describes the setup and teardown of PCE-initiated | |||
describes the setup and teardown of PCE-initiated LSPs under the | LSPs under the active stateful PCE model, without the need for local | |||
active stateful PCE model, without the need for local configuration | configuration on the PCC, thus allowing for a dynamic network. | |||
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 which can then be used to define | |||
associations between a set of LSPs and a set of attributes (such as | associations between a set of LSPs and a set of attributes (such as | |||
configuration parameters or behaviours) and is equally applicable to | configuration parameters or behaviours) and is equally applicable to | |||
the active and passive modes of a stateful PCE | the active and passive modes of a stateful PCE [RFC8231] or a | |||
[I-D.ietf-pce-stateful-pce] or a stateless PCE [RFC5440]. | 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 the | of diversity. A PCC can use this extension to signal to a PCE the | |||
belonging of a particular LSP to a disjoint-group. When a PCE | belonging of a particular LSP to a disjoint-group. When a PCE | |||
receives LSP states belonging to the same disjoint-group from some | receives LSP states belonging to the same disjoint-group from some | |||
PCCs, the PCE should ensure that the LSPs within the group are | PCCs, the PCE should ensure that the LSPs within the group are | |||
disjoint from each other. | disjoint from each other. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
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, the customer wants to have two disjoint paths | In the figure above, the customer wants to have two disjoint paths | |||
between CE1/CE2 and CE3/CE4. From an IP/MPLS network point view, in | between CE1/CE2 and CE3/CE4. From an IP/MPLS network point view, in | |||
this example, the CEs are connected to different PEs to maximize | this example, the CEs are connected to different PEs to maximize | |||
their disjointness. When LSPs originate from different head-ends, | their disjointness. When LSPs originate from different head-ends, | |||
distributed computation of diverse paths can be difficult. Whereas, | distributed computation of diverse paths can be difficult. Whereas, | |||
computation via a centralized PCE ensures path disjointness | computation via a centralized PCE ensures path disjointness | |||
correctness and simplicity. | correctness and simplicity. | |||
The SVEC (Synchronization VECtor) object [RFC5440] allows a PCC to | [RFC5440] defines a mechanism for the synchronization of a set of | |||
request the synchronization of a set of dependent or independent path | path computation requests by using the SVEC (Synchronization VECtor) | |||
computation requests. As per [RFC5440], the SVEC object is optional | object, that specifies the list of synchronized requests that can | |||
and may be carried within a PCReq message. It uses the Request-ID- | either be dependent or independent. The SVEC object identify the | |||
number carried within the respective RP (Request Parameters) object | relationship between the set of path computation requests, identified | |||
to identify the computation request that should be syncronized. | by 'Request-ID-number' in RP (Request Parameters) object. [RFC6007] | |||
further clarifies the use of the SVEC list for synchronized path | ||||
computations when computing dependent requests as well as describes a | ||||
number of usage scenarios for SVEC lists within single-domain and | ||||
multi-domain environments. | ||||
The PCEP extension for stateful PCE [I-D.ietf-pce-stateful-pce] | The SVEC object includes a Flags field that indicates the potential | |||
defined new PCEP messages - PCRpt, PCUpd and PCInitiate. These | dependency between the set of path computation request in a similar | |||
messages uses PLSP-ID in the LSP object for identification. Moreover | way as the Flags field in the TLVs defined in this document. The | |||
to allow diversity between LSPs originating from different PCCs, the | path computation request (PCReq) message MAY use both SVEC object to | |||
generic mechanism to create a grouping of LSPs as described in | 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 | ||||
messages - PCRpt, PCUpd and PCInitiate. These messages uses PLSP-ID | ||||
in the LSP object for identification. Moreover to allow diversity | ||||
between LSPs originating from different PCCs, the generic mechanism | ||||
to create a grouping of LSPs as described in | ||||
[I-D.ietf-pce-association-group] equally applicable to the active and | [I-D.ietf-pce-association-group] equally applicable to the active and | |||
passive modes of a stateful PCE is better suited. | passive modes of a stateful PCE is better suited. | |||
Using PCEP, the PCC MUST indicate that disjoint path computation is | Using PCEP, the PCC MUST indicate that disjoint path computation is | |||
required, such indication SHOULD include disjointness parameters such | required, such indication SHOULD include disjointness parameters such | |||
as the type of disjointness, the disjoint group-id, and any | as the type of disjointness, the disjoint group-id, and any | |||
customization parameters according to the configured local policy. | customization parameters according to the configured local policy. | |||
As mentioned previously, the extension described in | As mentioned previously, the extension described in | |||
[I-D.ietf-pce-association-group] is well suited to associated a set | [I-D.ietf-pce-association-group] is well suited to associated a set | |||
of LSPs with a particular disjoint-group. | of LSPs with a particular disjoint-group. | |||
skipping to change at page 6, line 23 ¶ | skipping to change at page 7, line 7 ¶ | |||
limitation. For example, when a PCC or PCE initiates all the LSPs in | limitation. For example, when a PCC or PCE initiates all the LSPs in | |||
a particular disjoint-group, it can set the IPv4/IPv6 association | a particular disjoint-group, it can set the IPv4/IPv6 association | |||
source can be set to one of its IP address. When disjoint LSPs are | source can be set to one of its IP address. When disjoint LSPs are | |||
initiated from different head-ends, a unique association identifier | initiated from different head-ends, a unique association identifier | |||
SHOULD be used for those LSPs: this can be achieved by setting the | SHOULD be used for those LSPs: this can be achieved by setting the | |||
IPv4/IPv6 source address to a common value (zero value can be used) | IPv4/IPv6 source address to a common value (zero value can be used) | |||
as well as the Association ID. | as well as the Association ID. | |||
Initiate & Monitor LSP | Initiate & Monitor LSP | |||
| | | | |||
| PCReq | | PCReq/PCRpt | |||
V {Disjoint-group Y} | V {Disjoint-group Y} | |||
+-----+ ----------------> +-----+ | +-----+ ----------------> +-----+ | |||
_ _ _ _ _ _| PCE | | | PCE | | _ _ _ _ _ _| PCE | | | PCE | | |||
| +-----+ | ----------> +-----+ | | +-----+ | ----------> +-----+ | |||
| PCInitiate | | PCReq | | PCInitiate | | PCReq/PCRpt | |||
|{Disjoint-group X} | | {Disjoint-group Y} | |{Disjoint-group X} | | {Disjoint-group Y} | |||
| | | | | | | | |||
| .-----. | | .-----. | | .-----. | | .-----. | |||
| ( ) | +----+ ( ) | | ( ) | +----+ ( ) | |||
| .--( )--. | |PE 1|--.--( )--. | | .--( )--. | |PE 1|--.--( )--. | |||
V ( ) | +----+ ( ) | V ( ) | +----+ ( ) | |||
+---+ ( ) | ( ) | +---+ ( ) | ( ) | |||
|PCC|----( (G)MPLS network ) +----+ ( (G)MPLS network ) | |PCC|----( (G)MPLS network ) +----+ ( (G)MPLS network ) | |||
+---+ ( ) |PE 3|------( ) | +---+ ( ) |PE 3|------( ) | |||
Disjoint-group X ) +----+ ( ) | Disjoint-group X ) +----+ ( ) | |||
skipping to change at page 7, line 24 ¶ | skipping to change at page 8, line 4 ¶ | |||
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 ID will be used to identify the | association group. The Association ID will be used to identify the | |||
disjoint group a set of LSPs belongs to. This document defines a new | disjoint group a set of LSPs belongs to. 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"). | o Association type = TBD1 ("Disjointness Association Type"). | |||
The association type is considered to be both dynamic and operator- | ||||
configured. | ||||
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 the implementation. | disjoint LSPs will be decided by the implementation. | |||
Local polices on the PCC or PCE MAY define the computational behavior | Local polices on the PCC or PCE MAY define the computational behavior | |||
for the other LSPs in the group. For example, the PCE may provide no | for the other LSPs in the group. For example, the PCE may provide no | |||
path, a shortest path, or a constrained path based on relaxing | path, a shortest path, or a constrained path based on relaxing | |||
skipping to change at page 7, line 48 ¶ | skipping to change at page 8, line 30 ¶ | |||
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 insurance | |||
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. Mandatory TLV | 4.2. Mandatory TLV | |||
The disjoint group MUST carry the following TLV: | The disjoint group MUST carry the following TLV: | |||
o DISJOINTNESS-INFORMATION-TLV: Used to communicate some | o DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some | |||
disjointness specific parameters. | disjointness configuration parameters. | |||
The DISJOINTNESS-INFORMATION-TLV is shown in the following figure: | In addition, the disjoint group MAY carry the following TLV in a | |||
PCUpd or PCRep message: | ||||
o DISJOINTNESS-STATUS-TLV: Used to communicate the status of the | ||||
computed disjointness. | ||||
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| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Flags: | Flags: | |||
skipping to change at page 8, line 48 ¶ | skipping to change at page 9, line 38 ¶ | |||
* 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 at all). | |||
If a PCEP speaker receives a disjoint-group without DISJOINTNESS- | If a PCEP speaker receives a disjoint-group without DISJOINTNESS- | |||
INFORMATION-TLV, it SHOULD reply with a PCErr Error-type=6 (Mandatory | CONFIGURATION-TLV, it SHOULD reply with a PCErr Error-type=6 | |||
Object missing) and Error-value=TBD7. | (Mandatory Object missing) and Error-value=TBD7. | |||
The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- | ||||
CONFIGURATION-TLV with a different type: | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type = [TBD3] | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Flags |T|P|S|N|L| | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV MUST be | ||||
automatically added to the DISJOINTNESS-STATUS-TLV. | ||||
4.3. Optional TLVs | 4.3. Optional TLVs | |||
The disjoint group MAY carry some optional TLVs including but not | The disjoint group MAY carry some optional TLVs including but not | |||
limited to: | limited to: | |||
o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor | o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor | |||
specific behavioral information, described in [RFC7150]. | specific behavioral information, described in [RFC7150]. | |||
4.4. Disjointness objective functions | 4.4. Disjointness objective functions | |||
An objective function MAY be applied to the disjointness computation | An objective function MAY be applied to the disjointness computation | |||
to drive the PCE computation behavior. In this case, the OF-List TLV | to drive the PCE computation behavior. In this case, the OF-List TLV | |||
(defined in ([RFC5541]) is used as an optional TLV in the Association | (defined in ([RFC5541]) is used as an optional TLV in the Association | |||
Group Object. The PCEP OF-List TLV allow multiple OF-Codes inside | Group Object. The PCEP OF-List TLV allow multiple OF-Codes inside | |||
the TLV, a sender SHOULD include a single OF-Code in the OF-List TLV | the TLV, a sender SHOULD include a single OF-Code in the OF-List TLV | |||
when included in the Association Group, and the receiver MUST | when included in the Association Group, and the receiver MUST | |||
consider the first OF-code only and ignore others if included. The | consider the first OF-code only and ignore others if included. | |||
OF-Code to maximize diversity are specified in | ||||
([I-D.dhody-pce-of-diverse]). | To minimize the common shared resources (Node, Link or SRLG) between | |||
a set of paths during path computation three new OF codes are | ||||
proposed: | ||||
MSL | ||||
* Name: Minimize the number of shared (common) Links. | ||||
* Objective Function Code: TBD4 | ||||
* Description: Find a set of paths such that it passes through the | ||||
least number of shared (common) links. | ||||
MSS | ||||
* Name: Minimize the number of shared (common) SRLGs. | ||||
* Objective Function Code: TBD5 | ||||
* Description: Find a set of paths such that it passes through the | ||||
least number of shared (common) SRLGs. | ||||
MSN | ||||
* Name: Minimize the number of shared (common) Nodes. | ||||
* Objective Function Code: TBD6 | ||||
* Description: Find a set of paths such that it passes through the | ||||
least number of shared (common) nodes. | ||||
[RFC5440] uses SVEC diversity flag for node, link or SRLG to describe | ||||
the potential disjointness between the set of path computation | ||||
requests used in PCEP protocol. | ||||
This document defines three new OF codes to maximize diversity as | ||||
much as possible, in other words, minimize the common shared | ||||
resources (Node,Link or SRLG) between a set of paths. | ||||
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 | ||||
usage are listed below - | ||||
o SVEC object with node-diverse bit=1 - ensure full node-diversity. | ||||
o SVEC object with node-diverse bit=1 and OF=MSS - full node diverse | ||||
with as much as SRLG-diversity as possible. | ||||
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- | ||||
diversity as possible. | ||||
o SVEC object with node-diverse bit=1 and OF=MSN - ensure full node- | ||||
diversity. | ||||
4.5. 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 | |||
skipping to change at page 12, line 21 ¶ | skipping to change at page 14, line 21 ¶ | |||
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 MAY select a path that allows disjointness. | |||
4.6. 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 found 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. | |||
This document adds new bits in the NO-PATH-VECTOR TLV: | This document adds new bits in the NO-PATH-VECTOR TLV: | |||
bit "TBD3": when set, the PCE indicates that it could not find a | bit "TBD7": when set, the PCE indicates that it could not find a | |||
disjoint path for this LSP. | disjoint path for this LSP. | |||
bit "TBD4": when set, the PCE indicates that it does not support | bit "TBD8": when set, the PCE indicates that it does not support | |||
the requested disjointness computation. | the requested disjointness computation. | |||
The NO-PATH-VECTOR TLV MAY also be used when T-bit is unset and when | When the T-bit is unset, the PCE is allowed to reduce the required | |||
the PCE cannot provide a path for an LSP in the disjoint group. | level of disjointness. The actual level of disjointness computed by | |||
the PCE can be reported through the DISJOINTNESS-STATUS-TLV by | ||||
When the T-bit is unset, the PCE is allowed to relax the constraint | setting the appropriate flags in the TLV. While the DISJOINTNESS- | |||
if it cannot be satisfied. This document introduces a new RELAXED- | CONFIGURATION-TLV defines the expected level of disjointness required | |||
CONSTRAINT-TLV that MAY be used by a PCE to indicate that some | by configuration, the DISJOINTNESS-STATUS-TLV defines the actual | |||
constraints have been relaxed. | level of disjointness computed. | |||
When used, the RELAXED-CONSTRAINT-TLV SHOULD be included in the LSP | ||||
Object of a PCUpd message. The RELAXED-CONSTRAINT-TLV has the | ||||
following format: | ||||
0 1 2 3 | There are some cases where the PCE may need to completely relax the | |||
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 | 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 | |||
| Type = [TBD5] | Length | | fully relax a constraint is considered by the authors as more global | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | to PCEP rather than linked to the disjointness use case. As a | |||
| Object-Class#1| OT#1 |Res|P|I| Object Length (bytes) | | consequence, it is considered as out of scope of the document. | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
// (Object body) // | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
... | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Object-Class#n| OT#n |Res|P|I| Object Length (bytes) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
// (Object body) // | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
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-INFORMATION-TLV. If a PCE | of T,S,N,L flags in the DISJOINTNESS-CONFIGURATION-TLV. If a PCE | |||
receives PCRpt messages for LSPs belonging to the same disjoint group | receives PCRpt messages for LSPs belonging to the same disjoint group | |||
but having an inconsistent combination of T,S,N,L flags, the PCE | but having an inconsistent combination of T,S,N,L flags, the PCE | |||
SHOULD NOT try to compute disjointness path and SHOULD reply a PCErr | SHOULD NOT try to compute disjointness path and SHOULD reply a PCErr | |||
with Error-type 5 (Policy Violation) and Error-Value TBD6 | with Error-type 5 (Policy Violation) and Error-Value TBD6 | |||
(Inconsistent parameters in DISJOINTNESS-INFORMATION TLV) to all PCCs | (Inconsistent parameters in DISJOINTNESS-CONFIGURATION TLV) to all | |||
involved in the disjoint group. | PCCs involved in the disjoint group. | |||
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], | |||
[I-D.ietf-pce-stateful-pce] and [I-D.ietf-pce-association-group] in | [RFC8231] and [I-D.ietf-pce-association-group] in itself. | |||
itself. | ||||
6. IANA Considerations | 6. IANA Considerations | |||
6.1. Association object Type Indicators | 6.1. Association object Type Indicators | |||
This document defines the following new association type originally | This document defines the following new association type originally | |||
defined in [I-D.ietf-pce-association-group]. | defined in [I-D.ietf-pce-association-group]. | |||
Value Name Reference | Value Name Reference | |||
TBD1 Disjoint-group | TBD1 Disjoint-group | |||
Association Type [This I.D.] | Association Type [This I.D.] | |||
6.2. PCEP TLVs | 6.2. PCEP TLVs | |||
This document defines the following new PCEP TLVs: | This document defines the following new PCEP TLVs: | |||
Value Name Reference | Value Name Reference | |||
TBD2 DISJOINTNESS-INFORMATION-TLV [This I.D.] | TBD2 DISJOINTNESS-CONFIGURATION-TLV [This I.D.] | |||
TBD5 RELAXED-CONSTRAINT-TLV [This I.D.] | TBD3 DISJOINTNESS-STATUS-TLV [This I.D.] | |||
IANA is requested to manage the space of flags carried in the | IANA is requested to manage the space of flags carried in the | |||
DISJOINTNESS-INFORMATION TLV defined in this document, numbering them | DISJOINTNESS-CONFIGURATION-TLV defined in this document, numbering | |||
from 0 as the least significant bit. | them from 0 as the least significant bit. | |||
New bit numbers may be allocated in future. | New bit numbers may be allocated in future. | |||
IANA is requested to allocate the following bit numbers in the | IANA is requested to allocate the following bit numbers in the | |||
DISJOINTNESS-INFORMATION-TLV flag space: | DISJOINTNESS-CONFIGURATION-TLV flag space: | |||
Bit Number Name Reference | Bit Number Name Reference | |||
0 Link disjointness [This I.D.] | 0 Link disjointness [This I.D.] | |||
1 Node disjointness [This I.D.] | 1 Node disjointness [This I.D.] | |||
2 SRLG disjointness [This I.D.] | 2 SRLG disjointness [This I.D.] | |||
3 Shortest-path [This I.D.] | 3 Shortest-path [This I.D.] | |||
4 Strict disjointness [This I.D.] | 4 Strict disjointness [This I.D.] | |||
6.3. NO-PATH-VECTOR bit Flags | 6.3. Objective Functions | |||
three new Objective Functions have been defined. IANA has made the | ||||
following allocations from the PCEP "Objective Function" sub- | ||||
registry: | ||||
Value Description Reference | ||||
TBD4 MSL [This I.D.] | ||||
TBD5 MSN [This I.D.] | ||||
TBD6 MSS [This I.D.] | ||||
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: | |||
Bit Number Name Reference | Bit Number Name Reference | |||
TBD3 Disjoint path not found [This I.D.] | TBD7 Disjoint path not found [This I.D.] | |||
TBD4 Requested disjointness [This I.D.] | TBD8 Requested disjointness [This I.D.] | |||
computation not supported | computation not supported | |||
6.4. PCEP-ERROR codes | 6.5. PCEP-ERROR codes | |||
IANA is requested to allocate new Error Types and Error Values within | IANA is requested to allocate new Error Types and Error Values within | |||
the " PCEP-ERROR Object Error Types and Values" sub-registry of the | the " PCEP-ERROR Object Error Types and Values" sub-registry of the | |||
PCEP Numbers registry, as follows: | PCEP Numbers registry, as follows: | |||
Error-Type Meaning | Error-Type Meaning | |||
5 Policy violation | 5 Policy violation | |||
Error-value=TBD6: Inconsistent parameters | Error-value=TBD6: Inconsistent parameters | |||
in DISJOINTNESS-INFORMATION TLV | in DISJOINTNESS-CONFIGURATION TLV | |||
6 Mandatory Object missing | 6 Mandatory Object missing | |||
Error-value=TBD7: DISJOINTNESS-INFORMATION TLV missing | Error-value=TBD7: DISJOINTNESS-CONFIGURATION TLV missing | |||
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 MUST be allowed to configure the disjointness | |||
associations and parameters at PCEP peers and associate it with the | associations and parameters at PCEP peers and associate it with the | |||
LSPs. | LSPs. | |||
7.2. Information and Data Models | 7.2. Information and Data Models | |||
skipping to change at page 16, line 37 ¶ | skipping to change at page 18, line 23 ¶ | |||
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>. | |||
[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-04 (work in progress), August | ietf-pce-association-group-04 (work in progress), August | |||
2017. | 2017. | |||
[I-D.ietf-pce-stateful-pce] | [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | |||
Crabbe, E., Minei, I., Medved, J., and R. Varga, "PCEP | Computation Element Communication Protocol (PCEP) | |||
Extensions for Stateful PCE", draft-ietf-pce-stateful- | Extensions for Stateful PCE", RFC 8231, | |||
pce-21 (work in progress), June 2017. | DOI 10.17487/RFC8231, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8231>. | ||||
[I-D.dhody-pce-of-diverse] | ||||
Dhody, D. and Q. Wu, "PCE support for Maximizing | ||||
Diversity", draft-dhody-pce-of-diverse-07 (work in | ||||
progress), May 2017. | ||||
9.2. Informative References | 9.2. Informative References | |||
[RFC7150] Zhang, F. and A. Farrel, "Conveying Vendor-Specific | [RFC7150] Zhang, F. and A. Farrel, "Conveying Vendor-Specific | |||
Constraints in the Path Computation Element Communication | Constraints in the Path Computation Element Communication | |||
Protocol", RFC 7150, DOI 10.17487/RFC7150, March 2014, | Protocol", RFC 7150, DOI 10.17487/RFC7150, March 2014, | |||
<https://www.rfc-editor.org/info/rfc7150>. | <https://www.rfc-editor.org/info/rfc7150>. | |||
[RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | |||
Hardwick, "Path Computation Element Communication Protocol | Hardwick, "Path Computation Element Communication Protocol | |||
(PCEP) Management Information Base (MIB) Module", | (PCEP) Management Information Base (MIB) Module", | |||
RFC 7420, DOI 10.17487/RFC7420, December 2014, | RFC 7420, DOI 10.17487/RFC7420, December 2014, | |||
<https://www.rfc-editor.org/info/rfc7420>. | <https://www.rfc-editor.org/info/rfc7420>. | |||
[I-D.ietf-pce-pce-initiated-lsp] | [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | |||
Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "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", draft-ietf-pce-pce-initiated-lsp-10 (work in | Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | |||
progress), June 2017. | <https://www.rfc-editor.org/info/rfc8281>. | |||
Authors' Addresses | Authors' Addresses | |||
Stephane Litkowski | Stephane Litkowski | |||
Orange | Orange | |||
EMail: stephane.litkowski@orange.com | EMail: stephane.litkowski@orange.com | |||
Siva Sivabalan | Siva Sivabalan | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
2000 Innovation Drive | 2000 Innovation Drive | |||
Kanata, Ontario K2K 3E8 | Kanata, Ontario K2K 3E8 | |||
Canada | Canada | |||
End of changes. 40 change blocks. | ||||
128 lines changed or deleted | 209 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |