| 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/ | ||||