rfc8800xml2.original.xml   rfc8800.xml 
<?xml version="1.0" encoding="windows-1252"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902"
<?rfc tocdepth="4"?> submissionType="IETF" category="std" consensus="true"
<?rfc tocindent="yes"?> docName="draft-ietf-pce-association-diversity-14" number="8800"
<?rfc symrefs="yes" ?> obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4"
<?rfc sortrefs="no"?> symRefs="true" sortRefs="true" version="3">
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc compact="yes" ?>
<?rfc iprnotified="Yes" ?>
<?rfc strict="no" ?>
<rfc ipr="trust200902" category="std" docName="draft-ietf-pce-association-divers
ity-14" obsoletes="" updates="" submissionType="IETF" xml:lang="en">
<front> <front>
<title abbrev="Diversity-Assoc">Path Computation Element Communication <title abbrev="PCEP Extension for LSP Diversity Constraint Signaling">Path
Protocol (PCEP) Extension for LSP Diversity Constraint Signaling </title> Computation Element Communication Protocol (PCEP) Extension for Label
<author initials="S" surname="Litkowski" fullname="Stephane Litkowski"> Switched Path (LSP) Diversity Constraint Signaling </title>
<seriesInfo name="RFC" value="8800"/>
<author initials="S" surname="Litkowski" fullname="Stephane Litkowski">
<organization>Cisco Systems, Inc.</organization> <organization>Cisco Systems, Inc.</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city/> <city/>
<region/> <region/>
<code/> <code/>
<country/> <country/>
</postal> </postal>
<email>slitkows.ietf@gmail.com</email> <email>slitkows.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author initials="S" surname="Sivabalan" fullname="Siva Sivabalan"> <author initials="S" surname="Sivabalan" fullname="Siva Sivabalan">
<organization>Cisco Systems, Inc.</organization> <organization>Ciena Corporation</organization>
<address> <address>
<postal> <postal/>
<street>2000 Innovation Drive</street> <email>msiva282@gmail.com</email>
<city>Kanata</city>
<region>Ontario</region>
<code>K2K 3E8</code>
<country>Canada</country>
</postal>
<email>msiva@cisco.com</email>
</address> </address>
</author> </author>
<author initials="C" surname="Barth" fullname="Colby Barth"> <author initials="C" surname="Barth" fullname="Colby Barth">
<organization>Juniper Networks</organization> <organization>Juniper Networks</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city/> <city/>
<region/> <region/>
<code/> <code/>
<country/> <country/>
</postal> </postal>
<email>cbarth@juniper.net</email> <email>cbarth@juniper.net</email>
skipping to change at line 57 skipping to change at line 50
<postal> <postal>
<street/> <street/>
<city/> <city/>
<region/> <region/>
<code/> <code/>
<country/> <country/>
</postal> </postal>
<email>cbarth@juniper.net</email> <email>cbarth@juniper.net</email>
</address> </address>
</author> </author>
<author initials="M" surname="Negi" fullname="Mahendra Singh Negi"> <author initials="M" surname="Negi" fullname="Mahendra Singh Negi">
<organization>Huawei Technologies</organization> <organization>RtBrick India</organization>
<address> <address>
<postal> <postal>
<street>Divyashree Techno Park, Whitefield</street> <street>N-17L, Floor-1, 18th Cross Rd, HSR Layout Sector-3</street>
<city>Bangalore</city> <city>Bangalore</city>
<region>Karnataka</region> <region>Karnataka</region>
<code>560066</code> <code>560102</code>
<country>India</country> <country>India</country>
</postal> </postal>
<email>mahend.ietf@gmail.com</email> <email>mahend.ietf@gmail.com</email>
</address> </address>
</author> </author>
<date year="2020" month="July"/>
<date year="2020"/>
<area>Routing</area> <area>Routing</area>
<workgroup>PCE Working Group</workgroup> <workgroup>PCE Working Group</workgroup>
<abstract>
<t> <keyword>Disjoint</keyword>
This document introduces a simple mechanism to associate <keyword>Disjointness</keyword>
a group of Label Switched Paths (LSPs) via an extension to the Path Computati <keyword>Association</keyword>
on
Element (PCE) communication Protocol (PCEP) with the purpose of computing div <abstract>
erse (disjointed) paths for those LSPs. <t>
The proposed extension allows a Path Computation Client (PCC) to advertise to This document introduces a simple mechanism to associate a group of Label
a PCE that a particular LSP belongs to a particular disjoint-group, Switched Paths (LSPs) via an extension to the Path Computation Element
thus the PCE knows that the LSPs in the same group need to be disjoint from e Communication Protocol (PCEP) with the purpose of computing diverse
ach other.</t> (disjointed) paths for those LSPs. The proposed extension allows a Path
</abstract> Computation Client (PCC) to advertise to a Path Computation Element (PCE)
that a particular LSP belongs to a particular Disjoint Association Group; thu
s, the PCE
knows that the LSPs in the same group need to be disjoint from each
other.</t>
</abstract>
</front> </front>
<middle> <middle>
<section title="Introduction" toc="default"> <section toc="default" numbered="true">
<t> <name>Introduction</name>
<xref target="RFC5440"/> describes the Path Computation Element communication <t>
Protocol (PCEP) which enables the communication between a Path <xref target="RFC5440" format="default"/> describes the Path Computation
Computation Client (PCC) and a Path Control Element (PCE), or between Element Communication
two PCEs based on the PCE architecture <xref target="RFC4655"/>. Protocol (PCEP), which enables the communication between a Path
</t> Computation Client (PCC) and a Path Control Element (PCE) or between
<t> two PCEs based on the PCE architecture <xref target="RFC4655"
PCEP Extensions for Stateful PCE Model <xref target="RFC8231"/> format="default"/>.
</t>
<t>
The PCEP Extensions for Stateful PCE Model <xref target="RFC8231" format="def
ault"/>
describes a set of extensions to PCEP to enable active control of describes a set of extensions to PCEP to enable active control of
MPLS-TE and GMPLS tunnels. <xref target="RFC8281"/> MPLS-TE and GMPLS tunnels.
<xref target="RFC8281" format="default"/>
describes the setup and teardown of PCE-initiated LSPs under the describes the setup and teardown of PCE-initiated LSPs under the
active stateful PCE model, without the need for local configuration active stateful PCE model, without the need for local configuration
on the PCC, thus allowing for a dynamic network. on the PCC, thus allowing for a dynamic network.
</t> </t>
<t><xref target="I-D.ietf-pce-association-group"/> introduces a generic <t><xref target="RFC8697" format="default"/> introduces a generic
mechanism to create a grouping of LSPs in the context of a PCE which can then mechanism to create a grouping of LSPs in the context of a PCE that can
be used to then be used to
define associations between a set of LSPs and a set of attributes (such define associations between a set of LSPs and a set of attributes (such
as configuration parameters or behaviors) and is equally applicable as configuration parameters or behaviors) and is equally applicable
to the active and passive modes of a stateful PCE <xref target="RFC8231"/> or to the active and passive modes of a stateful PCE <xref target="RFC8231"
a stateless PCE <xref target="RFC5440"/>.</t> format="default"/> or a stateless PCE <xref target="RFC4655"
format="default"/>.</t>
<t>This document specifies a PCEP extension to signal that a set of LSPs in a
particular group should use diverse (disjointed) paths, including the requested
type of diversity.
<xref target="mot"/> and <xref target="app"/> describe the property and use
of a disjoint-group.
A PCC can use this extension to signal to a PCE that a particular LSP belongs
to a particular 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 ea
ch other.
</t>
<section title="Requirements Language" toc="default"> <t>This document specifies a PCEP extension to signal that a set of LSPs
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", in a particular group should use diverse (disjointed) paths, including
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and the requested type of diversity. Sections <xref target="mot"
"OPTIONAL" in this document are to be interpreted as described in BCP format="counter"/> and <xref target="app" format="counter"/> describe
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, the the property and use of a Disjoint Association Group. A PCC can use
y appear in all this extension to signal to a PCE that a particular LSP belongs to a
capitals, as shown here.</t> particular Disjoint Association Group. When a PCE receives LSP states
belonging to the same Disjoint Association Group from some
PCCs, the PCE should ensure that the LSPs within the group are disjoint
from each other.
</t>
<section toc="default" numbered="true">
<name>Requirements Language</name>
<t>
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
to be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section> </section>
</section> </section>
<section toc="default" numbered="true">
<section title="Terminology" toc="default"> <name>Terminology</name>
<t>The following terminology is used in this document.</t> <t>The following terminology is used in this document.</t>
<dl newline="false" spacing="normal" indent="10">
<dt>DAT:</dt>
<dd>Disjoint Association Type</dd>
<dt>DAG:</dt>
<dd>Disjoint Association Group</dd>
<dt>MPLS:</dt>
<dd>Multiprotocol Label Switching</dd>
<dt>OF:</dt>
<dd>Objective Function</dd>
<dt>PCC:</dt>
<dd>Path Computation Client. Any client application requesting a
path computation to be performed by a Path Computation Element.</dd>
<dt>PCE:</dt>
<dd>Path Computation Element. An entity (component, application,
or network node) that is capable of computing a network path or
route based on a network graph and applying computational
constraints.</dd>
<dt>PCEP:</dt>
<dd>Path Computation Element Communication Protocol</dd>
<dt>PLSP-ID:</dt>
<dd>PCEP-specific identifier for the LSP</dd>
<dt>SRLG:</dt>
<dd>Shared Risk Link Group</dd>
</dl>
</section>
<section toc="default" anchor="mot" numbered="true">
<name>Motivation</name>
<t>Path diversity is a very common use case in today's IP/MPLS networks,
especially for layer 2 transport over MPLS.
A customer may request that the operator provide two end-to-end disjoint
paths across the operator's IP/MPLS core.
The customer may use these paths as primary/backup or active/active
configuration.
</t>
<t>Different levels of disjointness may be offered:
</t>
<ul spacing="normal">
<li>Link disjointness: the paths of the associated LSPs should transit
different links (but may use common nodes or different links that may
have some shared fate).</li>
<li>Node disjointness: the paths of the associated LSPs should transit
different nodes (but may use different links that may have some shared
fate).</li>
<li>SRLG disjointness: the paths of the associated LSPs should transit
different links that do not share fate (but may use common transit
nodes).</li>
<li>Node+SRLG disjointness: the paths of the associated LSPs should
transit different links that do not have any common shared fate and
should transit different nodes.</li>
</ul>
<t> <t>
<list style="hanging"> The associated LSPs may originate from the same or different
<!--<t hangText="LSR:">Label Switch Router.</t>--> head end(s) and may terminate at the same or different tail end(s).
<t hangText="DAT:">Disjoint Association Type.</t>
<t hangText="DAG:">Disjoint Association Group.</t>
<t hangText="MPLS:">Multiprotocol Label Switching.</t>
<t hangText="OF:">Objective Function.</t>
<t hangText="PCC:">Path Computation Client. Any client application req
uesting a
path computation to be performed by a Path Computation Element.</t>
<t hangText="PCE:">Path Computation Element. An entity (component, ap
plication,
or network node) that is capable of computing a network path or rout
e based on a network graph and applying computational constraints.</t>
<t hangText="PCEP:">Path Computation Element communication Protocol.</
t>
<t hangText="SRLG:">Shared Risk Link Group.</t>
</list>
</t> </t>
</section> </section>
<section title="Motivation" toc="default" anchor="mot"> <section toc="default" anchor="app" numbered="true">
<t>Path diversity is a very common use case in today's IP/MPLS networks espec <name>Applicability</name>
ially for layer 2 transport over MPLS. <figure>
A customer may request that the operator provide two end-to-end disjoint path <name>Disjoint Paths with Different Head Ends and
s across the operator's IP/MPLS core. Tail Ends</name>
The customer may use these paths as primary/backup or active/active configura <artwork name="" type="" align="left" alt=""><![CDATA[
tion.
</t>
<t>Different levels of disjointness may be offered:
<list style="symbols">
<t>Link disjointness: the paths of the associated LSPs should transit differe
nt
links (but may use common nodes or different links that may have some shar
ed
fate).
</t>
<t>Node disjointness: the paths of the associated LSPs should transit differe
nt
nodes (but may use different links that may have some shared fate).
</t>
<t>SRLG disjointness: the paths of the associated LSPs should transit differe
nt
links that do not share fate (but may use common transit nodes).
</t>
<t>Node+SRLG disjointness: the paths of the associated LSPs should transit
different links that do not have any common shared fate and should transit
different nodes.
</t>
</list>
</t>
<t>
The associated LSPs may originate from the same or from different head-end(s)
and may terminate at the same or different tail-end(s).
</t>
</section>
<section title="Applicability" toc="default" anchor="app">
<figure title="Figure 1 - Disjoint paths with different head-ends and tail-
ends" suppress-title="false">
<artwork>
_________________________________________ _________________________________________
/ \ / \
/ +------+ \ / +------+ \
| | PCE | | | | PCE | |
| +------+ | | +------+ |
| | | |
| ***********************&gt; | | ***********************> |
| +------+ 10 +------+ | | +------+ 10 +------+ |
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2
| +------+ | | +------+ | | +------+ | | +------+ |
| | | | | | | |
| | | | | | | |
| +------+ | | +------+ | | +------+ | | +------+ |
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4 CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4
| +------+ ***********************&gt; +------+ | | +------+ ***********************> +------+ |
| | | |
\ / \ /
\_________________________________________/ \_________________________________________/
</artwork> ]]></artwork>
</figure> </figure>
<t> <t>
In the figure above, let us consider that the customer wants to have two disj In the figure above, let us consider that the customer wants to have two
oint paths, one between CE1 and CE2 and one between CE3 and CE4. From an IP/MPLS disjoint paths, one between CE1 and CE2 and one between CE3 and CE4. From
network point view, in this example, the CEs are connected to different PEs to an IP/MPLS network point view, in this example, the CEs are connected to
maximize their disjointness. different PEs to maximize their disjointness.
When LSPs originate from different head-ends, distributed computation of dive When LSPs originate from different head ends, distributed computation of
rse paths can be difficult, whereas, computation via a centralized PCE ensures p diverse paths can be difficult, whereas computation via a centralized PCE
ath disjointness, correctness and simplicity. ensures path disjointness, correctness, and simplicity.
</t> </t>
<t><xref target="svec" format="default"/> describes the relationship
<t><xref target="svec"/> describes the relationship between the Disjoint Asso between the Disjoint Association Group (DAG) and Synchronization VECtor
ciation Group (DAG) and Synchronization VECtor (SVEC) object.</t> (SVEC) object.</t>
<t>
The PCEP extension for stateful PCE <xref target="RFC8231"/> defined
new PCEP messages - Path Computation Report (PCRpt), Path Computation Update (PC
Upd) and Path Computation Initiate (PCInitiate) <xref target="RFC8281"/>. These
messages use
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 is described in <xref target="I-D.ietf-pce-association
-group"/>
(that is equally applicable to the active and passive modes of a stateful PCE).
</t>
<t> <t>
Using the extension to PCEP defined in this document, the PCC uses the <xref tar The PCEP extension for stateful PCE <xref target="RFC8231" format="default"/>
get="I-D.ietf-pce-association-group"/> extension to indicate that a group of LSP defined new PCEP messages -- Path Computation Report (PCRpt), Path Computation
s are required to be disjoint; such indication should include disjointness param Update (PCUpd), and Path Computation Initiate (PCInitiate) <xref
eters such as the type of disjointness, the disjoint group identifiers, and any target="RFC8281" format="default"/>. These messages use a PLSP-ID in the LSP
customization parameters according to the configured local policy.</t> object for identification.
<t> Moreover, to allow diversity between LSPs originating from different PCCs, the
The management of the disjoint group IDs will be a key point for the operator as generic mechanism to create a grouping of LSPs that is equally applicable to
the Association ID field is limited to 65535. The local configuration of IPv4/I the active and passive modes of a stateful PCE is described in <xref
Pv6 association source, or Global Association Source/Extended Association ID all target="RFC8697" format="default"/>.</t>
ows to overcome this limitation as described in <xref target="I-D.ietf-pce-assoc <t>
iation-group"/>. Using the extension to PCEP defined in this document, the PCC uses the
When a PCC or PCE initiates all the LSPs in a particular disjoint-group, it can extension defined in <xref target="RFC8697" format="default"/> to indicate
set the IPv4/IPv6 association source as one of its own IP address. When disjoint that a group of LSPs are required to be disjoint; such indication should
LSPs are initiated from different head-ends, the association source could be th include disjointness parameters like the type of disjointness, the Disjoint
e PCE address or any other unique value to identify the DAG. Association Group identifiers, and any customization parameters according to the
configured local policy.</t>
<t>
The management of the Disjoint Association Group IDs will be a key point for the
operator
as the Association ID field is limited to 65535. The local configuration of
the IPv4/IPv6 Association Source, or Global Association Source/Extended
Association ID, can overcome this limitation, as described in <xref
target="RFC8697" format="default"/>.
When a PCC or PCE initiates all the LSPs in a particular Disjoint Association Gr
oup, it
can set the IPv4/IPv6 Association Source as one of its own IP address. When
disjoint LSPs are initiated from different head ends, the Association Source
could be the PCE address or any other unique value to identify the DAG.
</t> </t>
<figure>
<t><figure title="Figure 2 - Sample use-cases for carrying disjoint-group over P <name>Sample Use Cases for Carrying Disjoint Association Group over
CEP session" suppress-title="false" align="left" alt="" width="" height=""> PCEP Session</name>
<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" h <artwork name="" type="" align="left" alt=""><![CDATA[
eight=""><![CDATA[
Initiate Disjoint LSPs Initiate Disjoint LSPs
| |
| PCReq/PCRpt | PCReq/PCRpt
V {DAG Y} V {DAG Y}
+-----+ ----------------> +-----+ +-----+ ----------------> +-----+
_ _ _ _ _ _| PCE | | | PCE | _ _ _ _ _ _| PCE | | | PCE |
| +-----+ | ----------> +-----+ | +-----+ | ----------> +-----+
| PCInitiate | | PCReq/PCRpt | PCInitiate | | PCReq/PCRpt
|{DAG X} | | {DAG Y} |{DAG X} | | {DAG Y}
| | | | | |
skipping to change at line 238 skipping to change at line 291
| .--( )--. | |PCC 2|--.--( )--. | .--( )--. | |PCC 2|--.--( )--.
V ( ) | +-----+ ( ) V ( ) | +-----+ ( )
+---+ ( ) | ( ) +---+ ( ) | ( )
|PCC|----( (G)MPLS network ) +-----+ ( (G)MPLS network ) |PCC|----( (G)MPLS network ) +-----+ ( (G)MPLS network )
+---+ ( ) |PCC 1|-----( ) +---+ ( ) |PCC 1|-----( )
{DAG X} ( ) +-----+ ( ) {DAG X} ( ) +-----+ ( )
'--( )--' ( )--' '--( )--' ( )--'
( ) ( ) ( ) ( )
'-----' '-----' '-----' '-----'
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
]]></artwork> ]]></artwork>
</figure></t> </figure>
<t>Using the disjoint-group within a PCEP messages is used for:
<list style="symbols">
<t>Configuration: Used to communicate the configured disjoint requirement to
a PCEP peer.</t>
<t>Status: Used to communicate the status of the computed disjointness.</t>
</list>
</t>
</section>
<section title="Protocol Extension" toc="default"> <t>The Disjoint Association Group within a PCEP messages is used for:
<section title="Association Group" anchor="encoding" toc="default"> </t>
<t>As per <xref target="I-D.ietf-pce-association-group"/>, LSPs <ul spacing="normal">
<li>Configuration: Used to communicate the configured disjoint
requirement to a PCEP peer.</li>
<li>Status: Used to communicate the status of the computed
disjointness.</li>
</ul>
</section>
<section toc="default" numbered="true">
<name>Protocol Extension</name>
<section anchor="encoding" toc="default" numbered="true">
<name>Association Group</name>
<t>As per <xref target="RFC8697" format="default"/>, LSPs
are associated with other LSPs with which they interact by adding are associated with other LSPs with which they interact by adding
them to a common association group. As described in <xref target="I-D.ietf- them to a common association group. As described in <xref
pce-association-group"/> the association group is uniquely identified by the com target="RFC8697" format="default"/>, the association group is uniquely
bination of these fields in the ASSOCIATION object: Association Type, Associatio identified by the combination of the following fields in the ASSOCIATION
n ID, Association Source, and (if present) Global Association Source or Extended object: Association Type, Association ID, Association Source, and (if
Association ID.</t> present) Global Association Source or Extended Association ID.</t>
<t>This document defines a new Association type, based on the generic Assoc <t>This document defines a new Association type, called "Disjoint
iation object: Association" (2), based on the generic ASSOCIATION object. This new
<list style="symbols"> Association type is also called "DAT", for "Disjoint Association
<t>Association type = TBD1 Disjoint Association Type (DAT).</t> Type".</t>
</list>
</t>
<t><xref target="I-D.ietf-pce-association-group"/> specifies the mechanism
for the capability
advertisement of the association types supported by a PCEP speaker by definin
g a ASSOC-Type-List TLV to be carried within an OPEN object. This capability exc
hange for the DAT (TBD1) MUST be done before using the disjointness association.
Thus the PCEP speaker MUST include the DAT in the ASSOC-Type-List TLV and MUST
receive the same from the PCEP peer before using the Disjoint Association Group
(DAG) in PCEP messages.</t>
<t>This association type is considered to be both dynamic and operator-config <t><xref target="RFC8697" format="default"/> specifies the mechanism
ured in nature. As per <xref target="I-D.ietf-pce-association-group"/>, the asso for the capability advertisement of the Association types supported by
ciation group could be created by the operator manually on the PCEP peers and th a PCEP speaker by
e LSPs belonging to this associations is conveyed via PCEP messages to the PCEP defining an ASSOC-Type-List TLV to be carried within an OPEN
peer; or the association group could be created dynamically by the PCEP speaker object. This capability exchange for the DAT (2) <bcp14>MUST</bcp14> be d
and both the association group information and the LSPs belonging to the associa one
tion group is conveyed to the PCEP peer. The Operator-configured before using the disjoint association. Thus, the PCEP speaker <bcp14>MUST
Association Range MUST be set for this association-type to mark a range of as </bcp14>
sociation identifiers that include the DAT in the ASSOC-Type-List TLV and <bcp14>MUST</bcp14> receiv
e the same
from the PCEP peer before using the Disjoint Association Group (DAG)
in PCEP messages.</t>
<t>This Association type is considered to be both dynamic and
operator-configured in nature. As per <xref target="RFC8697"
format="default"/>, the association group could be manually created by th
e
operator on the PCEP peers, and the LSPs belonging to this
association are conveyed via PCEP messages to the PCEP peer; alternately,
the
association group could be created dynamically by the PCEP speaker, and
both the association group information and the LSPs belonging to the
association group are conveyed to the PCEP peer. The Operator-configured
Association Range <bcp14>MUST</bcp14> be set for this association-type to mar
k a range of
Association Identifiers that
are used for operator-configured associations to avoid any are used for operator-configured associations to avoid any
association identifier clash within the scope of the association Association Identifier clash within the scope of the Association
source. (Refer to <xref target="I-D.ietf-pce-association-group"/>.)</t> Source. (Refer to <xref target="RFC8697" format="default"/>.)</t>
<t>A Disjoint Association Group can have two or more LSPs, but a PCE may
<t>A disjoint group can have two or more LSPs, but a PCE may be limited in th be
e number of LSPs it can take into account when computing disjointness. limited in the number of LSPs it can take into account when computing
If a PCE receives more LSPs in the group than it can handle in its computatio disjointness.
n algorithm, it SHOULD apply disjointness computation to only a subset of LSPs i If a PCE receives more LSPs in the group than it can handle in its
n the group. The subset of disjoint LSPs will be decided by PCE as a local polic computation algorithm, it <bcp14>SHOULD</bcp14> apply disjointness comput
y. Local polices MAY define the computational behavior for the other LSPs in the ation to
group. For example, the PCE may provide no path, a shortest path, or a constra only a subset of LSPs in the group. The subset of disjoint LSPs will
ined path based on relaxing disjointness, etc. The disjoint status of the comput be decided by PCE as a local policy. Local polices <bcp14>MAY</bcp14> def
ed path is informed to the PCC via DISJOINTNESS-STATUS-TLV (see <xref target="tl ine the
vs"/>).</t> computational behavior 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 disjointness, etc. The disjoint status of the
computed path is informed to the PCC via the DISJOINTNESS-STATUS TLV (see
<xref target="tlvs" format="default"/>).</t>
<t>There are different types of disjointness identified by the flags
(T, S, N, and L) in the DISJOINTNESS-CONFIGURATION TLV (see <xref
target="tlvs" format="default"/>). All LSPs in a particular Disjoint
Association Group <bcp14>MUST</bcp14> use the same combination of T, S, N
, and L flags in the
DISJOINTNESS-CONFIGURATION TLV. If a PCEP peer receives a PCEP
message for LSPs belonging to the same Disjoint Association Group but hav
ing an
inconsistent combination of T, S, N, and L flags, the PCEP peer <bcp14>MU
ST NOT</bcp14>
add the LSPs to the Disjoint Association Group and <bcp14>MUST</bcp14> re
ply with a PCErr with
Error-Type 26 (Association Error) and Error-value 6 (Association
information mismatch).</t>
<t>There are differet types of disjointness identified by the flags (T, S, N, <t>A particular LSP <bcp14>MAY</bcp14> be associated to multiple Disjoint
L) in the DISJOINTNESS-CONFIGURATION-TLV (see <xref target="tlvs"/>). All LSPs Association Groups, but in that case, the PCE <bcp14>SHOULD</bcp14> try to
in a particular disjoint group MUST use the same combination of T, S, N, L flags consider all the Disjoint Association Groups during path computation, if
in the DISJOINTNESS-CONFIGURATION-TLV. If a PCEP peer receives a PCEP messages possible. Otherwise, a local policy <bcp14>MAY</bcp14> define the
for LSPs belonging to the same disjoint group but having an inconsistent combin computational behavior.
ation of T, S, N, L flags, the PCEP peer MUST NOT add the LSPs to the disjoint g
roup and MUST reply with a PCErr with Error-type 26 (Association Error) and Erro
r-Value 6 (Association information mismatch).</t>
<!--<t>Associating a particular LSP to multiple disjoint groups is authorize If a PCE does not support such a path computation, it <bcp14>MUST NOT</bcp14>
d from a protocol perspective, however there is no assurance that the PCE will b add the LSP into the association group and <bcp14>MUST</bcp14> return a PCErr wi
e able to compute properly the multi-disjointness constraint.</t>--> th Error-Type 26
(Association Error) and Error-value 7 (Cannot join the association group).</t>
</section>
<section anchor="tlvs" toc="default" numbered="true">
<name>Disjoint TLVs</name>
<t>A particular LSP MAY be associated to the multiple disjoint groups, but i <t>
n that case, the PCE SHOULD try to consider all the disjoint groups during path The Disjoint Association Group (ASSOCIATION object with Association type =
computation if possible. Otherwise a local policy MAY define the computational b 2 for DAT) <bcp14>MUST</bcp14> carry the following TLV:
ehavior. If a PCE does not support such a path computation it MUST NOT add the L </t>
SP into the association group and return a PCErr with Error-type 26 (Association <ul spacing="normal">
Error) and Error-Value 7 (Cannot join the association group).</t> <li>DISJOINTNESS-CONFIGURATION TLV: Used to communicate some
disjointness configuration parameters. This is applicable for all
PCEP messages that include DAG.</li>
</ul>
<t>
In addition, the Disjoint Association Group (ASSOCIATION object with Associa
tion type
= 2 for DAT) <bcp14>MAY</bcp14> carry the following TLVs:
</t>
<ul spacing="normal">
<li>DISJOINTNESS-STATUS TLV: Used to communicate the status of the
computed disjointness. This is applicable for messages from a PCE to
a PCC only (i.e., PCUpd, PCInitiate, or PCRep messages).</li>
</section> <li>VENDOR-INFORMATION-TLV: Used to communicate arbitrary
<section title="Disjoint TLVs" anchor="tlvs" toc="default"> vendor-specific behavioral information, described in <xref
<t> target="RFC7470" format="default"/>.</li>
The disjoint group (ASSOCIATION object with Association type = TBD1 for DAT) <li>OF-List TLV: Used to communicate the disjointness objective
MUST carry the following TLV: function. See <xref target="Disjointness-objective-functions"
<list style="symbols"> format="default"/>.</li>
<t>DISJOINTNESS-CONFIGURATION-TLV: Used to communicate some disjointness con </ul>
figuration parameters. This is applicable for all PCEP message that includes DAG <t>
.</t> The DISJOINTNESS-CONFIGURATION TLV is shown in the following figure:
</list> </t>
</t> <figure>
<t> <name>DISJOINTNESS-CONFIGURATION TLV</name>
In addition, the disjoint group (ASSOCIATION object with Association type = <artwork name="" type="" align="left" alt=""><![CDATA[
TBD1 for DAT) MAY carry the following TLVs:
<list style="symbols">
<t>DISJOINTNESS-STATUS-TLV: Used to communicate the status of the computed d
isjointness. This is applicable for messages from a PCE to a PCC only (i.e. PCUp
d, PCInitiate or PCRep message).</t>
<t>VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor-specific behav
ioral
information, described in <xref target="RFC7470"/>.</t>
<t>OF-List TLV: Used to communicate the disjointness objective function. See
<xref target="Disjointness-objective-functions"/>.</t>
</list>
</t>
<t>
The DISJOINTNESS-CONFIGURATION-TLV is shown in the following figure:
<figure>
<artwork>
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 = 46 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |T|P|S|N|L| | Flags |T|P|S|N|L|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork> ]]></artwork>
</figure></t> </figure>
<t> Type: TBD2. </t>
<t> Length: Fixed value of 4 bytes.
<list style="none"> <dl newline="false" spacing="normal">
<t>Flags: <dt>Type:</dt>
<list style="symbols"> <dd>46</dd>
<t>L (Link diverse) bit: when set, this indicates that the <dt> Length:</dt>
computed paths within the disjoint group MUST NOT have any link in comm <dd>Fixed value of 4 bytes.</dd>
on.</t>
<t>N (Node diverse) bit: when set, this indicates that the
computed paths within the disjoint group MUST NOT have any node in comm
on.</t>
<t>S (SRLG diverse) bit: when set, this indicates that the
computed paths within the disjoint group MUST NOT share any SRLG (Share
d Risk Link
Group).</t>
<t>P (Shortest path) bit: when set, this indicates that the computed pat
h of the
LSP SHOULD satisfy all the constraints and objective functions first without con
sidering
the diversity constraint, this means that all of the LSPs with P flag set in the
association
group are computed first as if the disjointness constraint has not been configur
ed, and then
with those LSPs fixed, the other LSPs with P flag unset in the association group
are computed
by taking into account the disjointness constraint. The role of P flag is furthe
r described with
examples in <xref target="P-Flag-Consideration"/>.</t>
<t>T (Strict disjointness) bit: when set, if disjoint paths cannot be fo
und,
PCE MUST return no path for LSPs that could not be be disjoint. When unset,
the PCE is allowed to relax disjointness by <xref target="P-Flag-Consideration"/
>
either applying a requested objective function (cf. <xref target="Disjointness-o
bjective-functions"/> below)
or using the local policy if no objective function is requested (e.g. using a lo
wer disjoint type
(link instead of node) or fully relaxing disjointness constraint). Further see <
xref target="dis"/> for details.</t>
<t>Unassigned bits are considered reserved. They MUST be set to 0 on tra <dt>Flags:</dt>
nsmission and MUST be ignored on receipt.</t>
</list>
</t>
</list>
</t>
<t>
If a PCEP speaker receives a disjoint-group (ASSOCIATION object with Assoc
iation type = TBD1 for DAT) without DISJOINTNESS-CONFIGURATION-TLV, it SHOULD re
ply with a PCErr Error-type=6 (Mandatory Object missing) and Error-value=TBD10 (
DISJOINTNESS-CONFIGURATION-TLV missing).
</t>
<t>The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS-CO
NFIGURATION-TLV with a different type TBD3 (in the TLV). The L, N, and S flags a
re set if the respective disjointness criterion was requested and the computed p
aths meet it. The P flag indicates that the computed path is the shortest path (
computed first without taking disjointness constraints into consideration, but c
onsidering other constraints).</t>
<t>The T flag has no meaning in the DISJOINTNESS-STATUS-TLV and MUST NOT b
e set while sending and MUST be ignored on receipt.
<!--<figure>
<artwork>
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|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure> -->
</t>
<t>Any document defining a new flag for the DISJOINTNESS-CONFIGURATION-TLV au
tomatically defines a new flag with the same name and in the same location in DI
SJOINTNESS-STATUS-TLV; the semantics of the flag in DISJOINTNESS-STATUS-TLV MUST
be specified in the document that specifies the flag in DISJOINTNESS-CONFIGURAT
ION-TLV.
</t>
</section>
<section anchor="Disjointness-objective-functions" title="Disjointness Obj
ective Functions">
<t>
An objective function (OF) MAY be applied to the disjointness computation
to drive the PCE computation behavior. In this case, the OF-List TLV
(defined in (<xref target="RFC5541"/>) is used as an optional TLV in the Asso
ciation
Group Object. Whereas the PCEP OF-List TLV allows multiple OF-codes inside th
e
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.
</t>
<t>
To minimize the common shared resources (Node, Link or SRLG) between
a set of paths during path computation three new OF-codes are
proposed:
</t>
<t>MSL</t>
<t>
<list style="hanging">
<t hangText="* Name:">Minimize the number of shared (common) Links.</t>
<t hangText="* Objective Function Code:">TBD4</t>
<t hangText="* Description:">Find a set of paths such that it passes throu
gh the least number of shared (common) links.
<list style="symbols">
<t>A network comprises a set of N links {Li, (i=1...N)}.</t>
<t>A path P passes through K links {Lpi,(i=1...K)}.</t> <dd><t><br/></t><dl newline="false" spacing="normal">
<dt>L (Link Diverse) bit:</dt><dd>When set, this indicates that
the computed paths within the Disjoint Association Group
<bcp14>MUST NOT</bcp14> have any link in common.</dd>
<dt>N (Node Diverse) bit:</dt><dd>When set, this indicates that
the computed paths within the Disjoint Association Group
<bcp14>MUST NOT</bcp14> have any node in common.</dd>
<dt>S (SRLG Diverse) bit:</dt><dd>When set, this indicates that
the computed paths within the Disjoint Association Group
<bcp14>MUST NOT</bcp14> share any SRLG (Shared Risk Link
Group).</dd>
<dt>P (Shortest Path) bit:</dt><dd>When set, this indicates that t
he
computed path of the LSP <bcp14>SHOULD</bcp14> satisfy all the cons
traints and
objective functions first without considering the diversity
constraint. This means that all of the LSPs with P flag set in
the association group are computed first, as if the disjointness
constraint has not been configured; then, with those LSPs
fixed, the other LSPs with P flag unset in the association group
are computed by taking into account the disjointness
constraint. The role of P flag is further described with
examples in <xref target="P-Flag-Consideration"
format="default"/>.</dd>
<dt>T (Strict Disjointness) bit:</dt><dd>When set, if disjoint
paths cannot be found, the PCE <bcp14>MUST</bcp14> return no
path for LSPs that could not be disjoint. When unset, the PCE is
allowed to relax disjointness by either applying a requested
objective function (cf.&nbsp;<xref
target="Disjointness-objective-functions" format="default"/>)
or using the local policy if no objective function is requested
(e.g., using a lower disjoint type (link instead of node) or
fully relaxing disjointness constraint). See <xref target="dis"
format="default"/> for further details.</dd>
<dt>Unassigned bits:</dt><dd>Unassigned bits are considered reserv
ed. They <bcp14>MUST</bcp14> be set to
0 on transmission and <bcp14>MUST</bcp14> be ignored on receipt.</d
d>
<t>A set of paths {P1...Pm} have L links that are </dl></dd>
common to more than one path {Lci,(i=1...L)}.</t> </dl>
<t>Find a set of paths such that the value of L is minimized.</t> <t>
</list></t> If a PCEP speaker receives a Disjoint Association Group (ASSOCIATION objec
</list> t with
</t> Association type = 2 for DAT) without the DISJOINTNESS-CONFIGURATION TLV,
<t>MSS</t> it <bcp14>SHOULD</bcp14> reply with a PCErr Error-Type 6 (Mandatory Object
<t> missing) and
<list style="hanging"> Error-value 15 (DISJOINTNESS-CONFIGURATION TLV missing).
<t hangText="* Name:">Minimize the number of shared (common) SRLGs.</t> </t>
<t hangText="* Objective Function Code:">TBD5</t> <t>The DISJOINTNESS-STATUS TLV uses the same format as the
<t hangText="* Description:">Find a set of paths such that it passes throu DISJOINTNESS-CONFIGURATION TLV with a different type 47 (in the
gh the least number of shared (common) SRLGs. TLV). The L, N, and S flags are set if the respective disjointness
<list style="symbols"> criterion was requested and the computed paths meet it. The P flag
<t>A network comprises a set of N links {Li, (i=1...N)}.</t> indicates that the computed path is the shortest path (computed first
without taking disjointness constraints into consideration but
considering other constraints).</t>
<t>The T flag has no meaning in the DISJOINTNESS-STATUS TLV and <bcp14>M
UST
NOT</bcp14> be set while sending and <bcp14>MUST</bcp14> be ignored on re
ceipt.
<t>A path P passes through K links {Lpi,(i=1...K)} belonging to unique </t>
M SRLGs {Spi,(i=1..M)}.</t> <t>Any document defining a new flag for the
DISJOINTNESS-CONFIGURATION TLV automatically defines a new flag with
the same name and in the same location in DISJOINTNESS-STATUS TLV; the
semantics of the flag in the DISJOINTNESS-STATUS TLV <bcp14>MUST</bcp14>
be specified in
the document that specifies the flag in the
DISJOINTNESS-CONFIGURATION TLV.
</t>
</section>
<section anchor="Disjointness-objective-functions" numbered="true"
toc="default">
<name>Disjointness Objective Functions</name>
<t>An objective function (OF) <bcp14>MAY</bcp14> be applied to the disjo
intness
computation to drive the PCE computation behavior. In this case, the
OF-List TLV (defined in <xref target="RFC5541" format="default"/>) is
used as an optional TLV in the ASSOCIATION object. Whereas the
PCEP OF-List TLV allows multiple OF-codes inside the TLV, a sender
<bcp14>SHOULD</bcp14> include a single OF-code in the OF-List TLV when inc
luded in the
Association Group, and the receiver <bcp14>MUST</bcp14> consider the firs
t OF-code
only and ignore others if included.</t>
<t>A set of paths {P1...Pm} have L SRLGs that are <t>To minimize the common shared resources (Node, Link, or SRLG)
common to more than one path {Sci,(i=1...L)}.</t> between a set of paths during path computation, three new OF-codes are
defined:</t>
<t>Find a set of paths such that the value of L is minimized.</t> <t>MSL</t>
</list></t> <ul empty="true"><li>
</list> <dl newline="false" spacing="compact">
</t> <dt>Name:</dt>
<t>MSN</t> <dd>Minimize the number of Shared (common) Links.</dd>
<t> <dt>Objective Function Code:</dt>
<list style="hanging"> <dd>15</dd>
<t hangText="* Name:">Minimize the number of shared (common) Nodes.</t> <dt>Description:</dt>
<t hangText="* Objective Function Code:">TBD6</t> <dd>
<t hangText="* Description:">Find a set of paths such that they pass throu <t>Find a set of paths such that it passes through the least
gh the least number of shared (common) nodes. number of shared (common) links.</t>
<list style="symbols"> <ul spacing="compact">
<t>A network comprises a set of N nodes {Ni, (i=1...N)}.</t> <li>A network comprises a set of N links {Li, (i=1...N)}.</li>
<li>A path P passes through K links {Lpi,(i=1...K)}.</li>
<li>A set of paths {P1...Pm} have L links that are
common to more than one path {Lci,(i=1...L)}.</li>
<li>Find a set of paths such that the value of L is
minimized.</li>
</ul>
</dd>
</dl>
</li></ul>
<t>A path P passes through K nodes {Npi,(i=1...K)}.</t> <t>MSS</t>
<ul empty="true"><li>
<dl newline="false" spacing="compact">
<dt>Name:</dt>
<dd>Minimize the number of Shared (common) SRLGs.</dd>
<dt>Objective Function Code:</dt>
<dd>16</dd>
<dt>Description:</dt>
<dd>
<t>Find a set of paths such that it passes through the least
number of shared (common) SRLGs.
</t>
<ul spacing="compact">
<li>A network comprises a set of N links {Li, (i=1...N)}.</li>
<li>A path P passes through K links {Lpi,(i=1...K)} belonging to
unique M SRLGs {Spi,(i=1..M)}.</li>
<li>A set of paths {P1...Pm} have L SRLGs that are
common to more than one path {Sci,(i=1...L)}.</li>
<li>Find a set of paths such that the value of L is
minimized.</li>
</ul>
</dd>
</dl>
</li></ul>
<t>A set of paths {P1...Pm} have L nodes that are <t>MSN</t>
common to more than one path {Nci,(i=1...L)}.</t> <ul empty="true"><li>
<dl newline="false" spacing="compact">
<dt>Name:</dt>
<dd>Minimize the number of Shared (common) Nodes.</dd>
<dt>Objective Function Code:</dt>
<dd>17</dd>
<dt>Description:</dt>
<dd>
<t>Find a set of paths such that they pass through the least
number of shared (common) nodes.
</t>
<ul spacing="compact">
<li>A network comprises a set of N nodes {Ni, (i=1...N)}.</li>
<li>A path P passes through K nodes {Npi,(i=1...K)}.</li>
<li>A set of paths {P1...Pm} have L nodes that are
common to more than one path {Nci,(i=1...L)}.</li>
<li>Find a set of paths such that the value of L is
minimized.</li>
</ul>
</dd>
</dl>
</li></ul>
<t>Find a set of paths such that the value of L is minimized.</t> <t>If the OF-List TLV is included in the ASSOCIATION object,
</list></t> the first OF-code inside the OF object <bcp14>MUST</bcp14> be one of the disj
</list> oint OFs
</t> defined in this document. If this condition is not met, the PCEP speaker
<t>If the OF-list TLV is included in the Association Object, <bcp14>MUST</bcp14> respond with a PCErr message with Error-Type 10 (Receptio
the first OF-code inside the OF Object MUST be one of the disjoint OFs define n of an
d in this document. If this condition is not met, the PCEP speaker MUST respond invalid object) and Error-value 32 (Incompatible OF code).</t>
with a PCErr message with Error-Type=10 (Reception of an invalid object) and
Error-Value=TBD9 (Incompatible OF code).</t>
</section> </section>
<!-- Disjointness-objective-functions -->
<section title="Relationship to SVEC" toc="default" anchor="svec">
<t><xref target="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 identifies the
relationship between the set of path computation requests, identified
by 'Request-ID-number' in RP (Request Parameters) object. <xref target="RFC6
007"/>
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.</t>
<t>The SVEC object includes a Flags field that indicates the potential depend
ency between the set of path computation requests 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 the SVEC and ASSOC
IATION objects to identify the related path computation request as well as the D
AG. The PCE MUST try to find a
path that meets both the constraints. It is possible that the diversity requ
irement in the association group is different from the one in the SVEC object.
The PCE MUST consider both the objects (including the flags set inside the objec
ts) as per the
processing rules and aim to find a path that meets both of these constraints.
In case no such path is possible, the PCE MUST send a path computation reply (P
CRep) with a NO-PATH object indicating path computation failure as per <xref tar
get="RFC5440"/>. It should be noted that the LSPs in the association group can b
e fully same or partially overlapping with the LSPs grouped by the SVEC object i
n PCReq message.</t>
<t>Some examples of usage are listed below:
</t>
<t>
<list style="symbols">
<t>
PCReq with SVEC object with node-diverse bit=1 (LSP1,LSP2) and DAG with
S=1 (LSP1,LSP2) - both node and SRLG diverse path between LSP1, LSP2.
</t>
<t>
PCReq with SVEC object with link-diverse bit=1 (LSP1,LSP2) and DAG with
L=1 (LSP1,LSP3) - link diverse paths between LSP1 &amp; LSP2, and LSP1 &amp; LSP
3. If the DAG is part of the stateful database, any future change in LSP3 will h
ave an impact on LSP1. But any future change in LSP2 will have no impact on LSP1
, as LSP2 is part of SVEC object (which is considered once on receipt of the PCR
eq message only).
</t>
</list>
</t>
<section title="SVEC and OF" toc="default" anchor="svec-of">
<t>This document defines three new OF-codes <xref target="Disjointness-obj
ective-functions"/> to maximize diversity as much as possible, in other words, n
ew OF-codes allow specification of minimization of common shared resources (Node
, Link or SRLG) among a set of paths during path computation.</t>
<t>
It may be interesting to note that the diversity flags in the SVEC objec
t and OF for diversity can be used together. Some examples of usage are listed b
elow:
</t>
<t>
<list style="symbols">
<t>
SVEC object with node-diverse bit=1 - ensure full node-diversity.
</t>
<t>
SVEC object with node-diverse bit=1 and OF=MSS - full node diverse with
as much as SRLG-diversity as possible.
</t>
<t>
SVEC object with domain-diverse bit=1;link diverse bit=1 and OF=MSS - fu
ll domain and node diverse path with as much as SRLG-diversity as possible.
</t>
<t>
SVEC object with node-diverse bit=1 and OF=MSN - ensure full node-divers
ity.
</t>
</list>
</t>
<t>
In the last example above, it is interesting to note that "OF" becomes r
edundant as "SVEC object" ensures full node-diversity, however this specificatio
n does not prohibit redundant constraints while using "SVEC object" and "OF" tog
ether for diversity.
</t>
</section>
</section>
<section title="P Flag Considerations" toc="default" anchor="P-Flag-Consid
eration">
<t>As mentioned in <xref target="tlvs"/>, 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.</t>
<t>This means that an LSP with P flag set should be placed first as if the <section toc="default" anchor="svec" numbered="true">
disjointness constraint has not been configured, while the other LSPs in the as <name>Relationship to SVEC</name>
sociation with P flag unset should be placed by taking into account the disjoint <t><xref target="RFC5440" format="default"/> defines a mechanism for
ness constraint. Setting the P flag changes the relationship between LSPs to a o the synchronization of a set of path computation requests by using the
ne-sided relationship (LSP 1 with P=0 depends on LSP 2 with P=1, but LSP 2 with SVEC object, which specifies the list of synchronized requests that can
P=1 does not depend of LSP 1 with P=0). Multiple LSPs in the same disjoint group be either dependent or independent. The SVEC object identifies the
may have the P flag set. In such a case, those LSPs may not be disjoint from ea relationship between the set of path computation requests, identified by
ch other but will be disjoint from other LSPs in the group that have the P flag 'Request-ID-number' in the RP (Request Parameters) object. <xref
unset.</t> target="RFC6007" format="default"/> further clarifies the use of the SVEC
list for synchronized path computations when computing dependent requests
and describes a number of usage scenarios for SVEC lists within
single-domain and multi-domain environments.</t>
<t>The SVEC object includes a Flags field that indicates the potential
dependency between the set of path computation requests in a similar
way as the Flags field in the TLVs defined in this document. The path
computation request in the Path Computation Request (PCReq) message
<bcp14>MAY</bcp14> use both the SVEC and ASSOCIATION objects to
identify the related path computation request, as well as the DAG.
The PCE <bcp14>MUST</bcp14> 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 the SVEC object. The
PCE <bcp14>MUST</bcp14> consider both the objects (including the flags
set inside the objects) as per the processing rules and aim to find a
path that meets both of these constraints. In case no such path is
possible, the PCE <bcp14>MUST</bcp14> send a
Path Computation Reply
(PCRep) with a NO-PATH object indicating path computation failure, as
per <xref target="RFC5440" format="default"/>. It should be noted that
the LSPs in the association group can be fully same or partially
overlapping with the LSPs grouped by the SVEC object in PCReq
message.</t>
<t>Some examples of usage are listed below:</t>
<ul spacing="normal">
<li>
PCReq with SVEC object with node-diverse bit=1 (LSP1,LSP2) and DAG
with S=1 (LSP1,LSP2) - both node- and SRLG-diverse path between LSP1 and
LSP2.
</li>
<li>
PCReq with SVEC object with link-diverse bit=1 (LSP1,LSP2) and DAG
with L=1 (LSP1,LSP3) - link-diverse paths between LSP1 and LSP2 and betwe
en
LSP1 and LSP3. If the DAG is part of the stateful database, any
future change in LSP3 will have an impact on LSP1. But any future
change in LSP2 will have no impact on LSP1, as LSP2 is part of SVEC
object (which is considered once on receipt of the PCReq message
only).
</li>
</ul>
<section toc="default" anchor="svec-of" numbered="true">
<name>SVEC and OF</name>
<t>This document defines three new OF-codes in <xref
target="Disjointness-objective-functions" format="default"/> to
maximize diversity as much as possible. In other words, new OF-codes
allow specification of minimization of common shared resources
(Node, Link, or SRLG) among a set of paths during path
computation.</t>
<t>It may be interesting to note that the diversity flags in the
SVEC object and OF for diversity can be used together. Some
examples of usage are listed below:</t>
<ul spacing="normal">
<li>SVEC object with node-diverse bit=1 - ensure full
node diversity.</li>
<li>SVEC object with node-diverse bit=1 and OF=MSS - full node
diversity with as much SRLG diversity as possible.</li>
<li>SVEC object with domain-diverse bit=1 <xref target="RFC8685"/>;
node-diverse bit=1, and
OF=MSS - full domain and node diversity with as much
SRLG diversity as possible.</li>
<li>SVEC object with node-diverse bit=1 and OF=MSN - ensure full
node diversity.</li>
</ul>
<t>This could be required in some primary/backup scenarios where the prima <t>In the last example above, it is interesting to note that "OF"
ry path should use the more optimal path available (taking into account the othe becomes redundant as "SVEC object" ensures full node diversity;
r constraints). however, this specification does not prohibit redundant constraints
When disjointness is computed, it is important for the algorithm to know t while using "SVEC object" and "OF" together for diversity.</t>
hat it should try to optimize the path of one or more LSPs in the disjoint group </section>
(for instance the primary path) while other paths are allowed to be costlier (c </section>
ompared to a similar path without the disjointness constraint). <section toc="default" anchor="P-Flag-Consideration" numbered="true">
Without such a hint, the disjointness algorithm may set a path for all LSP <name>P Flag Considerations</name>
s that may not completely fulfill the customer's requirement.</t> <t>As mentioned in <xref target="tlvs" format="default"/>, the P flag
<figure title="Figure 3"> (when set) indicates that the computed path of the LSP <bcp14>SHOULD</bcp
<artwork> 14>
satisfy all constraints and objective functions first without
considering the diversity constraint.</t>
<t>This means that an LSP with the P flag set should be placed first, as
if
the disjointness constraint has not been configured, while the other
LSPs in the association with the P flag unset should be placed by taking
into account the disjointness constraint. Setting the P flag changes
the relationship between LSPs to a one-sided relationship (LSP 1 with
P=0 depends on LSP 2 with P=1, but LSP 2 with P=1 does not depend on
LSP 1 with P=0). Multiple LSPs in the same Disjoint Association 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 other LSPs in the group that have the
P flag unset.</t>
<t>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 Association Group (for
instance, the primary path), while other paths are allowed to be
costlier (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 fulfill the customer's
requirement.</t>
<figure anchor="fig4">
<name>Example Topology with Six Internal Routers</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
_________________________________________ _________________________________________
/ \ / \
/ +------+ \ / +------+ \
| | PCE | | | | PCE | |
| +------+ | | +------+ |
| | | |
| | | |
| +------+ 10 +------+ | | +------+ 10 +------+ |
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2 CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2
| +------+ | | +------+ | | +------+ | | +------+ |
| | | | | | | |
| | | | | | | |
| +------+ | | +------+ | | +------+ | | +------+ |
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. ]]></artwork>
</artwork> </figure>
</figure> <t>Note: In <xref target="fig4"/>, the cost of all the links is 1, unless explic
<t> itly marked otherwise.
In the figure above, a customer has two dual homed sites (CE1/CE3 and CE2/ </t>
CE4). Let us consider that this customer wants two link disjoint paths between t <t>In the figure above, a customer has two dual-homed sites (CE1/CE3
he two sites. and CE2/CE4). Let us consider that this customer wants two link
Due to physical meshing, the customer wants to use CE1 and CE2 as primary disjoint paths between the two sites. Due to physical meshing, the
(and CE3 and CE4 are hosted in a remote site for redundancy purpose). customer wants to use CE1 and CE2 as the primary (and CE3 and CE4 are
</t> hosted in a remote site for redundancy purpose).</t>
<t>Without any hint (constraint) provided, the PCE may compute the two lin <t>Without any hint (constraint) provided, the PCE may compute the two
k disjoint LSPs together, leading to PE1-&gt;PE2 using a path PE1-&gt;R1-&gt;R2- link disjoint LSPs together, leading to PE1-&gt;PE2 using path
&gt;PE2 and PE3-&gt;PE4 using PE3-&gt;R3-&gt;R4-&gt;PE4. PE1-&gt;R1-&gt;R2-&gt;PE2 and PE3-&gt;PE4 using
In this case, even if the disjointness constraint is fulfilled, the path f PE3-&gt;R3-&gt;R4-&gt;PE4. In this case, even if the disjointness
rom PE1 to PE2 does not use the best optimal path available in the network (path constraint is fulfilled, the path from PE1 to PE2 does not use the
delay may be higher): the customer requirement is thus not completely fulfilled best optimal path available in the network (path delay may be higher);
. the customer requirement is thus not completely fulfilled.</t>
</t> <t>The usage of the P flag allows the PCE to know that a particular
<t>The usage of the P flag allows the PCE to know that a particular LSP sh LSP should be tied to the best path, as if the disjointness constraint
ould be tied to the best path as if the disjointness constraint was not requeste was not requested.</t>
d.</t> <t>In our example, if the P flag is set to the LSP PE1-&gt;PE2, the
<t>In our example, if the P flag is set to the LSP PE1-&gt;PE2, the PCE sh PCE should use the path PE1-&gt;R1-&gt;R3-&gt;R4-&gt;R2-&gt;PE2 for
ould use the path PE1-&gt;R1-&gt;R3-&gt;R4-&gt;R2-&gt;PE2 for this LSP, while th this LSP, while the other LSP should be link disjoint from this
e other LSP should be link disjoint from this path. path. The second LSP will be placed on PE3-&gt;R5-&gt;R6-&gt;PE4, as it
The second LSP will be placed on PE3-&gt;R5-&gt;R6-&gt;PE4 as it is allowe is allowed to be costlier.</t>
d to be costlier.</t> <t>Driving the PCE disjointness computation may be done in other ways,
<t> for instance, setting a metric boundary reflecting a path delay
Driving the PCE disjointness computation may be done in other ways, for in boundary. Other constraints may also be used.</t>
stance setting a metric boundary reflecting an path delay boundary. Other constr
aints may also be used.</t> <t>The P flag allows to simply express that the disjointness
<t>The P flag allows to simply express that the disjointness constraint sh constraint should not make the LSP worst.</t>
ould not make the LSP worst.</t> <t>Any constraint added to a path disjointness computation may reduce
<t> the chance to find suitable paths. The usage of the P flag, as any
Any constraint added to a path disjointness computation may reduce the cha other constraint, may prevent finding a disjoint path. In the example
nce to find suitable paths. The usage of the P flag, as any other constraint, ma above, if we consider that router R5 is down and if PE1-&gt;PE2 has
y prevent to find a disjoint path. the P flag set, there is no room available to place PE3-&gt;PE4 (the
In the example above, if we consider that the router R5 is down, if PE1-&g link disjointness constraint cannot be fulfilled). If PE1-&gt;PE2 has
t;PE2 has the P flag set, there is no room available to place PE3-&gt;PE4 (the l the P flag unset, the algorithm may be able to place PE1-&gt;PE2 on the
ink disjointness constraint cannot be fulfilled). R1-&gt;R2 link leaving room for PE3-&gt;PE4 using the R3-&gt;R4
If PE1-&gt;PE2 has the P flag unset, the algorithm may be able to place PE link. When using the P flag or any additional constraint on top of the
1-&gt;PE2 on R1-&gt;R2 link leaving a room for PE3-&gt;PE4 using the R3-&gt;R4 l disjointness constraint, the user should be aware that there is less
ink. chance to fulfill the disjointness constraint.</t>
When using P flag or any additional constraint on top of the disjointness <figure anchor="fig5">
constraint, the user should be aware that there is less chance to fulfill the di <name>Example Topology with Four Internal Routers</name>
sjointness constraint. <artwork name="" type="" align="left" alt=""><![CDATA[
</t>
<figure title="Figure 4">
<artwork>
_________________________________________ _________________________________________
/ \ / \
/ +------+ \ / +------+ \
| | 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. ]]></artwork>
</artwork> </figure>
</figure> <t>Note: In <xref target="fig5"/>, the cost of all the links is 1, unless
<t> explicitly marked otherwise. </t>
In the figure above, we still consider the same previous requirements, so
PE1-&gt;PE2 LSP should be optimized (P flag set) while PE3-&gt;PE4 should be lin
k disjoint and may use a costlier path.
</t>
<t>
Regarding PE1-&gt;PE2, there are two paths that are satisfying the constra
ints (ECMP): PE1-&gt;R1-&gt;R4-&gt;R2-&gt;PE2 (path 1) and PE1-&gt;R1-&gt;R3-&gt
;R4-&gt;R2-&gt;PE2 (path 2).
An implementation may choose one of the paths<!-- or even use both (using
both may happen in case Segment Routing TE is used, allowing ECMP)-->.
</t>
<t>If the implementation elects only one path, there is a chance that pick
ing up one path may prevent link disjointness. In our example, if path 2 is used
for PE1-&gt;PE2, there is no room left for PE3-&gt;PE4 while if path 1 is used,
PE3-&gt;PE4 can be placed on R3-&gt;R4 link.</t>
<t>When P flag is set for an LSP and when ECMPs are available, an implemen
tation should aim to select a path that allows disjointness.</t>
</section>
<section title="Disjointness Computation Issues" toc="default" anchor="dis
">
<t>There may be some cases where the PCE is not able to provide a set of d
isjoint paths for one or more LSPs in the association.</t>
<t>When the T flag is set (Strict disjointness requested), if disjointness
cannot be ensured for one or more LSPs, the PCE MUST reply to a Path Computatio
n Request (PCReq) with a Path Computation Reply (PCRep) message containing a NO-
PATH object. In case of PCRpt message, the PCE MUST return a PCErr message with
Error-Type 26 "Association
Error" and Error-Value 7 "Cannot join the association group".</t>
<t>In case of a network event leading to an impossible strict disjointness, <t>In the figure above, we still consider the same previous
the PCE MUST send a PCUpd message containing an empty ERO to the corresponding requirements, so PE1-&gt;PE2 LSP should be optimized (P flag set),
PCCs. In addition to the empty ERO Object, the PCE MAY add the NO-PATH-VECTOR TL while PE3-&gt;PE4 should be link disjoint and may use a costlier
V (<xref target="RFC5440"/>) in the LSP Object.</t> path.</t>
<t>This document adds new bits in the NO-PATH-VECTOR TLV:</t> <t>Regarding PE1-&gt;PE2, there are two paths that are satisfying the
<t> constraints (ECMP): PE1-&gt;R1-&gt;R4-&gt;R2-&gt;PE2 (path 1) and
<list style="none"> PE1-&gt;R1-&gt;R3-&gt;R4-&gt;R2-&gt;PE2 (path 2). An implementation
<t>bit "TBD7": when set, the PCE indicates that it could not find a disjoi may choose one of the paths.</t>
nt path for this LSP.</t> <t>If the implementation elects only one path, there is a chance that
<t>bit "TBD8": when set, the PCE indicates that it does not support the re picking up one path may prevent link disjointness. In our example, if
quested disjointness computation.</t> path 2 is used for PE1-&gt;PE2, there is no room left for PE3-&gt;PE4,
</list> while if path 1 is used, PE3-&gt;PE4 can be placed on R3-&gt;R4
</t> link.</t>
<t> <t>When the P flag is set for an LSP and when ECMPs are available, an
When the T flag is unset, <!--the PCE is allowed to relax disjointness by implementation should aim to select a path that allows
either applying a requested objective function (<xref target="Disjointness-objec disjointness.</t>
tive-functions"/>) if specified. Otherwise the PCE is allowed to reduce the requ
ired level of disjointness (as it deems fit).-->the PCE is allowed to relax disj
ointness by applying a requested objective function (<xref target="Disjointness-
objective-functions"/>) if specified. Otherwise, if no objective function is spe
cified, the PCE is allowed to reduce the required level of disjointness as it de
ems fit. The actual level of disjointness of the paths computed by the PCE can b
e reported through the DISJOINTNESS-STATUS-TLV by setting the appropriate flags
in the TLV.
While the DISJOINTNESS-CONFIGURATION-TLV defines the desired level of disj
ointness required by configuration, the DISJOINTNESS-STATUS-TLV defines the achi
eved level of disjointness computed.
</t>
<t>
There are some cases where the PCE may need to completely relax the disjoi
ntness constraint in order to provide a path to all the LSPs that are part of th
e association. A mechanism that allows the PCE to fully relax a constraint is co
nsidered by the authors as more global to PCEP rather than linked to the disjoin
tness use case. As a consequence, it is considered as out of scope of the docume
nt. See <xref target="I-D.dhody-pce-stateful-pce-optional"/> for a proposed mech
anism.
</t>
</section> </section>
</section> <section toc="default" anchor="dis" numbered="true">
<name>Disjointness Computation Issues</name>
<t>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.</t>
<t>When the T flag is set (Strict disjointness), if
disjointness cannot be ensured for one or more LSPs, the PCE <bcp14>MUST<
/bcp14>
reply to a PCReq with a
PCRep message containing a NO-PATH object. In case of a PCRpt
message, the PCE <bcp14>MUST</bcp14> return a PCErr message with Error-Ty
pe 26
(Association Error) and Error-value 7 (Cannot join the association group)
.</t>
<t>In case of a network event leading to an impossible strict
disjointness, the PCE <bcp14>MUST</bcp14> send a PCUpd message containing
an empty
Explicit Route Object (ERO) to the corresponding PCCs. In addition to
the empty ERO object,
the PCE <bcp14>MAY</bcp14> add the NO-PATH-VECTOR TLV <xref target="RFC54
40"
format="default"/> in the LSP object.</t>
<section title="Security Considerations" toc="default"> <t>This document adds new bits in the Flags field of the
<t>This document defines one new PCEP association type, which on itself do NO-PATH-VECTOR TLV:</t>
es not add any new <ul spacing="normal">
security concerns beyond those discussed in <xref target="RFC5440"/>, <li>bit 11: When set, the PCE indicates that it could not find a
<xref target="RFC8231"/>, <xref target="RFC7470"/> and <xref target="I-D.i disjoint path for this LSP.</li>
etf-pce-association-group"/>. But, adding of a spurious LSP into the disjointnes <li>bit 10: When set, the PCE indicates that it does not support
s association group could lead to re-computation and set-up of all LSPs in the g the requested disjointness computation.</li>
roup, that could be used to overwhelm the PCE and the network. </ul>
</t> <t>When the T flag is unset, the PCE is allowed to relax disjointness
<t> A spurious LSP can have flags that are inconsistent with those of the by applying a requested objective function (<xref
legitimate LSPs of the group and thus cause LSP allocation for the legitimate LS target="Disjointness-objective-functions" format="default"/>) if
Ps to fail with an error. Also, certain combinations of flags (notably, the 'T' specified. Otherwise, if no objective function is specified, the PCE
bit) can result in conflicts that cannot be resolved. is allowed to reduce the required level of disjointness as it deems
</t> fit. The actual level of disjointness of the paths computed by the PCE
<t>Also, as stated in <xref target="I-D.ietf-pce-association-group"/>, much can be reported through the DISJOINTNESS-STATUS TLV by setting the
of the information carried in the Disjointness Association object reflects info appropriate flags in the TLV. While the DISJOINTNESS-CONFIGURATION TLV
rmation that can also be derived from the LSP Database, but association provides defines the desired level of disjointness required by configuration,
a much easier grouping of related LSPs and messages. The disjointness associati the DISJOINTNESS-STATUS TLV defines the achieved level of disjointness
on could provide an adversary with the opportunity to eavesdrop on the relations computed.</t>
hip between the LSPs and understand the network topology.</t> <t>There are some cases where the PCE may need to completely relax the
<t>Thus securing the PCEP session using Transport Layer disjointness constraint in order to provide a path to all the LSPs
Security (TLS) <xref target="RFC8253"/>, as per the recommendations and that are part of the association. A mechanism that allows the PCE to
best current practices in BCP 195 <xref target="RFC7525"/>, is RECOMMENDED.</ fully relax a constraint is considered by the authors as more global
t> to PCEP rather than linked to the disjointness use case. As a
consequence, it is considered out of scope of the document. See
<xref target="I-D.dhody-pce-stateful-pce-optional" format="default"/>
for a proposed mechanism.</t>
</section>
</section> </section>
<section toc="default" numbered="true">
<name>Security Considerations</name>
<section title="IANA Considerations" toc="default"> <t>This document defines one new PCEP Association type, which by itself
<section title="Association Type" toc="default"> does not add any new security concerns beyond those discussed in <xref
<t>This document defines a new Association type, originally target="RFC5440" format="default"/>,
described in <xref target="I-D.ietf-pce-association-group"/>. IANA is requ <xref target="RFC8231" format="default"/>, <xref target="RFC7470"
ested to make the assignment of a new value for the format="default"/>, and <xref target="RFC8697" format="default"/>. But
sub-registry "ASSOCIATION Type Field" (request to be created in <xref targ adding of a spurious LSP into the Disjoint Association Group could
et="I-D.ietf-pce-association-group"/>), as follows: </t> lead to recomputation and setup of all LSPs in the group, which could
<texttable> be used to overwhelm the PCE and the network.</t>
<ttcol>Association type</ttcol><ttcol>Association Name</ttcol><ttcol <t> A spurious LSP can have flags that are inconsistent with those of
>Reference</ttcol> the legitimate LSPs of the group and thus cause LSP allocation for the
<c> TBD1 </c><c> Disjointness Association Type </c> <c> [This.I-D] < legitimate LSPs to fail with an error. Also, certain combinations of
/c> flags (notably, the 'T' bit) can result in conflicts that cannot be
</texttable> resolved.</t>
</section> <t>Also, as stated in <xref target="RFC8697" format="default"/>, much of
the information carried in the ASSOCIATION object reflects information
that can also be derived from the LSP database, but association provides
a much easier grouping of related LSPs and messages. This holds true for
the DAT as well; thus, this could provide an adversary with the
opportunity to eavesdrop on the relationship between the LSPs and
understand the network topology.</t>
<t>Thus, securing the PCEP session using Transport Layer Security (TLS)
<xref target="RFC8253" format="default"/>, as per the recommendations
and best current practices in BCP 195 <xref target="RFC7525"
format="default"/>, is <bcp14>RECOMMENDED</bcp14>.</t>
</section>
<section toc="default" numbered="true">
<name>IANA Considerations</name>
<section title="PCEP TLVs" toc="default"> <section toc="default" numbered="true">
<name>Association Type</name>
<t>This document defines a new Association type, originally described
in <xref target="RFC8697" format="default"/>. IANA has assigned the
following new value in the "ASSOCIATION Type Field" subregistry <xref
target="RFC8697" format="default"/> within the "Path Computation
Element Protocol (PCEP) Numbers" registry: </t>
<table align="center">
<name>ASSOCIATION Type Field</name>
<thead>
<tr>
<th align="left">Type</th>
<th align="left">Name</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">2</td>
<td align="left">Disjoint Association</td>
<td align="left">RFC 8800</td>
</tr>
</tbody>
</table>
</section>
<section toc="default" numbered="true">
<name>PCEP TLVs</name>
<t> This document defines two new PCEP TLVs. IANA has assigned the
following values in the "PCEP TLV Type Indicators" subregistry within
the "Path Computation Element Protocol (PCEP)
Numbers" registry:</t>
<table align="center">
<name>PCEP TLV Type Indicators</name>
<thead>
<tr>
<th align="left">TLV Type</th>
<th align="left">TLV Name</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">46</td>
<td align="left">DISJOINTNESS-CONFIGURATION</td>
<td align="left">RFC 8800</td>
</tr>
<tr>
<td align="left">47</td>
<td align="left">DISJOINTNESS-STATUS</td>
<td align="left">RFC 8800</td>
</tr>
</tbody>
</table>
<t> This document defines the following new PCEP TLVs and the IANA is <t>IANA has created a new subregistry, named
requested to make the assignment of new values for the existing "PCEP TLV Type I "DISJOINTNESS-CONFIGURATION TLV Flag Field", within the
ndicators" registry as follows:</t> "Path Computation Element Protocol (PCEP) Numbers" registry to manage
the Flags field in the DISJOINTNESS-CONFIGURATION TLV. New values are
to be assigned by Standards Action <xref target="RFC8126"
format="default"/>. Each bit should be tracked with the following
qualities:</t>
<ul spacing="normal">
<li>Bit number (count from 0 as the most significant bit)</li>
<li>Flag Name</li>
<li>Reference</li>
</ul>
<texttable> <t>The initial contents of this subregistry are shown below:</t>
<ttcol>TLV Type</ttcol><ttcol>TLV Name</ttcol><ttcol>Reference</ttcol>
<c> TBD2 </c><c> Disjointness Configuration TLV </c> <c> [This.I-D] </
c>
<c> TBD3 </c><c> Disjointness Status TLV </c> <c> [This.I-D] </c>
</texttable>
<t> This document requests that a new sub-registry, named "Disjointnes <table anchor="Disjointness-Configuration-TLV-IANA" align="center">
s Configuration TLV Flag Field", <name>DISJOINTNESS-CONFIGURATION TLV Flag Field</name>
is created within the "Path Computation Element Protocol (PCEP) Number <thead>
s" registry to manage the Flag field in <tr>
the Disjointness Configuration TLV. New values are to be assigned by S <th align="left">Bit</th>
tandards Action <xref target="RFC8126"/>. <th align="left">Name</th>
Each bit should be tracked with the following qualities:</t> <th align="left">Reference</th>
<t> </tr>
<list style="symbols"> </thead>
<t>Bit number (count from 0 as the most significant bit)</t> <tbody>
<t>Flag Name</t> <tr>
<t>Reference</t> <td align="left">31</td>
</list> <td align="left">L - Link Diverse</td>
</t> <td align="left">RFC 8800</td>
<texttable anchor="Disjointness-Configuration-TLV-IANA" title="Disjointn </tr>
ess Configuration TLV"> <tr>
<ttcol>Bit Number</ttcol> <td align="left">30</td>
<ttcol>Name</ttcol> <td align="left">N - Node Diverse</td>
<ttcol>Reference</ttcol> <td align="left">RFC 8800</td>
<c>31</c> </tr>
<c>L - Link Diverse</c> <tr>
<c> [This.I-D] </c> <td align="left">29</td>
<c>30</c> <td align="left">S - SRLG Diverse</td>
<c>N - Node Diverse</c> <td align="left">RFC 8800</td>
<c> [This.I-D] </c> </tr>
<c>29</c> <tr>
<c>S - SRLG Diverse</c> <td align="left">28</td>
<c> [This.I-D] </c> <td align="left">P - Shortest Path</td>
<c>28</c> <td align="left">RFC 8800</td>
<c>P - Shortest Path</c> </tr>
<c> [This.I-D] </c> <tr>
<c>27</c> <td align="left">27</td>
<c>T - Strict Disjointness</c> <td align="left">T - Strict Disjointness</td>
<c> [This.I-D] </c> <td align="left">RFC 8800</td>
</texttable> </tr>
</section> <tr>
<section title="Objective Functions" toc="default"> <td align="left">0-26</td>
<t>Three new Objective Functions have been defined in this document. IA <td align="left">Unassigned</td>
NA is requested to make the following allocations from the PCEP <td align="left"></td>
"Objective Function" sub-registry:</t> </tr>
</tbody>
</table>
</section>
<texttable> <section toc="default" numbered="true">
<ttcol>Code Point</ttcol><ttcol>Name</ttcol><ttcol> Reference</ttcol> <name>Objective Functions</name>
<c> TBD4 </c><c>Minimize the number of shared Links (MSL)</c> <c> [Thi <t>This document defines three new objective functions. IANA has made
s.I-D] </c> the following allocations in the "Objective Function"
<c> TBD5 </c><c>Minimize the number of shared SRLGs (MSS)</c> <c> [Thi subregistry within the "Path Computation Element Protocol (PCEP)
s.I-D] </c> Numbers" registry:</t>
<c> TBD6 </c><c>Minimize the number of shared Nodes (MSN)</c> <c> [Thi <table align="center">
s.I-D] </c> <name>Objective Function</name>
</texttable> <thead>
<tr>
<th align="left">Code Point</th>
<th align="left">Name</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">15</td>
<td align="left">Minimize the number of Shared Links (MSL)</td>
<td align="left">RFC 8800</td>
</tr>
<tr>
<td align="left">16</td>
<td align="left">Minimize the number of Shared SRLGs (MSS)</td>
<td align="left">RFC 8800</td>
</tr>
<tr>
<td align="left">17</td>
<td align="left">Minimize the number of Shared Nodes (MSN)</td>
<td align="left">RFC 8800</td>
</tr>
</tbody>
</table>
</section> </section>
<section title="NO-PATH-VECTOR Bit Flags" toc="default">
<t>This documents defines new bits for the NO-PATH-VECTOR TLV in the <section toc="default" numbered="true">
"NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation <name>NO-PATH-VECTOR Bit Flags</name>
Element Protocol (PCEP) Numbers" registry. IANA is requested to make the foll <t>This document defines new bits for the NO-PATH-VECTOR TLV in the
owing allocation: "NO-PATH-VECTOR TLV Flag Field" subregistry of the "Path Computation
Element Protocol (PCEP) Numbers" registry. IANA has made
the following allocations:
</t> </t>
<texttable anchor="NO-PATH-VECTOR-TLV-IANA" title="NO-PATH-VECTOR TLV"> <table anchor="NO-PATH-VECTOR-TLV-IANA" align="center">
<ttcol>Bit Number</ttcol> <name>NO-PATH-VECTOR TLV Flag Field</name>
<ttcol>Name</ttcol> <thead>
<ttcol>Reference</ttcol> <tr>
<c>TBD7</c> <th align="left">Bit Number</th>
<c>Disjoint path not found</c> <th align="left">Name</th>
<c> [This.I-D] </c> <th align="left">Reference</th>
<c>TBD8</c> </tr>
<c>Requested disjoint computation not supported</c> </thead>
<c> [This.I-D] </c> <tbody>
</texttable> <tr>
</section> <td align="left">11</td>
<section title="PCEP-ERROR Codes" toc="default"> <td align="left">Disjoint path not found</td>
<td align="left">RFC 8800</td>
</tr>
<tr>
<td align="left">10</td>
<td align="left">Requested disjoint computation not supported</td>
<td align="left">RFC 8800</td>
</tr>
</tbody>
</table>
</section>
<section toc="default" numbered="true">
<name>PCEP-ERROR Codes</name>
<t>
This document defines two new Error-values within existing Error-Types
related to disjoint association. IANA has allocated the following new
Error-values in the "PCEP-ERROR Object Error Types and Values" subregistry
within the "Path Computation Element Protocol (PCEP) Numbers" registry:</t>
<table align="center">
<name>PCEP-ERROR Object Error Types and Values</name>
<thead>
<tr>
<th align="left">Error-Type</th>
<th align="left">Meaning</th>
<th align="left">Error-value</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">6</td>
<td align="left">Mandatory Object missing</td>
<td></td>
<td align="left"><xref target="RFC5440" format="default"/></td>
</tr>
<tr>
<td align="left"></td>
<td align="left"></td>
<td align="left">15: DISJOINTNESS-CONFIGURATION
TLV missing</td>
<td align="left">RFC 8800</td>
</tr>
<tr>
<td align="left">10</td>
<td align="left">Reception of an invalid object</td>
<td></td>
<td align="left"><xref target="RFC5440" format="default"/></td>
</tr>
<tr>
<td align="left"></td>
<td align="left"></td>
<td align="left">32: Incompatible OF code</td>
<td align="left">RFC 8800</td>
</tr>
</tbody>
</table>
<t>This document defines new Error-Value within existing Error-Type rela
ted to path protection association.
IANA is requested to allocate new error values within the "PCEP-ERROR
Object Error Types and Values" sub-registry of the PCEP Numbers
registry, as follows:</t>
<texttable>
<ttcol> Error-Type </ttcol><ttcol> Meaning </ttcol><ttcol> Reference
</ttcol>
<c> 6 </c> <c> Mandatory Object missing</c> <c><xref target="I-D.ietf
-pce-association-group"/></c>
<c> </c><c> Error-value=TBD10: DISJOINTNESS-CONFIGURATION TLV missing
</c> <c> [This.I-D] </c>
<c> 10 </c> <c> Reception of an invalid object</c> <c><xref target="R
FC5440"/></c>
<c> </c> <c> Error-value=TBD9: Incompatible OF code</c> <c> [This.I-D
] </c>
</texttable>
</section> </section>
</section> </section>
<section title="Manageability Considerations" toc="default"> <section toc="default" numbered="true">
<section title="Control of Function and Policy" toc="default"> <name>Manageability Considerations</name>
<t> <section toc="default" numbered="true">
An operator SHOULD be allowed to configure the disjointness association group <name>Control of Function and Policy</name>
s and disjoint parameters at the PCEP peers
and associate it with the LSPs. The Operator-configured Association Range MUS <t>An operator <bcp14>SHOULD</bcp14> be allowed to configure the
T be allowed to be set by the operator. The operator SHOULD be allowed to set th Disjoint Association Groups and disjoint parameters at the PCEP peers
e local policies to define various disjoint computational behavior at the PCE.</ and associate them with the LSPs.
t>
The operator <bcp14>MUST</bcp14> be allowed to set the Operator-configured
Association Range. The operator <bcp14>SHOULD</bcp14> be allowed to set the
local policies to define various disjoint computational behavior at the
PCE.</t>
</section> </section>
<section title="Information and Data Models" toc="default"> <section toc="default" numbered="true">
<t>An implementation SHOULD allow the operator to view the disjoint asso <name>Information and Data Models</name>
ciations <t>An implementation <bcp14>SHOULD</bcp14> allow the operator to view th
configured or created dynamically. Furthermore, implementations SHOULD e disjoint
allow to view disjoint associations reported by each peer, and the current se associations configured or created dynamically. Furthermore,
t implementations <bcp14>SHOULD</bcp14> allow to view disjoint associations
of LSPs in this association. The PCEP YANG reported by
module <xref target="I-D.ietf-pce-pcep-yang"/> includes association groups in each peer and the current set of LSPs in this association. The PCEP
formation.</t> YANG module <xref target="I-D.ietf-pce-pcep-yang" format="default"/>
includes association group information.</t>
</section> </section>
<section title="Liveness Detection and Monitoring" toc="default"> <section toc="default" numbered="true">
<t>Mechanisms defined in this document do not imply any new liveness det <name>Liveness Detection and Monitoring</name>
ection <t>Mechanisms defined in this document do not imply any new liveness
and monitoring requirements in addition to those already listed in detection and monitoring requirements in addition to those already
<xref target="RFC5440"/>.</t> listed in <xref target="RFC5440" format="default"/>.</t>
</section> </section>
<section title="Verification of Correct Operations" toc="default"> <section toc="default" numbered="true">
<name>Verification of Correct Operations</name>
<t>Apart from the operation <t>Apart from the operation
verification requirements already listed in verification requirements already listed in
<xref target="RFC5440"/>, a PCEP implementation <xref target="RFC5440" format="default"/>, a PCEP implementation
SHOULD provide parameters related to disjoint path computation, such as numbe <bcp14>SHOULD</bcp14> provide parameters related to disjoint path computation
r of DAG, number of disjoint path computation failures etc. A PCEP implementatio , such as
n SHOULD log failure events (e.g., incompatible Flags).</t> number of DAG, number of disjoint path computation failures, etc. A
PCEP implementation <bcp14>SHOULD</bcp14> log failure events (e.g., incom
patible
Flags).</t>
</section> </section>
<section title="Requirements on Other Protocols" toc="default"> <section toc="default" numbered="true">
<t>Mechanisms defined in this document do not imply any new requirements <name>Requirements on Other Protocols</name>
on other protocols.</t> <t>Mechanisms defined in this document do not imply any new
requirements on other protocols.</t>
</section> </section>
<section title="Impact on Network Operations" toc="default"> <section toc="default" numbered="true">
<t>Mechanisms defined in <xref target="RFC5440"/>, Section 8.6 also appl <name>Impact on Network Operations</name>
y to PCEP <t>Mechanisms defined in <xref target="RFC5440" sectionFormat="of"
extensions defined in this document. Additionally, a PCEP implementation SHOU section="8.6"/> also apply to PCEP extensions defined in this
LD allow a limit to be placed document. Additionally, a PCEP implementation <bcp14>SHOULD</bcp14> allow
on the number of LSPs that can belong to a DAG.</t> a limit to
be placed on the number of LSPs that can belong to a DAG.</t>
</section> </section>
</section> </section>
<section title="Acknowledgments" toc="default">
<t>A special thanks to authors of
<xref target="I-D.ietf-pce-association-group"/>, this document borrow
some of the text from it. Authors would also like to thank Adrian Farrel a
nd Julien Meuric for the valuable comments.</t>
<t>Thanks to Emmanuel Baccelli for RTGDIR review.</t>
<t>Thanks to Dale Worley for a detailed GENART review.</t>
<t>Thanks to Alvaro Retana, Benjamin Kaduk, Suresh Krishnan, Roman Danyliw
, Alissa Cooper and Eric Vyncke for IESG review. </t>
</section>
</middle> </middle>
<back> <back>
<references title="Normative References">
<?rfc include="reference.RFC.2119.xml" ?>
<?rfc include="reference.RFC.8126.xml"?>
<?rfc include="reference.RFC.5440.xml" ?>
<?rfc include="reference.RFC.5541.xml" ?>
<?rfc include="reference.RFC.7470.xml" ?>
<?rfc include="reference.RFC.8174.xml"?>
<?rfc include="reference.RFC.8231.xml"?>
<?rfc include="reference.RFC.8253.xml"?>
<?rfc include="reference.I-D.ietf-pce-association-group"?>
</references>
<references title="Informative References">
<?rfc include="reference.RFC.4655.xml" ?>
<?rfc include="reference.RFC.6007.xml" ?>
<!--<?rfc include="reference.RFC.7420.xml" ?>--> <displayreference target="I-D.ietf-pce-pcep-yang" to="PCEP-YANG"/>
<?rfc include="reference.RFC.7525.xml" ?> <displayreference target="I-D.dhody-pce-stateful-pce-optional" to="PCE-OPTIONAL"
<?rfc include="reference.RFC.8281.xml"?> />
<?rfc include="reference.I-D.ietf-pce-pcep-yang"?>
<?rfc include="reference.I-D.dhody-pce-stateful-pce-optional"?>
</references>
<section title="Contributor Addresses" toc="default">
<t>
<figure title="" suppress-title="false" align="left" alt="" width="" height=
"">
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
Dhruv Dhody
Huawei Technologies
Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560066
India
EMail: dhruv.ietf@gmail.com <references>
]]></artwork> <name>References</name>
</figure> <references>
</t> <name>Normative References</name>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.8126.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.5440.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.5541.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.7470.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.8174.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.8231.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.8253.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.8685.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.8697.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.4655.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.6007.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.7525.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer
ence.RFC.8281.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refe
rence.I-D.ietf-pce-pcep-yang.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refe
rence.I-D.dhody-pce-stateful-pce-optional.xml"/>
</references>
</references>
<section toc="default" numbered="false">
<name>Acknowledgments</name>
<t>A special thanks to the authors of
<xref target="RFC8697" format="default"/>; this document borrows
some text from it. The authors would also like to thank <contact
fullname="Adrian Farrel"/>
and <contact fullname="Julien Meuric"/> for the valuable comments.</t>
<t>Thanks to <contact fullname="Emmanuel Baccelli"/> for the RTGDIR review
.</t>
<t>Thanks to <contact fullname="Dale Worley"/> for a detailed GENART revie
w.</t>
<t>Thanks to <contact fullname="Alvaro Retana"/>, <contact
fullname="Benjamin Kaduk"/>, <contact fullname="Suresh Krishnan"/>,
<contact fullname="Roman Danyliw"/>, <contact fullname="Alissa
Cooper"/>, and <contact fullname="Eric Vyncke"/> for the IESG review. </t>
</section> </section>
<section toc="default" numbered="false">
<name>Contributors</name>
<contact fullname="Dhruv Dhody">
<organization>Huawei Technologies</organization>
<address>
<postal>
<street>Divyashree Techno Park, Whitefiled</street>
<city>Bangalore</city>
<region>Karnataka</region>
<code>560066</code>
<country>India</country>
</postal>
<email>dhruv.ietf@gmail.com</email>
</address>
</contact>
</section>
</back> </back>
</rfc> </rfc>
 End of changes. 83 change blocks. 
888 lines changed or deleted 1085 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/