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 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 | | | |||
| +------+ | | | +------+ | | |||
| | | | | | |||
| ***********************> | | | ***********************> | | |||
| +------+ 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 | |||
| +------+ ***********************> +------+ | | | +------+ ***********************> +------+ | | |||
| | | | | | |||
\ / | \ / | |||
\_________________________________________/ | \_________________________________________/ | |||
</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. <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 & LSP2, and LSP1 & 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->PE2 using a path PE1->R1->R2- | link disjoint LSPs together, leading to PE1->PE2 using path | |||
>PE2 and PE3->PE4 using PE3->R3->R4->PE4. | PE1->R1->R2->PE2 and PE3->PE4 using | |||
In this case, even if the disjointness constraint is fulfilled, the path f | PE3->R3->R4->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->PE2, the | |||
<t>In our example, if the P flag is set to the LSP PE1->PE2, the PCE sh | PCE should use the path PE1->R1->R3->R4->R2->PE2 for | |||
ould use the path PE1->R1->R3->R4->R2->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->R5->R6->PE4, as it | |||
The second LSP will be placed on PE3->R5->R6->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->PE2 has | |||
y prevent to find a disjoint path. | the P flag set, there is no room available to place PE3->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->PE2 has | |||
t;PE2 has the P flag set, there is no room available to place PE3->PE4 (the l | the P flag unset, the algorithm may be able to place PE1->PE2 on the | |||
ink disjointness constraint cannot be fulfilled). | R1->R2 link leaving room for PE3->PE4 using the R3->R4 | |||
If PE1->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->PE2 on R1->R2 link leaving a room for PE3->PE4 using the R3->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->PE2 LSP should be optimized (P flag set) while PE3->PE4 should be lin | ||||
k disjoint and may use a costlier path. | ||||
</t> | ||||
<t> | ||||
Regarding PE1->PE2, there are two paths that are satisfying the constra | ||||
ints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and PE1->R1->R3-> | ||||
;R4->R2->PE2 (path 2). | ||||
An implementation may choose one of the paths<!-- or even use 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->PE2, there is no room left for PE3->PE4 while if path 1 is used, | ||||
PE3->PE4 can be placed on R3->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->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->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->PE2, there are two paths that are satisfying the | |||
<t> | constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and | |||
<list style="none"> | PE1->R1->R3->R4->R2->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->PE2, there is no room left for PE3->PE4, | |||
</list> | while if path 1 is used, PE3->PE4 can be placed on R3->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/ |