draft-ietf-pce-association-diversity-00.txt   draft-ietf-pce-association-diversity-01.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: July 31, 2017 Cisco Systems, Inc. Expires: September 14, 2017 Cisco Systems, Inc.
C. Barth C. Barth
Juniper Networks Juniper Networks
January 27, 2017 D. Dhody
Huawei
March 13, 2017
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-00 draft-ietf-pce-association-diversity-01
Abstract Abstract
This document introduces a simple mechanism to signal path diversity This document introduces a simple mechanism to associate a group of
for a group of Label Switched Paths (LSPs) via an extension to the Label Switched Paths (LSPs) via an extension to the Path Computation
Path Computation Element Communication Protocol (PCEP). Element Communication Protocol (PCEP) with the purpose of computing
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-
group, thus the PCE knows that LSPs in the same group must be
disjoint from each other.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 July 31, 2017. This Internet-Draft will expire on September 14, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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 . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Protocol extension . . . . . . . . . . . . . . . . . . . . . 6 4. Protocol extension . . . . . . . . . . . . . . . . . . . . . 7
4.1. Association group . . . . . . . . . . . . . . . . . . . . 6 4.1. Association group . . . . . . . . . . . . . . . . . . . . 7
4.2. Optional TLVs . . . . . . . . . . . . . . . . . . . . . . 6 4.2. Mandatory TLV . . . . . . . . . . . . . . . . . . . . . . 7
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 4.3. Optional TLVs . . . . . . . . . . . . . . . . . . . . . . 9
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 4.4. Disjointness objective functions . . . . . . . . . . . . 9
6.1. Association object Type Indicators . . . . . . . . . . . 8 4.5. P-flag considerations . . . . . . . . . . . . . . . . . . 9
7. Manageability Considerations . . . . . . . . . . . . . . . . 9 4.6. Disjointness computation issues . . . . . . . . . . . . . 12
7.1. Control of Function and Policy . . . . . . . . . . . . . 9 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13
7.2. Information and Data Models . . . . . . . . . . . . . . . 9 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 9 6.1. Association object Type Indicators . . . . . . . . . . . 13
7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 9 6.2. PCEP TLVs . . . . . . . . . . . . . . . . . . . . . . . . 14
7.5. Requirements On Other Protocols . . . . . . . . . . . . . 9 6.3. NO-PATH-VECTOR bit Flags . . . . . . . . . . . . . . . . 14
7.6. Impact On Network Operations . . . . . . . . . . . . . . 9 6.4. PCEP-ERROR codes . . . . . . . . . . . . . . . . . . . . 14
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 7. Manageability Considerations . . . . . . . . . . . . . . . . 15
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.1. Control of Function and Policy . . . . . . . . . . . . . 15
9.1. Normative References . . . . . . . . . . . . . . . . . . 9 7.2. Information and Data Models . . . . . . . . . . . . . . . 15
9.2. Informative References . . . . . . . . . . . . . . . . . 10 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 15
7.5. Requirements On Other Protocols . . . . . . . . . . . . . 15
7.6. Impact On Network Operations . . . . . . . . . . . . . . 15
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.1. Normative References . . . . . . . . . . . . . . . . . . 16
9.2. Informative References . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
[RFC5440] describes the Path Computation Element communication
Protocol (PCEP) which enables the communication between a Path
Computation Client (PCC) and a Path Control Element (PCE), or between
two PCEs based on the PCE architecture [RFC4655].
PCEP Extensions for Stateful PCE Model [I-D.ietf-pce-stateful-pce]
describes a set of extensions to PCEP to enable active control of
MPLS-TE and GMPLS tunnels. [I-D.ietf-pce-pce-initiated-lsp]
describes the setup and teardown of PCE-initiated LSPs under the
active stateful PCE model, without the need for local 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 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
[I-D.ietf-pce-stateful-pce] or a stateless PCE [RFC5440]. [I-D.ietf-pce-stateful-pce] 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. 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
receives LSP states belonging to the same disjoint-group from some
PCCs, the PCE should ensure that the LSPs within the group are
disjoint from each other.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Terminology 2. Terminology
The following terminology is used in this document. The following terminology is used in this document.
skipping to change at page 4, line 24 skipping to change at page 5, line 24
| +------+ | | +------+ | | +------+ | | +------+ |
| | | | | | | |
| | | | | | | |
| +------+ | | +------+ | | +------+ | | +------+ |
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4
| +------+ ***********************> +------+ | | +------+ ***********************> +------+ |
| | | |
\ / \ /
\_________________________________________/ \_________________________________________/
Figure 1 - Disjoint paths with different head-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
request the synchronization of a set of dependent or independent path
computation requests. As per [RFC5440], the SVEC object is optional
and may be carried within a PCReq message. It uses the Request-ID-
number carried within the respective RP (Request Parameters) object
to identify the computation request that should be syncronized.
The PCEP extension for stateful PCE [I-D.ietf-pce-stateful-pce]
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
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 local policy. customization parameters according to the configured local policy.
As mentioned previously, the extension described in
The PCC can use the generic mechanism as per [I-D.ietf-pce-association-group] is well suited to associated a set
[I-D.ietf-pce-association-group] to associate a set of LSPs with a of LSPs with a particular disjoint-group.
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. 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
V {Disjoint-group Y} V {Disjoint-group Y}
+-----+ ----------------> +-----+ +-----+ ----------------> +-----+
_ _ _ _ _ _| PCE | | | PCE | _ _ _ _ _ _| PCE | | | PCE |
| +-----+ | ----------> +-----+ | +-----+ | ----------> +-----+
| PCEInitiate | | PCReq | PCInitiate | | PCReq
|{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 ) +----+ ( )
{Monitor LSP} '--( )--' '--( )--' {Monitor LSP} '--( )--' '--( )--'
( ) ( ) ( ) ( )
'-----' '-----' '-----' '-----'
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 PCUpdate or PCInit may have two Using the disjoint-group within a PCUpd or PCInitiate may have two
purposes: purposes:
o Information: in case the PCE is performing the path computation, o Information: in case the PCE is performing the path computation,
it may communicate to the PCC the locally used configured it may communicate to the PCC the locally used parameters in the
parameters in the attribute-list of the LSP. attribute-list of the LSP.
o Configuration: in case the PCC is performing the path computation o Configuration: in case the PCE is updating the diversity
but the PCE (without computation engine) is managing the LSP parameters.
parameters, the PCE should add the disjoint-group within the
PCUpdate message to communicate to the PCC the disjointness
constraint.
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 four disjoint group a set of LSPs belongs to. This document defines a new
new Association types, based on the generic Association object - Association type, based on the generic Association object -
o Association type = TBD1 ("Disjointness Association Type") for link
disjoint group.
o Association type = TBD2 ("Disjointness Association Type") for node
disjoint group.
o Association type = TBD3 ("Disjointness Association Type") for srlg
disjoint group.
o Association type = TBD4 ("Disjointness Association Type") for o Association type = TBD1 ("Disjointness Association Type").
node+srlg disjoint 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: usually PCEs are able to compute a pair of disjoint disjointness. If a PCE receives more LSPs in the group than it can
paths. If a PCE receives more LSPs in the group than it can handle handle in its computation algorithm, it SHOULD apply disjointness
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
disjointness, etc. 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 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. Optional TLVs 4.2. Mandatory TLV
The disjoint group MAY carry some optional TLVs including but not
limited to:
o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor The disjoint group MUST carry the following TLV:
specific behavioral information, described in [RFC7150].
o DISJOINTNESS-INFORMATION-TLV: Used to communicate some o DISJOINTNESS-INFORMATION-TLV: Used to communicate some
disjointness specific parameters. disjointness specific parameters.
The DISJOINTNESS-INFORMATION-TLV is shown in the following figure: The DISJOINTNESS-INFORMATION-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 = [TBD5] | Length | | Type = [TBD2] | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |P|S| | Flags |T|P|S|N|L|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags: Flags:
* P: shortest path, this particular LSP in the group SHOULD use * L (Link diverse) bit: when set, this indicates that the
the shortest constrained path and others MAY use a non shortest computed paths within the disjoint group MUST NOT have any link
constrained path. The shortest constrained path is the in common.
shortest path (from the requested metric point of view) that
fills all the LSP constraints without taking into account the
disjointness constraint. This means that an LSP with P flag
set should be placed as if the disjointness constraint has not
been configured, while the other LSP in the association with P
flag unset should be placed by taking into account the
disjointness constraint. Setting P flag changes the
relationship between LSPs to a unidirectional relationship (LSP
1 with P=0 depends of LSP 2 with P=1, but LSP 2 with P=1 does
not depend of LSP 1 with P=0).
* S: strict disjointness, when set if disjoint paths cannot be * N (Node diverse) bit: when set, this indicates that the
found, PCE should return no path for LSPs that could not be be computed paths within the disjoint group MUST NOT have any node
disjoint. When unset, PCE is allowed to relax disjointness by in common.
using either using a lower disjoint type (link instead of node)
or relaxing disjointness constraint at all. * S (SRLG diverse) bit: when set, this indicates that the
computed paths within the disjoint group MUST NOT share any
SRLG (Shared Risk Link Group).
* P (Shortest path) bit: when set, this indicates that the
computed path of the LSP SHOULD satisfies all constraints and
objective functions first without considering the diversity
constraint. This means that an LSP with P flag set should be
placed as if the disjointness constraint has not been
configured, while the other LSP in the association with P flag
unset should be placed by taking into account the disjointness
constraint. Setting P flag changes the relationship between
LSPs to a unidirectional relationship (LSP 1 with P=0 depends
of LSP 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1
with P=0).
* T (Strict disjointness) bit: when set, if disjoint paths cannot
be found, PCE should return no path for LSPs that could not be
be disjoint. When unset, PCE is allowed to relax disjointness
by using either applying a requested objective function or any
other behavior if no objective function is requested (e.g.:
using a lower disjoint type (link instead of node) or relaxing
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 use its locally configured parameters or INFORMATION-TLV, it SHOULD reply with a PCErr Error-type=6 (Mandatory
use the following default parameters: Object missing) and Error-value=TBD7.
o Strict disjointness is assumed. 4.3. Optional TLVs
o LSP can use a non shortest-path. The disjoint group MAY carry some optional TLVs including but not
limited to:
If a PCEP speaker receives two LSPs with the same disjoint-group but o VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor
with a different S flag value, it SHOULD apply a strict disjointness specific behavioral information, described in [RFC7150].
path computation for this disjoint-group (it considers S flag set for
all LSPs). 4.4. Disjointness objective functions
An objective function MAY be applied to the disjointness 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 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 OF-List TLV
when included in the Association Group, and the receiver MUST
consider the first OF-code only and ignore others if included. The
OF-Code to maximize diversity are specified in
([I-D.dhody-pce-of-diverse]).
4.5. P-flag considerations
As mentioned in Section 4.2, the P-flag (when set) indicates that the
computed path of the LSP SHOULD satisfies all constraints and
objective functions first without considering the diversity
constraint. This could be required in some primary/backup scenarios
where the primary path should use the more optimal path available
(taking into account the other constraints). When disjointness is
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
(for instance the primary path) while other paths are allowed to be
longer (compared to a similar path without the disjointness
constraint). Without such a hint, the disjointness algorithm may set
a path for all LSPs that may not completely fulfil the customer
requirement.
_________________________________________
/ \
/ +------+ \
| | PCE | |
| +------+ |
| |
| |
| +------+ 10 +------+ |
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2
| +------+ | | +------+ |
| | | |
| | | |
| +------+ | | +------+ |
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4
| +------+ \ | / +------+ |
| \ | 10 / |
\ +-- R5 --------- R6 /
\_________________________________________/
Figure 3
In the figure above, a customer has two dual homed sites (CE1/CE3 and
CE2/CE4). This customer wants two disjoint paths between the two
sites. Due to physical meshings, the customer wants to use CE1 and
CE2 as primary (for instance CE3 and CE4 are hosted in a remote site
for redundancy purpose compared the customer hosts).
Without any hint (constraint) provided, the PCE may compute the two
disjoint LSPs as a batch leading to PE1->PE2 using a path
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
to PE2 does not use the best optimal path available in the network
(RTD may be higher): the customer requirement is thus not completely
fulfilled.
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
not requested.
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
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.
Driving the PCE disjointness computation may be done in other ways by
for instance setting a metric boundary reflecting an RTD boundary.
Other constraints may also be used.
The P-Flag allows a simple expression that the disjointness
constraint should not make the LSP worst.
Any constraint added to a path disjointness computation may reduce
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
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
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
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
constraint, the user should be aware that there is less chance to
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 | |
| +------+ |
| |
| |
| +------+ 10 +------+ |
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2
| +------+ | \ | +------+ |
| | \2 | |
| | \ | |
| +------+ | \ | +------+ |
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4
| +------+ +------+ |
| |
\ /
\_________________________________________/
Figure 4
In the figure above, we still consider the same previous
requirements, so PE1->PE2 LSP should be optimized (P-flag set) while
PE3->PE4 should be disjoint and may use a longer path.
Regarding PE1->PE2, there are two paths that are satisfying the
constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and
PE1->R1->R3->R4->R2->PE2 (path 2). An implementation may choose one
of the paths or even use boths (using both may happen in case Segment
Routing TE is used, allowing ECMP).
If the implementation elects only one path, there is a chance that
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
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
implementation MAY select a path that allows disjointness.
4.6. Disjointness computation issues
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.
When the T-bit is set (Strict disjointness requested), if
disjointness cannot be found for one or more LSPs, the PCE SHOULD
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
([RFC5440]) in the LSP Object.
This document adds new bits in the NO-PATH-VECTOR TLV:
bit "TBD3": when set, the PCE indicates that it could not find a
disjoint path for this LSP.
bit "TBD4": when set, the PCE indicates that it does not support
the requested disjointness computation.
The NO-PATH-VECTOR TLV MAY also be used when T-bit is unset and when
the PCE cannot provide a path for an LSP in the disjoint group.
When the T-bit is unset, the PCE is allowed to relax the constraint
if it cannot be satisfied. This document introduces a new RELAXED-
CONSTRAINT-TLV that MAY be used by a PCE to indicate that some
constraints have been relaxed.
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
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = [TBD5] | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Object-Class#1| OT#1 |Res|P|I| Object Length (bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// (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
of T,S,N,L flags in the DISJOINTNESS-INFORMATION-TLV. If a PCE
receives PCRpt messages for LSPs belonging to the same disjoint group
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
with Error-type 5 (Policy Violation) and Error-Value TBD6
(Inconsistent parameters in DISJOINTNESS-INFORMATION TLV) to all 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 [I-D.ietf-pce-stateful-pce] 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 Link Disjoint-group TBD1 Disjoint-group
Association Type [This I.D.] Association Type [This I.D.]
TBD2 Node Disjoint-group
Association Type [This I.D.]
TBD3 SRLG Disjoint-group
Association Type [This I.D.]
TBD4 Node+SRLG Disjoint-group
Association Type [This I.D.]
This document defines the following new PCEP TLV: 6.2. PCEP TLVs
Value Name Reference This document defines the following new PCEP TLVs:
TBD5 DISJOINTNESS-INFORMATION-TLV [This I.D.] Value Name Reference
TBD2 DISJOINTNESS-INFORMATION-TLV [This I.D.]
TBD5 RELAXED-CONSTRAINT-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-INFORMATION TLV defined in this document, numbering them
from 0 as the least significant bit. 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-INFORMATION-TLV flag space:
Bit Number Name Reference Bit Number Name Reference
0 Strict disjointness [This I.D.] 0 Link disjointness [This I.D.]
1 Shortest-path [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. NO-PATH-VECTOR bit Flags
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
Element Protocol (PCEP) Numbers" registry:
Bit Number Name Reference
TBD3 Disjoint path not found [This I.D.]
TBD4 Requested disjointness [This I.D.]
computation not supported
6.4. PCEP-ERROR codes
IANA is requested to allocate new Error Types and Error Values within
the " PCEP-ERROR Object Error Types and Values" sub-registry of the
PCEP Numbers registry, as follows:
Error-Type Meaning
5 Policy violation
Error-value=TBD6: Inconsistent parameters
in DISJOINTNESS-INFORMATION TLV
6 Mandatory Object missing
Error-value=TBD7: DISJOINTNESS-INFORMATION 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 9, line 43 skipping to change at page 15, line 51
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 this document do not have any impact on network
operations in addition to those already listed in [RFC5440]. operations in addition to those already listed in [RFC5440].
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. document borrow some of the text from it. Authors would also like to
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,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[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,
<http://www.rfc-editor.org/info/rfc4655>. <http://www.rfc-editor.org/info/rfc4655>.
[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,
<http://www.rfc-editor.org/info/rfc5440>. <http://www.rfc-editor.org/info/rfc5440>.
[RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of
Objective Functions in the Path Computation Element
Communication Protocol (PCEP)", RFC 5541,
DOI 10.17487/RFC5541, June 2009,
<http://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.,
Zhang, X., and Y. Tanaka, "PCEP Extensions for Zhang, X., and Y. Tanaka, "PCEP Extensions for
Establishing Relationships Between Sets of LSPs", draft- Establishing Relationships Between Sets of LSPs", draft-
ietf-pce-association-group-02 (work in progress), January ietf-pce-association-group-02 (work in progress), January
2017. 2017.
[I-D.ietf-pce-stateful-pce] [I-D.ietf-pce-stateful-pce]
Crabbe, E., Minei, I., Medved, J., and R. Varga, "PCEP Crabbe, E., Minei, I., Medved, J., and R. Varga, "PCEP
Extensions for Stateful PCE", draft-ietf-pce-stateful- Extensions for Stateful PCE", draft-ietf-pce-stateful-
pce-18 (work in progress), December 2016. pce-18 (work in progress), December 2016.
[I-D.dhody-pce-of-diverse]
Dhody, D. and Q. Wu, "PCE support for Maximizing
Diversity", draft-dhody-pce-of-diverse-06 (work in
progress), October 2016.
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,
<http://www.rfc-editor.org/info/rfc7150>. <http://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,
<http://www.rfc-editor.org/info/rfc7420>. <http://www.rfc-editor.org/info/rfc7420>.
[I-D.ietf-pce-pce-initiated-lsp] [I-D.ietf-pce-pce-initiated-lsp]
Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "PCEP Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "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-07 (work in Model", draft-ietf-pce-pce-initiated-lsp-09 (work in
progress), July 2016. progress), March 2017.
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
EMail: msiva@cisco.com EMail: msiva@cisco.com
Colby Barth Colby Barth
Juniper Networks Juniper Networks
skipping to change at line 484 skipping to change at page 17, line 36
2000 Innovation Drive 2000 Innovation Drive
Kanata, Ontario K2K 3E8 Kanata, Ontario K2K 3E8
Canada Canada
EMail: msiva@cisco.com EMail: msiva@cisco.com
Colby Barth Colby Barth
Juniper Networks Juniper Networks
EMail: cbarth@juniper.net EMail: cbarth@juniper.net
Dhruv Dhody
Huawei
EMail: dhruv.dhody@huawei.com
 End of changes. 41 change blocks. 
111 lines changed or deleted 380 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/