RFC 6511

Non-Penultimate Hop Popping Behavior and Out-of-Band Mapping for RSVP-TE Label Switched Paths

πŸ“… published February 2012, from ietf

RFC 6511 πŸŽ€ Non-Penultimate Hop Popping Behavior and Out-of-Band Mapping for RSVP-TE Label Switched Paths

okay bestie, this one is from February 2012 and it's a Standards Track doc from the IETF πŸ¦‹ The authors are Z. Ali and G. Swallow from Cisco Systems, plus R. Aggarwal from Juniper Networks. It's published under ISSN 2070-1721. The title block doesn't list anything it obsoletes or updates, so it's a standalone spec πŸ’…


Abstract ✨

there are a bunch of deployment setups where an egress Label Switching Router (LSR) needs to get the binding of an RSVP - Traffic Engineering (RSVP-TE) Label Switched Path (LSP) to an application and a payload identifier through some "out-of-band" (OOB) mechanism 😭 this doc defines the protocol mechanisms to make that work. the procedures are equally applicable for point-to-point (P2P) and point-to-multipoint (P2MP) LSPs 🫢


Status of This Memo πŸ“œ

this is an Internet Standards Track document πŸ”₯

it's a product of the Internet Engineering Task Force (IETF), and it represents the consensus of the IETF community. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). more info on Internet Standards is in Section 2 of RFC 5741 🌸

for the current status, any errata, and how to give feedback on this doc, check http://www.rfc-editor.org/info/rfc6511 ✨


the copyright is Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. πŸ’…

this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the date of publication. please actually read those, bestie, because they explain your rights and restrictions for this doc. any Code Components pulled out of this doc 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 πŸ™ˆ

this doc may include material from IETF Documents or IETF Contributions that were published or made publicly available before November 10, 2008. the people controlling the copyright in some of that material may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process. so without an adequate license from those copyright holders, this doc may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process. the only exceptions are formatting it for publication as an RFC or translating it into languages other than English 🌈


Table of Contents πŸ“–

   1. Introduction ....................................................2
      1.1. Conventions Used in This Document ..........................3
   2. RSVP-TE Signaling Extensions ....................................3
      2.1. Signaling Non-PHP Behavior .................................3
      2.2. Signaling OOB Mapping Indication ...........................5
      2.3. Relationship between OOB and Non-PHP Flags .................6
      2.4. Egress Procedure for Label Binding .........................6
   3. Security Considerations .........................................7
   4. IANA Considerations .............................................7
      4.1. Attribute Flags for LSP Attributes Object ..................7
      4.2. New RSVP Error Sub-Code ....................................8
   5. Acknowledgements ................................................8
   6. References ......................................................8
      6.1. Normative References .......................................8
      6.2. Informative References .....................................9

1. Introduction ✨

okay so, when RSVP-TE is used for stuff like Multicast Virtual Private Network (MVPN) [RFC6513] and Virtual Private LAN Service (VPLS) [RFC4761], an egress Label Switching Router (LSR) gets the binding of the RSVP-TE Label Switched Path (LSP) to an application and a payload identifier through an "out-of-band" (OOB) mechanism (e.g., Border Gateway Protocol (BGP)) πŸ¦‹ in that case, the egress LSR can't make correct forwarding decisions until it gets that OOB mapping info. and to apply the binding info, the egress LSR also needs to figure out which incoming LSP the traffic is arriving on 😭

so non-Penultimate Hop Popping (non-PHP) behavior is required to apply OOB mapping. non-PHP behavior means the egress LSRs assign a non-NULL label for the LSP being signaled πŸ’–

there are other apps that need non-PHP behavior too. when RSVP-TE point-to-multipoint (P2MP) LSPs carry IP multicast traffic, non-PHP behavior lets a leaf LSR identify the P2MP TE LSP the traffic came in on. so the egress LSR can tell whether traffic arrived on the expected P2MP LSP and throw away anything that didn't πŸ—‘οΈβœ¨ non-PHP behavior is also needed to work out the context of upstream assigned labels when that context is an MPLS LSP. and it may also be required for MPLS Transport Profile (MPLS-TP) LSPs [RFC5921] 🧚

this doc defines two new flags in the Attributes Flags TLV of the LSP Attributes object defined in [RFC5420] πŸ‘‘ one flag is for communicating non-PHP behavior, and the other says the binding of the LSP to an application and a payload identifier (Payload ID) needs to be learned through an out-of-band mapping mechanism. the Attribute Flags TLV and the Record Route Object (RRO) Attributes subobject have a one-to-one correspondence between their bits, so the matching flags to be carried in the RRO Attributes subobject are defined too πŸŽ€

the procedures here are equally applicable for point-to-point (P2P) and P2MP LSPs. specifying the OOB communication mechanism(s) is beyond the scope of this document πŸ™ˆ

1.1. Conventions Used in This Document πŸ“

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 RFC 2119 [RFC2119] πŸ’…


2. RSVP-TE Signaling Extensions πŸ”₯

this section describes the signaling extensions needed to address the requirements above 🫢

2.1. Signaling Non-PHP Behavior πŸ’–

so to request non-PHP behavior for an RSVP-TE LSP, this doc defines a new flag in the Attributes Flags TLV of the LSP Attributes object defined in [RFC5420]:

   Bit Number 7: Non-PHP behavior flag

to tell the ingress LSR that the egress LSR recognizes the "Non-PHP behavior flag", the same bit is used in the Flags field of the Record Route Object (RRO) Attributes subobject 🌸

an ingress LSR sets the "Non-PHP behavior flag" to signal that the egress LSRs SHOULD assign a non-NULL label for the LSP being signaled. this flag MUST NOT be modified by any other LSRs in the network. LSRs other than the egress LSRs SHOULD ignore this flag πŸ¦‹

if an egress LSR gets the Path message, supports the LSP Attributes object and the Attributes Flags TLV, and also recognizes the "Non-PHP behavior flag", it MUST allocate a non-NULL local label. the egress LSR MUST also set the "Non-PHP behavior flag" in the Flags field of the RRO Attributes subobject πŸ‘‘

if the egress LSR:

  • supports the LSP Attributes object but does not recognize the Attributes Flags TLV; or
  • supports the LSP Attributes object and recognizes the Attributes Flags TLV, but does not recognize the "Non-PHP behavior flag";

then it silently ignores the request according to the processing rules of [RFC5420] πŸ™ˆ

an ingress LSR requesting non-PHP behavior SHOULD examine the "Non-PHP behavior flag" in the Flags field of the RRO Attributes subobject, and it MAY send a Path Tear to the egress that hasn't set the "Non-PHP behavior flag". an ingress LSR requesting non-PHP behavior MAY also examine the label value for the egress LSR(s) in the RRO, and it MAY send a Path Tear to the egress that assigns a NULL label value 🧚

when signaling a P2MP LSP, a source node may wish to solicit an individual response to the "Non-PHP behavior flag" from the leaf nodes. because of the constraints on how LSP Attributes can be carried in Path and Resv messages under [RFC5420], the source node MUST use a separate Path message for each leaf in networks where [RFC6510] is not supported. in networks with [RFC6510] deployed, the source node MAY use either a single leaf per Path message or multiple leaves per Path message 🌈

part 2 picks up at Section 2.2 (Signaling OOB Mapping Indication) πŸ¦‹πŸ’œ

2.2. Signaling OOB Mapping Indication

okay so this section is about one single flag 🚩 that says "hey, the normal binding mechanism of an RSVP session is overridden rn." The actual out-of-band mappings are NOT this doc's problem (they're beyond the scope of this document), so don't go looking for them here πŸ™ˆ The flag lives in the Attributes Flags TLV of the LSP Attributes object from [RFC5420], and it's defined as:

Bit Number 8: OOB mapping flag

To tell the ingress LSR that the egress LSR recognizes the "OOB mapping flag", the same bit gets used in the Flags field of the Record Route object (RRO) Attributes subobject. It's giving handshake 🀝

An ingress LSR sets the "OOB mapping flag" to tell the egress LSR that the binding of the RSVP-TE LSP to an application and a payload identifier is being signaled out-of-band. This flag MUST NOT be modified by any other LSRs in the network. Like, hands off πŸ™…β€β™€οΈ LSRs other than the egress LSRs SHOULD ignore this flag.

When an egress LSR that supports the "OOB mapping flag" gets a Path message with that flag set, the egress LSR MUST set the "OOB mapping flag" in the Flags field of the RRO Attributes subobject. The rest of the RSVP signaling proceeds as normal ✨ However, the LSR MUST have received the OOB mapping before accepting traffic on the LSP. This implies that the egress LSR MUST NOT set up forwarding state for the LSP before it receives the OOB mapping. no mapping, no forwarding, periodt πŸ’…

Note that the payload information SHOULD be supplied by the OOB mapping. If the egress LSR receives the payload information from the OOB mapping, then the LSR MUST ignore the L3PID (Layer 3 Protocol ID) in the Label Request Object [RFC3209]. πŸŽ€

If the egress LSR:

  • supports the LSP Attributes object but does not recognize the Attributes Flags TLV; or
  • supports the LSP Attributes object and recognizes the Attributes Flags TLV, but does not recognize the "OOB mapping flag";

then it silently ignores the request according to the processing rules of [RFC5420]. Silent treatment era 🀫

An ingress LSR requesting OOB mapping SHOULD examine the "OOB mapping flag" in the Flags field of the RRO Attributes subobject and MAY send a Path Tear to the egress, which has not set the "OOB mapping flag". πŸ‘€

When signaling a P2MP LSP, a source node may wish to solicit an individual response to the "OOB mapping flag" from the leaf nodes. Given the constraints on how the LSP Attributes object may be carried in Path and Resv messages according to [RFC5420], in this situation, the source node MUST use a separate Path message for each leaf in networks where [RFC6510] is not supported. In networks with [RFC6510] deployed, either a single leaf per Path message or multiple leaves per Path message MAY be used by the source node. it's all about the constraints, bestie πŸ¦‹

In deploying applications where the egress LSR receives the binding of the RSVP-TE LSP to an application and a payload identifier using an OOB mechanism, it is important to recognize that the OOB mapping is sent asynchronously with respect to the signaling of the RSVP-TE LSP. The egress LSR only installs forwarding state for the LSP after it receives the OOB mapping. In deploying applications using an OOB mechanism, an ingress LSR may need to know when the egress is properly set up for forwarding (i.e., has received the OOB mapping). How the ingress LSR determines that the LSR is properly set up for forwarding at the egress LSR is beyond the scope of this document. Nonetheless, if the OOB mapping is not received by the egress LSR within a reasonable time, the procedure defined in Section 2.4 to tear down the LSP is followed. 🌸

Timing is everything, babe ⏰ the OOB mapping can show up late, so keep an eye on the clock.

2.3. Relationship between OOB and Non-PHP Flags

The "Non-PHP behavior flag" and "OOB mapping flag" can appear and be processed independently of each other. However, as mentioned earlier, in the context of the applications discussed in this document, OOB mapping requires non-PHP behavior. An ingress LSR requesting the OOB mapping MAY also set the "Non-PHP behavior flag" in the LSP Attributes object in the Path message. two flags, one vibe, but OOB mapping needs non-PHP πŸ’œ

2.4. Egress Procedure for Label Binding

RSVP-TE signaling completion and the OOB mapping information reception happen asynchronously at the egress. As mentioned in Section 2.2, the egress waits for the OOB mapping before accepting traffic on the LSP. Nonetheless, MPLS Operations, Administration, and Maintenance (OAM) mechanisms, e.g., LSP ping and traceroute, as defined in [RFC4379] and [RFC6425], are expected to work independently of the OOB mapping learning process. OAM stays in its own lane πŸ›£οΈ

In order to avoid unnecessary use of the resources and possible black-holing of traffic, an egress LSR MAY send a Path Error message if the OOB mapping information is not received within a reasonable time. This Path Error message SHOULD include the error code/sub-code "Notify Error / no OOB mapping received" for all affected LSPs. If a notify request was included when the LSP was initially set up, a Notify message (as defined in [RFC3473]) MAY also be used for delivery of this information to the ingress LSR. An egress LSR MAY implement a cleanup timer for this purpose. The time-out value is a local decision at the egress, with a RECOMMENDED default value of 60 seconds. ⏳ no wasted resources, no black holes, just vibes ✨


3. Security Considerations

The addition of non-PHP behavior adds a variety of attacks on the label assigned by the egress node. As a change in the value of the egress label reported in the RRO can cause the LSP to be torn down, additional security considerations for protecting labels assigned by the egress node are required. Security mechanisms as identified in [RFC5920], [RFC2205], [RFC3209], [RFC3473], [RFC5420], and [RFC4875] can be used for this purpose. This document does not introduce any additional security issues above those identified in [RFC5920], [RFC2205], [RFC3209], [RFC3473], [RFC5420], and [RFC4875].

🚨 Okay this one is serious bestie. Non-PHP behavior opens up a whole bunch of attacks on the label the egress assigns, and a change to that label in the RRO can tear the LSP down. Protect those labels like they're your last fry 🍟

4. IANA Considerations

The following changes to the Resource Reservation Protocol - Traffic Engineering (RSVP-TE) Parameters registry are required. πŸ“‹

4.1. Attribute Flags for LSP Attributes Object

The following new flags are defined for the Attributes Flags TLV in the LSP Attributes object.

  • Non-PHP behavior flag:

This flag is used in the Attributes Flags TLV in a Path message. The flag has a corresponding new flag to be used in the RRO Attributes subobject. As per [RFC5420], the bit numbering in the Attribute Flags TLV and the RRO Attributes subobject is identical. That is, the same attribute is indicated by the same bit in both places. This flag is not allowed in the Attributes Flags TLV in a Resv message. Specifically, attributes of this flag are as follows:

  • Bit Number: 7
  • Attribute flag carried in Path message: Yes
  • Attribute flag carried in Resv message: No
  • Attribute flag carried in RRO message: Yes
  • OOB mapping flag:

This flag is used in the Attributes Flags TLV in a Path message. The flag has a corresponding new flag to be used in the RRO Attributes subobject. As per [RFC5420], the bit numbering in the Attribute Flags TLV and the RRO Attributes subobject is identical. That is, the same attribute is indicated by the same bit in both places. This flag is not allowed in the Attributes Flags TLV in a Resv message. Specifically, attributes of this flag are as follows:

  • Bit Number: 8
  • Attribute flag carried in Path message: Yes
  • Attribute flag carried in Resv message: No
  • Attribute flag carried in RRO message: Yes

4.2. New RSVP Error Sub-Code

For Error Code = 25 "Notify Error" (see [RFC3209]), the following sub-code is defined.

      Sub-code                    Value
      --------                    -----

      No OOB mapping received     12

5. Acknowledgements

The authors would like to thank Yakov Rekhter for his suggestions on this document. 🫢


6. References

6.1. Normative References

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification", RFC 2205, September 1997.
  • [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, December 2001.
  • [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.
  • [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. Yasukawa, Ed., "Extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE Label Switched Paths (LSPs)", RFC 4875, May 2007.
  • [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, February 2009.
  • [RFC6510] Berger, L. and G. Swallow, "Resource Reservation Protocol (RSVP) Message Formats for Label Switched Path (LSP) Attributes Objects", RFC 6510, February 2012.

6.2. Informative References

  • [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures", RFC 4379, February 2006.
  • [RFC4761] Kompella, K., Ed., and Y. Rekhter, Ed., "Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling", RFC 4761, January 2007.
  • [RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS Networks", RFC 5920, July 2010.
  • [RFC5921] Bocci, M., Ed., Bryant, S., Ed., Frost, D., Ed., Levrau, L., and L. Berger, "A Framework for MPLS in Transport Networks", RFC 5921, July 2010.
  • [RFC6425] Saxena, S., Ed., Swallow, G., Ali, Z., Farrel, A., Yasukawa, S., and T. Nadeau, "Detecting Data-Plane Failures in Point-to-Multipoint MPLS - Extensions to LSP Ping", RFC 6425, November 2011.
  • [RFC6513] Rosen, E., Ed., and R. Aggarwal, Ed., "Multicast in MPLS/BGP IP VPNs", RFC 6513, February 2012.

Authors' Addresses

Zafar Ali Cisco Systems, Inc. EMail: zali@cisco.com

George Swallow Cisco Systems, Inc. EMail: swallow@cisco.com

Rahul Aggarwal Juniper Networks EMail: raggarwa_1@yahoo.com

That's the whole RFC, bestie πŸŒˆπŸ’– go touch grass, you earned it 🧚

πŸ“¦ where this page comes from