<?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 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 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 RFC8253 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml">
<!ENTITY RFC8402 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC7942 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
<!ENTITY RFC7420 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7420.xml">
<!ENTITY RFC8408 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8408.xml">
<!ENTITY RFC9256 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9256.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-mpls-bfd-directed SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mpls-bfd-directed.xml">
<!ENTITY I-D.ietf-spring-stamp-srpm SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-stamp-srpm.xml">
<!ENTITY I-D.ietf-spring-mpls-path-segment SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-mpls-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-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-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-13"
     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 day="13" month="February" year="2024"/>

    <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 for computing 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 can also
      be applied using a stateful PCE for both PCE-initiated and PCC-initiated
      LSPs or when using a stateless PCE.</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="I-D.ietf-spring-mpls-path-segment"/> 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="RFC8408"/> specifies extensions to the Path Computation
      Element Protocol (PCEP) <xref target="RFC5440"/> 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.</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="I-D.ietf-mpls-bfd-directed"/> and Performance Measurement
      (PM) <xref target="I-D.ietf-spring-stamp-srpm"/> those require 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 such Candidate Paths can be computed via PCE. Each Candidate Path maps to a
        unique PLSP-ID in PCEP. Multiple Candidate Paths can be associated
        together into a single SR Policy, via the use of the PCEP Association
        object with the "SR Policy Association" type as specified in <xref
        target="RFC9256"/>. The two
        such 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 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 Candidate Paths 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
      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="I-D.ietf-spring-mpls-path-segment"/>
      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 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 Association Group object (Class-Value 40) as
        follows: <list style="symbols">
            <t>Association Type (value 8, early allocation) to be assigned by IANA) = Double-Sided
            Bidirectional with Reverse LSP Association</t>
          </list></t>

        <t>The bidirectional association is considered to be both dynamic and
        operator-configured in nature. As per [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 in the same way as <xref target="RFC9059"/>.</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 defined in <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'.</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>In 'Double-Sided Bidirectional with Reverse LSP Association', for
          properties such as forward and reverse direction and co-routed path,
          it uses the 'Bidirectional LSP Association Group TLV' defined in
          <xref target="RFC9059"/>. All fields and processing rules are as per
          <xref target="RFC9059"/>.</t>
        </section>
      </section>
    </section>

    <section title="PCEP Procedures">
      <t>For an associated bidirectional SR Path, an ingress node PCC is aware
      of the forward direction SR Path beginning from itself to the egress
      node PCC using the existing PCEP procedures. For the use-cases which
      require the ingress node PCC to be aware of the reverse direction SR
      Path, PCE informs the reverse SR Path to the ingress node PCC. To
      achieve this, a PCInitiate message for the reverse SR Path is sent to
      the ingress node PCC and a PCInitiate message for the forward SR Path is
      sent to the egress node PCC (with the matching association group). These
      PCInitiate message MUST NOT trigger initiation of SR Paths on PCCs.</t>

      <t>The PCEP procedure defined in this document is applicable to the
      following three scenarios:</t>

      <t><list style="symbols">
          <t>Neither unidirectional LSP exists, and both must be
          established.</t>

          <t>Both unidirectional LSPs exist, but the association must be
          established.</t>

          <t>One LSP exists, but the reverse associated LSP must be
          established.</t>
        </list></t>

      <section title="PCE-Initiated Associated Bidirectional SR Paths">
        <t>As specified in <xref target="RFC8697"/>, associated bidirectional
        SR Paths can be created and updated by a Stateful PCE as shown in
        Figure 1.</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 MAY establish and remove the association
            relationship on a per SR Path basis.</t>

            <t>Stateful PCE MUST create and update the SR Path and the
            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 (LSP2(R) at node S, LSP1(R) at
            node D as shown in Figure 1) SHOULD be informed by the 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><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: 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,300) /         \   LSP2 (F,200), LSP1 (R,400)
  Association #1            /           \  Association #1
                           /             \
                          /               \
                     +-----+    LSP1     +-----+
                     |  S  |------------>|  D  |
                     |     |<------------|     |
                     +-----+    LSP2     +-----+
                           <no signaling>

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

      Figure 1b: PCC-Reported Bidirectional SR Path 
                 with Forward and Reverse Direction SR Paths

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

      <section title="PCC-Initiated Associated Bidirectional SR Paths">
        <t>As specified in <xref target="RFC8697"/>, associated bidirectional
        SR Paths can also be created and updated by a PCC as shown in Figure
        2a and 2b.</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 in a bidirectional
            SR Path.</t>

            <t>PCC MAY establish and remove the association relationship on a
            per SR Path basis.</t>

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

            <t>PCC reports the forward and reverse SR Paths independently to
            PCE(s) via PCRpt message.</t>

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

            <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 (LSP2(R) at node S, LSP1(R) at
            node D as shown in Figure 2b) SHOULD be informed by the 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><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,300) /         \   LSP2 (F,200), LSP1 (R,400)
 Association #2            /           \  Association #2
                          /             \
                         /               \
                    +-----+    LSP1     +-----+
                    |  S  |------------>|  D  |
                    |     |<------------|     |
                    +-----+    LSP2     +-----+
                          <no signaling>

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

  Figure 2c: Step 3: PCC-Reported Associated Bidirectional SR
                     Path with Reverse Direction SR Paths

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

      <section title="Stateless PCE">
        <t>As defined in <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 Request Parameters (RP) object <xref
        target="RFC5440"/> and Stateful PCE Request Parameter (SRP) object
        <xref target="I-D.ietf-pce-pcep-stateful-pce-gmpls"/> follow the
        procedure defined in <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 same LSP would need to be identified using 2 different
        PLSP-IDs 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 cannot be used for the LSP at the ingress
        PCC (PLSP-ID conflict may occur). As per normal PCInitiate operations,
        PCC assigns the PLSP-IDs for the local LSPs. Hence, when the PCE
        notifies an ingress PCC of the reverse LSP, it does so by using
        PCInitiate operations and sets PLSP-ID to zero and sets the R bit in
        the 'Bidirectional LSP Association Group TLV' in the association
        object to indicate that this PCInitiate LSP is a reverse LSP. The PCC
        upon receiving the PCInitiate MUST locally assign a new PLSP-ID and it
        MUST issue a PCRpt to PCE for this LSP containing the new PLSP-ID.
        This reverse direction LSP MUST NOT be instantiated on the PCC.</t>

        <t>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 same LSP. For
        example, ingress PCC1 may report to PCE an LSP1 with PLSP-ID 100.
        Egress PCC2 may report to PCE an LSP2 with PLSP-ID 200. Both of these
        LSPs are part of a bidirectional association. When PCE notifies PCC1
        of the reverse direction LSP2, it does so by sending a PCInitiate to
        PCC1 with PLSP-ID set to zero and R bit set in the 'Bidirectional LSP
        Association Group TLV'. PCC1 upon reception of this generates a new
        PLSP-ID (example PLSP-ID 300) and issues a PCRpt to PCE. Thus there
        would two PLSP-ID associated for LSP2 (300 at PCC1 and 200 at
        PCC2).</t>

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

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

      <section title="Error Handling">
        <t>The error handling as described in section 5.7 of <xref
        target="RFC9059"/> continue to apply.</t>

        <t>The PCEP Path Setup Type (PST) for SR is set to 'TE Path is Setup
        using Segment Routing' <xref target="RFC8408"/> or 'Path is setup
        using SRv6' <xref target="RFC9256"/>.</t>

        <t>If a PCEP speaker receives a different 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' defined
        in <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 'Double-Sided Bidirectional with Reverse LSP
        Associations'. The PCEP YANG module <xref
        target="I-D.ietf-pce-pcep-yang"/> defines data model for associated
        bidirectional SR Paths.</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>
      </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 assign the following
        value in the "ASSOCIATION Type Field" registry [RFC8697] within
        the "Path Computation Element Protocol (PCEP) Numbers" registry group:</t>

        <t><figure>
            <artwork><![CDATA[   
Type                  Name                           Reference
---------------------------------------------------------------------
8                     Double-Sided Bidirectional     [This document]
(Early Allocation)    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">
    &RFC8253; 
    &RFC8402; 
    &RFC7942; 
    &RFC7420; 
    &RFC8408; 
    &RFC9256; 

    &I-D.ietf-pce-sr-path-segment;
    &I-D.ietf-mpls-bfd-directed;
    &I-D.ietf-spring-stamp-srpm;
    &I-D.ietf-spring-mpls-path-segment;
    &I-D.ietf-spring-srv6-path-segment;
    &I-D.ietf-pce-pcep-yang;
    &I-D.ietf-pce-pcep-stateful-pce-gmpls;
    &I-D.ietf-pce-multipath;
    </references>

    <section numbered="no" title="Acknowledgments">
      <t>Many thanks to Marina Fizgeer, Adrian Farrel, Andrew Stone, Tarek
      Saad, and Mike Koldychev for the detailed review of this document and
      providing many useful comments.</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>
