<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3209 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3209.xml">
<!ENTITY RFC5440 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml">
<!ENTITY RFC7551 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7551.xml">
<!ENTITY RFC8126 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8231 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml">
<!ENTITY RFC8281 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml">
<!ENTITY RFC8537 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8537.xml">
<!ENTITY RFC8697 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8697.xml">
<!ENTITY RFC5654 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5654.xml">
<!ENTITY RFC7420 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7420.xml">
<!ENTITY RFC7942 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
<!ENTITY RFC8051 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8051.xml">
<!ENTITY RFC8253 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml">
<!ENTITY RFC8408 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8408.xml">
<!ENTITY I-D.ietf-pce-pcep-yang SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-pcep-yang.xml">
<!ENTITY I-D.ietf-pce-pcep-stateful-pce-gmpls SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-pcep-stateful-pce-gmpls.xml">
<!ENTITY I-D.ietf-pce-sr-bidir-path SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-sr-bidir-path.xml">
]>
<rfc category="std" docName="draft-ietf-pce-association-bidir-08"
     ipr="trust200902" submissionType="IETF">
  <!-- Generated by id2xml 1.5.0 on 2020-02-01T01:23:15Z -->

  <?rfc compact="yes"?>

  <?rfc text-list-symbols="oo*+-"?>

  <?rfc subcompact="no"?>

  <?rfc sortrefs="yes"?>

  <?rfc symrefs="yes"?>

  <?rfc strict="yes"?>

  <?rfc toc="yes"?>

  <front>
    <title abbrev="PCEP for Associated Bidirectional LSP">PCEP Extensions for
    Associated Bidirectional Label Switched Paths (LSPs)</title>

    <author fullname="Rakesh Gandhi" initials="R." role="editor"
            surname="Gandhi">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>Canada</street>
        </postal>

        <email>rgandhi@cisco.com</email>
      </address>
    </author>

    <author fullname="Colby Barth" initials="C." surname="Barth">
      <organization>Juniper Networks</organization>

      <address>
        <email>cbarth@juniper.net</email>
      </address>
    </author>

    <author fullname="Bin Wen" initials="B." surname="Wen">
      <organization>Comcast</organization>

      <address>
        <email>Bin_Wen@cable.comcast.com</email>
      </address>
    </author>

    <date day="15" month="September" year="2020"/>

    <workgroup>PCE Working Group</workgroup>

    <abstract>
      <t/>

      <t>The Path Computation Element Communication Protocol (PCEP) provides
      mechanisms for Path Computation Elements (PCEs) to perform path
      computations in response to Path Computation Clients (PCCs) requests.
      The Stateful PCE extensions allow stateful control of Multiprotocol
      Label Switching (MPLS) Traffic Engineering (TE) Label Switched Paths
      (LSPs) using PCEP.</t>

      <t>This document defines PCEP extensions for grouping two unidirectional
      MPLS TE LSPs (one in each direction in the network) into an Associated
      Bidirectional LSP. The mechanisms defined in this document can be
      applied using a Stateful PCE for both PCE-Initiated and PCC-Initiated
      LSPs, as well as when using a Stateless PCE. The procedures defined are
      applicable to the LSPs using Resource Reservation Protocol (RSVP) for
      signaling.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="sect-1" title="Introduction">
      <t><xref target="RFC5440"/> describes the Path Computation Element
      Protocol (PCEP) as a communication mechanism between a Path Computation
      Client (PCC) and a Path Control Element (PCE), or between PCE and PCC,
      that enables computation of Multiprotocol Label Switching (MPLS) Traffic
      Engineering (TE) Label Switched Paths (LSPs).</t>

      <t><xref target="RFC8231"/> specifies extensions to PCEP to enable
      stateful control of MPLS TE LSPs. It describes two modes of operation -
      Passive Stateful PCE and Active Stateful PCE. In <xref
      target="RFC8231"/>, the focus is on Active Stateful PCE where LSPs are
      provisioned on the PCC and control over them is delegated to a PCE.
      Further, <xref target="RFC8281"/> describes the setup, maintenance and
      teardown of PCE-Initiated LSPs for the Stateful PCE model.</t>

      <t><xref target="RFC8697"/> introduces a generic mechanism to create a
      grouping of LSPs which can then be used to define associations between a
      set of LSPs and/or a set of attributes, for example primary and
      secondary LSP associations, and is equally applicable to the active and
      passive modes of a Stateful PCE <xref target="RFC8231"/> or a stateless
      PCE <xref target="RFC5440"/>.</t>

      <t>The MPLS Transport Profile (MPLS-TP) requirements document <xref
      target="RFC5654"/> specifies that MPLS-TP MUST support associated
      bidirectional point-to-point LSPs. <xref target="RFC7551"/> defines RSVP
      signaling extensions for binding two reverse unidirectional LSPs <xref
      target="RFC3209"/> into an associated bidirectional LSP. The fast
      reroute (FRR) procedures for associated bidirectional LSPs are described
      in <xref target="RFC8537"/>.</t>

      <t>This document defines PCEP extensions for grouping two unidirectional
      MPLS-TE LSPs into an Associated Bidirectional LSP for both single-sided
      and double-sided initiation cases when using a Stateful PCE for both
      PCE-Initiated and PCC-Initiated LSPs as well as when using a Stateless
      PCE. The procedures defined are applicable to the TE LSPs using Resource
      Reservation Protocol (RSVP) for signaling <xref target="RFC3209"/>.
      The procedure for associating two unidirectional Segment Routing (SR) Paths 
      to form an Associated Bidirectional SR Path is defined in 
      <xref target="I-D.ietf-pce-sr-bidir-path"/>, and is outside the scope of 
      this document.</t>

      <section anchor="sect-1.1" title="Summary of PCEP Extensions"><t>
      The PCEP extensions defined in this document cover the following cases:</t>

      <t><list style="symbols">
          <t>A PCC initiates the forward and/ or reverse LSP of a single-sided
          or double-sided bidirectional LSP and retains the control of the
          LSP. The PCC computes the path itself or makes a request for path
          computation to a PCE. After the path setup, it reports the
          information and state of the path to the PCE. This includes the
          association group identifying the bidirectional LSP. This is the
          Passive Stateful mode defined in <xref target="RFC8051"/>.</t>

          <t>A PCC initiates the forward and/ or reverse LSP of a single-sided
          or double-sided bidirectional LSP and delegates the control of the
          LSP to a Stateful PCE. During delegation the association group
          identifying the bidirectional LSP is included. The PCE computes the
          path of the LSP and updates the PCC with the information about the
          path as long as it controls the LSP. This is the Active Stateful
          mode defined in <xref target="RFC8051"/>.</t>

          <t>A PCE initiates the forward and/ or reverse LSP of a single-sided
          or double-sided bidirectional LSP on a PCC and retains the control
          of the LSP. The PCE is responsible for computing the path of the LSP
          and updating the PCC with the information about the path as well as
          the association group identifying the bidirectional LSP. This is the
          PCE-Initiated mode defined in <xref target="RFC8281"/>.</t>

          <t>A PCC requests co-routed or non-co-routed paths for forward and
          reverse LSPs of a bidirectional LSP from a Stateless PCE <xref
          target="RFC5440"/>.</t>
	</list></t>
    </section>

    </section>

    <section anchor="sect-2" title="Conventions Used in This Document">
      <section anchor="sect-2.1" title="Key Word Definitions">
        <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>

      <section anchor="sect-2.2" title="Terminology">
        <t>The reader is assumed to be familiar with the terminology defined
        in <xref target="RFC5440"/>, <xref target="RFC7551"/>, <xref
        target="RFC8231"/>, and <xref target="RFC8697"/>.</t>
      </section>
    </section>

    <section anchor="sect-3" title="Overview">
      <t>As shown in Figure 1, two reverse unidirectional LSPs can be grouped
      to form an associated bidirectional LSP. There are two methods of
      initiating the bidirectional LSP association, single-sided and
      double-sided, as defined in <xref target="RFC7551"/> and described in
      the following sections.</t>

      <figure anchor="ure-example-of-associated-bidirectional-lsp"
              title="Example of Associated Bidirectional LSP">
        <artwork>
            LSP1 --&gt;          LSP1 --&gt;          LSP1 --&gt;
   +-----+           +-----+           +-----+           +-----+
   |  A  +-----------+  B  +-----------+  C  +-----------+  D  |
   +-----+           +--+--+           +--+--+           +-----+
            &lt;-- LSP2    |                 |     &lt;-- LSP2
                        |                 |
                        |                 |
                     +--+--+           +--+--+
                     |  E  +-----------+  F  |
                     +-----+           +-----+
                              &lt;-- LSP2
</artwork>
      </figure>

      <section anchor="sect-3.1" title="Single-sided Initiation">
        <t>As specified in <xref target="RFC7551"/>, in the single-sided case,
        the bidirectional tunnel is provisioned only on one endpoint node
        (PCC) of the tunnel. Both forward and reverse LSPs of this tunnel are
        initiated with the Association Type set to "Single-sided Bidirectional
        LSP Association" on the originating endpoint node. The forward and
        reverse LSPs are identified in the Bidirectional LSP Association Group
        TLV of their PCEP ASSOCIATION Objects.</t>

        <t>The originating endpoint node signals the properties for the revere
        LSP in the RSVP REVERSE_LSP Object <xref target="RFC7551"/> of the
        forward LSP Path message. The remote endpoint then creates the
        corresponding reverse tunnel and signals the reverse LSP in response
        to the received RSVP Path message. Similarly, the remote endpoint node
        deletes the reverse LSP when it receives the RSVP Path delete message
        <xref target="RFC3209"/> for the forward LSP.</t>

        <t>The originating endpoint (PCC) node may report/ delegate the
        forward and reverse direction LSPs to a PCE. The remote endpoint (PCC)
        node may report its forward direction LSP to a PCE.</t>

        <figure anchor="ure-example-of-pce-initiated-single-sided-bidirectional-lsp"
                title="Example of PCE-Initiated Single-sided Bidirectional LSP">
          <artwork>
                                +-----+
                                | PCE |
                                +-----+
    Initiates:                   |    \      
    Tunnel 1 (F)                 |     \     
    (LSP1 (F, 0), LSP2 (R, 0))   |      \    
    Association #1               v       \   
                              +-----+    +-----+
                              |  A  |    |  D  |
                              +-----+    +-----+


                                +-----+
                                | PCE |
                                +-----+
    Reports:                     ^    ^      Reports:
    Tunnel 1 (F)                 |     \     Tunnel 2 (F)
    (LSP1 (F, P1), LSP2 (R, P2)) |      \    (LSP2 (F, P3))
    Association #1               |       \   Association #1
                              +-----+    +-----+
                              |  A  |    |  D  |
                              +-----+    +-----+

</artwork>
        </figure>

        <figure anchor="ure-example-of-pcc-initiated-single-sided-bidirectional-lsp"
                title="Example of PCC-Initiated Single-sided Bidirectional LSP">
          <artwork>
                                +-----+
                                | PCE |
                                +-----+
    Reports/Delegates:           ^    ^      Reports:
    Tunnel 1 (F)                 |     \     Tunnel 2 (F)
    (LSP1 (F, P1), LSP2 (R, P2)) |      \    (LSP2 (F, P3))
    Association #2               |       \   Association #2
                              +-----+    +-----+
                              |  A  |    |  D  |
                              +-----+    +-----+
</artwork>
        </figure>

        <t>As shown in Figures 2 and 3, the forward tunnel and both forward
        LSP1 and reverse LSP2 are initiated on the originating endpoint node
        A, either by the PCE or the originating PCC, respectively. The
        originating endpoint node A signals the properties of reverse LSP2 in
        the RSVP REVERSE_LSP Object in the Path message of the forward LSP1.
        The creation of reverse tunnel and reverse LSP2 on the remote endpoint
        node D is triggered by the RSVP signaled forward LSP1. PLSP-IDs used
	are shown in the Figures as P1, P2 and P3.</t>

        <t>As specified in <xref target="RFC8537"/>, for fast reroute bypass
        tunnel assignment, the LSP starting from the originating node is
        identified as the forward LSP of the single-sided initiated
        bidirectional LSP.</t>
      </section>

      <section anchor="sect-3.2" title="Double-sided Initiation">
        <t>As specified in <xref target="RFC7551"/>, in the double-sided case,
        the bidirectional tunnel is provisioned on both endpoint nodes (PCCs)
        of the tunnel. The forward and reverse LSPs of this tunnel are
        initiated with the Association Type set to "Double-sided Bidirectional
        LSP Association" on both endpoint nodes. The forward and reverse LSPs
        are identified in the Bidirectional LSP Association Group TLV of their
        ASSOCIATION Objects.</t>

        <t>The endpoint (PCC) nodes may report/ delegate the forward and
        reverse direction LSPs to a PCE.</t>

        <figure anchor="ure-example-of-pce-initiated-double-sided-bidirectional-lsp"
                title="Example of PCE-Initiated Double-sided Bidirectional LSP">
          <artwork>
                            +-----+
                            | PCE |
                            +-----+
          Initiates:         |    \      Initiates:
          Tunnel 1 (F)       |     \     Tunnel 2 (F)
          (LSP1 (F, 0))      |      \    (LSP2 (F, 0))
          Association #3     v       v   Association #3
                          +-----+    +-----+
                          |  A  |    |  D  |
                          +-----+    +-----+


                            +-----+
                            | PCE |
                            +-----+
          Reports:           ^    ^      Reports:
          Tunnel 1 (F)       |     \     Tunnel 2 (F)
          (LSP1 (F, P4))     |      \    (LSP2 (F, P5))
          Association #3     |       \   Association #3
                          +-----+    +-----+
                          |  A  |    |  D  |
                          +-----+    +-----+

</artwork>
        </figure>

        <figure anchor="ure-example-of-pcc-initiated-double-sided-bidirectional-lsp"
                title="Example of PCC-Initiated Double-sided Bidirectional LSP">
          <artwork>
                            +-----+
                            | PCE |
                            +-----+
        Reports/Delegates:   ^    ^      Reports/Delegates:
        Tunnel 1 (F)         |     \     Tunnel 2 (F)
        (LSP1 (F, P4))       |      \    (LSP2 (F, P5))
        Association #4       |       \   Association #4
                          +-----+    +-----+
                          |  A  |    |  D  |
                          +-----+    +-----+
</artwork>
        </figure>

        <t>As shown in Figures 4 and 5, the forward tunnel and forward LSP1
        are initiated on the endpoint node A and the reverse tunnel and
        reverse LSP2 are initiated on the endpoint node D, either by the PCE
        or the PCCs, respectively. PLSP-IDs used
	are shown in the Figures as P4 and P5.</t>

        <t>As specified in <xref target="RFC8537"/>, for fast reroute bypass
        tunnel assignment, the LSP with the higher Source Address <xref
        target="RFC3209"/> is identified as the forward LSP of the
        double-sided initiated bidirectional LSP.</t>
      </section>

      <section anchor="sect-3.3"
               title="Co-routed Associated Bidirectional LSP">
        <t>In both single-sided and double-sided initiation cases, forward and
        reverse LSPs may be co-routed as shown in Figure 6, where both forward
        and reverse LSPs of a bidirectional LSP follow the same congruent path
        in the forward and reverse directions, respectively.</t>

        <figure anchor="ure-example-of-co-routed-associated-bidirectional-lsp"
                title="Example of Co-routed Associated Bidirectional LSP">
          <artwork>
            LSP3 --&gt;          LSP3 --&gt;          LSP3 --&gt;
   +-----+           +-----+           +-----+           +-----+
   |  A  +-----------+  B  +-----------+  C  +-----------+  D  |
   +-----+           +-----+           +-----+           +-----+
           &lt;-- LSP4          &lt;-- LSP4          &lt;-- LSP4
</artwork>
        </figure>
      </section>
    </section>

    <section anchor="sect-4" title="Protocol Extensions">
      <section anchor="sect-4.1" title="ASSOCIATION Object">
        <t>As per <xref target="RFC8697"/>, LSPs are associated by adding them
        to a common association group. This document defines two new
        Bidirectional LSP Association Groups to be used by the associated
        bidirectional LSPs. A member of the Bidirectional LSP Association
        Group can take the role of a forward or reverse LSP and follows the
        following rules:</t>

        <t><list style="symbols">
            <t>An LSP (forward or reverse) cannot be part of more than one
            Bidirectional LSP Association Group. More than one forward LSP
            and/ or reverse LSP can be part of a Bidirectional LSP Association
            Group.</t>

            <t>The Tunnel (as defined in <xref target="RFC3209"/>) of forward
            and reverse LSPs of the Single-sided Bidirectional LSP Association
            on the originating node MUST be the same.</t>
          </list></t>

        <t>This document defines two new Association Types for the ASSOCIATION
        Object (Object-Class value 40) as follows:</t>

        <t><list style="symbols">
            <t>Association Type (TBD1) = Single-sided Bidirectional LSP
            Association Group</t>

            <t>Association Type (TBD2) = Double-sided Bidirectional LSP
            Association Group</t>
          </list></t>

        <t>These Association Types are operator-configured associations in
        nature and statically created by the operator on the PCEP peers. 
        'Operator-configured Association Range' TLV (Value 29)
        <xref target="RFC8697"/> MUST NOT be sent for these Association Types,
        and MUST be ignored, so that the entire range of association ID can be
        used for them.</t>

        <t>The Association ID, Association Source, optional Global Association
        Source and optional Extended Association ID in the Bidirectional LSP
        Association Group Object are initialized using the procedures defined
        in <xref target="RFC8697"/> and <xref target="RFC7551"/>.</t>
      </section>

      <section anchor="sect-4.2"
               title="Bidirectional LSP Association Group TLV">
        <t>The Bidirectional LSP Association Group TLV is defined for use with
        the Single-sided and Double-sided Bidirectional LSP Association Group
        Object Types.</t>

        <t><list style="symbols">
            <t>The Bidirectional LSP Association Group TLV follows the PCEP
            TLV format from <xref target="RFC5440"/>.</t>

            <t>The Type (16 bits) of the TLV is TBD3, to be assigned by
            IANA.</t>

            <t>The Length is 4 Bytes.</t>

            <t>The value comprises of a single field, the Bidirectional LSP
            Association Flag (32 bits), where each bit represents a flag
            option.</t>

            <t>If the Bidirectional LSP Association Group TLV is missing, it
            means the LSP is the forward LSP and it is not co-routed LSP.</t>

            <t>For co-routed LSPs, this TLV MUST be present.</t>

            <t>For reverse LSPs, this TLV MUST be present.</t>

            <t>The Bidirectional LSP Association Group TLV MUST NOT be present
            more than once. If it appears more than once, only the first
            occurrence is processed and any others MUST be ignored.</t>
          </list></t>

        <t>The format of the Bidirectional LSP Association Group TLV is shown
        in Figure 7:</t>

        <figure anchor="ure-bidirectional-lsp-association-group-tlv-format"
                title="Bidirectional LSP Association Group TLV format">
          <artwork>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Type = TBD3           |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                       Reserved                          |C|R|F|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>

        <t>Flags for Bidirectional LSP Association Group TLV are defined as following.</t>

        <t>F (Forward LSP, 1 bit) - Indicates whether the LSP associated is
        the forward LSP of the bidirectional LSP. If this flag is set, the LSP
        is a forward LSP.</t>

        <t>R (Reverse LSP, 1 bit) - Indicates whether the LSP associated is
        the reverse LSP of the bidirectional LSP. If this flag is set, the LSP
        is a reverse LSP.</t>

        <t>C (Co-routed Path, 1 bit) - Indicates whether the bidirectional LSP
        is co-routed. This flag MUST be set for both the forward and reverse
        LSPs of a co-routed bidirectional LSP.</t>

        <t>The C flag is used by the PCE (for both Stateful and Stateless) to
        compute bidirectional paths of the forward and reverse LSPs of a
        co-routed bidirectional LSP.</t>

        <t>The Reserved flags MUST be set to 0 when sent and MUST be ignored
        when received.</t>
      </section>
    </section>

    <section anchor="sect-5" title="PCEP Procedure">
      <section anchor="sect-5.1" title="PCE Initiated LSPs">
        <t>As specified in <xref target="RFC8697"/>, the Bidirectional LSP
        Association Groups can be created by a Stateful PCE.</t>

        <t><list style="symbols">
            <t>Stateful PCE can create and update the forward and reverse LSPs
            independently for both Single-sided and Double-sided Bidirectional
            LSP Association Groups.</t>

            <t>Stateful PCE can establish and remove the association
            relationship on a per LSP basis.</t>

            <t>Stateful PCE can create and update the LSP and the association
            on a PCC via PCInitiate and PCUpd messages, respectively, using
            the procedures described in <xref target="RFC8697"/>.</t>
          </list></t>
      </section>

      <section anchor="sect-5.2" title="PCC Initiated LSPs">
        <t>As specified in <xref target="RFC8697"/>, Bidirectional LSP
        Association Groups can also be created by a PCC.</t>

        <t><list style="symbols">
            <t>PCC can create and update the forward and reverse LSPs
            independently for both Single-sided and Double-sided Bidirectional
            LSP Association Groups.</t>

            <t>PCC can establish and remove the association relationship on a
            per LSP basis.</t>

            <t>PCC MUST report the change in the association group of an LSP
            to PCE(s) via PCRpt message.</t>

            <t>PCC can report the forward and reverse LSPs independently to
            PCE(s) via PCRpt message.</t>

            <t>PCC can delegate the forward and reverse LSPs independently to
            a Stateful PCE, where PCE would control the LSPs. For single-sided
            case, originating (PCC) node can delegate both forward and reverse
            LSPs of a tunnel together to a Stateful PCE in order to avoid any
            race condition.</t>

            <t>Stateful PCE can update the LSPs in the Bidirectional LSP
            Association Group via PCUpd message, using the procedures
            described in <xref target="RFC8697"/>.</t>
          </list></t>
      </section>

      <section anchor="sect-5.3" title="Stateless PCE">
        <t>For a stateless PCE, it might be useful to associate a path
        computation request to an association group, thus enabling it to
        associate a common set of configuration parameters or behaviors with
        the request. A PCC can request co-routed or non-co-routed forward and
        reverse direction paths from a stateless PCE for a Bidirectional LSP
        Association Group.</t>
      </section>

      <section anchor="sect-5.4" title="Bidirectional (B) Flag">
        <t>As defined in <xref target="RFC5440"/>, the Bidirectional (B) flag
        in the Request Parameters (RP) object is set when the PCC specifies
        that the path computation request is for a bidirectional TE LSP with the 
        same TE requirements in each direction. For an
        associated bidirectional LSP, the B-flag is also set when the PCC makes
        the path computation request for the same TE requirements for the
        forward and reverse direction LSPs.</t>

        <t>Note that the B-flag defined in Stateful PCE Request Parameter (SRP)
        object <xref target="I-D.ietf-pce-pcep-stateful-pce-gmpls"/> to 
	indicate 'bidirectional co-routed LSP' is used for GMPLS signaled bidirectional LSPs 
	and is not applicable to the associated bidirectional LSPs.</t>
      </section>

      <section anchor="sect-5.5" title="PLSP-ID Usage">
        <t>As defined in <xref target="RFC8231"/>, a PCEP-specific LSP
        Identifier (PLSP-ID) is created by a PCC to uniquely identify an LSP
        and it remains the same for the lifetime of a PCEP session.</t>

        <t>In case of Single-sided Bidirectional LSP Association, the reverse
        LSP of a bidirectional LSP created on the originating node is
        identified by the PCE using 2 different PLSP-IDs based on the PCEP
        session on the ingress or egress nodes for the LSP. In other words,
        the reverse LSP will have a PLSP-ID P1 at the
        ingress node while it will have a PLSP-ID P3 at the egress node. 
        There is no change in the PLSP-ID
        allocation procedure for the forward LSP of the Single-sided
        Bidirectional LSP on the originating node. In case of Double-sided Bidirectional LSP
        Association, there is no change in the PLSP-ID allocation
        procedure.</t>

        <t>For an Associated Bidirectional LSP, LSP-IDENTIFIERS TLV <xref
        target="RFC8231"/> MUST be included in all forward and reverse
        LSPs.</t>
      </section>

      <section anchor="sect-5.6" title="State Synchronization">
        <t>During state synchronization, a PCC MUST report all the existing
        Bidirectional LSP Association Groups to the Stateful PCE as per <xref
        target="RFC8697"/>. After the state synchronization, the PCE MUST
        remove all stale Bidirectional LSP Associations.</t>
      </section>

      <section anchor="sect-5.7" title="Error Handling">
        <t>An LSP (forward or reverse) cannot be part of more than one
        Bidirectional LSP Association Group. If a PCE attempts to add an LSP
        not complying to this rule, the PCC MUST send PCErr with Error-Type =
        26 (Association Error) and Error-Value = TBD4 (Bidirectional LSP
        Association - Group Mismatch). Similarly, if a PCC attempts to add an
        LSP at PCE not complying to this rule, the PCE MUST send this
        PCErr.</t>

        <t>The LSPs (forward or reverse) in a Single-sided Bidirectional
        Association Group MUST belong to the same TE Tunnel (as defined in
        <xref target="RFC3209"/>). If a PCE attempts to add an LSP in a
        Single-sided Bidirectional LSP Association Group for a different
        Tunnel, the PCC MUST send PCErr with Error-Type = 26 (Association
        Error) and Error-Value = TBD5 (Bidirectional Association - Tunnel
        Mismatch). Similarly, if a PCC attempts to add an LSP to a
        Single-sided Bidirectional LSP Association Group at PCE not complying
        to this rule, the PCE MUST send this PCErr.</t>

        <t>The PCEP Path Setup Type (PST) for RSVP is set to
        'Path is set up using the RSVP-TE signaling protocol' (Value 0) 
        <xref target="RFC8408"/>. If a PCEP speaker receives a
        different PST value for the Bidirectional LSP Association Groups 
        defined in this document and
        it does not support; it MUST return a PCErr message with Error-Type =
        26 (Association Error) and Error-Value = TBD6 (Bidirectional LSP
        Association - Path Setup Type Not Supported).</t>

        <t>The processing rules as specified in Section 6.4 of <xref
        target="RFC8697"/> continue to apply to the Association Types defined
        in this document.</t>
      </section>
    </section>

    <section anchor="sect-6" title="Implementation Status">
      <t>[Note to the RFC Editor - remove this section before publication, as
      well as remove the reference to RFC 7942.]</t>

      <t>This section records the status of known implementations of the
      protocol defined by this specification at the time of posting of this
      Internet-Draft, and is based on a proposal described in <xref
      target="RFC7942"/>. The description of implementations in this section
      is intended to assist the IETF in its decision processes in progressing
      drafts to RFCs. Please note that the listing of any individual
      implementation here does not imply endorsement by the IETF. Furthermore,
      no effort has been spent to verify the information presented here that
      was supplied by IETF contributors. This is not intended as, and must not
      be construed to be, a catalog of available implementations or their
      features. Readers are advised to note that other implementations may
      exist.</t>

      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and
      working groups to assign due consideration to documents that have the
      benefit of running code, which may serve as evidence of valuable
      experimentation and feedback that have made the implemented protocols
      more mature. It is up to the individual working groups to use this
      information as they see fit".</t>

      <section anchor="sect-6.1" title="Implementation">
        <t>The PCEP extensions defined in this document has been implemented
        by a vendor on their product. No further information is available at
        this time.</t>
      </section>
    </section>

    <section anchor="sect-7" title="Security Considerations">
      <t>The security considerations described in <xref target="RFC5440"/>,
      <xref target="RFC8231"/>, and <xref target="RFC8281"/> apply to the
      extensions defined in this document as well.</t>

      <t>Two new Association Types for the ASSOCIATION Object, Single-sided
      Bidirectional LSP Association Group and Double-sided Bidirectional LSP
      Association Group are introduced in this document. Additional security
      considerations related to LSP associations due to a malicious PCEP
      speaker is described in <xref target="RFC8697"/> and apply to these
      Association Types. Hence, securing the PCEP session using Transport
      Layer Security (TLS) <xref target="RFC8253"/> is recommended.</t>
    </section>

    <section anchor="sect-8" title="Manageability Considerations">
      <section anchor="sect-8.1" title="Control of Function and Policy">
        <t>The mechanisms defined in this document do not imply any control or
        policy requirements in addition to those already listed in <xref
        target="RFC5440"/>, <xref target="RFC8231"/>, and <xref
        target="RFC8281"/>.</t>
      </section>

      <section anchor="sect-8.2" title="Information and Data Models">
        <t><xref target="RFC7420"/> describes the PCEP MIB, there are no new
        MIB Objects defined for LSP associations.</t>

        <t>The PCEP YANG module <xref target="I-D.ietf-pce-pcep-yang"/>
        defines data model for LSP associations.</t>
      </section>

      <section anchor="sect-8.3" title="Liveness Detection and Monitoring">
        <t>The 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"/>, <xref target="RFC8231"/>,
        and <xref target="RFC8281"/>.</t>
      </section>

      <section anchor="sect-8.4" title="Verify Correct Operations">
        <t>The mechanisms defined in this document do not imply any new
        operation verification requirements in addition to those already
        listed in <xref target="RFC5440"/>, <xref target="RFC8231"/>, and
        <xref target="RFC8281"/>.</t>
      </section>

      <section anchor="sect-8.5" title="Requirements On Other Protocols">
        <t>The mechanisms defined in this document do not add any new
        requirements on other protocols.</t>
      </section>

      <section anchor="sect-8.6" title="Impact On Network Operations">
        <t>The mechanisms defined in this document do not have any impact on
        network operations in addition to those already listed in <xref
        target="RFC5440"/>, <xref target="RFC8231"/>, and <xref
        target="RFC8281"/>.</t>
      </section>
    </section>

    <section anchor="sect-9" title="IANA Considerations">
      <section anchor="sect-9.1" title="Association Types">
        <t>This document adds new Association Types for the ASSOCIATION Object
        (Object-class value 40) defined <xref target="RFC8697"/>. IANA is
        requested to make the assignment of values for the sub-registry
        "ASSOCIATION Type" <xref target="RFC8697"/>, as follows:</t>

        <figure>
          <artwork>
Type Name                                             Reference
---------------------------------------------------------------------
TBD1 Single-sided Bidirectional LSP Association Group [This document]
TBD2 Double-sided Bidirectional LSP Association Group [This document]
</artwork>
        </figure>
      </section>

      <section anchor="sect-9.2"
               title="Bidirectional LSP Association Group TLV">
        <t>This document defines a new TLV for carrying additional information
        of LSPs within a Bidirectional LSP Association Group. IANA is
        requested to add the assignment of a new value in the existing "PCEP
        TLV Type Indicators" registry as follows:</t>

        <figure>
          <artwork>
Value     Meaning                                   Reference
-------------------------------------------------------------------
 TBD3     Bidirectional LSP Association Group TLV   [This document]
</artwork>
        </figure>

        <section anchor="sect-9.2.1"
                 title="Flag Field in Bidirectional LSP Association Group TLV">
          <t>This document requests that a new sub-registry, named
          "Bidirectional LSP Association Group TLV Flag Field", is created
          within the "Path Computation Element Protocol (PCEP) Numbers"
          registry to manage the Flag field in the Bidirectional LSP
          Association Group TLV. New values are to be assigned by Standards
          Action <xref target="RFC8126"/>. Each bit should be tracked with the
          following qualities:</t>

          <t><list style="symbols">
              <t>Bit number (count from 0 as the most significant bit)</t>

              <t>Description</t>

              <t>Reference</t>
            </list></t>

          <t>The following values are defined in this document for the Flag
          field.</t>

          <figure>
            <artwork>
Bit No.     Description                   Reference
---------------------------------------------------------
 31         F - Forward LSP               [This document]
 30         R - Reverse LSP               [This document]
 29         C - Co-routed Path            [This document]
</artwork>
          </figure>
        </section>
      </section>

      <section anchor="sect-9.3" title="PCEP Errors">
        <t>This document defines new Error value for Error Type 26
        (Association Error). IANA is requested to allocate new Error value
        within the "PCEP-ERROR Object Error Types and Values" sub-registry of
        the PCEP Numbers registry, as follows:</t>

        <figure>
          <artwork>
Error Type  Description                  Reference
---------------------------------------------------------
 26         Association Error

            Error value: TBD4            [This document]
            Bidirectional LSP Association - Group Mismatch

            Error value: TBD5            [This document]
            Bidirectional LSP Association - Tunnel Mismatch

            Error value: TBD6            [This document]
            Bidirectional LSP Association - Path Setup Type 
                                            Not Supported


</artwork>
        </figure>
      </section>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;

      &RFC3209;

      &RFC5440;

      &RFC7551;

      &RFC8126;

      &RFC8174;

      &RFC8231;

      &RFC8281;

      &RFC8537;

      &RFC8697;
    </references>

    <references title="Informative References">
      &RFC5654;

      &RFC7420;

      &RFC7942;

      &RFC8051;

      &RFC8253;

      &RFC8408;

      &I-D.ietf-pce-pcep-yang;
      &I-D.ietf-pce-pcep-stateful-pce-gmpls;
      &I-D.ietf-pce-sr-bidir-path;

    </references>

    <section anchor="acknowledgments" numbered="no" title="Acknowledgments">
      <t>The authors would like to thank Dhruv Dhody for various discussions
      on association groups and inputs to this document. The authors would
      also like to thank Dhruv Dhody, Mike Taillon, and Marina Fizgeer for
      reviewing this document and providing valuable comments.</t>
    </section>
  </back>
</rfc>
