RFC 3476
Documentation of IANA Assignments for Label Distribution Protocol (LDP), Resource ReSerVation Protocol (RSVP), and Resource ReSerVation Protocol-Traffic Engineering (RSVP-TE) Extensions for Opticalβ¦
RFC 3476: Documentation of IANA Assignments for Label Distribution Protocol (LDP), Resource ReSerVation Protocol (RSVP), and Resource ReSerVation Protocol-Traffic Engineering (RSVP-TE) Extensions for Optical UNI Signaling π¦
Okay bestie, let's get into it! π This one is an Informational RFC from the Network Working Group, written by B. Rajagopalan of Tellium, Inc., and dated March 2003. It doesn't list anything it obsoletes or updates in its header, so it's a standalone doc. π
Status of this Memo β¨
This memo gives information to the Internet community. It is not an Internet standard of any kind, and it can be shared freely with no restrictions. πΈ
Copyright Notice π
Copyright (C) The Internet Society (2003). All Rights Reserved. π
Abstract π
So the Optical Interworking Forum (OIF) came up with extensions to the Label Distribution Protocol (LDP) and the Resource ReSerVation Protocol (RSVP) for optical User Network Interface (UNI) signaling. β¨ These extensions are a bunch of new data objects and error codes, and this document walks through all of them. π«Ά
1. Introduction π§
The OIF UNI signaling spec is described in [8]. It's super smart about it, because it borrows from IETF protocol standards and even IETF work in progress. π The specific IETF pieces it uses are:
- Label distribution protocol (LDP) [6]
- Resource reservation protocol (RSVP) [5]
- GMPLS signaling and GMPLS extensions for SONET/SDH [4]
- GMPLS RSVP-TE and CR-LDP extensions [2, 3]
The big goal of the OIF UNI spec is to reuse IETF protocol definitions as much as possible. π Only a few extensions were needed for UNI-specific stuff, and those are what this document is about. π
2. LDP Extensions for UNI Signaling π
The LDP side of things is made of new TLVs that carry UNI-specific parameters, plus some new UNI-specific status codes. π¦ The new TLVs are Source ID (3 TLVs), Destination ID (3 TLVs), Egress Label, Local Connection ID, Diversity, Contract ID, and UNI Service Level [8]. We'll go through each one below. β¨
The new status codes come from the private use space of LDP codes, as described in [8]. π The UNI spec [8] also defines two new LDP messages, Status Enquiry and Status Response. Those messages are obsoleted now, so this document doesn't request any code points for them. π
2.1 Source ID TLVs πΈ
Three TLVs encode the Source ID, and their content and usage are described in [8]. π
2.1.1 IPv4 Source ID β¨
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Source ID Type (0x0960) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.1.2 IPv6 Source ID π¦
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Source ID Type (0x0961) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.1.3 NSAP Source ID π
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Source ID Type (0x0962) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.2 Destination ID TLVs π·
Three TLVs encode the Destination ID. Their content and usage are described in [8]. π«Ά
2.2.1 IPv4 Destination ID π
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Dest ID Type (0x0963) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.2.2 IPv6 Destination ID β
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Dest ID Type (0x0964) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.2.3 NSAP Destination ID π₯
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Dest ID Type (0x0965) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.3 Egress Label TLV π
The Egress Label TLV is encoded like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Egress Label (0x966) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Its content and usage are described in [8]. π§
2.4 Local Connection ID TLV πΈ
The Local Connection ID TLV is encoded like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Local Conn. ID (0x967) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Its content and usage are described in [8]. π
2.5 Diversity TLV π
The Diversity TLV is encoded like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Diversity (0x968) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Its content and usage are described in [8]. π¦
2.6 Contract ID TLV π
The Contract ID TLV is encoded like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Contract ID (0x969) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Its content and usage are described in [8]. π
2.7 UNI Service Level TLV π
The UNI Service Level TLV is encoded like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|Service Level (0x970) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Contents ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Its content and usage are described in [8]. π«Ά
3. RSVP Extensions for UNI Signaling π₯
Here's where RSVP comes in. β¨ A single new object class, called "Generalized_UNI", is defined. On top of that, the RSVP session object gets an extension and there are new UNI-specific error codes. π Those are described below.
3.1. Generalized_UNI Object β¨
okay bestie, this is the big GENERALIZED_UNI object π It's the container, and inside it you get a whole stack of sub-objects that carry the good stuff. Here's the overall shape:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length (>8) | CNum(229) | C-Type (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// (Subobjects) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Subobjects π
The contents of a GENERALIZED_UNI object are a series of variable-length data items. Every one of them uses the same common format, so once you've seen one you've basically seen them all π§
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Type | Sub-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Value //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
These are the sub-objects that get defined. Their contents are described in [8] π
- Source Transport Network Assigned (TNA) Address sub-object πΈ:
Type = 1. These sub-types exist:Ipv4 (Sub-type = 1)Ipv6 (Sub-type = 2)NSAP (Sub-type = 3)
- Destination TNA Address sub-object π¦:
Type = 2. Same vibe, same sub-types:Ipv4 (Sub-type = 1)Ipv6 (Sub-type = 2)NSAP (Sub-type = 3)
- Diversity sub-object:
Type = 3, Sub-type = 1 - Egress label sub-object:
Type = 4, Sub-type = 1 - Service level sub-object:
Type = 5, Sub-type = 1
3.2. UNI_Ipv4_Session Object π¦
this one is the object [7] that carries the RSVP session stuff. It's giving very specific energy, so here's the format:
UNI_IPv4_SESSION object: Class = 1, C-Type = 11
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length (16) | Class-Num(1) |C-Type (11) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Extended IPv4 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The C-Type value (11) is what lets UNI-related RSVP Sessions stand out from every other RSVP session π The usage of this object is described in [8].
3.3. Error Codes π¨
okay so UNI-specific errors live under two umbrella errors: "Routing Problem" (error code = 24) [7] and "Policy Control Failure" (error code = 2) [5]. They also need sub-codes assigned, so here's the list of errors and the proposed sub-code assignments π
- Routing Problem: Diversity not available (
Error code = 24, sub-code = 100) - Routing Problem: Service level not available (
Error code = 24, sub-code = 101) - Routing problem: Invalid/Unknown connection ID (
Error code = 24, sub-code = 102) - Policy control failure: Unauthorized sender (
Error code = 2, sub-code = 100) - Policy control failure: Unauthorized receiver (
Error code = 2, sub-code = 101)
4. IANA Considerations π
The OIF UNI 1.0 specification defines new objects and error codes under LDP and RSVP. Most of these extensions need code point assignments through IETF consensus action. Here's the summary π
4.1. LDP Messages, TLVs and Status Codes πΈ
TLV types 0x0960 - 0x0970 as described in Sections 2.1 - 2.7 above π
UNI-specific status codes were allocated out of the Private Use space, i.e., 0x3Fxxxxxx. These do not require IANA administration β¨
4.2. RSVP Object Class and Error Codes π
Generalized_UNI object class (Section 3.1), Class Number 229, C-Type 1. Further sub-objects are defined, with Type numbers 1-5 and various Sub-Type numbers, as described in Section 3.1. The code points for the Generalized_UNI object and the associated sub-objects require IANA administration.
UNI_Ipv4_Session Object (Class-Num = 1, C-Type = 11), as described in Section 3.2.
UNI-specific errors fall under the Routing Problem and Policy Control Failure errors (error codes 24 and 2). Sub-codes under error code 24 are 100, 101 and 102, as described in Section 3.3. Sub-codes under error code 2 are 100 and 101, as described in Section 3.3.
5. Security Considerations π
ngl this section is serious, so read it carefully π₯Ί Security considerations related to RSVP, RSVP-TE and LDP are described in Section 2.8, Section 6 and Section 5 of RFCs 2205 [5], 3209 [9] and 3036 [6], respectively. Security considerations pertaining to UNI signaling using the extensions described in this document, and how these relate to the security aspects of RSVP, RSVP-TE and LDP, are described in Section 13.4 of the UNI specification [8].
6. References π
- [1] Berger, L., Editor, "Generalized Multi-Protocol Label Switching (MPLS) Signaling Functional Description", RFC 3471, January 2003.
- [2] Berger, L., Editor, "Generalized Multi-Protocol Label Switching (MPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.
- [3] Ashwood-Smith, P. and L. Berger, Editors, "Generalized Multi-Protocol Label Switching (MPLS) Signaling Constraint-based Routed Label Distribution Protocol (CR-LDP) Extensions", RFC 3472, January 2003.
- [4] E. Mannie, et al., "GMPLS Extensions for SONET and SDH Control", Work in Progress.
- [5] Braden, R., Editor, Zhang, L., Berson, S., Herzog, S. and S. Jamin, "RSVP Functional Specification", RFC 2205, September 1997.
- [6] Andersson, L., Doolan, P., Feldman, N., Fredette, A. and B. Thomas, "LDP Specification", RFC 3036, January 2001.
- [7] 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.
- [8] UNI 1.0 Signaling Specification, The Optical Internetworking Forum,
http://www.oiforum.com/public/UNI_1.0_ia.html
7. Intellectual Property π¦
The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. Neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in RFC 2028.
Copies of claims of rights made available for publication, and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.
8. Author's Address ποΈ
Bala Rajagopalan Tellium, Inc. 2 Crescent Place Ocean Port, NJ 07757
Phone: +1-732-923-4237 EMail: braja@tellium.com
8. Full Copyright Statement Β©οΈ
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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.
Acknowledgement π«Ά
Funding for the RFC Editor function is currently provided by the Internet Society. β¨
π¦ where this page comes from
- ietf: rfc3476 2003-04
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms