RFC 7551

RSVP-TE Extensions for Associated Bidirectional Label Switched Paths (LSPs)

πŸ“… published May 2015, from ietf

Associated Bidirectional LSPs, RSVP-TE Style ✨

RFC 7551: RSVP-TE Extensions for Associated Bidirectional Label Switched Paths (LSPs) πŸŽ€

Okay bestie, here's the whole vibe check on the title block πŸ’… This is RFC 7551, published in May 2015 as a Standards Track document, with ISSN 2070-1721. The authors are F. Zhang (Huawei, editor), R. Jing (China Telecom), and R. Gandhi (Cisco Systems, editor). It doesn't list anything it obsoletes or updates πŸ¦‹

Abstract

This document describes Resource Reservation Protocol (RSVP) extensions that bind two point-to-point unidirectional Label Switched Paths (LSPs) into one associated bidirectional LSP 🌈 The association happens through new Association Types used in ASSOCIATION and in Extended ASSOCIATION Objects. One type allows independent provisioning of the associated bidirectional LSPs on both sides, and the other allows single-sided provisioning. The REVERSE_LSP Object lets a single endpoint trigger creation of the reverse LSP and set its parameters in the single-sided case. Main character energy πŸ‘‘

Status of This Memo

This is an Internet Standards Track document. 🧚

It's a product of the Internet Engineering Task Force (IETF), it represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication. More on Internet Standards is in Section 2 of RFC 5741 πŸ“š

For the current status, errata, and feedback info, check http://www.rfc-editor.org/info/rfc7551 🌸

Copyright (c) 2015 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 (http://trustee.ietf.org/license-info) as in effect on the date of publication. Please read these carefully, because they spell out your rights and restrictions for this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License βš–οΈ

Table of Contents

1. Introduction ....................................................4
2. Conventions Used in This Document ...............................5
   2.1. Key Word Definitions .......................................5
   2.2. Reverse Unidirectional LSPs ................................5
   2.3. Message Formats ............................................5
3. Overview ........................................................6
   3.1. Provisioning Model Overview ................................6
        3.1.1. Single-Sided Provisioning ...........................6
        3.1.2. Double-Sided Provisioning ...........................6
   3.2. Association Signaling Overview .............................6
        3.2.1. Single-Sided Provisioning ...........................7
        3.2.2. Double-Sided Provisioning ...........................7
   3.3. Asymmetric Bandwidth Signaling Overview ....................8
        3.3.1. Single-Sided Provisioning ...........................8
        3.3.2. Double-Sided Provisioning ...........................8
   3.4. Recovery LSP Overview ......................................8
4. Message and Object Definitions ..................................9
   4.1. RSVP Message Formats .......................................9
   4.2. ASSOCIATION Object .........................................9
   4.3. Extended ASSOCIATION Object ...............................10
   4.4. REVERSE_LSP Object Definition .............................11
        4.4.1. REVERSE_LSP Object Format ..........................11
        4.4.2. REVERSE_LSP Subobjects .............................11
5. Processing Rules ...............................................12
   5.1. Rules for ASSOCIATION Object ..............................12
        5.1.1. Compatibility for ASSOCIATION Object ...............14
   5.2. Rules for REVERSE_LSP Object ..............................14
        5.2.1. Compatibility for REVERSE_LSP Object ...............16
6. IANA Considerations ............................................16
   6.1. Association Types .........................................16
   6.2. REVERSE_LSP Object ........................................16
   6.3. Reverse LSP Failure PathErr Sub-code ......................17
7. Security Considerations ........................................17
8. References .....................................................18
   8.1. Normative References ......................................18
   8.2. Informative References ....................................19
Acknowledgements ..................................................20
Contributors ......................................................20
Authors' Addresses ................................................20

1. Introduction ✨

Okay so the MPLS Transport Profile (MPLS-TP) requirements document [RFC5654] says MPLS-TP MUST support associated bidirectional point-to-point Label Switched Paths (LSPs) πŸ¦‹ Those requirements live in Section 2.1 ("General Requirements") of that doc, and here are the bits that matter, quoted pretty much as-is:

7.   MPLS-TP MUST support associated bidirectional point-to-point
     LSPs.

11.  The end points of an associated bidirectional LSP MUST be aware
     of the pairing relationship of the forward and reverse LSPs used
     to support the bidirectional service.

12.  Nodes on the LSP of an associated bidirectional LSP where both
     the forward and backward directions transit the same node in the
     same (sub)layer as the LSP SHOULD be aware of the pairing
     relationship of the forward and the backward directions of the
     LSP.

50.  The MPLS-TP control plane MUST support establishing associated
     bidirectional P2P LSP including configuration of protection
     functions and any associated maintenance functions.

The same requirements are repeated in [RFC6373] πŸ’…

Associated bidirectional LSPs are also handy for protection-switching of Operations, Administration, and Maintenance (OAM) messages that need a return path πŸ”₯

Different applications, like Internet services and OAM return paths, can need different upstream and downstream bandwidth 🌈 [RFC5654] covers this with an asymmetric bandwidth requirement in Section 2.1 ("General Requirements"), which goes like this:

14.  MPLS-TP MUST support bidirectional LSPs with asymmetric
     bandwidth requirements, i.e., the amount of reserved bandwidth
     differs between the forward and backward directions.

The approach for asymmetric bandwidth co-routed bidirectional LSPs is defined in [RFC6387] πŸ“

The association method and the matching Resource Reservation Protocol (RSVP) ASSOCIATION Object are defined in [RFC4872], [RFC4873], and [RFC6689]. In that world, the ASSOCIATION Object ties a recovery LSP to the LSP it protects, but it's also broadly useful as a way to associate RSVP states 🧚 [RFC6780] defines the Extended ASSOCIATION Objects, which can be applied more generally for this. This document uses the term "(Extended) ASSOCIATION Objects" to mean the ASSOCIATION Objects from [RFC4872] and the Extended ASSOCIATION Objects from [RFC6780] together πŸ’œ

This document specifies how to bind two reverse unidirectional LSPs into an associated bidirectional LSP πŸ¦‹ The association is made by defining new Association Types for use in (Extended) ASSOCIATION Objects. One type enables independent provisioning of the associated bidirectional LSPs, and the other enables single-sided provisioning. The REVERSE_LSP Object lets a single endpoint trigger creation of the reverse LSP and specify its parameters in the single-sided case. For example, the REVERSE_LSP Object allows asymmetric upstream and downstream bandwidths for the associated bidirectional LSP 🌸

2. Conventions Used in This Document πŸ“š

2.1. Key Word Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] πŸŽ€

2.2. Reverse Unidirectional LSPs

Two reverse unidirectional LSPs get set up in opposite directions between a pair of source and destination nodes, and together they form an associated bidirectional LSP 🫢 A reverse unidirectional LSP starts on the same node where the forward unidirectional LSP ends, and it ends on the same node where the forward unidirectional LSP starts πŸ”

2.3. Message Formats

This document uses the Routing Backus-Naur Form (RBNF) to define message formats, as described in [RFC5511] ✨

3. Overview 🌈

3.1. Provisioning Model Overview

This section gives an overview and definition of the models for provisioning associated bidirectional LSPs πŸ’–

The forward and reverse unidirectional LSPs of an associated bidirectional LSP get established, monitored, and protected independently, as [RFC5654] specifies πŸ¦‹ Configuration info for the LSPs can be given at one or both endpoints. Depending on the method, there are two models for creating an associated bidirectional LSP: single-sided provisioning and double-sided provisioning ✨

3.1.1. Single-Sided Provisioning

For single-sided provisioning, the Traffic Engineering (TE) tunnel is configured on only one endpoint 🧚 The initiating endpoint starts an LSP for this tunnel, with the (Extended) ASSOCIATION and REVERSE_LSP Objects inserted in the Path message. The other endpoint then creates the matching reverse TE tunnel and signals the reverse LSP in response, using info from the REVERSE_LSP Object and other objects in the Path message it received πŸ”₯

3.1.2. Double-Sided Provisioning

For double-sided provisioning, two unidirectional TE tunnels are configured independently, one on each endpoint πŸ‘‘ The LSPs for those tunnels get signaled with (Extended) ASSOCIATION Objects inserted in the Path message by both endpoints, so the two LSPs know they're meant to be associated into one bidirectional LSP πŸ’…


πŸŽ€ part 1 of 4 done, part 2 is coming next bestie πŸ’–

3.2. Association Signaling Overview πŸ’–

okay so this bit is the overview of association signaling for the associated bidirectional LSPs ✨

There are three scenarios for binding two unidirectional LSPs together into one associated bidirectional LSP. they're:

  1. Neither unidirectional LSP exists, and both must be established.
  2. Both unidirectional LSPs exist, but the association must be established.
  3. One LSP exists, but the reverse associated LSP must be established.

The next sections walk through the provisioning models for each of these scenarios πŸŽ€

Path Computation Element (PCE)-based approaches [RFC4655] may be used for path computation of an associated bidirectional LSP. However, these approaches are outside the scope of this document. that's a whole other story, bestie 🧚

Let's look at the topology in Figure 1. LSP1 goes from node A to B and takes the path A,D,B, and LSP2 goes from node B to A and takes the path B,D,C,A. Once these two LSPs are established and associated, they form an associated bidirectional LSP between nodes A and B πŸ¦‹

                           LSP1 -->
                           A-------D-------B
                            \     / <-- LSP2
                             \   /
                              \ /
                               C

Figure 1: An Example of Associated Bidirectional LSP

3.2.1. Single-Sided Provisioning 🌈

okay, so in the single-sided model, creating reverse LSP1 (from Figure 1) gets triggered by LSP2, or creating reverse LSP2 gets triggered by LSP1. When the creation of reverse LSP2 is triggered by LSP1, LSP1 gets provisioned first at node A (or refreshed, if LSP1 already exists). Then LSP1 is signaled with an (Extended) ASSOCIATION, and REVERSE_LSP Objects get inserted in the Path message. The Association Type shows single-sided provisioning. Once node B receives this Path message for LSP1, it establishes reverse LSP2. The (Extended) ASSOCIATION Object inserted in LSP2's Path message is the same one received in LSP1's Path message πŸ’…

A similar procedure happens if LSP2 is provisioned first at node B, and the creation of reverse LSP1 at node A is triggered by LSP2. In both scenarios, the two unidirectional LSPs get bound together into an associated bidirectional LSP based on identical (Extended) ASSOCIATION Objects in their two Path messages. iconic consistency πŸ‘‘

3.2.2. Double-Sided Provisioning 🫢

for the double-sided model, LSP1 and LSP2 from Figure 1 are both signaled independently, and each one gets an (Extended) ASSOCIATION Object inserted in its Path message. The Association Type that's included says double-sided provisioning. Here, the two unidirectional LSPs are bound together into an associated bidirectional LSP based on identical (Extended) ASSOCIATION Objects in their two Path messages. Across all three scenarios from Section 3.2, the LSPs picked for the association are provisioned by the management action applied at both endpoints πŸ”₯

3.3. Asymmetric Bandwidth Signaling Overview πŸ“

this section gives an overview of the methods for signaling asymmetric upstream and downstream bandwidths for the associated bidirectional LSPs πŸ’œ

3.3.1. Single-Sided Provisioning πŸ¦‹

a new REVERSE_LSP Object for the single-sided model is defined in this document, in Section 4.4. The REVERSE_LSP Object lets the initiating node of the single-sided provisioned LSP trigger creation of the reverse LSP on the remote node. With the single-sided model, a SENDER_TSPEC Object can be added in the REVERSE_LSP Object as a subobject in the initiating LSP's Path message, so you can specify a different bandwidth for the reverse LSP. As described in Section 4.4, adding the REVERSE_LSP Object also lets the initiating node control other aspects of the reverse LSP (like its path) by including other objects in a REVERSE_LSP Object 🌸

Back to Figure 1, where creation of reverse LSP2 is triggered by LSP1. Node A signals LSP1 with the (Extended) ASSOCIATION Object, with the Association Type indicating single-sided provisioning, and inserts a SENDER_TSPEC subobject for use by LSP2 in the REVERSE_LSP Object in the Path message. Node B then establishes LSP2 in the reverse direction using the asymmetric bandwidth that LSP1 specified, and it lets node A control the reverse LSP2 🧚

3.3.2. Double-Sided Provisioning πŸŽ€

with the double-sided model, the two unidirectional LSPs get established with separate bandwidths, which may or may not be identical. These LSPs are associated purely based on the identical contents of their (Extended) ASSOCIATION Objects, nothing else πŸ™ˆ

3.4. Recovery LSP Overview 🫧

Each unidirectional LSP in the bidirectional LSP recovers independently [RFC5654], based on the parameters signaled in its own RSVP Path message πŸ’–

Recovery LSP association is based on the identical content of the (Extended) ASSOCIATION Objects signaled in their Path messages during the initial LSP setup, for both single-sided and double-sided provisioning. As defined in [RFC6780], a single LSP can carry multiple ASSOCIATION Objects in its signaling ✨


4. Message and Object Definitions 🌸

4.1. RSVP Message Formats πŸ’…

this section presents the RSVP message formats as modified by this document. Unmodified RSVP message formats aren't listed here πŸŽ€

The format of a Path message looks like this:

   <Path Message> ::= <Common Header> [ <INTEGRITY> ]
                      [ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
                      [ <MESSAGE_ID> ]
                      <SESSION> <RSVP_HOP>
                      <TIME_VALUES>
                      [ <EXPLICIT_ROUTE> ]
                      <LABEL_REQUEST>
                      [ <PROTECTION> ]
                      [ <LABEL_SET> ... ]
                      [ <SESSION_ATTRIBUTE> ]
                      [ <NOTIFY_REQUEST> ... ]
                      [ <ADMIN_STATUS> ]
                      [ <ASSOCIATION> ... ]
                      [ <REVERSE_LSP> ... ]
                      [ <POLICY_DATA> ... ]
                      <sender descriptor>

The format of the <sender descriptor> isn't modified by this document πŸ¦‹

4.2. ASSOCIATION Object 🌈

the ASSOCIATION Object gets populated using the rules below for associating two reverse unidirectional LSPs into an associated bidirectional LSP ✨

Association Types:

in order to bind two reverse unidirectional LSPs into an associated bidirectional LSP, the Association Type MUST be set to indicate either single-sided or double-sided LSPs. The new Association Types are defined like this:

   Value      Type
   -----      -----
     3        Double-Sided Associated Bidirectional LSP (D)
     4        Single-Sided Associated Bidirectional LSP (A)

Association ID:

for both single-sided and double-sided provisioning, Association ID MUST be set to a value assigned by the node that originates the association for the bidirectional LSP 🫢

Association Source:

Association Source MUST be set to an address selected by the node that originates the association for the bidirectional LSP. For example, this may be a management entity or, in the case of single-sided provisioning, an address assigned to the node that originates the LSP πŸ”₯

4.3. Extended ASSOCIATION Object πŸ“

the (Extended) ASSOCIATION Object gets populated using the rules below for associating two reverse unidirectional LSPs into a bidirectional LSP πŸ’œ

The Association Type, Association ID, and Association Source MUST be set as defined for the ASSOCIATION Object in Section 4.1. πŸ¦‹

Global Association Source:

for both single-sided and double-sided provisioning, Global Association Source, when used, MUST be set to the Global_ID [RFC6370] of the node that originates the association for the bidirectional LSP 🌸

Extended Association ID:

for both single-sided and double-sided provisioning, Extended Association ID, when used, MUST be set to a value selected by the node that originates the association for the bidirectional LSP 🧚

4.4. REVERSE_LSP Object Definition πŸŽ€

4.4.1. REVERSE_LSP Object Format πŸ™ˆ

The REVERSE_LSP Object is carried in the Path message of a forward LSP to provide information for the reverse LSP to use. It also shows that the LSP is the forward LSP of a single-sided associated bidirectional LSP πŸ’–

The Object has the following format:

   Class_Num = 203, C_Type = 1.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      //                        (Subobjects)                          //
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

4.4.2. REVERSE_LSP Subobjects ✨

Subobjects override the default contents of a Path message for a reverse LSP; see Section 5.2. The contents of a REVERSE_LSP Object are zero or more variable-length subobjects that have the same format as RSVP Objects; see Section 3.1.2 of [RFC2205]. Any object that may be carried in a Path message MAY be carried in the REVERSE_LSP Object. Subobject ordering MUST follow any Path message Object ordering requirements πŸ‘‘

Here are some examples of the Path message Objects that can go in the REVERSE_LSP Object (but the list isn't limited to these) πŸ’…


5. Processing Rules πŸ‘‘

generally speaking, the processing rules for the ASSOCIATION Object are as specified in [RFC4872], and the ones for the Extended ASSOCIATION Object are as specified in [RFC6780]. The next sections describe the rules for processing (Extended) ASSOCIATION Objects for both double-sided and single-sided associated bidirectional LSPs, plus REVERSE_LSP Objects for single-sided associated bidirectional LSPs 🫢

5.1. Rules for ASSOCIATION Object πŸ’–

okay so this section is all about how two one-way LSPs get glued together into one associated bidirectional LSP πŸ¦‹, and the glue is an (Extended) ASSOCIATION Object ✨

The actual matching rules for figuring out which LSPs belong together live in [RFC6780] 🌸. [RFC6780] says that if there are no special matching rules for a given Association Type, the included (Extended) ASSOCIATION Objects in the LSPs MUST be identical for an association to exist. So they have to be exact matches πŸ‘―β€β™€οΈ. This document doesn't add any special matching rules for the new Association Types, so LSP association works exactly the way [RFC6780] describes πŸ’….

As [RFC6780] explains, LSP associations can be upstream or downstream initiated, and the (Extended) ASSOCIATION Objects in Path or Resv Messages say which one it is. Bidirectional LSP associations are always upstream initiated πŸ™Œ, so the Association Types defined here are only meant to be read in Path Messages. These types SHOULD NOT be used in ASSOCIATION Objects carried in Resv messages and SHOULD be ignored if present πŸ™ˆ.

To say "hey, this is an associated bidirectional LSP" πŸ“£, the ingress node MUST insert an (Extended) ASSOCIATION Object into the Path message of the unidirectional LSP that's part of the associated bidirectional LSP it starts. If either Global Association Source or Extended Association Address is required, then an Extended ASSOCIATION Object [RFC6780] MUST be inserted in the Path message. Otherwise, an ASSOCIATION Object MAY be used. (Extended) ASSOCIATION Objects with both single-sided and double-sided Association Types MUST NOT be added or sent in the same Path message 🚫. Not allowed, bestie.

The ingress node MUST set the Association Type field in the (Extended) ASSOCIATION Object to "Single-Sided Associated Bidirectional LSP" when single-sided provisioning is used, and to "Double-Sided Associated Bidirectional LSP" when double-sided provisioning is used πŸŽ€.

A transit node MAY identify the unidirectional LSPs of an associated bidirectional LSP based on (Extended) ASSOCIATION Objects, with the Association Type values defined in this document, carried in Path messages πŸš‚. Obviously, this only works when the LSPs actually transit the node. As mentioned above, these associations are made per the rules defined in [RFC6780].

Egress nodes that support the Association Types defined in this document identify the unidirectional LSPs of an associated bidirectional LSP based on (Extended) ASSOCIATION Objects carried in Path messages πŸ”. Note that an ingress node will normally be the ingress for one of the unidirectional LSPs that make up an associated bidirectional LSP. When an egress node receives a Path message containing an (Extended) ASSOCIATION Object with one of the Association Types defined in this document, it MUST attempt to identify other LSPs (including ones for which it is an ingress node) that the LSP being processed is associated with. As defined above, these associations are made per the rules defined in [RFC6780]. An LSP that isn't associated at signaling time (for example, during rerouting or re-optimization) on an egress node is not necessarily considered an error condition 🌈.

Teardown of an associated bidirectional LSP follows the standard procedures defined in [RFC3209] and [RFC3473], either without or with the administrative status 🧹. Generally, the teardown procedures of the unidirectional LSPs forming an associated bidirectional LSP are independent of each other, so it's possible that one LSP does a graceful teardown with administrative status while the reverse LSP gets torn down without administrative status (using PathTear/ResvTear/PathErr with state removal). See Section 5.2 for additional rules related to LSPs established using single-sided provisioning πŸ“–.

When an LSP signaled with a Path message containing an (Extended) ASSOCIATION Object with an Association Type defined in this document is torn down, the processing node SHALL remove the binding of the LSP to any previously identified associated bidirectional LSP πŸ’”.

No additional processing is needed for Path messages with an (Extended) ASSOCIATION Object containing an Association Type field set to "Double-Sided Associated Bidirectional LSP" πŸ’œ.

5.1.1. Compatibility for ASSOCIATION Object 🧩

The ASSOCIATION Object was defined in [RFC4872] and the Extended ASSOCIATION Object was defined in [RFC6780], and both use class numbers in the form 11bbbbbb. That's what keeps things compatible with nodes that don't support them 🫢. Per [RFC2205], those nodes will ignore the object but forward it without modification.

Operators who want to use a function supported by a particular Association Type SHOULD ensure that the type is supported on any node that's expected to act on the association [RFC6780] πŸ”§.

An egress node that doesn't support the Association Types defined in this document is expected to return a PathErr with Error Code "Admission Control Failure" (1) [RFC2205] and Sub-code "Bad Association Type" (5) [RFC4872] 🚨.

LSP recovery as defined in [RFC4872] and [RFC4873] is not impacted by this document πŸ™Œ. The recovery mechanisms in [RFC4872] and [RFC4873] rely on (Extended) ASSOCIATION Objects too, but they use a different value for Association Type. Multiple ASSOCIATION Objects can be present in the LSP Path message and can coexist with the procedures defined in this document 🀝.


5.2. Rules for REVERSE_LSP Object πŸͺž

When a node initiates setup of an LSP using a Path message containing an ASSOCIATION or Extended ASSOCIATION Object, with the Association Type set to "Single-Sided Associated Bidirectional LSP", the Path message MUST carry the REVERSE_LSP Object to trigger creation of a reverse LSP on the egress node πŸš€.

The REVERSE_LSP subobject MAY contain any of the objects that the initiating node wants included in the Path message for the associated reverse LSP 🎁. The REVERSE_LSP Object SHOULD NOT be included in a REVERSE_LSP Object.

A transit node that receives a valid Path message containing a REVERSE_LSP Object MUST forward the REVERSE_LSP Object unchanged in the outgoing Path message 🫑.

An egress node that receives a Path message containing an REVERSE_LSP Object MUST verify that the Path message contains an ASSOCIATION or Extended ASSOCIATION Object with the Association Type set to "Single-Sided Associated Bidirectional LSP". If it doesn't, the Path message MUST NOT trigger a reverse LSP πŸ™…β€β™€οΈ. This verification failure SHOULD NOT trigger any RSVP message, but it can be logged locally and perhaps reported through network management mechanisms πŸ“.

Once validated, the egress node MUST create an LSP in the reverse direction or reject the Path message βœ…. If creating the reverse LSP fails, the egress node MUST return a PathErr with Error Code "Admission Control Failure" (1) [RFC2205] and Sub-code "Reverse LSP Failure" (6) defined in this document πŸ’₯. Note that normal Resv processing SHOULD NOT be impacted by the presence of an ASSOCIATION Object with an Association Type set to "Single-Sided Associated Bidirectional LSP".

The egress node MUST use the subobjects contained in the REVERSE_LSP Object for initiating the reverse LSP 🎯. When a subobject is not present in the received REVERSE_LSP Object, the egress node SHOULD initiate the reverse LSP based on the information in the received Path message of the forward LSP, as follows:

  • The egress node SHOULD copy the information from the received SESSION_ATTRIBUTE, CLASS_TYPE, LABEL_REQUEST, ASSOCIATION, ADMIN_STATUS, and PROTECTION Objects in the forward LSP Path message to form the Path message of the reverse LSP when the object is not present in the received REVERSE_LSP Object πŸ“‹.
  • The IP address in the reverse LSP's SESSION Object SHOULD be set to the IP address carried in the received SENDER_TEMPLATE Object; and conversely, the IP address in the SENDER_TEMPLATE Object SHOULD be set to the IP address carried in the received SESSION Object. There are no additional requirements related to the IDs carried in the SESSION and SENDER_TEMPLATE Objects πŸ”.
  • When the forward LSP Path message contains a RECORD_ROUTE Object, the egress node SHOULD include the received RECORD_ROUTE Object in the reverse LSP Path message. Local node information SHOULD also be recorded per standard Path message processing πŸ—ΊοΈ.
  • There are no specific requirements related to other objects πŸ€·β€β™€οΈ.

The resulting Path message is used to create the reverse LSP. From this point on, standard Path message processing is used to process the resulting Path message πŸ›€οΈ.

Note that the contents of a forward LSP, including a carried REVERSE_LSP Object, may change over the life of an LSP, and such changes MUST result in corresponding changes in the reverse LSP πŸ”„. In particular, any object or subobject that was copied during creation of the initial reverse LSP's Path message MUST be copied when it's modified in the forward LSP, and a trigger Path message MUST be processed ⚑.

The removal of the REVERSE_LSP Object in the received Path message SHOULD cause the egress node to tear down any previously established reverse LSP 🧼.

When the egress node receives a PathTear message for the forward LSP, or whenever the forward LSP is torn down, the node MUST remove the associated reverse LSP using standard PathTear message processing πŸ‘‹. Teardown of the reverse LSP for other reasons SHOULD NOT trigger removal of the initiating LSP, but it SHOULD result in the egress node sending a PathErr with Error Code "Admission Control Failure" (1) [RFC2205] and Sub-code "Reverse LSP Failure" (6) defined in this document 🚩.

5.2.1. Compatibility for REVERSE_LSP Object

The REVERSE_LSP Object is defined with class numbers in the form 11bbbbbb, which keeps it compatible with non-supporting nodes 🫢. Per [RFC2205], those nodes will ignore the object but forward it without modification.


6. IANA Considerations 🏠

IANA has registered values for the namespace defined in this document, and they're summarized in this section πŸ“š.

6.1. Association Types

IANA maintains the "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Parameters" registry (see <http://www.iana.org/assignments/gmpls-sig-parameters>). The "Association Type" subregistry is included in this registry πŸ—‚οΈ.

This registry has been updated with new Association Types for ASSOCIATION and Extended ASSOCIATION Objects defined in this document, as follows πŸ†•:

Value    Name                                          Reference
 3   Double-Sided Associated Bidirectional LSP (D)    Section 4.2
 4   Single-Sided Associated Bidirectional LSP (A)    Section 4.2

6.2. REVERSE_LSP Object

IANA maintains the "Resource Reservation Protocol (RSVP) Parameters" registry (see <http://www.iana.org/assignments/rsvp-parameters>). The "Class Names, Class Numbers, and Class Types" subregistry is included in this registry 🧾.

This registry has been extended with a new Class Number (Class-Num) and Class Type (C-type) for the RSVP REVERSE_LSP Object, requested in the 11bbbbbb range defined in this document, as follows πŸ‘‘:

     Class Number   Class Name                Reference
       203         REVERSE_LSP               Section 4.4

     o  REVERSE_LSP : Class Type or C-type = 1

6.3. Reverse LSP Failure PathErr Sub-code πŸ“‹

okay bestie, IANA keeps the "Resource Reservation Protocol (RSVP) Parameters" registry πŸ—‚οΈ at <http://www.iana.org/assignments/rsvp-parameters>. Inside it is the "Error Codes and Globally-Defined Error Value Sub-Codes" subregistry, and this document adds a new PathErr Sub-code to it. πŸ’…

Error Code = 01: "Admission Control Failure" (see [RFC2205])

o  "Reverse LSP Failure" (6)

7. Security Considerations πŸ”

okay so this doc adds two new Association Types to the (Extended) ASSOCIATION Object: Double-Sided Associated Bidirectional LSP and Single-Sided Associated Bidirectional LSP. πŸ¦‹ By themselves, these types don't add any extra info to signaling, and the related security stuff is already covered in RFC 6780. 🫢

The REVERSE_LSP Object rides in the Path message of a forward LSP that belongs to a Single-Sided Associated Bidirectional LSP. 🧚 It can carry parameters for the reverse LSP, so yes, more info can get conveyed, but it's not fundamentally different from what's already in a bidirectional LSP message. ✨ Processing these messages is already subject to local policy and the security discussions that come with it. πŸ”₯

For the full tea on MPLS and GMPLS security issues, check the MPLS/GMPLS security framework in [RFC5920]. πŸ’œ


8. References πŸ“š

8.1. Normative References

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <http://www.rfc-editor.org/info/rfc2119>.

[RFC2205]  Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
           Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
           Functional Specification", RFC 2205, DOI 10.17487/RFC2205,
           September 1997, <http://www.rfc-editor.org/info/rfc2205>.

[RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
           and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
           Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
           <http://www.rfc-editor.org/info/rfc3209>.

[RFC3473]  Berger, L., Ed., "Generalized Multi-Protocol Label
           Switching (GMPLS) Signaling Resource ReserVation Protocol-
           Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
           DOI 10.17487/RFC3473, January 2003,
           <http://www.rfc-editor.org/info/rfc3473>.

[RFC4872]  Lang, J., Ed., Rekhter, Y., Ed., and D. Papadimitriou,
           Ed., "RSVP-TE Extensions in Support of End-to-End
           Generalized Multi-Protocol Label Switching (GMPLS)
           Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007,
           <http://www.rfc-editor.org/info/rfc4872>.

[RFC4873]  Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel,
           "GMPLS Segment Recovery", RFC 4873, DOI 10.17487/RFC4873,
           May 2007, <http://www.rfc-editor.org/info/rfc4873>.

[RFC5511]  Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax
           Used to Form Encoding Rules in Various Routing Protocol
           Specifications", RFC 5511, DOI 10.17487/RFC5511, April
           2009, <http://www.rfc-editor.org/info/rfc5511>.

[RFC6780]  Berger, L., Le Faucheur, F., and A. Narayanan, "RSVP
           ASSOCIATION Object Extensions", RFC 6780,
           DOI 10.17487/RFC6780, October 2012,
           <http://www.rfc-editor.org/info/rfc6780>.

8.2. Informative References

[RFC4655]  Farrel, A., Vasseur, J.-P., and J. Ash, "A Path
           Computation Element (PCE)-Based Architecture", RFC 4655,
           DOI 10.17487/RFC4655, August 2006,
           <http://www.rfc-editor.org/info/rfc4655>.

[RFC5420]  Farrel, A., Ed., Papadimitriou, D., Vasseur, JP., and A.
           Ayyangarps, "Encoding of Attributes for MPLS LSP
           Establishment Using Resource Reservation Protocol Traffic
           Engineering (RSVP-TE)", RFC 5420, DOI 10.17487/RFC5420,
           February 2009, <http://www.rfc-editor.org/info/rfc5420>.

[RFC5654]  Niven-Jenkins, B., Ed., Brungard, D., Ed., Betts, M., Ed.,
           Sprecher, N., and S. Ueno, "Requirements of an MPLS
           Transport Profile", RFC 5654, DOI 10.17487/RFC5654,
           September 2009, <http://www.rfc-editor.org/info/rfc5654>.

[RFC5920]  Fang, L., Ed., "Security Framework for MPLS and GMPLS
           Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010,
           <http://www.rfc-editor.org/info/rfc5920>.

[RFC6370]  Bocci, M., Swallow, G., and E. Gray, "MPLS Transport
           Profile (MPLS-TP) Identifiers", RFC 6370,
           DOI 10.17487/RFC6370, September 2011,
           <http://www.rfc-editor.org/info/rfc6370>.

[RFC6373]  Andersson, L., Ed., Berger, L., Ed., Fang, L., Ed., Bitar,
           N., Ed., and E. Gray, Ed., "MPLS Transport Profile
           (MPLS-TP) Control Plane Framework", RFC 6373,
           DOI 10.17487/RFC6373, September 2011,
           <http://www.rfc-editor.org/info/rfc6373>.

[RFC6387]  Takacs, A., Berger, L., Caviglia, D., Fedyk, D., and J.
           Meuric, "GMPLS Asymmetric Bandwidth Bidirectional Label
           Switched Paths (LSPs)", RFC 6387, DOI 10.17487/RFC6387,
           September 2011, <http://www.rfc-editor.org/info/rfc6387>.

[RFC6689]  Berger, L., "Usage of the RSVP ASSOCIATION Object",
           RFC 6689, DOI 10.17487/RFC6689, July 2012,
           <http://www.rfc-editor.org/info/rfc6689>.

Acknowledgements πŸ™

the authors gave big thanks to Lou Berger and George Swallow for their great guidance on this work 🫢. they also thanked Jie Dong for the discussion of the recovery LSP, Lamberto Sterling for his valuable comments about asymmetric bandwidth signaling, Attila Takacs for the discussion of the provisioning model, Siva Sivabalan, Eric Osborne, and Robert Sawaya for the ASSOCIATION Object discussions, and Matt Hartley for useful suggestions on the document. ✨ Extra love to Bo Wu, Xihua Fu, and Lizhong Jin for the initial discussions, Wenjuan He for the prototype implementation, and Lou Berger, Daniel King, and Deborah Brungard for reviewing the document. πŸ’–


Contributors πŸŽ€

Fan Yang
ZTE

EMail: yang.fan240347@gmail.com


Weilian Jiang
ZTE

EMail: jiang.weilian@gmail.com

Authors' Addresses πŸ¦‹

Fei Zhang (editor)
Huawei

EMail: zhangfei7@huawei.com


Ruiquan Jing
China Telecom

EMail: jingrq@ctbri.com.cn


Rakesh Gandhi (editor)
Cisco Systems

EMail: rgandhi@cisco.com
πŸ“¦ where this page comes from