RFC 2380
RSVP over ATM Implementation Requirements
RFC 2380: RSVP over ATM Implementation Requirements β¨
Network Working Group π Author: L. Berger, FORE Systems π Category: Standards Track π¦ Date: August 1998 πΈ Obsoletes / Updates: none listed in the title block π«Ά
Okay bestie, this is RFC 2380, and it's giving "how to actually get RSVP running over ATM without everything exploding" π It's a standards track doc, so the rules here are the real deal, not vibes. π₯
Status of this Memo β¨
So this doc is an Internet standards track protocol for the whole Internet community π It also wants people to discuss it and send suggestions for making it better π¬ If you want to know where this protocol stands officially, check the current "Internet Official Protocol Standards" (STD 1) π And the memo can be distributed with no limits π¦
Copyright Notice π
Copyright (C) The Internet Society (1998). All Rights Reserved.
Abstract π§
Okay so this memo is all about the specific implementation requirements for running RSVP over ATM switched virtual circuits (SVCs) π The whole point is interoperability: lots of different implementations need to play nicely together, and they all need to conform to the RSVP and Integrated Services specs π«Ά There's a separate doc [5] with specific guidelines for running over today's ATM networks π The general problem gets talked about in [9] πΈ Integrated Services to ATM service mappings are covered in [6] β¨ Put it all together and you've got the background and info you need to implement Integrated Services and RSVP over ATM π
Table of Contents π
1. Introduction ................................................. 2
1.1 Terms .................................................... 2
1.2 Assumptions .............................................. 3
2. General RSVP Session Support ................................. 4
2.1 RSVP Message VC Usage .................................... 4
2.2 VC Initiation ............................................ 4
2.3 VC Teardown .............................................. 5
2.4 Dynamic QoS .............................................. 6
2.5 Encapsulation ............................................ 6
3. Multicast RSVP Session Support ............................... 7
3.1 Data VC Management for Heterogeneous Sessions ............ 7
3.2 Multicast End-Point Identification ....................... 8
3.3 Multicast Data Distribution .............................. 9
3.4 Receiver Transitions ..................................... 11
4. Security Considerations ...................................... 11
5. Acknowledgments .............................................. 11
6. Author's Address ............................................. 12
REFERENCES ...................................................... 13
FULL COPYRIGHT STATEMENT ........................................ 14
1. Introduction π¦
Okay so this memo is about running IP over ATM in an environment where SVCs carry QoS flows and RSVP is the internet level QoS signaling protocol π It applies when you're using CLIP/ION, LANE2.0 and MPOA [4] to support IP over ATM π The general stuff about running RSVP [8] over ATM has already been covered in a bunch of papers, including [9] and some earlier work π This doc is meant to be a companion to [9,5], so you should be familiar with both π«Ά
This document defines the specific requirements for implementations using ATM UNI3.x and 4.0 π Every RSVP over ATM implementation has to follow these to keep interoperability working, no exceptions π₯ More recommendations for implementers are in [5] β¨
The rest of this section covers terms and assumptions π Section 2 is the common stuff for all RSVP sessions πΈ Section 3 is the multicast-specific stuff π§
1.1 Terms π
"Reservation" and "flow" get thrown around in lots of contexts, and they don't always mean the same thing π So here's how this document uses them:
- Reservation is what this doc calls an RSVP initiated request for resources π RSVP kicks off those requests based on RESV message processing, and RESV messages that just refresh state don't trigger a resource request π Resource requests can be made based on RSVP sessions and RSVP reservation styles π Styles decide whether the reserved resources get used by one sender or shared by several senders π Check [8] for the details of each style β¨ Each new request is called an RSVP reservation here, or just reservation π¦
- Flow is the data traffic tied to a particular reservation π What "flow" means depends on the RSVP style π For shared style reservations there's one flow per session πΈ For distinct style reservations there's one flow per sender (per session) π«Ά
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 [7] π₯
1.2 Assumptions πΈ
Here are the assumptions this doc makes π§
- RSVP
We're assuming RSVP is the internet signaling protocol described in [8] π You're expected to already know [8] π
- IPv4 and IPv6
RSVP support has been defined for both IPv4 and IPv6 β¨ The guidelines here work for supporting RSVP with either one π This document doesn't require one version over the other π
- Best effort service model
The current Internet only supports best effort service π¦ We're assuming that as more pieces of the Integrated Services model get defined, best effort service has to keep being supported too π«Ά
- ATM UNI 3.x and 4.0
We're assuming ATM service as defined by UNI 3.x and 4.0 π ATM gives you both point-to-point and point-to-multipoint Virtual Circuits (VCs) with a specified Quality of Service (QoS) π It also gives you both Permanent Virtual Circuits (PVCs) and Switched Virtual Circuits (SVCs) πΈ In a PVC environment, PVCs are typically used as point-to-point link replacements, so the support issues look a lot like point-to-point links π This memo assumes SVCs are what's used to support RSVP over ATM π
2. General RSVP Session Support π
This section has the implementation requirements that apply to all RSVP sessions, unicast and multicast alike π₯ It covers VC usage, QoS VC initiation, VC teardown, handling requested QoS changes, and encapsulation β¨
2.1 RSVP Message VC Usage π¦
There are several RSVP Message VC Usage options out there for implementers π Implementers have to pick which VC carries RSVP messages and how RSVP sessions get aggregated over QoS VCs π These options were covered in [9], and some specific guidelines are in [5] πΈ To keep implementations that pick different options interoperable, RSVP over ATM implementations MUST NOT send RSVP (control) messages on the same QoS VC as RSVP associated data packets π RSVP over ATM implementations MAY send RSVP messages either on the best effort data path or on a separate control VC π«Ά
RSVP (control) messages and RSVP associated data packets don't ride the same VCs, so one VC could fail while the other stays up π When the VC carrying data packets fails and can't be reestablished, RSVP SHOULD treat that as an allocation failure π When the VC used to forward RSVP control messages gets abnormally released and can't be reestablished, the RSVP associated QoS VCs MUST also be released π₯ Releasing the associated data VCs is required to keep forwarding and reservation states in sync for the associated data flows β¨
2.2 VC Initiation π
There's an apparent mismatch between RSVP and ATM π³ RSVP control is receiver oriented, and ATM control is sender oriented πΈ This might seem like a huge issue at first, but it really isn't π RSVP reservation (RESV) requests get generated at the receiver, while the actual allocation of resources happens at the subnet sender π¦
For data flows, that means subnet senders MUST establish all QoS VCs, and the RSVP enabled subnet receiver MUST be able to accept incoming QoS VCs π These restrictions match RSVP version 1 processing rules, and they let senders use different flow to VC mappings, and even different QoS renegotiation techniques, without interoperability problems π§ Every RSVP over ATM approach where VCs are initiated and controlled by the subnet senders will interoperate π«Ά Figure 1 shows this data flow VC initiation model π
Data Flow ==========>
+-----+
| | --------------> +----+
| Src | --------------> | R1 |
| *| --------------> +----+
+-----+ QoS VCs
/\
||
VC ||
Initiator
Figure 1: Data Flow VC Initiation
RSVP over ATM implementations MAY send data in the backwards direction on an RSVP initiated QoS point-to-point VC π When sending in the backwards data path, the sender MUST ensure the data conforms to the backwards direction traffic parameters π₯ The traffic parameters are set by the VC initiator, so it's pretty likely that no resources will be requested for traffic coming from the called party π Worth noting: the backwards data path isn't available with point-to-multipoint VCs π
2.3 VC Teardown π
VCs carrying IP over ATM data are typically torn down based on inactivity timers πΈ That works because IP is connectionless, so there's no other way to know when a VC isn't needed anymore π«Ά RSVP gives explicit mechanisms (messages and timeouts) for figuring out when an associated data VC isn't needed, so the traditional VC timeout mechanisms aren't needed π§ Also, under normal operation RSVP implementations expect to allocate resources and have them stay allocated until RSVP releases them π So data VCs set up for RSVP controlled flows should only be released at RSVP's direction π Those VCs must not be timed out due to inactivity by either the VC initiator or the VC receiver π₯
This clashes with VCs timing out the way described in RFC 1755 [11], section 3.4 on VC Teardown π³ RFC 1755 recommends tearing down a VC that's been inactive for a certain length of time, and twenty minutes is the recommended value π That timeout is typically implemented at both the VC initiator and the VC receiver π Although, section 3.1 of the update to RFC 1755 [12] says inactivity timers must not be used at the VC receiver π¦
In RSVP over ATM implementations, the configurable inactivity timer mentioned in [11] MUST be set to "infinite" for VCs initiated at the request of RSVP β¨ Setting the inactivity timer value at the VC initiator shouldn't be a problem, since the proper value can be relayed internally at the originator π Setting the inactivity timer at the VC receiver is harder, and would need some mechanism to signal that an incoming VC was RSVP initiated π To dodge that complexity and to conform to [12], RSVP over ATM implementations MUST not use an inactivity timer to clear any received connections π π₯
2.4. Dynamic QoS β¨
okay so RSVP is lowkey the flexible one here π¦ It lets you change QoS parameters at any time, but ATM UNI3.x and 4.0 are kinda rigid and don't allow any QoS changes after a VC is set up π See [9] for the full tea.
The way RSVP handles reservation changes is by trying to swap the existing VC for a new, appropriately sized one π While the replacement VC is being set up, the old VC MUST be left in place unmodified. Leaving it alone keeps QoS data flowing with as little interruption as possible. Once the replacement VC is up, data moves over to the new VC, and only then does the old one get closed π
If setting up the replacement VC fails, the old QoS VC MUST continue to be used π«Ά If the new reservation is bigger than the old one, the reservation request MUST be answered with an error. If the new reservation is smaller, the request MUST be treated as if the modification was successful. Yes, leaving the bigger allocation in place is suboptimal, but it maximizes the service the user gets, so it's the move π This behavior is also REQUIRED so you stay in line with the RSVP error handling in sections 2.5, 3.1.8 and 3.11.2 of [8]. Implementations SHOULD retry replacing a too large VC after some appropriate elapsed time π
One more thing π Only one QoS change can be processed at a time per reservation. If the requested QoS (from RSVP) changes while the first replacement VC is still being set up, then the replacement VC SHOULD BE released and the whole VC replacement process gets restarted. Implementations MAY also limit the number of changes processed in a time period per [9] β³
2.5. Encapsulation
There are multiple encapsulation options for data sent over RSVP triggered QoS VCs, which is giving main character energy π All RSVP over ATM implementations MUST be able to support LLC encapsulation per RFC 1483 [10] on such QoS VCs. Implementations MAY negotiate alternative encapsulations using the B-LLI negotiation procedures defined in ATM Signalling, so check [11] for the details π¦ When a QoS VC is only carrying IP packets, implementations SHOULD negotiate VC based multiplexing so they don't pay the overhead of the LLC header π
3. Multicast RSVP Session Support π§
okay this is where it gets extra spicy πΆοΈ Running RSVP over ATM has a few things that are unique to multicast sessions. This section covers multicast end-point identification, multicast data distribution, multicast receiver transitions, and next-hops asking for different QoS values (heterogeneity). That last one includes how to handle multicast best effort receivers. Handling best effort receivers isn't strictly an RSVP issue, but any RSVP over ATM implementation has to deal with it to keep the expected best effort internet service going π«Ά
3.1. Data VC Management for Heterogeneous Sessions
the details about data VC management for heterogeneous sessions are covered in depth in [9] β¨ The quick version: heterogeneity happens when receivers ask for different levels of QoS within a single session, and also when some receivers don't ask for any QoS at all. Both types are shown in figure 2 π
+----+
+------> | R1 |
| +----+
|
| +----+
+-----+ -----+ +--> | R2 |
| | ---------+ +----+ Receiver Request Types:
| Src | ----> QoS 1 and QoS 2
| | .........+ +----+ ....> Best-Effort
+-----+ .....+ +..> | R3 |
: +----+
/\ :
|| : +----+
|| +......> | R4 |
|| +----+
Single
IP Mulicast
Group
Figure 2: Types of Multicast Receivers
[9] gives us four models for dealing with heterogeneity: full heterogeneity, limited heterogeneity, homogeneous, and modified homogeneous πΈ No matter which model or combo of models an implementation uses, implementations MUST NOT normally send more than one copy of a particular data packet to a particular next-hop (ATM end-point). Some transient duplicate transmission is acceptable, but only during VC setup and transition π
Implementations MUST also make sure data traffic gets sent to best effort receivers π Data traffic MAY be sent to best effort receivers over best effort or QoS VCs, whichever is appropriate for the model being implemented. In all cases, implementations MUST NOT create VCs in a way that stops data from reaching best effort receivers. This covers not being able to add a best effort receiver to a QoS VC, but it does not cover the case where best effort VCs can't be set up. That failure counts as a general IP over ATM failure, so it's beyond the scope of this document π«
There's an interesting interaction between dynamic QoS and heterogeneous requests when using the limited heterogeneity, homogeneous, or modified homogeneous models π₯ Say a RESV message comes in from a new next-hop and the requested resources are bigger than any existing reservation. Now both dynamic QoS and heterogeneity need handling. The key question is whether to add the new next-hop first or switch to the new QoS first. Honestly it's a fairly straightforward special case. The older, smaller reservation doesn't support the new next-hop, so the dynamic QoS process SHOULD be initiated first. Since the new QoS is only needed by the new next-hop, that next-hop SHOULD be the first end-point of the new VC. This keeps signaling to a minimum when the setup to the new next-hop fails π§ β¨
3.2. Multicast End-Point Identification
Implementations must be able to identify ATM end-points participating in an IP multicast group π Those ATM end-points will be IP multicast receivers and/or next-hops. Both QoS and best effort end-points must be identified. RSVP next-hop information will usually give you the QoS end-points, but not the best effort ones π
There's a special case where RSVP next-hop information won't give you the right end-points π© This happens when a next-hop isn't RSVP capable and RSVP is being automatically tunneled. In that case, a PATH message travels through a non-RSVP egress router on its way to the next-hop RSVP node. When that next-hop RSVP node sends a RESV message, it may arrive at the source via a different route than the one the PATH message used. The source gets the RESV message, but it won't know which ATM end-point should be associated with the reservation. For unicast sessions there's no problem, since the ATM end-point is the IP next-hop router. With multicast, though, multicast routing may not be able to uniquely identify the IP next-hop router, so a multicast end-point might not get identified properly π₯Ί
In certain cases you can also figure out the full list of best effort end-points β¨ Some multicast over ATM control mechanisms, like MARS in mesh mode, can be used to identify all end-points of a multicast group. Also, some multicast routing protocols can provide all next-hops for a particular multicast group. In both cases, RSVP over ATM implementations can get a full list of end-points, both QoS and non-QoS, using the right mechanisms. That full list can then be compared against the RSVP identified end-points to work out the list of best effort receivers π§
There are cases where QoS and best effort end-points can be identified, but there's no simple solution for uniquely identifying end-points of multicast traffic handled by non-RSVP next-hops π The preferred solution is to use multicast control mechanisms and routing protocols that support unique end-point identification. When those aren't available, all IP routers that will be used to support RSVP over ATM should support RSVP π£οΈ To ensure proper behavior, baseline RSVP over ATM implementations MUST only establish RSVP-initiated VCs to RSVP capable end-points. It's permissible to let a user override this behavior π
3.3. Multicast Data Distribution
There are two basic models for IP multicast data distribution over ATM πΈ In the first, senders set up point-to-multipoint VCs to all ATM attached destinations, and data is then sent over those VCs. This is often called "multicast mesh" or "VC mesh" mode distribution. In the second, senders send data over point-to-point VCs to a central point, and that central point relays the data onto point-to-multipoint VCs set up to all receivers of the IP multicast group. This one is often called "multicast server" mode distribution. Figure 3 shows the data flow for both modes π¦
_________
/ \
/ Multicast \
\ Server /
\_________/
^ | |
| | +--------+
+-----+ | | |
| | -------+ | | Data Flow:
| Src | ...+......|....+ V ----> Server
| | : | : +----+ ....> Mesh
+-----+ : | +...>| R1 |
: | +----+
: V
: +----+
+..> | R2 |
+----+
Figure 3: IP Multicast Data Distribution Over ATM
The goal of RSVP over ATM solutions is to make sure IP multicast data gets distributed with the appropriate QoS π― Current multicast servers [1,2] don't support any mechanisms for communicating QoS requirements to a multicast server. Because of that, RSVP over ATM implementations SHOULD support "mesh-mode" distribution for RSVP controlled multicast flows π«Ά When using multicast servers that don't support QoS requests, a sender MUST set the service, not global, break bit(s). Using the service-specific break bit tells the receivers that RSVP and Integrated Services are supported by the router, but that the service can't be delivered over the ATM network for that specific request π ββοΈ
In the case of MARS [1], the selection of distribution modes is administratively controlled π§ So network administrators who want proper RSVP over ATM operation MUST appropriately configure their network to support mesh mode distribution for multicast groups that will be used in RSVP sessions. For LANE1.0 networks, the only multicast distribution option is over the LANE Broadcast and Unknown Server, which means the break bit MUST always be set π€ For LANE2.0 [3], there are provisions that allow for non-server solutions, so it may be possible to ensure proper QoS delivery π
3.4. Receiver Transitions β¨
okay so bestie, picture this π¦ when you set up a point-to-multipoint VC, there's this awkward in-between moment where some receivers have already been added to the QoS VC and some haven't. it's giving transition chaos π
during that window you could start sending data on the shiny new VC already. but here's the tea: if you send on BOTH the new VC and the old VC, the receivers who got added get the proper QoS, and everyone gets the old QoS too. so the QoS receivers end up with duplicate data π and if you only send on the new QoS VC, anyone who hasn't been added yet just... misses data π₯Ί
so the real question is: send to both, or send to just one? one option gives you duplicates, the other might lose some data. pick your poison, babe π
this needs thinking through for three cases: when you're setting up the very first QoS VC, when you're setting up a VC to handle a QoS change, and when you're adding a brand-new end-point to a QoS VC that already exists πΈ
the first two cases are basically the same vibe. in both, you could send on the half-built new VC, and in both you're choosing between duplicates and lost data. to keep things predictable and still deliver to every receiver, data MUST NOT be sent on new VCs until all parties have been added. that way all data gets delivered exactly once to everyone π
the third case is the odd one out β here an end-point has to be added to an existing QoS VC and dropped from a best effort VC. the question is which step goes first. if the add goes first, the end-point might get duplicate data. if the drop goes first, it might miss data. to avoid losing data, the add MUST be completed first, and then the drop follows. this means receivers have to be ready to handle some duplicate packets whenever QoS is being set up π«Ά
4. Security Considerations π₯
okay this section is short but it's giving SERIOUS vibes π the same considerations stated in [8] and [11] apply to this document. that's it. there are no additional security issues raised in this document. so go read [8] and [11] and you're covered π
5. Acknowledgments π«Ά
this work is based on earlier drafts and comments from the ISSLL working group π the author wants to give them a big shoutout, especially Steve Berson, who coauthored one of the drafts. thank you queens π
6. Author's Address π
Lou Berger
FORE Systems
1595 Spring Hill Road
5th Floor
Vienna, VA 22182
Phone: +1 703-245-4527
EMail: lberger@fore.com
REFERENCES π
[1] Armitage, G., "Support for Multicast over UNI 3.0/3.1 based ATM Networks," RFC 2022, November 1996.
[2] The ATM Forum, "LAN Emulation Over ATM Specification", Version 1.0.
[3] The ATM Forum, "LAN Emulation over ATM Version 2 - LUNI Specification", April 1997.
[4] The ATM Forum, "MPOA Baseline Version 1", May 1997.
[5] Berger, L., "RSVP over ATM Implementation Guidelines", BCP 24, RFC 2379, August 1998.
[6] Borden, M., and M. Garrett, "Interoperation of Controlled-Load and Guaranteed-Service with ATM", RFC 2381, August 1998.
[7] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[8] Braden, R., Zhang, L., Berson, S., Herzog, S., and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification", RFC 2205, September 1997.
[9] Crawley, E., Berger, L., Berson, S., Baker, F., Borden, M., and J. Krawczyk, "A Framework for Integrated Services and RSVP over ATM", RFC 2382, August 1998.
[10] Heinanen, J., "Multiprotocol Encapsulation over ATM Adaptation Layer 5", RFC 1483, July 1993.
[11] Perez, M., Liaw, F., Grossman, D., Mankin, A., Hoffman, E., and A. Malis, "ATM Signalling Support for IP over ATM", RFC 1755, February 1995.
[12] Maher, M., "ATM Signalling Support for IP over ATM - UNI 4.0 Update", RFC 2331, April 1998.
Full Copyright Statement βοΈ
Copyright (C) The Internet Society (1998). 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.
π¦ where this page comes from
- ietf: rfc2380 1998-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms