RFC 3936

Procedures for Modifying the Resource reSerVation Protocol (RSVP)

πŸ“… published October 2004, from ietf

RFC 3936: Procedures for Modifying the Resource reSerVation Protocol (RSVP) πŸ’–βœ¨

Okay bestie, this is RFC 3936, and it's all about how we're allowed to change RSVP πŸŽ€

  • Network Working Group
  • Authors: K. Kompella (Juniper Networks) and J. Lang (Rincon Networks) 🫢
  • Category: Best Current Practice (BCP: 96) πŸ‘‘
  • Date: October 2004 🌸
  • Updates: RFC 3209 and RFC 2205 πŸ¦‹

Status of this Memo πŸ“Œ

This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements. Distribution of this memo is unlimited. 🌈

Copyright (C) The Internet Society (2004). πŸ’œ

Abstract 🧚

This memo specifies procedures for modifying the Resource reSerVation Protocol (RSVP). It also lays out new assignment guidelines for number spaces for RSVP messages, object classes, class-types, and sub-objects. Lowkey the whole vibe of this doc is "how do we change RSVP without chaos" πŸ’…

1. Introduction ✨

This memo specifies procedures for modifying the Resource reSerVation Protocol (RSVP) [RSVP], including (but not limited to) adding, updating, extending or obsoleting: messages, message formats and procedures, object classes and class types, object formats and procedures; header formats, error codes and subcodes and semantics, and procedures for sending, receiving, and addressing RSVP messages. So basically, if it's something RSVP does, it's on the list πŸ“

IANA recognizes the following RSVP name spaces: Message Types, Class Names, Class Numbers, Class Types and Sub-objects, Virtual Destination Ports, and Error Codes and (Subcode) Values. All of these will collectively be referred to as RSVP entities in this document. This memo specifies ranges for each name space and assignment policies for each range. New RSVP name spaces must be defined in a Standards Track RFC which include guidelines for IANA assignments within the new name spaces. πŸŽ€

The assignment policies used in this document are: Standards Action (as defined in [IANA]), Expert Review, and Organization/Vendor Private (more simply, "Vendor Private"). The last two are defined in this document. The vibe behind these policies is to make sure extensions to RSVP get adequate review before code-points are assigned, without being overly rigid. So if an extension is widely accepted and its ramifications are well understood, it may receive an assignment from the Standards Action space. However, if an extension is experimental in nature, it receives an assignment from the Expert Review space, and may, with maturity, move to Standards Track. Assignments from the Vendor Private space are not reviewed, but there are mechanisms in place to ensure that these codepoints can co-exist in a network without harm. πŸ¦‹

A standards body other than the IETF that wants to obtain an assignment for an RSVP entity must decide from which type of name/number space they desire their assignment be made from, and then submit the appropriate documentation. For example, if the assignment is to be made from a number space designated as Standards Action, a Standards Track RFC MUST be submitted in support of the request for assignment. Not gonna lie, that's a big ask, but it's how you get the big-league stamp ✨

This memo updates the IANA Considerations section (section 7) of [RSVP-TE], replacing the assignment policies stated there. πŸ”₯

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 BCP 14, RFC 2119 [KEYWORDS]. These are the official requirement words, so read them carefully πŸ™ˆ

2. Assignment Policies for RSVP Entities πŸ’…

For each of the RSVP name spaces identified by IANA, the space is divided into assignment ranges. The following terms are used in describing the procedures by which IANA assigns values: "Standards Action" (as defined in [IANA]), "Expert Review", and "Organization/Vendor Private", defined below. 🌸

"Expert Review" ranges refer to values that are to be reviewed by an Expert designated by the IESG. The code points from these ranges are typically used for experimental extensions. Such assignments MUST be requested by Experimental RFCs that document their use and processing, and the actual assignments made during the IANA actions for the document. Values from "Expert Review" ranges MUST be registered with IANA. Experimental stuff gets a real paper trail, periodt πŸ“œ

"Organization/Vendor Private" ranges refer to values that are enterprise-specific. These MUST NOT be registered with IANA. For Vendor Private values, the first 4-octet word of the data field MUST be an enterprise code [ENT] as registered with the IANA SMI Network Management Private Enterprise Codes, and the rest of the data thereafter is for the private use of the registered enterprise. (For each RSVP entity that has a Vendor Private range, it must be specified where exactly the data field starts. See below for examples.) In this way, different enterprises, vendors, or Standards Development Organizations (SDOs) can use the same code point without fear of collision. No drama, no overlaps 🫢

2.1. Message Types πŸ¦‹

A Message Type is an 8-bit number that identifies the function of the RSVP message. Values from 0 through 239 are to be assigned by Standards Action. Values from 240 through 255 are to be assigned by Expert Review. ✨

2.2. Class Names and Numbers πŸŽ€

Each class of data objects in an RSVP message is identified by an all upper-case Class Name and an 8-bit Class Number (also known as Class-Num or C-Num). Class Numbers are divided broadly into three ranges (0-127, 128-191, and 192-255). These ranges are determined by the two high-order bits of the Class-Num object. (The 'b' below represents a bit.) 🧚

Note: the first 32-bit word of an Object whose Class-Num or Class-Type is from the Vendor Private range MUST be that vendor's SMI enterprise code in network octet order. These enterprise codes can be obtained from, and registered with, IANA. An implementation encountering a Vendor Private object with an SMI enterprise code that it does not recognize MUST treat that object (and enclosing message) based on the Class-Num, as specified in [RSVP], section 3.10. Fallback energy, but make it make sense πŸ™ˆ

  • Class-Num = 0bbbbbbb Class Numbers from 0 through 119 are to be assigned by Standards Action. Class Numbers from 120 through 123 are to be assigned by Expert Review. Class Numbers from 124 through 127 are reserved for Vendor Private Use.
  • Class-Num = 10bbbbbb Class Numbers from 128 through 183 are to be assigned by Standards Action. Class Numbers from 184 through 187 are to be assigned by Expert Review. Class Numbers from 188 through 191 are reserved for Vendor Private Use.
  • Class-Num = 11bbbbbb Class Numbers from 192 through 247 are to be assigned by Standards Action. Class Numbers from 248 through 251 are to be assigned by Expert Review. Class Numbers from 252 through 255 are reserved for Vendor Private Use.

2.3. Class Types πŸ’–

Within each object class there is an 8-bit Class Type (also known as a C-Type). Class Types are scoped to a Class Number. In general, whether it makes sense to allow Class Type assignments through Expert Review or Vendor Private depends on what the Class Number actually means. So any new Class Number definition must specify an appropriate IANA Considerations policy for assigning additional Class Type values. 🌈

For Class Numbers that pre-date this document (specifically, 0, 1, 3-25, 30-37, 42-45, 64, 65, 128-131, 161-165, 192-196, and 207), the default assignment policy for new Class Types is Standards Action. The exception is when a Standards Track or Best Current Practice RFC supersedes this. πŸ‘‘

2.3.1. Sub-objects 🧸

Within an object, sub-objects may be defined, generally as a Type-Length-Value triple. This memo defines the assignment policies for sub-objects of EXPLICIT_ROUTE and RECORD_ROUTE. An RFC defining new sub-objects MUST state how IANA is to assign the sub-object Types. Tbh that's the only way anyone will know what to do πŸ’…

The EXPLICIT_ROUTE object [RSVP-TE] carries a variable length sub-object that is identified by a 7-bit Type field. Types 0 through 119 are to be assigned by Standards Action. Types 120 through 123 are to be assigned by Expert Review. Types 124 through 127 are to be reserved for Vendor Private Use. ✨

The RECORD_ROUTE object [RSVP-TE] carries a variable length sub-object that is identified by an 8-bit Type field. Types 0 through 191 are to be assigned by Standards Action. Types 192 through 251 are to be assigned by Expert Review. Types 252 through 255 are to be reserved for Vendor Private Use. πŸ¦‹

The first four octets of the sub-object contents of a Vendor Private sub-object of an EXPLICIT_ROUTE or RECORD_ROUTE object MUST be that vendor's SMI enterprise code in network octet order. Same energy as the enterprise code rule above, just for sub-objects πŸŽ€

2.4. Virtual Destination Ports 🧚

Virtual destination ports are described in [RSVP-IPSEC], which also specifies how IANA assignments are to be made. Go check that one out, it's the source of truth here 🫢

2.5. Error Codes and Values πŸ”₯

An Error Code is an 8-bit quantity that appears in an ERROR_SPEC object to broadly define an error condition. With each Error Code there may be a 16-bit Error Value that further specifies the cause of the error. Error Value may be globally defined, in which case the sub-code component is assigned by IANA. 🌸

Error Code values from 0 through 239 are to be assigned by Standards Action. Values from 240 through 251 are to be assigned by Expert Review. Values from 252 through 255 are reserved for Vendor Private Use. If the Error Code is for Vendor Private Use, the first four octets following the Error Value MUST be the vendor's SMI enterprise code in network octet order. Same enterprise code flex, just for error codes πŸ’…

Globally defined Error Values are assigned by Standards Action. πŸ“

3. Modifying RSVP Procedures 🌈

RSVP entities have associated procedures describing when and how they are to be sent, received, processed, and responded to. A change to a procedure that affects the processing of an RSVP entity that belongs to a range designated "Standards Action" MUST be documented in a Standards Track RFC. A change to a procedure that affects the processing of an RSVP entity that belongs to a range designated "Expert Review" MUST be documented in an Experimental RFC. So if you're changing how something works, the paperwork depends on which range it lives in πŸ‘‘

4. Acknowledgements 🫢

Many thanks to Scott Bradner, who encouraged this project, and made several helpful comments and suggestions. Iconic behavior from Scott πŸ’–

5. Security Considerations πŸ”

It is hoped that the procedures outlined in this memo will ensure that changes made to RSVP will be better reviewed and thus more architecturally sound, thereby enhancing the security both of the protocol and of networks deploying it. Okay this part is actually so important bestie. Reviewed changes mean sturdier RSVP, which means safer networks everywhere. The whole point is to keep the internet from getting sloppy πŸš¨πŸ’€

6. IANA Considerations 🧾

See section 2. 🌸

7. References πŸ“š

7.1. Normative References πŸŽ€

[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RSVP] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification", RFC 2205, September 1997.

[RSVP-TE] 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.

7.2. Informative References πŸ“š

Okay, now the bonus reading list 🧚. These are good to know, but you don't strictly need them to build the thing.

  • [ENT] IANA PRIVATE ENTERPRISE NUMBERS, http://www.iana.org/assignments/enterprise-numbers
  • [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
  • [RSVP-IPSEC] Berger, L. and T. O'Malley, "RSVP Extensions for IPSEC Data Flows", RFC 2207, September 1997.

8. Authors' Addresses πŸ’Œ

Meet the authors, bestie πŸŽ€

Kireeti Kompella
Juniper Networks
1194 N. Mathilda Ave
Sunnyvale, CA 94089 USA

EMail:  kireeti@juniper.net


Jonathan P. Lang
Rincon Networks

EMail:  jplang@ieee.org

Copyright (C) The Internet Society (2004).

So this doc is covered by the rights, licenses and restrictions in BCP 78. Unless BCP 78 says otherwise, the authors keep all of their rights πŸ’…

The legal bit, verbatim because it's serious:

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property 🧠

The IETF doesn't take a side on whether any IPR (intellectual property rights) or other rights that someone might claim over the tech in this doc are valid, how far they reach, or whether you could get a license for them. It also doesn't claim to have checked for any such rights itself. The IETF's rules on rights in its documents live in BCP 78 and BCP 79 πŸ“–

Copies of IPR disclosures sent to the IETF Secretariat are available, along with any promised licenses, or the results of any attempt to get a general license or permission for implementers or users to use the proprietary rights. You can find all of that in the IETF's online IPR repository at http://www.ietf.org/ipr πŸ”

The IETF also invites anyone to tell it about copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard. Send that info to ietf-ipr@ietf.org ✨

Acknowledgement 🫢

Funding for the RFC Editor function is currently provided by the Internet Society πŸ’œ

πŸ“¦ where this page comes from