<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?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-diversity-02" obsoletes="" updates="" submissionType="IETF" xml:lang="en">
  <front>
    <title abbrev="ASSOC-DISJOINT">Path Computation Element communication
    Protocol extension for signaling LSP diversity constraint</title>
	 <author initials="S" surname="Litkowski" fullname="Stephane Litkowski">
      <organization>Orange</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country></country>
        </postal>
        <email>stephane.litkowski@orange.com</email>
      </address>
    </author>
    <author initials="S" surname="Sivabalan" fullname="Siva Sivabalan">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>2000 Innovation Drive</street>
          <city>Kanata</city>
          <region>Ontario</region>
          <code>K2K 3E8</code>
          <country>Canada</country>
        </postal>
        <email>msiva@cisco.com</email>
      </address>
    </author>    
	 <author initials="C" surname="Barth" fullname="Colby Barth">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country></country>
        </postal>
        <email>cbarth@juniper.net</email>
      </address>
    </author>
<author initials="D" surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country></country>
        </postal>
        <email>dhruv.dhody@huawei.com</email>
      </address>
    </author>

    
    <date year="2017" />
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
  
<t>
   This document introduces a simple mechanism to associate 
   a group of Label Switched Paths (LSPs) via an extension to the Path Computation
   Element Communication Protocol (PCEP) with the purpose of computing diverse paths for those LSPs.
   The proposed extension allows a PCC to advertise to a PCE the belonging of a particular LSP to a disjoint-group, 
   thus the PCE knows that LSPs in the same group must be disjoint from each other.</t> 
   </abstract>
  </front>
  <middle>
   <section title="Introduction" toc="default">
   <t>
   <xref target="RFC5440"/> describes the Path Computation Element communication
   Protocol (PCEP) which enables the communication between a Path
   Computation Client (PCC) and a Path Control Element (PCE), or between
   two PCEs based on the PCE architecture <xref target="RFC4655"/>.
   </t>
   <t>
   PCEP Extensions for Stateful PCE Model <xref target="I-D.ietf-pce-stateful-pce"/>
   describes a set of extensions to PCEP to enable active control of
   MPLS-TE and GMPLS tunnels.  <xref target="I-D.ietf-pce-pce-initiated-lsp"/>
   describes the setup and teardown of PCE-initiated LSPs under the
   active stateful PCE model, without the need for local configuration
   on the PCC, thus allowing for a dynamic network. 
   </t>
   <t><xref target='I-D.ietf-pce-association-group'/> introduces a generic
   mechanism to create a grouping of LSPs which can then be used to
   define associations between a set of LSPs and a set of attributes (such
   as configuration parameters or behaviours) and is equally applicable
   to the active and passive modes of a stateful PCE <xref target="I-D.ietf-pce-stateful-pce"/> or a stateless PCE <xref target="RFC5440"/>.</t>

   <t>This document specifies a PCEP extension to signal that a particular group of
   LSPs should use diverse paths including the requested type of diversity.
   A PCC can use this extension to signal to a PCE the belonging of a particular LSP to a disjoint-group. 
   When a PCE receives LSP states belonging to the same disjoint-group from some PCCs, the PCE should ensure that the LSPs within the group are disjoint from each other.
   </t>
   
    <section title="Requirements Language" toc="default">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
        "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described
        in <xref target="RFC2119"/>.</t>
      </section>
    </section>

    <section title="Terminology" toc="default">
      <t>The following terminology is used in this document.</t>
      <t>
        <list style="hanging">
          <t hangText="LSR:">Label Switch Router.</t>
          <t hangText="MPLS:">Multiprotocol Label Switching.</t>
          <t hangText="PCC:">Path Computation Client. Any client application requesting a
            path computation to be performed by a Path Computation Element.</t>
          <t hangText="PCE:">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.</t>
          <t hangText="PCEP:">Path Computation Element Communication Protocol.</t>
		  <t hangText="SRLG:">Shared Risk Link Group.</t>
        </list>
      </t>
    </section>
   <section title="Motivation" toc="default">
   <t>Path diversity is a very common use case today in 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 IP/MPLS core. 
   The customer may use those paths as primary/backup or active/active.
   </t>
   <t>Different level of disjointness may be offered: 
   <list style="symbols">
   <t>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).
</t>
   <t>Node disjointness: the paths of the associated LSPs should transit different
      nodes (but may use different links that may have some shared fate).
</t>
   <t>SRLG disjointness: the paths of the associated LSPs should transit different
      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>
   
     <figure title="Figure 1 - Disjoint paths with different head-ends and tail-ends" suppress-title="false">
	 <artwork>
         _________________________________________
        /                                         \
       /        +------+                           \
      |         | PCE  |                            |
      |         +------+                            |
      |                                             |
      |          ***********************&gt;           |
      | +------+           10             +------+  |
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2
      | +------+       |        |         +------+  |
      |                |        |                   |
      |                |        |                   |
      | +------+       |        |         +------+  |
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4
      | +------+ ***********************&gt; +------+  |
      |                                             |
       \                                           /
        \_________________________________________/
	
	</artwork>
	</figure> 
   <t>
   In the figure above, the customer wants to have two disjoint paths between CE1/CE2 and CE3/CE4. From an IP/MPLS network point view, in this example, the CEs are connected to different PEs to maximize their disjointness.
   When LSPs originate from different head-ends, distributed computation 
               of diverse paths can be difficult.  Whereas, computation via a centralized PCE ensures
               path disjointness correctness and simplicity.
   </t>
   <t>
   The SVEC (Synchronization VECtor) object <xref target="RFC5440"/> allows a PCC to
request the synchronization of a set of dependent or independent path
computation requests.  As  per <xref target="RFC5440"/>, the SVEC object is optional 
and may be carried within a PCReq message. It uses the Request-ID-number
carried within the respective RP (Request Parameters) object to identify 
the computation request that should be syncronized. 
</t>
<t>
The PCEP extension for stateful PCE <xref target="I-D.ietf-pce-stateful-pce"/> defined
new PCEP messages - PCRpt, PCUpd and PCInitiate. These messages uses 
PLSP-ID in the LSP object for identification. Moreover to allow diversity
between LSPs originating from different PCCs, the generic mechanism to 
create a grouping of LSPs as described in <xref target="I-D.ietf-pce-association-group"/>
equally applicable to the active and passive modes of a stateful PCE is 
better suited.
</t>
   <t>
   Using PCEP, the PCC MUST indicate that disjoint path computation is required, such indication SHOULD include disjointness parameters such as the type of 
   disjointness, the disjoint group-id, and any customization parameters according to
   the configured local policy. As mentioned previously, the extension described in  <xref target='I-D.ietf-pce-association-group'/> is well suited to associated a set
   of LSPs with a particular disjoint-group.</t>

   <t>The management of the disjoint group-ids will be a key point for the operator as the Association ID field is limited to 65535.
   The local configuration of IPv4/IPv6 association source, or Global Association Source/Extended Association ID should allow to overcome this limitation.
   For example, when a PCC or PCE initiates all the LSPs in a particular disjoint-group, it can set the IPv4/IPv6 association source can be set to one of its IP address.
   When disjoint LSPs are initiated from different head-ends, a unique association identifier SHOULD be used for those LSPs: this can be achieved by setting the IPv4/IPv6 source address to a common value (zero value can be used) as well as the Association ID.
  </t> 
   
        <t><figure title="Figure 2 - Sample use-cases for carrying disjoint-group over PCEP session" suppress-title="false" align="left" alt="" width="" height="">
            <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

                                                         
          Initiate & Monitor LSP                       
                   |                                          
                   |                          PCReq           
                   V                  {Disjoint-group Y}      
                +-----+                   ----------------> +-----+
     _ _ _ _ _ _| PCE |                  |                  | PCE |
    |           +-----+                  |      ----------> +-----+
    | PCInitiate                         |     |    PCReq
    |{Disjoint-group X}                  |     | {Disjoint-group Y}
    |                                    |     |
    |              .-----.               |     |         .-----.
    |             (       )              |  +----+      (       )
    |         .--(         )--.          |  |PE 1|--.--(         )--.
    V        (                 )         |  +----+ (                 )
  +---+     (                   )        |        (                   )
  |PCC|----(   (G)MPLS network    )   +----+     ( (G)MPLS network     )
  +---+     (                   )     |PE 3|------(                   )
Disjoint-group X               )      +----+       (                 )
{Monitor LSP} '--(         )--'                     '--(         )--'
                  (       )                             (       )
                   '-----'                               '-----'

 Case 1: Disjointness initiated by    Case 2: Disjointness initiated by
         PCE and enforced by PCC             PCC and enforced by PCE

]]></artwork>
          </figure></t>
   <t>Using the disjoint-group within a PCUpd or PCInitiate may have two purposes:
   <list style="symbols">
   <t>Information: in case the PCE is performing the path computation, it may communicate to the PCC the locally used  parameters in the attribute-list of the LSP.</t>
   <t>Configuration: in case the PCE is updating the diversity parameters.</t>
   </list>
   </t>
   </section>
    
    <section title="Protocol extension" toc="default">
	 <section title="Association group" anchor="encoding" toc="default">
     <t>As per <xref target='I-D.ietf-pce-association-group'/>, LSPs
     are associated with other LSPs with which they interact by adding
     them to a common association group. The Association ID will be used 
	 to identify the disjoint group a set of LSPs belongs to. 
	 
      This document defines a new Association type, 
      based on the generic Association object - 
      <list style="symbols">
      <t>Association type = TBD1 ("Disjointness 
      Association Type").</t>
      </list>
      </t>
      
      <t>A disjoint group can have two or more LSPs. But a PCE may be limited in how many LSPs it can take into account when computing disjointness.
	  If a PCE receives more LSPs in the group than it can handle in its computation algorithm, it SHOULD apply disjointness computation to only a subset of LSPs in the group. The subset of disjoint LSPs will be decided by the implementation.
	  </t>
	  <t>Local polices on the PCC or PCE MAY define the computational behavior for the other LSPs 
   in the group.  For example, the PCE may provide no path, a shortest path, or a constrained path 
   based on relaxing disjointness, etc.</t>

	  <t>Associating a particular LSP to multiple disjoint groups is authorized from a protocol perspective, however there is no insurance that the PCE will be able to compute properly the multi-disjointness constraint.</t>
	  </section>
	  <section title="Mandatory TLV" anchor="mandatory-tlvs" toc="default">
	  <t>
	  The disjoint group MUST carry the following TLV:
	  <list style="symbols">
	  <t>DISJOINTNESS-INFORMATION-TLV: Used to communicate some disjointness specific parameters.</t>
	  </list>
	  </t>
	  <t>
	  The DISJOINTNESS-INFORMATION-TLV is shown in the following figure:
	<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 = [TBD2]         |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Flags                               |T|P|S|N|L|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	</artwork>
	</figure>
	  <list style="none">
	  <t>Flags:
	    <list style="symbols">
		<t>L (Link diverse) bit: when set, this indicates that the
         computed paths within the disjoint group MUST NOT have any link in common.</t>
		<t>N (Node diverse) bit: when set, this indicates that the
         computed paths within the disjoint group MUST NOT have any node in common.</t>
		<t>S (SRLG diverse) bit: when set, this indicates that the
         computed paths within the disjoint group MUST NOT share any SRLG (Shared Risk Link
         Group).</t>
		<t>P (Shortest path) bit: when set, this indicates that the computed path of the LSP SHOULD satisfies all constraints and objective functions first without considering the diversity constraint.
		This means that an LSP with P flag set should be placed as if the disjointness constraint has not been configured, while the other LSP in the association with P flag unset should be placed by taking into account the disjointness constraint. Setting P flag changes the relationship between LSPs to a unidirectional relationship (LSP 1 with P=0 depends of LSP 2 with P=1, but LSP 2 with P=1 does not depend of LSP 1 with P=0).</t> 
		<t>T (Strict disjointness) bit: when set, if disjoint paths cannot be found, PCE should return no path for LSPs that could not be be disjoint. When unset, PCE is allowed to relax disjointness by using either applying a requested objective function or any other behavior if no objective function is requested (e.g.: using a lower disjoint type (link instead of node) or relaxing disjointness constraint at all).</t>
		</list>
	  </t>
	  </list>
	  </t>
	  <t>
	  If a PCEP speaker receives a disjoint-group without DISJOINTNESS-INFORMATION-TLV, it SHOULD reply with a PCErr Error-type=6 (Mandatory Object missing) and Error-value=TBD7.</t>
	  </section>
	  <section title="Optional TLVs" toc="default">
	  <t>
	  The disjoint group MAY carry some optional TLVs including but not limited to: 
	  <list style="symbols">
	  <t>VENDOR-INFORMATION-TLV: Used to communicate arbitrary vendor specific behavioral
     information, described in <xref target="RFC7150"/>.</t>
	  </list>
	  </t>
	  </section>
	  <section title="Disjointness objective functions" toc="default">
	  <t>
	  An objective function MAY be applied to the disjointness computation
   to drive the PCE computation behavior.  In this case, the OF-List TLV
   (defined in (<xref target="RFC5541"/>) is used as an optional TLV in the Association 
   Group Object. The PCEP OF-List TLV allow multiple OF-Codes inside the
   TLV, a sender SHOULD include a single OF-Code in the OF-List TLV when
   included in the Association Group, and the receiver MUST consider the 
   first OF-code only and ignore others if included. The OF-Code to  
   maximize diversity are specified in (<xref target="I-D.dhody-pce-of-diverse"/>). 

	  </t>
	  </section>
	  <section title="P-flag considerations" toc="default">
	  <t>As mentioned in <xref target="mandatory-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. This could be required in some primary/backup scenarios where the primary path should use the more optimal path available (taking into account the other constraints).
	  When disjointness is computed, it is important for the algorithm to know that it should try to optimize the path of one or more LSPs in the disjoint group (for instance the primary path) while other paths are allowed to be longer (compared to a similar path without the disjointness constraint).
	  Without such a hint, the disjointness algorithm may set a path for all LSPs that may not completely fulfil the customer requirement.</t>
     <figure title="Figure 3">
	 <artwork>
         _________________________________________
        /                                         \
       /        +------+                           \
      |         | PCE  |                            |
      |         +------+                            |
      |                                             |
      |                                             |
      | +------+           10             +------+  |
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2
      | +------+       |        |         +------+  |
      |                |        |                   |
      |                |        |                   |
      | +------+       |        |         +------+  |
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4
      | +------+ \     |               /  +------+  |
      |           \    |     10       /             |
       \           +-- R5 --------- R6             /
        \_________________________________________/
	
	  </artwork>
	  </figure>
	  <t>
	  In the figure above, a customer has two dual homed sites (CE1/CE3 and CE2/CE4). This customer wants two disjoint paths between the two sites. 
	  Due to physical meshings, the customer wants to use CE1 and CE2 as primary (for instance CE3 and CE4 are hosted in a remote site for redundancy purpose compared the customer hosts).
	  </t>
	  <t>Without any hint (constraint) provided, the PCE may compute the two disjoint LSPs as a batch leading to PE1->PE2 using a path PE1->R1->R2->PE2 and PE3->PE4 using PE3->R3->R4->PE4.
	  In this case, even if the disjointness constraint is fulfilled, the path from PE1 to PE2 does not use the best optimal path available in the network (RTD may be higher): the customer requirement is thus not completely fulfilled.
	  </t>
	  <t>The usage of the P-Flag allows the PCE to know that a particular LSP should be tied to the best path as if the disjointness constraint was not requested.</t>
	  <t>In our example, if the P-Flag is set to the LSP PE1->PE2, the PCE should use the path PE1->R1->R3->R4->R2->PE2 for this LSP, while the other LSP should be disjoint from this path. 
	  The second LSP will be placed on PE3->R5->R6->PE4 as it is allowed to be longer.</t>
	  <t>
	  Driving the PCE disjointness computation may be done in other ways by for instance setting a metric boundary reflecting an RTD boundary. Other constraints may also be used.</t>
	  <t>The P-Flag allows a simple expression that the disjointness constraint should not make the LSP worst.</t>
	  <t>
	  Any constraint added to a path disjointness computation may reduce the chance to find suitable paths. The usage of the P-flag, as any other constraint, may prevent to find a disjoint path.
	  In the example above, if we consider that the router R5 is down, if PE1->PE2 has the P-flag set, there is no room available to place PE3->PE4 (the disjointness constraint cannot be fulfilled).
	  If PE->PE2 has the P-flag unset, the algorithm may be able to place PE1->PE2 on R1->R2 link leaving a room for PE3->PE4 using the R3->R4 link.
	  When using P-flag or any additional constraint on top of the disjointness constraint, the user should be aware that there is less chance to fulfill the disjointness constraint.
	  </t>
	  <t>Multiple LSPs in the same disjoint group may have the P-flag set. In such a case, those LSPs may not be disjoint from each other but will be disjoint from others LSPs in the group that have the P-flag unset.</t> 
     <figure title="Figure 4">
	 <artwork>
         _________________________________________
        /                                         \
       /        +------+                           \
      |         | PCE  |                            |
      |         +------+                            |
      |                                             |
      |                                             |
      | +------+           10             +------+  |
CE1 ****| PE 1 | ----- R1 ---- R2 ------- | PE 2 |**** CE2
      | +------+       |  \     |         +------+  |
      |                |   \2   |                   |
      |                |    \   |                   |
      | +------+       |     \  |         +------+  |
CE3 ****| PE 3 | ----- R3 ---- R4 ------- | PE 4 |**** CE4
      | +------+                          +------+  |
      |                                             |
       \                                           /
        \_________________________________________/
	
	  </artwork>
	  </figure>
	  <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 disjoint and may use a longer path.
	  </t>
	  <t>
	  Regarding PE1->PE2, there are two paths that are satisfying the constraints (ECMP): PE1->R1->R4->R2->PE2 (path 1) and PE1->R1->R3->R4->R2->PE2 (path 2).
	  An implementation may choose one of the paths or even use boths (using both may happen in case Segment Routing TE is used, allowing ECMP).
	  </t>
	  <t>If the implementation elects only one path, there is a chance that picking up one path may prevent disjointness. In our example, if path 2 is used for PE1->PE2, there is no room left for PE3->PE4 while if path 1 is used, PE3->PE4 can be placed on R3->R4 link.</t>
	  <t>When P-flag is set for an LSP and when ECMPs are available, an implementation MAY select a path that allows disjointness.</t>
	  </section>
	  
	  <section title="Disjointness computation issues" toc="default">
	  <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-bit is set (Strict disjointness requested), if disjointness cannot be found for one or more LSPs, the PCE SHOULD reply with a PCUpd message containing an empty ERO. In addition to the empty ERO Object, the PCE MAY add the NO-PATH-VECTOR TLV (<xref target="RFC5440"/>) in the LSP Object.</t>
	  <t>This document adds new bits in the NO-PATH-VECTOR TLV:</t>
	  <t>
	  <list style="none">
	  <t>bit "TBD3": when set, the PCE indicates that it could not find a disjoint path for this LSP.</t>
	  <t>bit "TBD4": when set, the PCE indicates that it does not support the requested disjointness computation.</t>
	  </list>
	  </t>
	  <t>The NO-PATH-VECTOR TLV MAY also be used when T-bit is unset and when the PCE cannot provide a path for an LSP in the disjoint group.</t>
	  <t>When the T-bit is unset, the PCE is allowed to relax the constraint if it cannot be satisfied. This document introduces a new RELAXED-CONSTRAINT-TLV that MAY be used by a PCE to indicate that some constraints have been relaxed.</t>
	  <t>When used, the RELAXED-CONSTRAINT-TLV SHOULD be included in the LSP Object of a PCUpd message. The RELAXED-CONSTRAINT-TLV has the following format:
	  <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 = [TBD5]         |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Object-Class#1| OT#1  |Res|P|I|   Object Length (bytes)       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      //                        (Object body)                        //
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	  ...
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Object-Class#n| OT#n  |Res|P|I|   Object Length (bytes)       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      //                        (Object body)                        //
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	  </artwork>
	  </figure>
	  </t>
	  <t>
	  All LSPs in a particular disjoint group MUST use the same combination of T,S,N,L flags in the DISJOINTNESS-INFORMATION-TLV. If a PCE receives PCRpt messages for LSPs belonging to the same disjoint group but having an inconsistent combination of T,S,N,L flags, the PCE SHOULD NOT try to compute disjointness path and SHOULD reply a PCErr with Error-type 5 (Policy Violation) and Error-Value TBD6 (Inconsistent parameters in DISJOINTNESS-INFORMATION TLV) to all PCCs involved in the disjoint group.
	  </t>
	  </section>

    </section>
    



    <section title="Security Considerations" toc="default">
      <t>This document defines one new type for association, which do not add any new
      security concerns beyond those discussed in <xref target="RFC5440"/>,
      <xref target='I-D.ietf-pce-stateful-pce'/> and <xref target='I-D.ietf-pce-association-group'/> in itself.
	  </t>
    </section>

    <section title="IANA Considerations" toc="default">
		<section title="Association object Type Indicators" toc="default">
		<t>This document defines the following new association type originally
		defined in <xref target='I-D.ietf-pce-association-group'/>.</t>
	<t>
	 <figure title="" suppress-title="false" align="left" alt="" width="" height="">
	   <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
	Value                     Name                             Reference

	TBD1                      Disjoint-group 
							  Association Type                 [This I.D.]
	]]></artwork>
			</figure>
		  </t>
		  </section>
		  <section  title="PCEP TLVs" toc="default">
		  <t>This document defines the following new PCEP TLVs:</t>
		   <figure title="" suppress-title="false" align="left" alt="" width="" height="">
	<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
	Value     Name                                   Reference

	TBD2      DISJOINTNESS-INFORMATION-TLV           [This I.D.]
    TBD5      RELAXED-CONSTRAINT-TLV                 [This I.D.]
	]]></artwork>
			</figure>	 
			<t>
			IANA is requested to manage the space of flags carried in the DISJOINTNESS-INFORMATION TLV defined in this document, numbering them from 0 as the least significant bit.
			</t>
			<t>New bit numbers may be allocated in future.</t>
			<t>IANA is requested to allocate the following bit numbers in the DISJOINTNESS-INFORMATION-TLV flag space:</t>
		   <figure title="" suppress-title="false" align="left" alt="" width="" height="">
	<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
	Bit Number     Name                                   Reference
		0          Link disjointness                      [This I.D.]
		1          Node disjointness                      [This I.D.]
		2          SRLG disjointness                      [This I.D.]
		3          Shortest-path                          [This I.D.]
		4          Strict disjointness                    [This I.D.]
	]]></artwork>
			</figure>
		</section>
		<section   title="NO-PATH-VECTOR bit Flags" toc="default">
		<t>
		This documents defines new bits for the NO-PATH-VECTOR TLV in the
   "NO-PATH-VECTOR TLV Flag Field" sub-registry of the "Path Computation
   Element Protocol (PCEP) Numbers" registry:
		</t>
	  <figure title="" suppress-title="false" align="left" alt="" width="" height="">
	<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
	Bit Number     Name                                   Reference
		TBD3       Disjoint path not found                [This I.D.]

		TBD4       Requested disjointness                 [This I.D.]
                   computation not supported
	]]></artwork>
	   </figure>
	   </section>
       <section   title="PCEP-ERROR codes" toc="default">
	   <t>IANA is requested to allocate new Error Types and Error Values within
   the " PCEP-ERROR Object Error Types and Values" sub-registry of the
   PCEP Numbers registry, as follows:
	  <figure title="" suppress-title="false" align="left" alt="" width="" height="">
	  <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
  Error-Type     Meaning
      5          Policy violation
	             Error-value=TBD6: Inconsistent parameters 
                                   in DISJOINTNESS-INFORMATION TLV
								   
      6          Mandatory Object missing
                 Error-value=TBD7: DISJOINTNESS-INFORMATION TLV missing
		]]></artwork>
	   </figure>
	   </t>
	   </section>
    </section>
<section title="Manageability Considerations" toc="default">
      <section title="Control of Function and Policy" toc="default">
        <t>
   An operator MUST be allowed to configure the disjointness associations and parameters at PCEP peers
   and associate it with the LSPs. </t>
      </section>
      <section title="Information and Data Models" toc="default">
        <t><xref target="RFC7420"/> describes the PCEP MIB, there are no new MIB Objects
        for this document.</t>
      </section>
      <section title="Liveness Detection and Monitoring" toc="default">
        <t>Mechanisms defined in this document do not imply any new liveness detection
        and monitoring requirements in addition to those already listed in
        <xref target="RFC5440"/>.</t>
      </section>
      <section title="Verify Correct Operations" toc="default">
        <t>Mechanisms defined in this document do not imply any new operation
        verification requirements in addition to those already listed in
        <xref target="RFC5440"/>.</t>
      </section>
      <section title="Requirements On Other Protocols" toc="default">
        <t>Mechanisms defined in this document do not imply any new requirements
        on other protocols.</t>
      </section>
      <section title="Impact On Network Operations" toc="default">
        <t>Mechanisms defined in this document do not have any impact on
        network operations in addition to those already listed in
        <xref target="RFC5440"/>.</t>
      </section>
    </section>
    <section title="Acknowledgments" toc="default">
      <t>A special thanks to author 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 for his useful comments.</t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
    <?rfc include="reference.RFC.2119.xml" ?>
    <?rfc include="reference.RFC.4655.xml" ?>
    <?rfc include="reference.RFC.5440.xml" ?>
	<?rfc include="reference.RFC.5541.xml" ?>
    <?rfc include="reference.I-D.ietf-pce-association-group"?>
    <?rfc include="reference.I-D.ietf-pce-stateful-pce"?>
	<?rfc include="reference.I-D.dhody-pce-of-diverse"?>
    </references>
    <references title="Informative References">
     <?rfc include="reference.RFC.7150.xml" ?>
     <?rfc include="reference.RFC.7420.xml" ?>
     <?rfc include="reference.I-D.ietf-pce-pce-initiated-lsp"?>

    </references>


  </back>
</rfc>
