<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-koldychev-pce-multipath-05" category="std">

  <front>
    <title abbrev="PCEP Extensions for Multipath">PCEP Extensions for Signaling Multipath Information</title>

    <author initials="M." surname="Koldychev" fullname="Mike Koldychev">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>mkoldych@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Sivabalan" fullname="Siva Sivabalan">
      <organization>Ciena Corporation</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Juniper Networks, Inc.</organization>
      <address>
        <email>tsaad@juniper.net</email>
      </address>
    </author>
    <author initials="V." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks, Inc.</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="H." surname="Bidgoli" fullname="Hooman Bidgoli">
      <organization>Nokia</organization>
      <address>
        <email>hooman.bidgoli@nokia.com</email>
      </address>
    </author>
    <author initials="B." surname="Yadav" fullname="Bhupendra Yadav">
      <organization>Ciena</organization>
      <address>
        <email>byadav@ciena.com</email>
      </address>
    </author>
    <author initials="S." surname="Peng" fullname="Shuping Peng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>

    <date year="2021" month="February" day="16"/>

    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    

    <abstract>


<t>Current PCEP standards allow only one intended and/or actual path to be present
in a PCEP report or update. Applications that require multipath support such as
SR Policy require an extension to allow signaling multiple intended and/or
actual paths within a single PCEP message. This document introduces such an
extension. Encoding of multiple intended and/or actual paths is done by
encoding multiple Explicit Route Objects (EROs) and/or multiple Record Route
Objects (RROs). A special separator object is defined in this document, to
facilitate this. This mechanism is applicable to SR-TE and RSVP-TE and is
dataplane agnostic.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Path Computation Element (PCE) Communication Protocol (PCEP)
<xref target="RFC5440"/> 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 the Stateful PCE Model <xref target="RFC8231"/> describes a set
of extensions to PCEP that enable active control of Multiprotocol Label
Switching Traffic Engineering (MPLS-TE) and Generalized MPLS (GMPLS)
tunnels.  <xref target="RFC8281"/> 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 dynamic centralized
control of a network.</t>

<t>PCEP Extensions for Segment Routing <xref target="RFC8664"/>
specifies extensions to the Path Computation Element Protocol (PCEP)
that allow a stateful PCE to compute and initiate Traffic Engineering
(TE) paths, as well as for a PCC to request a path subject to certain
constraint(s) and optimization criteria in SR networks.</t>

<t>Segment Routing Policy for Traffic Engineering
<xref target="I-D.ietf-spring-segment-routing-policy"/> details the concepts of SR
Policy and approaches to steering traffic into an SR Policy.  In
particular, it describes the SR candidate-path as a collection of one
or more Segment-Lists.  The current PCEP standards only allow for
signaling of one Segment-List per Candidate-Path.  PCEP extension to
support Segment Routing Policy Candidate Paths
<xref target="I-D.ietf-pce-segment-routing-policy-cp"/> specifically avoids
defining how to signal multipath information, and states that this
will be defined in another document.</t>

<t>This document defines the required extensions that allow the signaling
of multipath information via PCEP.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”,
“MAY”, and “OPTIONAL” 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 anchor="terms-and-abbreviations" title="Terms and Abbreviations">

<t>The following terms are used in this document:</t>

<t>PCEP Tunnel:</t>

<t><list style='empty'>
  <t>The object identified by the PLSP-ID, see <xref target="I-D.koldychev-pce-operational"/> for more details.</t>
</list></t>

</section>
</section>
<section anchor="motivation" title="Motivation">

<t>This extension is motivated by the use-cases described below.</t>

<section anchor="signaling-multiple-segment-lists-of-an-sr-candidate-path" title="Signaling Multiple Segment-Lists of an SR Candidate-Path">

<t>The Candidate-Path of an SR Policy is the unit of report/update in PCEP, see
<xref target="I-D.ietf-pce-segment-routing-policy-cp"/>.  Each Candidate-Path can
contain multiple Segment-Lists and each Segment-List is encoded by
one ERO.  However, each PCEP LSP can contain only a
single ERO (containing multiple SR-ERO subobject), which prevents us from encoding multiple Segment-
Lists within the same SR Candidate-Path.</t>

<t>With the help of the protocol extensions defined in this document,
this limitation is overcome.</t>

</section>
<section anchor="splitting-of-requested-bandwidth" title="Splitting of Requested Bandwidth">

<t>A PCC may request a path with 80 Gbps of bandwidth, but all links in the
network have only 50 Gbps capacity.  The PCE can return two paths, that can
together carry 80 Gbps. The PCC can then equally or unequally split the incoming
80 Gbps of traffic among the two paths. <xref target="WEIGHT-TLV"/> introduces a
new TLV that carries the path weight that allows for distribution of incoming
traffic on to the multiple paths.</t>

</section>
<section anchor="providing-backup-path-for-protection" title="Providing Backup path for Protection">

<t>It is desirable for the PCE to compute and signal to the PCC a backup path
that is used to protect a primary path within the multipaths in a given LSP.</t>

<t>Note that <xref target="RFC8745"/> specify the Path Protection association among LSPs. The use of <xref target="RFC8745"/> with multipath is out of scope of this document and is for future study.</t>

<t>When multipath is used, a backup path may protect one or more primary
paths.  For this reason, primary and backup path identifiers are needed to
indicate which backup path(s) protect which primary path(s).
<xref target="BACKUP-TLV"/> introduces a new TLV that carries the required information.</t>

</section>
</section>
<section anchor="protocol-extensions" title="Protocol Extensions">

<section anchor="multipath-capability-tlv" title="Multipath Capability TLV">

<t>We define the MULTIPATH-CAP TLV that MAY be present in the OPEN
object and/or the LSP object.  The purpose of this TLV is two-fold:</t>

<t><list style="numbers">
  <t>From PCC: it tells how many multipaths per PCEP Tunnel, the PCC can install in
forwarding.</t>
  <t>From PCE: it tells that the PCE supports this standard and how
many multipaths per PCEP Tunnel, the PCE can compute.</t>
</list></t>

<t>Only the first instance of this TLV can be processed, subsequent
instances SHOULD be ignored.</t>

<t><xref target="OP"/> specify the usage of this TLV with Open message (within the OPEN object) and other PCEP messages (within the LSP object).</t>

<figure title="MULTIPATH-CAP TLV format" anchor="fig-multipath-cap"><artwork><![CDATA[
   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              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Number of Multipaths      |            Flags          |B|W|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Type: TBD1 for “MULTIPATH-CAP” TLV.</t>

<t>Length: 4.</t>

<t>Number of Multipaths: the maximum number of multipaths per PCEP 
   Tunnel. The value 0 indicates unlimited number.</t>

<t>Flags: Following bits are defined:</t>

<figure><artwork><![CDATA[
 W-flag: whether MULTIPATH-WEIGHT-TLV is supported.

 B-flag: whether MULTIPATH-BACKUP-TLV is supported.
 
 Unassigned bits are for future use. They MUST be set to 0 on
 transmission and MUST be ignored on receipt. 
]]></artwork></figure>

</section>
<section anchor="path-attributes-object" title="Path Attributes Object">

<t>We define the PATH-ATTRIB object that is used to carry per-path
information and to act as a separator between several ERO/RRO objects
in the &lt;intended-path&gt;/&lt;actual-path&gt; RBNF element.
The PATH-ATTRIB object always precedes the ERO/RRO that it applies to.  If
multiple ERO/RRO objects are present, then each ERO/RRO object MUST be
preceded by an PATH-ATTRIB object that describes it.</t>

<t>The PATH-ATTRIB Object-Class value is TBD2.</t>

<t>The PATH-ATTRIB Object-Type value is 1.</t>

<figure title="PATH-ATTRIB object format" anchor="fig-path-attrib"><artwork><![CDATA[
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Flags                           |  O  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Path ID                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                          Optional TLVs                        ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Flags (32-bits): Following bits are assigned -</t>

<figure><artwork><![CDATA[
 O (Operational - 3 bits): operational state of the path, same 
 values as the identically named field in the LSP object {{RFC8231}}.

 Unassigned bits are for future use. They MUST be set to 0 on
 transmission and MUST be ignored on receipt. 
]]></artwork></figure>

<t>Path ID: 4-octet identifier that identifies a path in the set of
   multiple paths. It uniquely identifies a path (encoded in the 
   ERO/RRO) within the set of multiple paths under the PCEP LSP. Once a 
   path changes, a new Path ID is assigned.</t>

<t>TLVs that may be included in the PATH-ATTRIB object are described in the
   following sections.  Other optional TLVs could be defined by future
   documents to be included within the PATH-ATTRIB object body.</t>

</section>
<section anchor="WEIGHT-TLV" title="Multipath Weight TLV">

<t>We define the MULTIPATH-WEIGHT TLV that MAY be present in the
   PATH-ATTRIB object.</t>

<figure title="MULTIPATH-WEIGHT TLV format" anchor="fig-multipath-path-attrib"><artwork><![CDATA[
   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              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                             Weight                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Type: TBD3 for “MULTIPATH-WEIGHT” TLV.</t>

<t>Length: 4.</t>

<t>Weight: weight of this path within the multipath, if W-ECMP is
   desired. The fraction of flows a specific ERO/RRO carries is derived
   from the ratio of its weight to the sum of all other multipath ERO/RRO weights.</t>

<t>When the MULTIPATH-WEIGHT TLV is absent from the PATH-ATTRIB object,
   or the PATH-ATTRIB object is absent from the
   &lt;intended-path&gt;/&lt;actual-path&gt;, then the Weight of the corresponding
   path is taken to be “1”.</t>

</section>
<section anchor="BACKUP-TLV" title="Multipath Backup TLV">

<t>This document introduces a new MULTIPATH-BACKUP TLV that is optional and can
   be present in the PATH-ATTRIB object.</t>

<t>This TLV is used to indicate the presence of a backup path that is
   used for protection in case of failure of the primary path. The format of
   the MULTIPATH-BACKUP TLV is:</t>

<figure title="MULTIPATH-BACKUP TLV format" anchor="figctrl"><artwork><![CDATA[
   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              |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       Backup Path Count       |             Flags           |B|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID 1                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID 2                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              ...                              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Backup Path ID n                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork></figure>

<t>Type: TBD4 for “MULTIPATH-BACKUP” TLV</t>

<t>Length: 4 + (N * 4) (where N is the Backup Path Count)</t>

<t>Backup Path Count: Number of backup path(s).</t>

<t>Flags (16 bits): a flag field. Currently a single flag “B bit” is defined.<vspace />
   Unused flags MUST be set to zero while sending and ignored on receipt.</t>

<figure><artwork><![CDATA[
 B: If set, indicates a pure backup path. This is a path that only
 carries rerouted traffic after the protected path fails. If this flag
 is not set, or if the MULTIPATH-BACKUP TLV is absent,
 then the path is assumed to be primary that
 carries normal traffic.
]]></artwork></figure>

<t>Backup Path ID(s): a series of 4-octet identifier(s) that identify the
   backup path(s) in the set that protect this primary path.</t>

</section>
<section anchor="CCP" title="Composite Candidate Path">

<t>SR Policy Architecture <xref target="I-D.ietf-spring-segment-routing-policy"/> defines the concept of a
Composite Candidate Path. Unlike a Non-Composite Candidate Path, which contains
Segment Lists, the Composite Candidate Path contains
Colors of other policies. The traffic that is steered into a Composite Candidate Path is
split among the policies that are identified by the Colors contained in
the Composite Candidate Path. The split can be either ECMP or UCMP by adjusting the
weight of each color in the Composite Candidate Path,
in the same manner as the weight of each
Segment List in the Non-Composite Candidate Path is adjusted.</t>

<t>To signal the Composite Candidate Path, we make use of the COLOR TLV, defined in
<xref target="I-D.peng-pce-te-constraints"/>. For a Composite Candidate Path, the COLOR TLV
is included in the PATH-ATTRIB Object, thus allowing each Composite Candidate Path
to do ECMP/UCMP among SR Policies or Tunnels identified by its constituent Colors.
Only one COLOR TLV SHOULD be included into the PATH-ATTRIB object. If multiple
COLOR TLVs are contained in the PATH-ATTRIB object, only the first one MUST be
processed and the others SHOULD be ignored.</t>

<t>An empty SR-ERO/SR-RRO object MUST be included as per the existing RBNF, i.e.,
SR-ERO/SR-RRO MUST contain no sub-objects.
If the head-end receives a non-empty SR-ERO/SR-RRO,
then it MUST send PCError message with Error-Type 19 (“Invalid Operation”) and
Error-Value = TBD8 (“Non-empty path”).</t>

<t>See <xref target="CCPEX"/> for an example of the encoding.</t>

</section>
</section>
<section anchor="OP" title="Operation">

<t>When the PCC wants to indicate to the PCE that it wants to get
multipaths for a PCEP Tunnel, instead of a single path, it can do (1) or both (1) and (2) of the
following:</t>

<t>(1) Send the MULTIPATH-CAP TLV in the OPEN object during session
       establishment.  This applies to all PCEP Tunnels on the PCC,
       unless overridden by PCEP Tunnel specific information.</t>

<t>(2) Additionally send the MULTIPATH-CAP TLV in the LSP object for a particular
       PCEP Tunnel in the PCRpt or PCReq message.  This applies to the specified
       PCEP Tunnel and overrides the information from the OPEN object.</t>

<t>When PCE computes the path for a PCEP Tunnel, it MUST NOT return more
multipaths than the corresponding value of “Number of Multipaths”
from the MULTIPATH-CAP TLV.  If this TLV is absent (from both OPEN
and LSP objects), then the “Number of Multipaths” is assumed to be 1.</t>

<t>If the PCE supports this standard, then it MUST include the
MULTIPATH-CAP TLV in the OPEN object.  This tells the PCC that it can
report multiple ERO/RRO objects per PCEP Tunnel to this PCE.  If the PCE does not include
the MULTIPATH-CAP TLV in the OPEN object, then the PCC MUST assume
that the PCE does not support this standard and fall back to
reporting only a single ERO/RRO. The PCE MUST NOT include MULTIPATH-CAP TLV
in the LSP object in any other PCEP message towards the PCC and the PCC MUST ignore it if received.</t>

<t>The Path ID of each ERO/RRO MUST be unique within that LSP.
If a PCEP speaker detects that there are two paths with the same Path ID,
then the PCEP speaker SHOULD send PCError message with
Error-Type = 1 (“Reception of an invalid object”) and
Error-Value = TBD5 (“Conflicting Path ID”).</t>

<section anchor="signaling-multiple-paths-for-loadbalancing" title="Signaling Multiple Paths for Loadbalancing">

<t>The PATH-ATTRIB object can be used to signal multiple path(s) and indicate
(un)equal loadbalancing amongst the set of multipaths. In this case, the
PATH-ATTRIB is populated for each ERO as follows:</t>

<t><list style="numbers">
  <t>The PCE assigns a unique Path ID to each ERO path and populates
it inside the PATH-ATTRIB object. The Path ID is unique within the
context of a PLSP or PCEP Tunnel.</t>
  <t>The MULTIPATH-WEIGHT TLV MAY be carried inside the PATH-ATTRIB object. A
weight is populated to reflect the relative loadshare that is to be
carried by the path. If the MULTIPATH-WEIGHT is not carried inside a
PATH-ATTRIB object, the default weight 1 MUST be assumed when computing
the loadshare.</t>
  <t>The fraction of flows carried by a specific primary path is derived
from the ratio of its weight to the sum of all other multipath weights.</t>
</list></t>

</section>
<section anchor="signaling-multiple-paths-for-protection" title="Signaling Multiple Paths for Protection">

<t>The PATH-ATTRIB object can be used to describe a set of backup path(s) protecting
a primary path within a PCEP Tunnel. In this case, the PATH-ATTRIB is populated for each ERO as
follows:</t>

<t><list style="numbers">
  <t>The PCE assigns a unique Path ID to each ERO path and populates
it inside the PATH-ATTRIB object. The Path ID is unique within the
context of a PLSP or PCEP Tunnel.</t>
  <t>The MULTIPATH-BACKUP TLV MUST be added inside the PATH-ATTRIB object for each
ERO that is protected. The backup path ID(s) are populated in the
MULTIPATH-BACKUP TLV to reflect the set of backup path(s) protecting the
primary path. The Length field and Backup Path Number in the MULTIPATH-BACKUP
are updated according to the number of backup path ID(s) included.</t>
  <t>The MULTIPATH-BACKUP TLV MAY be added inside the PATH-ATTRIB object for each
ERO that is unprotected. In this case, MULTIPATH-BACKUP does not carry
any backup path IDs in the TLV. If the path acts as a pure backup – i.e.
the path only carries rerouted traffic after the protected path(s) fail– then
the B flag MUST be set.</t>
</list></t>

<t>Note that if a given path has the B-flag set, then there MUST be some other path
within the same LSP that uses the given path as a backup.
If this condition is violated, then the PCEP speaker SHOULD send a PCError message
with Error-Type = 10 (“Reception of an invalid object”) and
Error-Value = TBD6 (“No primary path for pure backup”).</t>

<t>Note that a given PCC may not support certain backup combinations,
such as a backup path that is itself protected by another backup path, etc.
If a PCC is not able to implement a requested backup scenario,
the PCC SHOULD send a PCError message with
Error-Type = 19 (“Invalid Operation”) and
Error-Value = TBD7 (“Not supported path backup”).</t>

</section>
</section>
<section anchor="RBNF" title="PCEP Message Extensions">

<t>The RBNF of PCReq, PCRep, PCRpt, PCUpd and PCInit messages currently use a combination
of &lt;intended-path&gt; and/or &lt;actual-path&gt;.
As specified in Section 6.1 of <xref target="RFC8231"/>, &lt;intended-path&gt; is represented by the
ERO object and &lt;actual-path&gt; is represented by the RRO object:</t>

<figure><artwork><![CDATA[
   <intended-path> ::= <ERO>

   <actual-path> ::= <RRO>
]]></artwork></figure>

<t>In this standard, we extend these two elements to allow multiple ERO/RRO objects to be
present in the &lt;intended-path&gt;/&lt;actual-path&gt;:</t>

<figure><artwork><![CDATA[
   <intended-path> ::= (<ERO>|
                       (<PATH-ATTRIB><ERO>)
                       [<intended-path>])
              

   <actual-path> ::= (<RRO>|
                      (<PATH-ATTRIB><RRO>)
                      [<actual-path>])
]]></artwork></figure>

</section>
<section anchor="examples" title="Examples">

<section anchor="sr-policy-candidate-path-with-multiple-segment-lists" title="SR Policy Candidate-Path with Multiple Segment-Lists">

<t>Consider the following sample SR Policy, taken from<vspace />
<xref target="I-D.ietf-spring-segment-routing-policy"/>.</t>

<figure><artwork><![CDATA[
        SR policy POL1 <headend, color, endpoint>
            Candidate-path CP1 <protocol-origin = 20, originator =
    100:1.1.1.1, discriminator = 1>
                Preference 200
                Weight W1, SID-List1 <SID11...SID1i>
                Weight W2, SID-List2 <SID21...SID2j>
            Candidate-path CP2 <protocol-origin = 20, originator =
    100:2.2.2.2, discriminator = 2>
                Preference 100
                Weight W3, SID-List3 <SID31...SID3i>
                Weight W4, SID-List4 <SID41...SID4j>
]]></artwork></figure>

<t>As specified in <xref target="I-D.ietf-pce-segment-routing-policy-cp"/>, CP1 and CP2 
are signaled as separate state-report elements and each has 
a unique PLSP-ID, assigned by the PCC. 
Let us assign PLSP-ID 100 to CP1 and PLSP-ID 200 to CP2.</t>

<t>The state-report for CP1 can be encoded as:</t>

<figure><artwork><![CDATA[
<state-report> =
        <LSP PLSP_ID=100>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1>>
        <ERO SID-List1>
        <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W2>>
        <ERO SID-List2>
]]></artwork></figure>

<t>The state-report for CP2 can be encoded as:</t>

<figure><artwork><![CDATA[
<state-report> =
        <LSP PLSP_ID=200>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W3>>
        <ERO SID-List3>
        <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W4>>
        <ERO SID-List4>
]]></artwork></figure>

<t>The above sample state-report elements only 
specify the minimum mandatory objects, 
of course other objects like SRP, LSPA, METRIC, etc., are allowed to be 
inserted.</t>

<t>Note that the syntax</t>

<figure><artwork><![CDATA[
<PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1>>
]]></artwork></figure>

<t>, simply means that this is PATH-ATTRIB object 
with Path ID field set to “1” and 
with a MULTIPATH-WEIGHT TLV carrying weight of “W1”.</t>

</section>
<section anchor="two-primary-paths-protected-by-one-backup-path" title="Two Primary Paths Protected by One Backup Path">

<t>Suppose there are 3 paths: A, B, C.
Where A,B are primary and C is to be used only when A or B fail.
Suppose the Path IDs for A, B, C are respectively 1, 2, 3.
This would be encoded in a state-report as:</t>

<figure><artwork><![CDATA[
<state-report> =
        <LSP>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <BACKUP-TLV B=0, Backup_Paths=[3]>>
        <ERO A>
        <PATH-ATTRIB Path_ID=2 <BACKUP-TLV B=0, Backup_Paths=[3]>>
        <ERO B>
        <PATH-ATTRIB Path_ID=3 <BACKUP-TLV B=1, Backup_Paths=[]>>
        <ERO C>
]]></artwork></figure>

<t>Note that the syntax</t>

<figure><artwork><![CDATA[
<PATH-ATTRIB Path_ID=1 <BACKUP-TLV B=0, Backup_Paths=[3]>>
]]></artwork></figure>

<t>, simply means that this is PATH-ATTRIB object 
with Path ID field set to “1” and 
with a MULTIPATH-BACKUP TLV that has B-flag cleared and contains
a single backup path with Backup Path ID of 3.</t>

</section>
<section anchor="CCPEX" title="Composite Candidate Path">

<t>Consider the following Composite Candidate Path, taken from<vspace />
<xref target="I-D.ietf-spring-segment-routing-policy"/>.</t>

<figure><artwork><![CDATA[
   SR policy POL100 <headend = H1, color = 100, endpoint = E1>
        Candidate-path CP1 <protocol-origin = 20, originator =
   100:1.1.1.1, discriminator = 1>
            Preference 200
            Weight W1, SR policy <color = 1>
            Weight W2, SR policy <color = 2>
]]></artwork></figure>

<t>This is signaled in PCEP as:</t>

<figure><artwork><![CDATA[
        <LSP PLSP_ID=100>
        <ASSOCIATION>
        <END-POINT>
        <PATH-ATTRIB Path_ID=1 <WEIGHT-TLV Weight=W1> <COLOR-TLV Color=1>>
        <SR-ERO (empty)>
        <PATH-ATTRIB Path_ID=2 <WEIGHT-TLV Weight=W2> <COLOR-TLV Color=2>>
        <SR-ERO (empty)>
]]></artwork></figure>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<section anchor="pcep-object" title="PCEP Object">
<t>IANA is requested to make the assignment of a new value for the
   existing “PCEP Objects” registry as follows:</t>

<figure><artwork><![CDATA[
 +--------------+-------------+-------------------+-----------------+
 | Object-Class | Name        | Object-Type       | Reference       |
 | Value        |             | Value             |                 |
 +--------------+-------------+-------------------+-----------------+
 | TBD2         | PATH-ATTRIB | 1                 | This document   |
 +--------------+-------------+-------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="pcep-tlv" title="PCEP TLV">
<t>IANA is requested to make the assignment of a new value for the
   existing “PCEP TLV Type Indicators” registry as follows:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | TLV Type   | TLV Name                          | Reference       |
 | Value      |                                   |                 |
 +------------+-----------------------------------+-----------------+
 | TBD1       | MULTIPATH-CAP                     | This document   |
 +------------+-----------------------------------+-----------------+
 | TBD3       | MULTIPATH-WEIGHT                  | This document   |
 +------------+-----------------------------------+-----------------+
 | TBD4       | MULTIPATH-BACKUP                  | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="pcep-error-object" title="PCEP-Error Object">
<t>IANA is requested to make the assignment of a new value for the
   existing “PCEP-ERROR Object Error Types and Values” sub-registry of the
   PCEP Numbers registry for the following errors:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Error-Type | Error-Value                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 10         | TBD5 - Conflicting Path ID        | This document   |
 +------------+-----------------------------------+-----------------+
 | 10         | TBD6 - No primary path for pure   | This document   |
 |            |        backup                     |                 |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD7 - Not supported path backup  | This document   |
 +------------+-----------------------------------+-----------------+
 | 19         | TBD8 - Non-empty path             | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="flags-in-the-multipath-capability-tlv" title="Flags in the Multipath Capability TLV">

<t>IANA is requested to create a new sub-registry to manage the Flag
field of the MULTIPATH-CAP TLV, called “Flags in MULTIPATH-CAP
TLV”.</t>

<t>Following bits are defined:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-13       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 14         | B-flag: Backup support            | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | W-flag: Weighted ECMP support     | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="flags-in-the-path-attribute-object" title="Flags in the Path Attribute Object">

<t>IANA is requested to create a new sub-registry to manage the Flag
field of the PATH-ATTRIBUTE object,
called “Flags in PATH-ATTRIBUTE Object”.</t>

<t>Following bits are defined:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-12       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 13-15      | O-flag: Operational state         | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
<section anchor="flags-in-the-multipath-backup-tlv" title="Flags in the Multipath Backup TLV">

<t>IANA is requested to create a new sub-registry to manage the Flag
field of the MULTIPATH-BACKUP TLV,
called “Flags in MULTIPATH-BACKUP TLV”.</t>

<t>Following bits are defined:</t>

<figure><artwork><![CDATA[
 +------------+-----------------------------------+-----------------+
 | Bit        | Description                       | Reference       |
 +------------+-----------------------------------+-----------------+
 | 0-14       | Unassigned                        | This document   |
 +------------+-----------------------------------+-----------------+
 | 15         | B-flag: Pure backup               | This document   |
 +------------+-----------------------------------+-----------------+
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>None at this time.</t>

</section>
<section anchor="acknowledgement" title="Acknowledgement">

<t>Thanks to Dhruv Dhody for ideas and discussion.</t>

</section>
<section anchor="contributors" title="Contributors">

<figure><artwork><![CDATA[
   Andrew Stone
   Nokia

   Email: andrew.stone@nokia.com
]]></artwork></figure>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor="RFC5440" target='https://www.rfc-editor.org/info/rfc5440'>
<front>
<title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
<author initials='JP.' surname='Vasseur' fullname='JP. Vasseur' role='editor'><organization /></author>
<author initials='JL.' surname='Le Roux' fullname='JL. Le Roux' role='editor'><organization /></author>
<date year='2009' month='March' />
<abstract><t>This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs.  Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering.  PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5440'/>
<seriesInfo name='DOI' value='10.17487/RFC5440'/>
</reference>



<reference  anchor="RFC8231" target='https://www.rfc-editor.org/info/rfc8231'>
<front>
<title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
<author initials='E.' surname='Crabbe' fullname='E. Crabbe'><organization /></author>
<author initials='I.' surname='Minei' fullname='I. Minei'><organization /></author>
<author initials='J.' surname='Medved' fullname='J. Medved'><organization /></author>
<author initials='R.' surname='Varga' fullname='R. Varga'><organization /></author>
<date year='2017' month='September' />
<abstract><t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t><t>Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions.  This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t></abstract>
</front>
<seriesInfo name='RFC' value='8231'/>
<seriesInfo name='DOI' value='10.17487/RFC8231'/>
</reference>



<reference  anchor="RFC8281" target='https://www.rfc-editor.org/info/rfc8281'>
<front>
<title>Path Computation Element Communication Protocol (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful PCE Model</title>
<author initials='E.' surname='Crabbe' fullname='E. Crabbe'><organization /></author>
<author initials='I.' surname='Minei' fullname='I. Minei'><organization /></author>
<author initials='S.' surname='Sivabalan' fullname='S. Sivabalan'><organization /></author>
<author initials='R.' surname='Varga' fullname='R. Varga'><organization /></author>
<date year='2017' month='December' />
<abstract><t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t><t>The extensions for stateful PCE provide active control of Multiprotocol Label Switching (MPLS) Traffic Engineering Label Switched Paths (TE LSPs) via PCEP, for a model where the PCC delegates control over one or more locally configured LSPs to the PCE.  This document describes the creation and deletion of PCE-initiated LSPs under the stateful PCE model.</t></abstract>
</front>
<seriesInfo name='RFC' value='8281'/>
<seriesInfo name='DOI' value='10.17487/RFC8281'/>
</reference>



<reference  anchor="RFC8664" target='https://www.rfc-editor.org/info/rfc8664'>
<front>
<title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing</title>
<author initials='S.' surname='Sivabalan' fullname='S. Sivabalan'><organization /></author>
<author initials='C.' surname='Filsfils' fullname='C. Filsfils'><organization /></author>
<author initials='J.' surname='Tantsura' fullname='J. Tantsura'><organization /></author>
<author initials='W.' surname='Henderickx' fullname='W. Henderickx'><organization /></author>
<author initials='J.' surname='Hardwick' fullname='J. Hardwick'><organization /></author>
<date year='2019' month='December' />
<abstract><t>Segment Routing (SR) enables any head-end node to select any path without relying on a hop-by-hop signaling technique (e.g., LDP or RSVP-TE). It depends only on &quot;segments&quot; that are advertised by link-state Interior Gateway Protocols (IGPs). An SR path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), an explicit configuration, or a Path Computation Element (PCE). This document specifies extensions to the Path Computation Element Communication Protocol (PCEP) that allow a stateful PCE to compute and initiate Traffic-Engineering (TE) paths, as well as a Path Computation Client (PCC) to request a path subject to certain constraints and optimization criteria in SR networks.</t><t>This document updates RFC 8408.</t></abstract>
</front>
<seriesInfo name='RFC' value='8664'/>
<seriesInfo name='DOI' value='10.17487/RFC8664'/>
</reference>



<reference anchor="I-D.ietf-spring-segment-routing-policy">
<front>
<title>Segment Routing Policy Architecture</title>

<author initials='C' surname='Filsfils' fullname='Clarence Filsfils'>
    <organization />
</author>

<author initials='K' surname='Talaulikar' fullname='Ketan Talaulikar'>
    <organization />
</author>

<author initials='D' surname='Voyer' fullname='Daniel Voyer'>
    <organization />
</author>

<author initials='A' surname='Bogdanov' fullname='Alex Bogdanov'>
    <organization />
</author>

<author initials='P' surname='Mattes' fullname='Paul Mattes'>
    <organization />
</author>

<date month='November' day='1' year='2020' />

<abstract><t>Segment Routing (SR) allows a headend node to steer a packet flow along any path.  Intermediate per-flow states are eliminated thanks to source routing.  The headend node steers a flow into an SR Policy. The header of a packet steered in an SR Policy is augmented with an ordered list of segments associated with that SR Policy.  This document details the concepts of SR Policy and steering into an SR Policy.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-spring-segment-routing-policy-09' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-spring-segment-routing-policy-09.txt' />
</reference>



<reference anchor="I-D.ietf-pce-segment-routing-policy-cp">
<front>
<title>PCEP extension to support Segment Routing Policy Candidate Paths</title>

<author initials='M' surname='Koldychev' fullname='Mike Koldychev'>
    <organization />
</author>

<author initials='S' surname='Sivabalan' fullname='Siva Sivabalan'>
    <organization />
</author>

<author initials='C' surname='Barth' fullname='Colby Barth'>
    <organization />
</author>

<author initials='S' surname='Peng' fullname='Shuping Peng'>
    <organization />
</author>

<author initials='H' surname='Bidgoli' fullname='Hooman Bidgoli'>
    <organization />
</author>

<date month='January' day='22' year='2021' />

<abstract><t>This document introduces a mechanism to specify a Segment Routing (SR) policy, as a collection of SR candidate paths.  An SR policy is identified by &lt;headend, color, endpoint> tuple.  An SR policy can contain one or more candidate paths where each candidate path is identified in PCEP by its uniquely assigned PLSP-ID.  This document proposes extension to PCEP to support association among candidate paths of a given SR policy.  The mechanism proposed in this document is applicable to both MPLS and IPv6 data planes of SR.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-pce-segment-routing-policy-cp-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-pce-segment-routing-policy-cp-02.txt' />
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference anchor="I-D.koldychev-pce-operational">
<front>
<title>PCEP Operational Clarification</title>

<author initials='M' surname='Koldychev' fullname='Mike Koldychev'>
    <organization />
</author>

<author initials='S' surname='Sivabalan' fullname='Siva Sivabalan'>
    <organization />
</author>

<author initials='M' surname='Negi' fullname='Mahendra Negi'>
    <organization />
</author>

<author initials='D' surname='Achaval' fullname='Diego Achaval'>
    <organization />
</author>

<author initials='H' surname='Kotni' fullname='Hari Kotni'>
    <organization />
</author>

<date month='August' day='26' year='2020' />

<abstract><t>This document is meant to provide better clarity about how PCEP operates and hence to facilitate better interoperability between different equipment vendors.  The content of this document has been compiled based on the feedback from several multi-vendor interop exercises.  Several constructs are introduced to facilitate this, such as the LSP-DB and the ASSO-DB.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-koldychev-pce-operational-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-koldychev-pce-operational-02.txt' />
</reference>



<reference anchor="I-D.peng-pce-te-constraints">
<front>
<title>PCE TE Constraints for Network Slicing</title>

<author initials='S' surname='Peng' fullname='Shaofu Peng'>
    <organization />
</author>

<author initials='Q' surname='Xiong' fullname='Quan Xiong'>
    <organization />
</author>

<author initials='F' surname='Qin' fullname='Fengwei Qin'>
    <organization />
</author>

<date month='August' day='31' year='2020' />

<abstract><t>This document proposes a set of extensions for PCEP to support the TE constraints of network slicing during path computation, e.g, IGP instance, virtual network, specific application, color template and FA-id etc.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-peng-pce-te-constraints-04' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-peng-pce-te-constraints-04.txt' />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC8745" target='https://www.rfc-editor.org/info/rfc8745'>
<front>
<title>Path Computation Element Communication Protocol (PCEP) Extensions for Associating Working and Protection Label Switched Paths (LSPs) with Stateful PCE</title>
<author initials='H.' surname='Ananthakrishnan' fullname='H. Ananthakrishnan'><organization /></author>
<author initials='S.' surname='Sivabalan' fullname='S. Sivabalan'><organization /></author>
<author initials='C.' surname='Barth' fullname='C. Barth'><organization /></author>
<author initials='I.' surname='Minei' fullname='I. Minei'><organization /></author>
<author initials='M.' surname='Negi' fullname='M. Negi'><organization /></author>
<date year='2020' month='March' />
<abstract><t>An active stateful Path Computation Element (PCE) is capable of computing as well as controlling via Path Computation Element Communication Protocol (PCEP) Multiprotocol Label Switching Traffic Engineering (MPLS-TE) Label Switched Paths (LSPs). Furthermore, it is also possible for an active stateful PCE to create, maintain, and delete LSPs. This document defines the PCEP extension to associate two or more LSPs to provide end-to-end path protection.</t></abstract>
</front>
<seriesInfo name='RFC' value='8745'/>
<seriesInfo name='DOI' value='10.17487/RFC8745'/>
</reference>



<reference  anchor="RFC4655" target='https://www.rfc-editor.org/info/rfc4655'>
<front>
<title>A Path Computation Element (PCE)-Based Architecture</title>
<author initials='A.' surname='Farrel' fullname='A. Farrel'><organization /></author>
<author initials='J.-P.' surname='Vasseur' fullname='J.-P. Vasseur'><organization /></author>
<author initials='J.' surname='Ash' fullname='J. Ash'><organization /></author>
<date year='2006' month='August' />
<abstract><t>Constraint-based path computation is a fundamental building block for traffic engineering systems such as Multiprotocol Label Switching (MPLS) and Generalized Multiprotocol Label Switching (GMPLS) networks.  Path computation in large, multi-domain, multi-region, or multi-layer networks is complex and may require special computational components and cooperation between the different network domains.</t><t>This document specifies the architecture for a Path Computation Element (PCE)-based model to address this problem space.  This document does not attempt to provide a detailed description of all the architectural components, but rather it describes a set of building blocks for the PCE architecture from which solutions may be constructed.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='4655'/>
<seriesInfo name='DOI' value='10.17487/RFC4655'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
H4sIAG7rK2AAA+09a3PbRpLf8SvmlC/ShmRESnYclu0LRTGxbiWRJ8nxbmVT
KRAYSohBgMFDMtd2fvv1a4ABCEhWLHmrdo+piiRipqenp9/dA3e7XScLslAP
1Ww8manJu0xHaRBHqVrEiToPLiM3DKJLdZKHWbBysyt1FMGTpZvBIMedzxN9
3Ty3mOH4sRe5S1jCT9xF1n0bh/7au9LX3ZWnu0szrLv7xPHcTF/GyXqo0sx3
glUyVFmSp9lgd/e73YHjJtodqrM4zxAl5yZO3l4mcb4iBNQb+BO//xG/Uo6T
Zm7k/+qGcQRLr3XqrIKh+jmLvY5K4yRL9CKF39ZL/OUXx3Hz7CpOho7qOgo+
QZQO1UlP/dVgS9/yPk6Ct7r2IE4u3Sj4J5FlqMZB6sXqfJ1megmLHEVej0bp
pRuEQ7UUEnzv4bieFy8rq573gPDX7twN3chaFb+rPaivqiNXjeNkFSd8Ptaa
acozYU0YtbHmBazpur613AVQ+235ZXWp/8mjYKUTdaozPIWGPWYpzPz+Nx7X
i3RWWe6nnjrQOnGX1oI/BelVlKuZe+1G9tP7rnw9p7mta7+CtQP/Mg4Da/FX
cbzEZa0H1XVP47eBay9zRTN6c57xfYTPN8h60FN/d33XZp6Dq3ylIxAF60nD
OdpLzdc4suXkgFtmOrq0GQVWQEEovq6Cf5W7NzpQF9q7iuIwvgxANKzFALnL
lCF8f0VDaUn4RCz31xqERJ39MB70+98NHScwCqF48Ozb/SfwoNvtKneeZonr
ZY4zzpNERxnrCpJNN/FT5YZhfKPiKFzD/zRsCZSIr30Fz78BLQJTczdUpHmy
WM21WiU6BTiwrHIZWKKB4TPYpcpXPmiQnhqtVmHg0X5TlV25GYz5PQ8SrQp1
o9J8RdPS3LtSbuqcn6kZHKS3LsYCP2ij03BxRjUtdCLDCjeQdiykU3UTZFeE
awpzYDChvNRp6l4CphdXQapAQeZLpA0ASmI/93QqaEVOgUFPTSIv9nHheNG6
tqqsTbCBqvO1o83kYubkHRIpyEihajWd/6a9LFXbk7NpumPAFaPPtBcnPo91
irFnOBbordKV9gJYN9UrF5QPzIxpDKGgF0EEGAIVMnu7HSCqs3C9IAwyODZ6
KBRZAnMCy6ZLnO/yac4BCziF87PuxQTRU2fnP83M70HqwNG7K9CMcHCXUZxm
AagF4sFl4PuhdpyvQFUwfUk5OjNkg3G8XOUZsYqahJqOYRvOaAefLEGFMBup
WRKD6YhDejjbcd6//y/g9Cf7+7sfPyqQS8AOWU0rrzJtDmpKa2LV+mrjMEA+
BnhjInc5BrEMq9h0kL0NMNB8yEapmrsp0BX2ggujDXQT7yrIgO458O/79/8N
KO4/ffLk40cgRZORxnnnSPxFHhKAk9jXoeLNPRvs9WFzvk69JJjD9oCHQZcC
9+kSShYzR5OUMR2QB0EZACV4IzCBnQFDwmN3rkPnHCQDsAWWvAC/YBF4wOCX
wCg6we+2T2bH53C6TJofdQQ6PQz+CdvFB2r7R/yx42R5FOkQ2KbA+VkVZ9wh
YA0eAcLJNCid+CZCnADtbhAFWQDb953j81mqcpAkJopsIbVps0TadEigQQpo
GGDrEyHD2HNDB3a8CC5ztr4KtQadyxg4/SoXXYebwxn+GrQ1bNqDM5atORbF
XIBNFq7l5M71JXGH8YZk+0+f7n/86JA0LkCx106K0Gnj+jqH04myznOrhABI
HgHQLHtCxKZzdLbxCEkbdUDLqhsdhvgTt4Dqe4zAUOHqFBZToplZdeAyOsnc
IELCoB0BZbfNuknFqyxYik1TcNYZLOeiigE9LpRLgXR1MomKx+WbsAUqHnUP
e4HOFt10hV91U4bQTRhCd0UQiMcAtdAIfeTpFWhEOLnzM0dWIaFeAdu74CfS
AYBDyOydyeKwoxgNTWF9gJOPIgeUKOivPHSTjgINXWVnGOsB6ABtXZco5qJs
wtGF2mPOW6AxdVB/x6AIhAjd4yDNUFQuEONmc0yGmA8daOSUxo5BVkAp9MPG
BSbIWACcANp20zGWtuUsCgjEmmnlDDBCaD6ArreCMxBGB9lDtK/jwAc7gOYG
4V/BJpDmtAfL8gdlBNOhMyLmFkcBjZBzEwCXgq9hWS43ioH2SWG8gLeqtpvH
8gmJB+FXxK8UJ9JJhrJOYc1ruKnrgB2cHpquC50sA/LX1riyVm/1WgGXw5lt
nbw+v9jq8E91OqXfzyb/+/robHKIv5+/Gh0fF784MuL81fT18WH5WzlzPD05
mZwe8mT4VlW+crZORn/fYsptTWcXR9PT0fHWhnUHW6TFZUMfJQG/LUM3BQ+I
uZnoejCeqf6+qC/0KOFURZf1vwVdpm6utBwT8Sb/iQZvjbIF+pxOB87Lc1fg
R4SsZ9Ir1PJwYBqpx+RLCcqIYtaAnUMm5SI2ijnjYYB5njZ4LEPRxRdkdeCv
lyRLxtXxYQiqXR8cLta1YFW6R4cQZmo0x8TX1fA3BhkiVNwQ9rowEiu6hU7+
JAZTxPEcs1wpXOgp8dNyTUC864FfkKqSzmBu4xsmRD2kD2vqgWwP6aOqZDOl
qt+VY0WUA2Z/cH8yfMaO+TfslSMxkXhEjPsIOeiUCSjQ+tqgAsleglEovdTq
VvC4NU6taC2kIDrDRDIHlRp4vLDIq/hGX2tQuDSFzhmOD9dRZh3Wjo548jBN
bcujimcNLio+AzvGnAHe281VAEBBBq4BD3A0wAIm8VJteuUGVYe3INEDaQwI
7jbPBU71TYDBEYy40uEK6Y6/F86WpYJaHXGH/gzBoIpPAH/FQAuw8iI/5+CC
Z5kYgjO21wDpAHC5CXxkjxFZ86W7rptz3IJ6tqt+nK+Iu+ZmTkfNc1KJsHL0
NmW0tCPWW1254IARxZ/IZJBwiBaytZgwdEXwdECx5Al7xeJokK5FBsniS01q
23OTZG2w6Mn0MU2H5xDo/Z6TDcEgMjJ/pLhpomYA57REZW3tw5hwdxmj5oBR
BQY9EPY3k6MfX110L45/AsG2AjsXNnij4GuDZZIEYjaYXDq4vMosc8HOkg/s
AMKcG/teYGTQ4BgVwRS8xLjQ+YFzdx0Qpx243lvwhmktBIxun5aI6EjitTRI
yJE3IUKD0ydW1TiVQEsXTrYAzd5jkLIehVErXgaZIgmWLhxGwRzC34URJE5w
1SU44BGKYE85zmlMASLA5KgGUwyF/V+Xjm25G7ACaeyxnpczQh+fzx6wQiJW
YBGfWpYYDjknNZZ6oKVZrir2jcJOotEip4ArzXJ/jdi+QZaqgEIydKokIlkx
ZEE1ZJS/EMgRVlI/0CkAkES7KfoshoKIgQ2wMEAJ2zCMToj6TgAqA5Orooes
SehPGySMkirPB572QFcfjMZ/fT1r4GXVysuFC2R5NMCKzldlnFFGNMSiZYp5
DHI+x6zAGmEDOY0nRpBPXh9fHM1GF6+649GsXBycEis9JMpETWeTU0fss6Q0
8GtU7Pyt6JJVnqzitDxlBIvW7Cbugnfgg6lXSvXxMFBtA7sP0S/PIJpJyc9c
utHa5mB0jS1XoVNICWqcAIIZVHsBZ2jhAyS6Af8b5LNHKw3KlSbWSuKhskCK
W50ywsaFJ6YAjAzkT0RsInaOBBxwmKLexUeLIEGbiRhDiFOhD84gisfAC8Tf
YPFSVP6UnuMZqRLvEv3Aywj420cJef9+OqvJb44ZscoCJJHTFcoS58vUtqUv
8GjlECUkJE1v59fSyoTy0IGpnT/++ANptKs2P/2G7wYN3+0xgD483FP76ol6
qr5Vz9R39/kOQHzd/cz/AMaHCmIXa1BYlU/1+bGOLoG09vMHxeM0X87hKIrE
D3HeJh4/hO5lauFw8OHNw+CBZ/t+qL5aBJdWgQncB0XFrhdbmzqEldTWRxI/
pN9QXRwc9km9V4dv4XgWU6bjUO3zn03bHrJtc98Fy3ypomJEk0jS0iSWbKWu
3TDXwCRGe2OCipw0UKsMidclOg7BTpgwZh5kbAHE4xsqh/XBm+4Cxg4xiiJh
KTdWuiuo90S3gKzKxIPWiaVtqE2kefz/1xEYY5B+dLkNapbdBONIG14rimDn
lLFDp2FXSRELna0oXQYphT0o7Gak6BR0fxLt6WAFGh2noEVhl2CUseME5OO8
dd2g0DZGFxdnRwcmlKt7L+w+wkFRvsWxo3RKK8aYMOQ0TJkBN+naFMMK8JUg
JvjmDOICXiN1RC3947nJ4RPwf7z85h/POYsvf6uzg9MflOY0XY/isAaU3fDG
Xado/zyw+myEzYq8nYwz6ZSJwjTTwilrAVXU6IDEknbEQcagqDrMnIEja1II
CjahjZ5lFivg9El1H3w43XEIvCKsj3bg4HDQPpgUXTG2/2+u1m/RnRsfmDl9
aLXe9CEROzq8BRPC5oHw+KN9iemK0yionVsJ88eDmxeyLC6pGGNcGvi/Yl34
6Lb3Bl1UhjuNirvQl11RwFO1PS1zRaoLLCezrRQSZzKLFICLMTalDRgGCUqK
aopiWooWOHWKhWMffD0d+mrDW6qUg4xB+NIq3Sl5DextN/YybWXcElFx5u/U
JB9M7kRjJIcwasGxgpA3jwLwWYEKm9O3TaZI4CAEUYI7ldwMwa8Bt8pJJpvU
U1P0ol0CRCtgnRMc1Y7EUkacsOwp9GWKE1fTJjFspKSqF+YWak0mgTwAK9mK
6RWlrHxnyrEyRplTsutxRYq8OA99OxEOCp4PGMGYSDgt0ryCkUWYBqzmMQTJ
FPFZId8bznqgF/H+Kyt1Qntvi/943B0hIDHOBhb/5pbiXx0AtH3kmG/5PGYA
0KCrG5mpORbYq8cCPKM9HODNDk1Gz0S2rXmvjgoW4KFPxicz7GcACJSJw4CZ
qhTYRyPZvwXlBd2i/lV4ZiYFQ2m8JLjW1L1FuWbKyqChoPQh5pYl08gpvBTC
E8znh6EE0mX+ygDnCansDr3CVnlE/TUnKSzW3hTCDsIxKcZNRbEJA8ff6S6L
w4pA31iUxyJtApphFUeYZykUMGZ53Lc6EiW21d/aUE6SMmXlZOXCmD/aOnhY
odcDpVJbYYLRaFs0fx439W3msBq1l1lZiG0ClSLRxzUAhMNZm2rqURBAKDQT
OXtVpk5hYSwhEae5QYgGvSgrlMlBYUsSFrGuVX6wdhykw//XuI+rcYVLpb8j
j7JGPOpxw4eDx9f8Nmbg2zSd9SPQ4048mvjri+BBn16vd/uAL06P6DHxsE2y
lyXhpgG2tEWzAd6vG2CescVFAmXZX/W12j5Vf1H7O2r7BpsA1KmpTW9IyQ5N
3fh6aGXzquWSnh3E9Z+aMMxVmCHjGKqnpNsVy8Wm8ZMebx3g+C2rLbLHSbLX
EStiAluLmf6pkxiLMyF+Q9aLi0+bcZKddDsYqqMFguhYCUQXKx3a3pF0XAZF
zEO2AeuuDMZ4FInG2jxaGVP3XGQS3YjlgGdcVaTWBVyc/B3cEoOCP6I4Y5Tg
JIPFbfZCbH9HgkVj0o3NhugoX7LNm5dmCXGvok1Ny6FBurdx2EeH23x6qabx
cNyb0SUWyewAc22ckVohzYoGabgprLHfZ5tOR7GTgY14cRpkutYGBY7GeDwD
ASibK0bV3s77NKqVnUnSqEYegdO2eA+4McQ7Dq46jaNu2zDT1SAtEGnRbEet
C1xZat1fMWkch3FCdGe3k9CGk2DvwjCb8ZiogY6CWcy5toMH34ar92V13gCW
0nqiGxp2BBlBjtZxbtsGI8krSTlMB7QN8uKByV/jT8yL+r/lKTVQIOuUIQHl
VT1c1nBPK7kduxFk6UYRLCO5nCq8ykEYsLedJAkUIUjphouiae5WfGBVQONt
UU2nwdPj6RlKcMfqNjHdPni1gLp9Mt0tOzpTbPH5gfpB25eqwHZQX92S/uDk
cL3plijdtoID7OTHdGrf0JEx3xjpI82QSHEmrTEOxlK0nSDD0qcwUY9rqFjY
LxC3a6El/qaHYtPNRx1qckpOAYWTbTaPtsVX3D5TlnERmTJpL2VbrmBgGxsy
blO91nFGkdLLVbaW1qZv4MdmHaDck8tFLQSq3wXM9ljEAEvU072OU4VC002L
VRRjFbkrhYiec7SQ1ibX74LtY0t3zeEVcHQDVtjNBMYiELzQYmL+LUmwv0Lq
yFRZpq+4hND/Tm1vHUXXbhj4qsizblFd2eFxP1GV4QU6Is9g8GmxOOrzrR3q
NUa9DGp78jfp5aMbJO4SM4IiH6bhi1shyqVA309R3RdRNfYK3LiSXCujOtNu
MylqOsWgS505VlXRdFhbpX6syQMdORwUr0QSD6y+QAK2+zt01SDG7GefC+vb
gx3B3ylSh9wRgSPOtfDPZlF1s1Kv/DzhxCPlfU2Xgk4zdx4G6RWVuCS0LatV
lJWwtpLavfUGRh6FAJT61pLABwlF2bQmlcmSaksKbgM2OPL9gKNx7Py6c09W
epwpXbZsG4TstY2Mjs9WdFMJftG/l9eANjZMel66+P0mgNTwwFsV024XJYuk
i0V6k7lnHqOWD273sJrPmphG5Aj7gKXTDruUbFYDVow2MyxSlwPG2WoqjG85
BZIbRKbqZKURRxJB2zSHmJM6e5AK5UmkO1bup3nRTdcRi4aiZNq7agSuoYUo
OpKIT+F6c8Cmi4fF20gwJn7kDltrQbbWtsMsAhDhO0Msxt+PNXvZgqPzqZJp
kQ6Ro30ypZxK21GxgGnr32w/WqC4omuMrWe8M+ocjexwSHZoejEnJZcZ6m5g
7WzKHnXmrxtaf2DpG7rRULQnikQXm2PrhgcQLIxZod6kC9NMCDGx8dDMeRhT
xzWjMo0LBMLyDnKSyA9IL/hGCbZy0wkaImJxL7F6RdkWFX6dLCxGrKgdGWhi
nFuNmmMZtReqD4bqTKPDL3ljaj5jK8cEbDNxT2DmOI4W4PvwXQ1GC+ycamsj
nxVm5zh2fbqk7GGita1hQfxlk7msXNMQw2Qu+xj752zn0Q5156rQXoO9tTTb
rMVJkU8anjGpSXzu2PhgbBavQHNnkgk1J84XlagHt2gANNzK1Tl0Q4QVDMfA
Vor5fDkHNmDgp6LKA2qpC/y2BhRZpywG1vlNCyB0m/Q7jufougEbl0JRFO2E
F22Zeimacbzs34XWSNaVgKNCOrrJtQg54MUO0JAuBdNRpVfE9BLFkeY1O5CF
JQLjlMRRPTUgCEsGoYasK6CaPGAEA5GIC9xgkO4XUmwsAV4qEWsopQFOOZSo
Mx332iox1iasokyl07lakVGfXZQpizF3iaPd4f1psmiKxnzjczMFVtQKgFjN
Dd0VJ6JBANWnCqDz7ymAVqqrYEbfv0v+CuLI4pOitystk3C8lF3toRwX93QV
ZK5sorlIVRXnuxjBArdZJJLqBzeY4HnYKThx1IJ6OZFxEZh0J4suEgEAD++i
05osJlFTqla2bYLSigQ3HwRrws88hzyyTqLK9xurFr4U9ReanYI/U92GuRrD
rvFR2d2DXYcptx3aad1ul+JsS4/RYPK/7p3ORRpiRheAoktiAT3glLaVrO7Z
FzWCRXGJg5a/klwVt5JyFtg4OYkuwcRLbVKBmJip34BCESP4eSqRi7UGkYKp
IKmDgHIzHNrh8VwHMQlAxd1tcbDcuovl1PMG4GLt/mkf6ymlEarqkwqx5VFS
XqEkqaGnuWllu+FyVdrwAFizeRDxLceOIy+5aK4Co93R4cI6d+rj5DOwxneU
zrzCxR0bY2xezBBgnoNvxpgrYLq4n5J6OnKTIO44xge/ldBNvuy9UjTfEm2z
sh+Zd2xR9SuJp09kRet+/fuvMFn1ka0lNd/S6wIgYu/Qj1WHA3n88XrFCm02
PsJbj8XFA68oAGF21LXPA2/8bnQxmNsptWaGnjNKy0QA3W+XGv3TXp+vMJW9
eZ0GsHRtSBoKCi/LmZTJO0S+3nDcOEmV8WhZy6+u91INhy/Uc4D+krStDVae
neEznOwY3VjG2DeabytSoJZyjCRtzyYLhFdt2mJk9iprzRN3tovcvpdt2swH
k4Gpf7afW8bhJY3daRv7cw3+L/WRLSTbJpq1oVDD4OwWDH6uwIbl6RhQECac
pOR7WGXFqXbjlpRf861hx4FgEQ0mWxCrwZCznwXMjjTbkPOr7vO+hbJjjz4A
kZ+o2fS4r55jghiI2+FaCqiqyF/FQPCXFWKUO+KLZjOYaW7KduMkuASueaEG
u1ifxD+oj/8Fgejv7g77Pfqvg7cxwUFemgGq/3KD5jNwnsCuYfvNYHd347G0
Jr0BYOdHh0RFwAV+7fd7vR7+DDZhmkmDctKAJg1k0uC3O/Y7uNd+Bz36b3O/
g1v3279lv3sl6nuE+p6gvnfLfvfLSfs0aV8m7f8myqSuJe9xv7xDbIBqEMmD
L5mTXAQXMuQ+h7wLpiuJukItFXfM0b1xymDE3Pwvu6TXJv3UU86xRv9FHprB
SDdUYgYd8/XAfD0w2akKKugy4BRTf5SOZdd0XD23R7+U08XPc3SlcJFfjw5f
wNol/Z+Pzs+n46MRvtvB+nZyetidTY9OL6zvbOcYtQTBUs+t60R8iC/e9F/a
oEBvF3x/B7hBI7hBG7iBsEQLoQafSajBoxNqr21ne3+KUPtt4PYtQrnz+Fob
bd3M6RQ+OPaNTdAHdKttiQYcFMPamOKOQh/Hi/MkNb68MdLUV3B+NuugIz+C
mGgCWxiza9nhqw9oO4r0PF4k1XITrXSEKRpYR5n7To7ufmxI2+6AmMN21+Cz
uVGRn+VWmIaQj31/kxHgSFb6c7b6WySwPMRtzrNRiIcmsazVb70xzaYX+EYv
iQM4cTOznfFpVGlccpxzdGtTbeWT95RcNwSaHoBK62GZB74fdQ7kNld5Z3xc
5OA441O8WEWNMHtxQPFez17E7JsTSrIEwcV6j6aXZQEMMGZgLPZ6/J6SG3N7
wLpE4VaZ69Nk7yHlzbquePAC7B6T9Vci+ouf936pC8vobpm7L8iDO0Du1UD2
6yA3II6Fpe8vIJ+A+xcTlnqDNFpUSRZ4oXYTaVUoOoeKUpId0xLUWmMjiNoe
y9nt7VaTv31sdWRvaU35bIe26suCtTfeLHhar/ri0lKuYbd0bOHviWU5/7xn
ex/H9han1nZoi/08L1B/2Th40Di4tODMYIU7Jq8QKtWGrSW+qCujnlM7Dn1L
/T4vKu6NvAFomzpEdv6kf7O5xuC2NYpo7mh0OlKGjc17rvAdMEg6uQKtZBhF
+iZXA9JJ/VzI+eyaUjpH3kZ4IwV9eSkMgiiae7Ys2OkWgLzE19WsqwU0OrCv
u5XP17f81fbd1476UL0t/EGdYmpQPh8qt4PNd2cF58o3CIUzRsUY+1N72DBC
oDzUjvCms7WSzSkfGnrmP6jqzZOHw4UYyfALlt0fhVmQq+mAjri4Gyf3YJym
rXwqmc26Sv6wWWfzczfj3NHn/4mM8zk7wvdUmHWqTRPNuNzFOJ+Hy14DLuIH
f3Fc9htwETfjC+JiC1SX89yPqIbBKpxNz2QFLlYQw3OughgXJA2bLAtpk+Y+
JSlxLsilpTSa94CV7pBGsA8um1bC3/yxqYTtE2uQzYfCpb9rrUMdMV3V0BHz
RTi5jstTwKW1ctSCS0UFFX+I69xM3Y1vHnBH31V39C3tqKVe89jUreHyjHCx
23trdHlsPcF3i0w9vPW1aI2aw0s0hiasKSpCTmolotY4AItrOByYxfVmG2m3
g8DDDdHt3ioQqoxxYAzmL25579AD64eDICtP4ZCaVLjs2vx5VP2w2+2Xls56
G0YrLo/JwfvWOuZVTRIEm/rwF8PlibWOed8UBzVAHboWY6P0haWJtHbxRqji
hVAPLEqW7/76YlLcdt8Qp9o4xuY/WqQGxTr/apHa6xpOhnhS2Hi68aqdx8fl
DqNQvpvgEQ1CmZlrYOKmYf/RPFwGHf9qHrZVsTELM6tR7EvhwjyssHclT9B/
qWenYK1TvJxmsspZwC+eVmrkvY3iG+C4SypDyYsvXHxfNPDv4VWSX8P/Y5+D
FIDpcpyDicyc7hgxHPpXVVDpQ9hS5A5HkZ+AVJxn+K8lEA74jzzhbxP+x5Bc
GtBLcYD1Tzzh9P8DR18z4jttAAA=

-->

</rfc>

