Internet-Draft | PCEP for Associated Bidirectional SR | August 2024 |
Li, et al. | Expires 12 February 2025 | [Page] |
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.¶
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.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 12 February 2025.¶
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Segment routing (SR) [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 [I-D.ietf-spring-mpls-path-segment] and [I-D.ietf-spring-srv6-path-segment].¶
[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). [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 [RFC8281].¶
[RFC8408] specifies extensions to the Path Computation Element Protocol (PCEP) [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.¶
[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) [RFC8231] and the stateless PCE [RFC5440].¶
For bidirectional SR paths, there are use-cases such as directed BFD [I-D.ietf-mpls-bfd-directed] and Performance Measurement (PM) [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.¶
[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.¶
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.¶
An SR Policy contains one or more SR Policy Candidate Paths (CPs) [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 [RFC9256]. The two such unidirectional Candidate Paths can be associated to form a bidirectional Candidate Path using the procedure defined in this document.¶
Each Candidate Path of an SR Policy can contain one or more Segment Lists (SLs) [RFC9256]. When a Candidate Path is computed by the PCE, it means that the PCE computed all SLs of that Candidate Path. [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 [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.¶
This document makes use of the terms defined in [RFC8408]. The reader is assumed to be familiar with the terminology defined in [RFC5440], [RFC8231], [RFC8281], [RFC8697], and [RFC9059].¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
As per [RFC8697], TE LSPs are associated by adding them to a common association group by a PCEP peer. [RFC9059] uses the association group object and the procedures as specified in [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.¶
[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 [I-D.ietf-spring-mpls-path-segment] and SRv6 PSID is defined in [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 [I-D.ietf-pce-sr-path-segment] and is not modified for associated bidirectional SR Path.¶
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:¶
Association Type (value 8, early allocation) to be assigned by IANA) = Double-Sided Bidirectional with Reverse LSP Association¶
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 [RFC8697]). Specifically, for the PCE-initiated associated bidirectional SR Paths, the Association Type is dynamically created by the PCE on the PCE peers.¶
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 [RFC9059].¶
[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.¶
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 [RFC9059] for LSPs.¶
An SR Path (forward or reverse) MUST NOT be part of more than one 'Double-Sided Bidirectional with Reverse LSP Association'.¶
The endpoint nodes of the SR Paths in 'Double-Sided Bidirectional with Reverse LSP Association' MUST be matching in the reverse directions.¶
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 [RFC9059]. All fields and processing rules are as per [RFC9059].¶
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.¶
The PCEP procedure defined in this document is applicable to the following three scenarios:¶
Neither unidirectional LSP exists, and both must be established.¶
Both unidirectional LSPs exist, but the association must be established.¶
One LSP exists, but the reverse associated LSP must be established.¶
As specified in [RFC8697], associated bidirectional SR Paths can be created and updated by a Stateful PCE as shown in Figure 1.¶
Stateful PCE MAY create and update the forward and reverse SR Paths independently for the 'Double-Sided Bidirectional with Reverse LSP Association'.¶
Stateful PCE MAY establish and remove the association relationship on a per SR Path basis.¶
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 [RFC8697].¶
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.¶
+-----+ | 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¶
As specified in [RFC8697], associated bidirectional SR Paths can also be created and updated by a PCC as shown in Figure 2a and 2b.¶
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'.¶
PCC MUST NOT instantiate a reverse SR Path in a bidirectional SR Path.¶
PCC MAY establish and remove the association relationship on a per SR Path basis.¶
PCC MUST report the change in the association group of an SR Path to PCE(s) via PCRpt message.¶
PCC reports the forward and reverse SR Paths independently to PCE(s) via PCRpt message.¶
PCC MAY delegate the forward and reverse SR Paths independently to a Stateful PCE, where PCE would control the SR Paths.¶
Stateful PCE updates the SR Paths in the 'Double-Sided Bidirectional with Reverse LSP Association' via PCUpd message, using the procedures described in [RFC8697].¶
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.¶
+-----+ | 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¶
As defined in [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 [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.¶
The Bidirectional (B) flag in Request Parameters (RP) object [RFC5440] and Stateful PCE Request Parameter (SRP) object [I-D.ietf-pce-pcep-stateful-pce-gmpls] follow the procedure defined in [RFC9059].¶
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.¶
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).¶
For an associated bidirectional SR Path, LSP-IDENTIFIERS TLV [RFC8231] MUST be included in all forward and reverse LSPs.¶
During state synchronization, a PCC MUST report all the existing Bidirectional Associations to the Stateful PCE as per [RFC8697]. After the state synchronization, the PCE MUST remove all stale Bidirectional Associations.¶
The error handling as described in section 5.7 of [RFC9059] continue to apply.¶
The PCEP Path Setup Type (PST) for SR is set to 'TE Path is Setup using Segment Routing' [RFC8408] or 'Path is setup using SRv6' [RFC9256].¶
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 [RFC9059].¶
[Note to the RFC Editor - remove this section before publication, as well as remove the reference to [RFC7942].¶
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 [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.¶
According to [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".¶
The feature is developing based on Huawei VRP8.¶
The security considerations described in [RFC5440], [RFC8231], [RFC8281], and [RFC8408] apply to the extensions defined in this document as well.¶
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 [RFC8697] and apply to this Association Type. Hence, securing the PCEP session using Transport Layer Security (TLS) [RFC8253] is recommended.¶
All manageability requirements and considerations listed in [RFC5440], [RFC8231], and [RFC8281] apply to PCEP protocol extensions defined in this document. In addition, requirements and considerations listed in this section apply.¶
The mechanisms defined in this document do not imply any control or policy requirements in addition to those already listed in [RFC5440], [RFC8231], and [RFC8281].¶
[RFC7420] describes the PCEP MIB, there are no new MIB Objects defined for 'Double-Sided Bidirectional with Reverse LSP Associations'. The PCEP YANG module [I-D.ietf-pce-pcep-yang] defines data model for associated bidirectional SR Paths.¶
Mechanisms defined in this document do not imply any new liveness detection and monitoring requirements in addition to those already listed in [RFC5440], [RFC8231], and [RFC8281].¶
Mechanisms defined in this document do not imply any new operation verification requirements in addition to those already listed in [RFC5440], [RFC8231], and [RFC8408].¶
Mechanisms defined in this document do not imply any new requirements on other protocols.¶
Mechanisms defined in [RFC5440], [RFC8231], and [RFC8408] also apply to PCEP extensions defined in this document.¶
This document defines a new Association Type, originally described in [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:¶
Type Name Reference --------------------------------------------------------------------- 8 Double-Sided Bidirectional [This document] (Early Allocation) with Reverse LSP Association¶
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.¶
The following people have substantially contributed to this document:¶
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¶