<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5440 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.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 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 RFC8253 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml">
<!ENTITY RFC8281 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml">
<!ENTITY RFC8402 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC8408 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8408.xml">
<!ENTITY RFC8664 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8664.xml">
<!ENTITY RFC8697 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8697.xml">
<!ENTITY RFC9059 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9059.xml">
<!ENTITY RFC9256 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml">
<!ENTITY RFC9503 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9503.xml">
<!ENTITY RFC9504 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9504.xml">
<!ENTITY RFC9545 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9545.xml">
<!ENTITY RFC9603 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9603.xml">
<!ENTITY RFC9612 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9612.xml">
<!ENTITY RFC9826 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9826.xml">

<!ENTITY I-D.ietf-pce-sr-path-segment SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-sr-path-segment.xml">
<!ENTITY I-D.ietf-spring-srv6-path-segment SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-srv6-path-segment.xml">
<!ENTITY I-D.ietf-pce-multipath SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-multipath.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="no"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc submissionType="IETF" category="std" consensus="yes" docName="draft-ietf-pce-sr-bidir-path-17"
     ipr="trust200902" updates="">
  <front>
    <title abbrev="PCEP for Associated Bidirectional SR">Path
    Computation Element Communication Protocol (PCEP) Extensions for
    Associated Bidirectional Segment Routing (SR) Paths</title>

    <author fullname="Cheng Li" initials="C." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>c.l@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Mach(Guoyi) Chen" initials="M." surname="Chen">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>Mach.chen@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>chengweiqiang@chinamobile.com</email>

        <uri/>
      </address>
    </author>

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

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Canada</country>
        </postal>

        <phone/>

        <facsimile/>

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

        <uri/>
      </address>
    </author>

    <author fullname="Quan Xiong" initials="Q." surname="Xiong">
      <organization>ZTE Corporation</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>xiong.quan@zte.com.cn</email>

        <uri/>
      </address>
    </author>

    <date year="2025"/>

    <area>Routing Area</area>

    <workgroup>PCE Working Group</workgroup>

    <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 Clients (PCCs) requests.
      Segment routing (SR) leverages the source routing and tunneling
      paradigms. The Stateful PCEP extensions allow stateful control of
      Segment Routing Traffic Engineering (TE) Paths. Furthermore, PCEP can be
      used to allow a PCE to compute SR TE paths in the network.
      </t>

      <t>This document defines PCEP extensions for grouping two unidirectional
      SR Paths (one in each direction in the network) into a single associated
      bidirectional SR Path. 
      The mechanisms defined in this document are applicable to both stateless and stateful PCEs for PCE-initiated and PCC-initiated LSPs.
      </t>

      <t/>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Segment routing (SR) <xref target="RFC8402"/> leverages the source
      routing and tunneling paradigms. SR supports steering packets onto an
      explicit forwarding path at the ingress node. SR is specified for
      unidirectional paths. However, some applications require bidirectional
      paths in SR networks, for example, in mobile backhaul transport
      networks. The requirement for bidirectional SR Paths is specified in <xref target="RFC9545"/> 
      and <xref target="I-D.ietf-spring-srv6-path-segment"/>.</t>

      <t><xref target="RFC5440"/> describes the Path Computation Element (PCE)
      Communication Protocol (PCEP). PCEP enables the communication between a
      Path Computation Client (PCC) and a PCE, or between PCE and PCE, for the
      purpose of computation of Traffic Engineering (TE) Label Switched Paths
      (LSP). <xref target="RFC8231"/> specifies a set of extensions to PCEP to
      enable stateful control of TE LSPs within and across PCEP sessions. The
      mode of operation where LSPs are initiated from the PCE is described in
      <xref target="RFC8281"/>.</t>

      <t><xref target="RFC8664"/> specifies extensions to the PCEP for SR networks, that
      allow a stateful PCE to compute and initiate SR TE paths, as well as a
      PCC to request, report or delegate them. As specified in <xref target="RFC8664"/>, 
      an SR path corresponds to an MPLS Label Switching Path (LSP)
      in PCEP when using the SR-TE path setup type. 
      As specified in <xref target="RFC9603"/>, the term "LSP"
      used in the PCEP specifications would be equivalent to an SRv6 path
      (represented as a list of SRv6 segments) in the context of supporting
      SRv6 in PCEP using SRv6 path setup type.
      </t>

      <t><xref target="RFC8697"/> introduces a generic mechanism to create a
      grouping of LSPs. This grouping can then be used to define associations
      between sets of LSPs or between a set of LSPs and a set of attributes,
      and it is equally applicable to the stateful PCE (active and passive
      modes) <xref target="RFC8231"/> and the stateless PCE <xref target="RFC5440"/>.</t>

      <t>For bidirectional SR paths, there are use-cases such as directed BFD
      <xref target="RFC9612"/> and Performance Measurement
      (PM) <xref target="RFC9503"/> which require the ingress
      node (PCC) to be aware of the reverse direction SR Path. For such
      use-cases, the reverse SR Paths need to be communicated to the ingress
      node (PCCs) using PCEP mechanisms. This allows both endpoint ingress
      nodes to be aware of the SR Paths in both directions, including their
      status and all other path related information.</t>

      <t><xref target="RFC9059"/> defines PCEP extensions for grouping two
      unidirectional Resource Reservation Protocol - Traffic Engineering
      (RSVP-TE) LSPs into an associated bidirectional LSP when using a
      stateful PCE for both PCE-initiated and PCC-initiated LSPs as well as
      when using a stateless PCE. Specifically, it defines the procedure for
      'Double-Sided Bidirectional LSP Association', where the PCE creates the
      association and provisions the forward LSPs at their ingress nodes. The
      RSVP-TE signals the forward LSPs to the egress nodes. Thus, both
      endpoints learn the reverse LSPs forming the bidirectional LSP
      association.</t>

      <t>This document extends the bidirectional LSP association to SR paths
      by specifying PCEP extensions for grouping two unidirectional SR Paths
      into an associated bidirectional SR Path. Note that the procedure for
      using the association group defined in this document is specific to the
      associated bidirectional SR Paths. Associating an unidirectional SR Path
      with a reverse direction unidirectional RSVP-TE LSP to form a
      bidirectional LSP and vice versa, are outside the scope of this
      document.</t>

      <section title="Bidirectional SR Policy Association">
        <t>An SR Policy contains one or more SR Policy Candidate Paths (CPs)
        <xref target="RFC9256"/> where one or
        more Candidate Paths can be computed via PCE. Each CP maps to a
        unique PLSP-ID in PCEP and each LSP in a CP is identified using a unique LSP-ID. 
        The two unidirectional Candidate Paths can be associated to form a
        bidirectional Candidate Path using the procedure defined in this
        document.</t>

        <t>Each Candidate Path of an SR Policy can contain one or more Segment
        Lists (SLs) <xref target="RFC9256"/>.
        When a Candidate Path is computed by the PCE, it means that the PCE
        computed all SLs of that Candidate Path. <xref
        target="I-D.ietf-pce-multipath"/> defines a procedure for carrying
        multiple SLs in a Candidate Path. That procedure works at the SL level
        to identify the forward and the reverse direction SLs in a Candidate
        Path as shown in an Example in Section 7.4 (Opposite Direction
        Tunnels) in <xref target="I-D.ietf-pce-multipath"/>. Whereas the procedure
        defined in this document works at the Candidate Path level to identify the forward and the reverse
        direction LSPs of a Candidate Path in a bidirectional SR Policy.</t>
      </section>
    </section>

    <section title="Terminology">
      <t>This document makes use of the terms defined in <xref
      target="RFC8408"/>. The reader is assumed to be familiar with the
      terminology defined in <xref target="RFC5440"/>, <xref
      target="RFC8231"/>, <xref target="RFC8281"/>, <xref target="RFC8697"/>,
      and <xref target="RFC9059"/>.</t>

      <section title="Requirements Language">
        <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>

    <section title="PCEP Extensions">
      <t>As per <xref target="RFC8697"/>, TE LSPs are associated by adding
      them to a common association group by a PCEP peer. <xref
      target="RFC9059"/> uses the association group object and the procedures
      as specified in <xref target="RFC8697"/> to group two unidirectional
      RSVP-TE LSPs. Similarly, two SR Paths can also be associated using a 
      similar technique. This document extends these association mechanisms
      for bidirectional SR Paths. Two unidirectional SR Paths (one in each
      direction in the network) can be associated together by using the
      association group defined in this document for PCEP messages.</t>

      <t><xref target="I-D.ietf-pce-sr-path-segment"/> defines a mechanism for
      communicating Path Segment Identifier (PSID) in PCEP for SR. The SR-MPLS
      PSID is defined in <xref target="RFC9545"/> and SRv6 PSID is defined in <xref
      target="I-D.ietf-spring-srv6-path-segment"/>. The PSID can be used for
      identifying the SR Path of an associated bidirectional SR Path. The
      PATH-SEGMENT TLV MAY be included for the SR Path in the LSP object to
      support the use-cases as required. The PATH-SEGMENT TLV MUST be handled
      as defined in <xref target="I-D.ietf-pce-sr-path-segment"/> and is not
      modified for an associated bidirectional SR Path.</t>

      <section anchor="double-sided"
               title="Double-Sided Bidirectional with Reverse LSP Association">
        <t>For associating two unidirectional SR Paths, this document defines
        a new Association Type called 'Double-Sided Bidirectional with Reverse
        LSP Association' for the Association Group object (Class-Value 40) as follows: 

        <list style="symbols">
            <t>Association Type (value 8) = Double-Sided Bidirectional with Reverse LSP Association</t>
          </list></t>

        <t>The bidirectional association can be either dynamic or operator-configured. 
        As per <xref target="RFC8697"/>, the association group
        could be manually created by the operator on the PCEP peers, and the
        LSPs belonging to this association are conveyed via PCEP messages to
        the PCEP peer; alternately, the association group could be created
        dynamically by the PCEP speaker, and both the association group
        information and the LSPs belonging to the association group are
        conveyed to the PCEP peer. The Operator-configured Association Range
        MUST be set for this Association Type to mark a range of Association
        Identifiers that are used for operator-configured associations to
        avoid any Association Identifier clash within the scope of the
        Association Source (Refer to <xref target="RFC8697"/>). Specifically,
        for the PCE-initiated associated bidirectional SR Paths, the
        Association Type is dynamically created by the PCE on the PCE
        peers.</t>

        <t>The handling of the Association ID, Association Source, optional
        Global Association Source and optional Extended Association ID in this
        association are set as defined in <xref target="RFC8697"/>.</t>

        <t><xref target="RFC8697"/> specifies the mechanism for the capability
        advertisement of the Association Types supported by a PCEP speaker by
        defining an ASSOC-Type-List TLV (value 35) to be carried within an
        OPEN object. This capability exchange for the Bidirectional
        Association MUST be done before using the Bidirectional Association
        Type. Thus, the PCEP speaker MUST include the bidirectional
        Association Type in the ASSOC-Type-List TLV and MUST receive the same
        from the PCEP peer before using the Bidirectional Association in PCEP
        messages.</t>

        <t>A member of the 'Double-Sided Bidirectional with Reverse LSP
        Association' can take the role of a forward or reverse direction SR
        Path and follow the similar rules as defined in Section 4.2 of <xref target="RFC9059"/>
        for LSPs.</t>

        <t><list style="symbols">
            <t>An SR Path (forward or reverse) MUST NOT be part of more than
            one 'Double-Sided Bidirectional with Reverse LSP Association'.
            A PCE, upon detecting this condition, MUST NOT send the reverse SR Path to ingress node PCC.</t>

            <t>The endpoint nodes of the SR Paths in 'Double-Sided
            Bidirectional with Reverse LSP Association' MUST be matching in
            the reverse directions.</t>
          </list></t>

        <section title="Bidirectional LSP Association Group TLV">
        <t>
        When a PCE informs an ingress node PCC about the reverse SR Path using the 'Double-Sided Bidirectional with Reverse LSP Association',
        it MUST include the 'Bidirectional LSP Association Group TLV' to indicate the reverse 
        direction and the co-routed path properties as defined in Section 4.2 of <xref target="RFC9059"/>.
        All fields and processing rules for this association group are followed as per Section 4 of <xref target="RFC9059"/>.
        </t>

        </section>
      </section>
    </section>

    <section title="PCEP Procedure">

      <t>The PCEP procedure defined in this document for an associated bidirectional SR Path is applicable to the
      three scenarios described in Section 5 of <xref target="RFC9059"/>.
      Note that the procedure in this document differs from the procedure defined in Section 5 of <xref target="RFC9059"/> 
      where the ingress and egress node PCCs learn the reverse LSPs via RSVP signaling and report them to the PCE.
      </t>

      <section title="PCE-Initiated Associated Bidirectional SR Paths">
        <t>Using the procedures defined in <xref target="RFC8697"/> and <xref target="RFC9059"/>, associated bidirectional
        SR Paths can be created and updated by a Stateful PCE 
        and is summarized below as Stateful PCE and PCC behaviours as a reminder.</t>

        <t>
        Stateful PCE Behaviours:
        </t>
        <t>
        </t>

    <t><list style="symbols">
            <t>Stateful PCE MAY create and update the forward and reverse SR
            Paths independently for the 'Double-Sided Bidirectional with
            Reverse LSP Association'.</t>

            <t>Stateful PCE MUST create and update the SR Paths and their 
            association on a PCC via PCInitiate and PCUpd messages,
            respectively, using the procedures described in <xref target="RFC8697"/>.</t>

            <t>The reverse direction SR Path SHOULD be informed by the Stateful PCE via
            PCInitiate message with the matching association group for the
            use-cases which require the PCC to be aware of the reverse
            direction SR Path.</t>

    </list></t>

        <t>
        PCC Behaviours:
        </t>
        <t>
        </t>

    <t><list style="symbols">
            <t>The PCC upon receiving the PCInitiate for reverse SR Path, MUST locally assign a new
            PLSP-ID and issue a PCRpt to the PCE containing the PLSP-ID.  
            </t>

            <t>PCC MUST NOT instantiate a reverse SR Path. 
            </t>

        </list></t>

        <t>High-level steps for creating associated bidirectional SR Paths by a Stateful PCE is shown in Figure 1.</t>

        <figure>
            <artwork><![CDATA[
                               +-----+
                               | PCE |
                               +-----+
  PCInitiate:                  /     \     PCInitiate:
  Tunnel 1 (F)                /       \    Tunnel 2 (F)
  LSP1 (F,0), LSP2 (R,0)     /         \   LSP2 (F,0), LSP1 (R,0)
  Association #1            /           \  Association #1
                           /             \
                          v               v
                     +-----+    LSP1     +-----+
                     |  S  |------------>|  D  |
                     |     |<------------|     |
                     +-----+    LSP2     +-----+
                           <no signaling>

      Legends: F = Forward LSP, R = Reverse LSP, (0) = PLSP-IDs

  Figure 1a: Step 1: PCE-Initiated Associated Bidirectional SR Path 
                     with Forward and Reverse Direction SR Paths


                               +-----+
                               | PCE |
                               +-----+
  PCRpt:                       ^     ^     PCRpt:
  Tunnel 1 (F)                /       \    Tunnel 2 (F)
  LSP1 (F,100), LSP2 (R,100) /         \   LSP2 (F,200), LSP1 (R,200)
  Association #1            /           \  Association #1
                           /             \
                          /               \
                     +-----+    LSP1     +-----+
                     |  S  |------------>|  D  |
                     |     |<------------|     |
                     +-----+    LSP2     +-----+
                           <no signaling>

  Legends: F = Forward LSP, R = Reverse LSP, (100,200) = PLSP-IDs

  Figure 1b: Step 2: PCC-Reported Bidirectional SR Path 
                     with Forward and Reverse Direction SR Paths
]]></artwork>
      </figure>

      </section>

      <section title="PCC-Initiated Associated Bidirectional SR Paths">
        <t>Using the procedures defined in <xref target="RFC8697"/> and <xref target="RFC9059"/>, associated bidirectional
        SR Paths can be created and updated by a PCC and  
        and is summarized below as PCC and Stateful PCE behaviours as a reminder.</t>

        <t>
        PCC Behaviours:
        </t>
        <t>
        </t>

    <t><list style="symbols">
            <t>PCC MAY create and update the forward SR Path and update the
            reverse SR Path independently for the 'Double-Sided Bidirectional
            with Reverse LSP Association'.</t>

            <t>PCC MUST NOT instantiate a reverse SR Path. </t>

            <t>PCC MAY establish and remove the association relationship for an 
            SR Path.
            </t>

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

            <t>PCC MAY delegate the forward and reverse SR Paths independently
            to a Stateful PCE, where the PCE would control the SR Paths.</t>

            <t>The PCC upon receiving the PCInitiate for reverse SR Path, MUST locally assign a new
            PLSP-ID and issue a PCRpt to the PCE containing the PLSP-ID.  
            </t>

    </list></t>

        <t>
        Stateful PCE Behaviours:
        </t>
        <t>
        </t>

    <t><list style="symbols">
            <t>Stateful PCE updates the SR Paths in the 'Double-Sided
            Bidirectional with Reverse LSP Association' via PCUpd message,
            using the procedures described in <xref target="RFC8697"/>.</t>

            <t>The reverse direction SR Path SHOULD be informed by the Stateful PCE via
            PCInitiate message with the matching association group for the
            use-cases which require the PCC to be aware of the reverse
            direction SR Path.</t>

        </list></t>

        <t>High-level steps for creating associated bidirectional SR Paths by a PCC is shown in Figure 2.</t>

    <figure>
            <artwork><![CDATA[
                              +-----+
                              | PCE |
                              +-----+
     Report/Delegate:         ^     ^        Report/Delegate:
     Tunnel 1 (F)            /       \       Tunnel 2 (F)
     LSP1 (F,100)           /         \      LSP2 (F,200)
     Association #2        /           \     Association #2
                          /             \
                         /               \
                    +-----+    LSP1     +-----+
                    |  S  |------------>|  D  |
                    |     |<------------|     |
                    +-----+    LSP2     +-----+
                          <no signaling>

  Legends: F = Forward LSP, R = Reverse LSP, (100,200) = PLSP-IDs

  Figure 2a: Step 1: PCC-Initiated Associated Bidirectional SR 
                     Path with Forward Direction SR Paths


                              +-----+
                              | PCE |
                              +-----+
 PCInitiate:                  /     \     PCInitiate:
 Tunnel 1 (F)                /       \    Tunnel 2 (F)
 LSP1 (F,100), LSP2 (R,0)   /         \   LSP2 (F,200), LSP1 (R,0)
 Association #2            /           \  Association #2
                          /             \
                         v               v
                    +-----+    LSP1     +-----+
                    |  S  |------------>|  D  |
                    |     |<------------|     |
                    +-----+    LSP2     +-----+
                          <no signaling>

  Legends: F = Forward LSP, R = Reverse LSP, (0,100,200) = PLSP-IDs

  Figure 2b: Step 2: PCE-Initiated Associated Bidirectional SR
                     Path with Reverse Direction SR Paths


                              +-----+
                              | PCE |
                              +-----+
 PCRpt:                       ^     ^     PCRpt:
 Tunnel 1 (F)                /       \    Tunnel 2 (F)
 LSP1 (F,100), LSP2 (R,100) /         \   LSP2 (F,200), LSP1 (R,200)
 Association #2            /           \  Association #2
                          /             \
                         /               \
                    +-----+    LSP1     +-----+
                    |  S  |------------>|  D  |
                    |     |<------------|     |
                    +-----+    LSP2     +-----+
                          <no signaling>

  Legends: F = Forward LSP, R = Reverse LSP, (100,200) = PLSP-IDs

  Figure 2c: Step 3: PCC-Reported Associated Bidirectional SR
                     Path with Reverse Direction SR Paths
]]></artwork>
          </figure>

      </section>

      <section title="Stateless PCE">
        <t>As defined in Section 5.3 of <xref target="RFC9059"/>, 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 <xref
        target="RFC8697"/>. A PCC can request co-routed or non-co-routed
        forward and reverse direction paths from a stateless PCE for a
        bidirectional SR Path.</t>
      </section>

      <section title="Bidirectional (B) Flag">
        <t>The Bidirectional (B) flag in the Request Parameters (RP) object <xref
        target="RFC5440"/> and Stateful PCE Request Parameter (SRP) object
        <xref target="RFC9504"/> follow the
        procedure defined in Section 5.4 of <xref target="RFC9059"/>.</t>
      </section>

      <section title="PLSP-ID Usage">
        <t>For a bidirectional LSP computation when using both direction LSPs 
        on a node, the LSPs on a node would need to be identified using the same 
        PLSP-ID based on the PCEP session to the ingress or the egress node.
        Note that the PLSP-ID space is independent at each PCC, the PLSP-ID
        allocated by the egress PCC might not be able to be used for the LSP at the ingress
        PCC (PLSP-ID conflict may occur). 
        In other words, a given LSP will be identified by PLSP-ID A at the
        ingress node while it will be identified by PLSP-ID B at the egress
        node. The PCE will maintain two PLSP-IDs for the bidirectional LSP. 
        </t>

        <t>
        In the examples shown in Figure 1 and Figure 2, the ingress PCC S may report to the PCE an LSP1 with PLSP-ID 100.
        The egress PCC D may report to the PCE an LSP2 with PLSP-ID 200. Both of these
        LSPs are part of a bidirectional LSP. When the PCE notifies PCC S
        of the reverse direction LSP2, it does so by sending a PCInitiate to
        PCC S with the PLSP-ID set to zero and the R bit set in the 'Bidirectional LSP
        Association Group TLV'. PCC S upon reception of this assigns a 
        PLSP-ID (example PLSP-ID 100) and issues a PCRpt to the PCE. Thus, there
        would be two PLSP-IDs associated with LSP2 (100 at PCC S and 200 at
        PCC D).
        </t>

        <t>For an associated bidirectional SR Path, the LSP-IDENTIFIERS TLV <xref
        target="RFC8231"/> MUST be included in all forward and reverse LSPs.</t>

      </section>

      <section title="Error Handling">
        <t>The error handling as described in Section 5.7 of <xref target="RFC9059"/> 
        continues to apply for the 'Double-Sided Bidirectional with Reverse LSP Association'.
        </t>

        <t><xref target="RFC9059"/> in Section 5.7, defines a PCErr message 
        for the Path Setup Type (PST) of '0: Path is set up using the RSVP-TE signaling protocol' <xref target="RFC8408"/>.
        The PST for SR Path is set to '1: Traffic-engineering path is set up using Segment Routing'
        <xref target="RFC8664"/> or '3: Traffic engineering path is set up using SRv6' <xref target="RFC9603"/>.
        If a PCEP speaker receives an unsupported PST value for the
        'Double-Sided Bidirectional with Reverse LSP Association', the PCE
        speaker MUST return a PCErr message with Error-Type = 26 (Association
        Error) and Error-value = '16: Path Setup Type not supported' <xref target="RFC9059"/>.</t>
      </section>

    </section>

    <section title="Implementation Status">
      <t>[Note to the RFC Editor - remove this section before publication, as
      well as remove the reference to <xref target="RFC7942"/>.</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>

      <t/>

      <section title="Huawei's Commercial Delivery">
        <t>The feature is developing based on Huawei VRP8.</t>

        <t><list style="symbols">
            <t>Organization: Huawei</t>

            <t>Implementation: Huawei's Commercial Delivery implementation
            based on VRP8.</t>

            <t>Description: The implementation is under development.</t>

            <t>Maturity Level: Product</t>

            <t>Contact: tanren@huawei.com</t>
          </list></t>

        <t/>
      </section>

      <section title="ZTE's Commercial Delivery">
        <t><list style="symbols">
            <t>Organization: ZTE</t>

            <t>Implementation: ZTE's Commercial Delivery implementation based
            on Rosng v8.</t>

            <t>Description: The implementation is under development.</t>

            <t>Maturity Level: Product</t>

            <t>Contact: zhan.shuangping@zte.com.cn</t>
          </list></t>
      </section>
    </section>

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

      <t>A new Association Type for the Association object, 'Double-Sided
      Bidirectional with Reverse LSP Association' is introduced in this
      document. Additional security considerations related to LSP associations
      due to a malicious PCEP speaker are described in <xref
      target="RFC8697"/> and apply to this Association Type. Hence, securing
      the PCEP session using Transport Layer Security (TLS) <xref
      target="RFC8253"/> is recommended.</t>
    </section>

    <section anchor="Manage" title="Manageability Considerations">
      <t>All manageability requirements and considerations listed in <xref
      target="RFC5440"/>, <xref target="RFC8231"/>, and <xref
      target="RFC8281"/> apply to PCEP protocol extensions defined in this
      document. In addition, requirements and considerations listed in this
      section apply.</t>

      <section 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 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="RFC9826"/> defines a data model for LSP associations.
        However, it does not include reverse LSP information.
        </t>
      </section>

      <section title="Liveness Detection and Monitoring">
        <t>Mechanisms defined in this document do not imply any new liveness
        detection and monitoring requirements in addition to those already
        listed in <xref target="RFC5440"/>, <xref target="RFC8231"/>, and
        <xref target="RFC8281"/>.</t>
      </section>

      <section title="Verify Correct Operations">
        <t>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="RFC8408"/>.</t>
      </section>

      <section title="Requirements On Other Protocols">
        <t>Mechanisms defined in this document do not imply any new
        requirements on other protocols.</t>
      </section>

      <section title="Impact On Network Operations">
        <t>Mechanisms defined in <xref target="RFC5440"/>, <xref
        target="RFC8231"/>, and <xref target="RFC8408"/> also apply to PCEP
        extensions defined in this document.
        </t>

        <t>Associating forward and reverse SR Paths to form a bidirectional SR Path requires an operator to ensure that 
        the correct LSP associations are employed on both sides of the SR Paths.
        New tools such as directed BFD <xref target="RFC9612"/> and Performance Measurement
        (PM) <xref target="RFC9503"/> can be used to verify the correct operation of a bidirectional SR Path.
        </t>

      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t/>

      <section title="Association Type">
        <t>This document defines a new Association Type, originally described
        in <xref target="RFC8697"/>. 
        IANA is requested to update the value it has assigned through the early allocation process in the 
        "ASSOCIATION Type Field" registry <xref target="RFC8697"/> within
        the "Path Computation Element Protocol (PCEP) Numbers" registry group, making it permanent:</t>

        <t><figure>
            <artwork><![CDATA[   
Type            Name                                  Reference
---------------------------------------------------------------------
8               Double-Sided Bidirectional            [This document]
                with Reverse LSP Association 
]]></artwork>
          </figure></t>
      </section>
    </section>
  </middle>

  <back>
    <references title="Normative References">
    &RFC2119;
    &RFC5440;
    &RFC8174;
    &RFC8231;
    &RFC8281;
    &RFC8697;
    &RFC9059;
    </references>

    <references title="Informative References">
    &RFC7420;
    &RFC7942;
    &RFC8253;
    &RFC8402;
    &RFC8408;
    &RFC8664;
    &RFC9256;
    &RFC9503;
    &RFC9504;
    &RFC9545;
    &RFC9603;
    &RFC9612;
    &RFC9826;

    &I-D.ietf-pce-sr-path-segment;
    &I-D.ietf-spring-srv6-path-segment;
    &I-D.ietf-pce-multipath;
    </references>

    <section numbered="no" title="Acknowledgments">
    <t>
    Many thanks to Marina Fizgeer, Adrian Farrel, Andrew Stone, Tarek
    Saad, Samuel Sidor, and Mike Koldychev for the detailed review of this document and
    providing many useful comments. 
    Also, thank you, John Scudder for RtgDir Early review, and Carlos Pignataro for OpsDir review, which helped 
    improve this document.</t>
    </section>

    <section numbered="no" title="Contributors">
      <t>The following people have substantially contributed to this document:</t>

      <t>
        <figure>
        <artwork><![CDATA[

 Dhruv Dhody
 Huawei Technologies
 Divyashree Techno Park, Whitefield
 Bangalore, Karnataka  560066
 India

 Email: dhruv.ietf@gmail.com


 Zhenbin Li
 Huawei Technologies
 Huawei Campus, No. 156 Beiqing Rd.
 Beijing  100095
 China

 Email: lizhenbin@huawei.com


 Jie Dong
 Huawei Technologies
 Huawei Campus, No. 156 Beiqing Rd.
 Beijing  100095
 China

 Email: jie.dong@huawei.com

]]></artwork>
        </figure>
      </t>
    </section>
  </back>
</rfc>

