draft-ietf-tsvwg-rsvp-bw-reduction-02.txt   rfc4495.txt 
Transport Area Working Group James Polk Network Working Group J. Polk
Internet Draft Subha Dhesikan Request for Comments: 4495 S. Dhesikan
Expiration: July 24th, 2005 Cisco Systems Updates: 2205 Cisco Systems
File: draft-ietf-tsvwg-rsvp-bw-reduction-02.txt January 24th, 2005 Category: Standards Track May 2006
A Resource Reservation Protocol Extension for the A Resource Reservation Protocol (RSVP) Extension for the
Reduction of Bandwidth of a Reservation Flow Reduction of Bandwidth of a Reservation Flow
Status of this Memo Status of This Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 24th, 2006. This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). All Rights Reserved. Copyright (C) The Internet Society (2006).
Abstract Abstract
This document proposes an extension to the Resource Reservation This document proposes an extension to the Resource Reservation
Protocol (RSVPv1) to reduce the guaranteed bandwidth allocated to an Protocol (RSVPv1) to reduce the guaranteed bandwidth allocated to an
existing reservation. This mechanism can be used to affect existing reservation. This mechanism can be used to affect
individual reservations, aggregate reservations or other forms of individual reservations, aggregate reservations, or other forms of
RSVP tunnels. RSVP tunnels. This specification is an extension of RFC 2205.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction ....................................................2
1.1 Conventions . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Conventions Used in This Document ..........................4
2. Individual Reservation Reduction Scenario . . . . . . . . . . 4 2. Individual Reservation Reduction Scenario .......................4
3. RSVP Aggregation Overview . . . . . . . . . . . . . . . . . . 5 3. RSVP Aggregation Overview .......................................6
3.1 RSVP Aggregation Reduction Scenario . . . . . . . . . . . 7 3.1. RSVP Aggregation Reduction Scenario ........................8
4. Requirements for Reservation Reduction . . . . . . . . . . . 8 4. Requirements for Reservation Reduction ..........................9
5. RSVP Bandwidth Reduction Solution . . . . . . . . . . . . . . 9 5. RSVP Bandwidth Reduction Solution ..............................10
5.1 Partial Preemption Error Code . . . . . . . . . . . . . 9 5.1. Partial Preemption Error Code .............................11
5.2 Error Flow Descriptor . . . . . . . . . . . . . . . . . 10 5.2. Error Flow Descriptor .....................................11
5.3 Individual Reservation Flow Reduction . . . . . . . . . 10 5.3. Individual Reservation Flow Reduction .....................11
5.4 Aggregation Reduction of Individual Flows . . . . . . . 10 5.4. Aggregation Reduction of Individual Flows .................12
5.5 RSVP Flow Reduction involving IPSec Tunnels . . . . . . 11 5.5. RSVP Flow Reduction Involving IPsec Tunnels ...............12
5.6 Reduction of Multiple Flows At Once . . . . . . . . . . 11 5.6. Reduction of Multiple Flows at Once .......................13
6. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 12 6. Backwards Compatibility ........................................13
7. Security Considerations . . . . . . . . . . . . . . . . . . 12 7. Security Considerations ........................................14
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 8. IANA Considerations ............................................15
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 9. Acknowledgements ...............................................15
Appendix. Walking Through the Solution . . . . . . . . . . . . . 13 10. References ....................................................15
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 10.1. Normative References .....................................15
10.1 Normative References . . . . . . . . . . . . . . . . . . 16 10.2. Informative References ...................................16
10.2 Informational References . . . . . . . . . . . . . . . . 17 Appendix A. Walking through the Solution ..........................17
Author Information . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
This document proposes an extension to the Resource Reservation This document proposes an extension to the Resource Reservation
Protocol (RSVP) [1] to allow an existing reservation to be reduced Protocol (RSVP) [1] to allow an existing reservation to be reduced in
in allocated bandwidth in lieu of tearing that reservation down when allocated bandwidth in lieu of tearing that reservation down when
some of that reservation's bandwidth is needed for other purposes. some of that reservation's bandwidth is needed for other purposes.
Several examples exist in which this mechanism may be utilized. Several examples exist in which this mechanism may be utilized.
The bandwidth allotted to an individual reservation may be reduced The bandwidth allotted to an individual reservation may be reduced
due to a variety of reasons such as preemption, etc. In such cases, due to a variety of reasons such as preemption, etc. In such cases,
when the entire bandwidth allocated to a reservation is not when the entire bandwidth allocated to a reservation is not required,
required, the reservation need not be torn down. The solution the reservation need not be torn down. The solution described in
described in this document allows endpoints to negotiate a new this document allows endpoints to negotiate a new (lower) bandwidth
(lower) bandwidth that falls at or below the specified new bandwidth that falls at or below the specified new bandwidth maximum allocated
maximum allocated by the network. Using a voice session as an by the network. Using a voice session as an example, this indication
example, this indication in RSVP could lead endpoints, using another in RSVP could lead endpoints, using another protocol such as Session
protocol such as Session Initiation Protocol (SIP) [9], to signal Initiation Protocol (SIP) [9], to signal for a lower-bandwidth codec
for a lower bandwidth codec and retain the reservation. and retain the reservation.
With RSVP aggregation [2], two aggregate flows with differing With RSVP aggregation [2], two aggregate flows with differing
priority levels may traverse the same router interface. If that priority levels may traverse the same router interface. If that
router interface reaches bandwidth capacity and is then asked to router interface reaches bandwidth capacity and is then asked to
establish a new reservation or increase an existing reservation the establish a new reservation or increase an existing reservation, the
router has to make a choice: deny the new request (because all router has to make a choice: deny the new request (because all
resources have been utilized) or preempt an existing lower priority resources have been utilized) or preempt an existing lower-priority
reservation to make room for the new or expanded reservation. reservation to make room for the new or expanded reservation.
If the flow being preempted is an aggregate of many individual If the flow being preempted is an aggregate of many individual flows,
flows, this has greater consequences. While [2] clearly does not this has greater consequences. While [2] clearly does not terminate
terminate all the individual flows if an aggregate is torn down, all the individual flows if an aggregate is torn down, this event
this event will cause packets to be discarded during aggregate will cause packets to be discarded during aggregate reservation
reservation reestablishment. This document describes a method where reestablishment. This document describes a method where only the
only the minimum required bandwidth is taken away from the lower- minimum required bandwidth is taken away from the lower-priority
priority aggregated reservation and the entire reservation is not aggregated reservation and the entire reservation is not preempted.
preempted. This has the advantage that only some of the microflows This has the advantage that only some of the microflows making up the
making up the aggregate are affected. Without this extension, all aggregate are affected. Without this extension, all individual flows
individual flows are affected and the deaggregator will have to are affected and the deaggregator will have to attempt the
attempt the reservation request with a reduced bandwidth. reservation request with a reduced bandwidth.
RSVP tunnels utilizing IPSec [8] also require an indication that RSVP tunnels utilizing IPsec [8] also require an indication that the
the reservation must be reduced to a certain amount (or less). RSVP reservation must be reduced to a certain amount (or less). RSVP
aggregation with IPSec Tunnels is being defined in [11], which aggregation with IPsec tunnels is being defined in [11], which should
should be able to take advantage of the mechanism created here in be able to take advantage of the mechanism created here in this
this specification. specification.
Note that when this document refers to a router interface being Note that when this document refers to a router interface being
"full" or "at capacity", this does not imply that all of the "full" or "at capacity", this does not imply that all of the
bandwidth has been used, but rather that all of the bandwidth bandwidth has been used, but rather that all of the bandwidth
available for reservation(s) via RSVP under the applicable policy available for reservation(s) via RSVP under the applicable policy has
has been used. Policies for real-time traffic routinely reserve been used. Policies for real-time traffic routinely reserve capacity
capacity for routing and inelastic applications, and may distinguish for routing and inelastic applications, and may distinguish between
between voice, video, and other real time applications. voice, video, and other real-time applications.
Explicit Congestion notification (ECN) [10] is an indication that Explicit Congestion Notification (ECN) [10] is an indication that the
the transmitting endpoint must reduce its transmission. It does not transmitting endpoint must reduce its transmission. It does not
provide sufficient indication to tell the endpoint by how much the provide sufficient indication to tell the endpoint by how much the
reduction should be. Hence the application may have to attempt reduction should be. Hence the application may have to attempt
multiple times before it is able to drop its bandwidth utilization multiple times before it is able to drop its bandwidth utilization
below the available limit. Therefore, while we consider ECN to be below the available limit. Therefore, while we consider ECN to be
very useful for elastic applications, it is not sufficient for the very useful for elastic applications, it is not sufficient for the
purpose of inelastic application where an indication of bandwidth purpose of inelastic application where an indication of bandwidth
availability is useful for codec selection. availability is useful for codec selection.
Section 2 will discuss the individual reservation flow problem Section 2 discusses the individual reservation flow problem, while
while Section 3 will discuss the aggregate reservation flow Section 3 discusses the aggregate reservation flow problem space.
problem space. Section 4 lists the requirements for this extension. Section 4 lists the requirements for this extension. Section 5
Section 5 details the protocol changes necessary in RSVP to create a details the protocol changes necessary in RSVP to create a
reservation reduction indication. And finally, there is an appendix reservation reduction indication. And finally, the appendix provides
with a walk-through example of how this extension modifies RSVP a walk-through example of how this extension modifies RSVP
functionality in an aggregate scenario. functionality in an aggregate scenario.
This document is intended to be classified as an 'update' to RFC This document updates RFC 2205 [1], as this mechanism affects the
2205 [1], as this mechanism affects the behaviors of the ResvErr and behaviors of the ResvErr and ResvTear indications defined in that
ResvTear indications defined in that document. document.
1.1 Conventions used in this document 1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [4]. document are to be interpreted as described in [4].
2. Individual Reservation Reduction Scenario 2. Individual Reservation Reduction Scenario
Figure 1 is a network topology that is used to describe the benefit Figure 1 is a network topology that is used to describe the benefit
of bandwidth reduction in an individual reservation. of bandwidth reduction in an individual reservation.
skipping to change at page 4, line 27 skipping to change at page 4, line 31
| |Int 1 | |Int 7 | | | |Int 1 | |Int 7 | |
Flow 1===> | +----- | |------+ | Flow 1===> Flow 1===> | +----- | |------+ | Flow 1===>
| R1 |Int 2 |===========>|Int 8 | R2 | | R1 |Int 2 |===========>|Int 8 | R2 |
| | |:::::::::::>| | | | | |:::::::::::>| | |
Flow 2:::> | +----- | |------+ | Flow 2:::> Flow 2:::> | +----- | |------+ | Flow 2:::>
| |Int 3 | |Int 9 | | | |Int 3 | |Int 9 | |
+------------+ +------------+ +------------+ +------------+
Figure 1. Simple Reservation Flows Figure 1. Simple Reservation Flows
Figure 1. Legend/Rules: Legend/Rules:
- Flow 1 priority = 300 - Flow 1 priority = 300
- Flow 2 priority = 100 - Flow 2 priority = 100
- Both flows are shown in the same direction (left to - Both flows are shown in the same direction (left to
right). Corresponding flows in the reverse direction are right). Corresponding flows in the reverse direction are
not shown for diagram simplicity not shown for diagram simplicity
RSVP is a reservation establishment protocol in one direction only. RSVP is a reservation establishment protocol in one direction only.
This split path philosophy is because the routed path from one This split-path philosophy is because the routed path from one device
device to the other in one direction might not be the routed path to the other in one direction might not be the routed path for
for communicating between the same two endpoints in the reverse communicating between the same two endpoints in the reverse
direction. End-systems must request 2 one-way reservations if that direction. End-systems must request 2 one-way reservations if that
is what is needed for a particular application (like voice calls). is what is needed for a particular application (like voice calls).
Please refer to [1] for the details on how this functions. This Please refer to [1] for the details on how this functions. This
example only describes the reservation scenario in one direction for example only describes the reservation scenario in one direction for
simplicity sake. simplicity's sake.
Figure 1. depicts 2 routers, (R1 and R2) initially with only one Figure 1 depicts 2 routers (R1 and R2) initially with only one flow
flow (Flow 1). The flows are forwarded from R1 to R2 via (Flow 1). The flows are forwarded from R1 to R2 via Int 2. For this
interface 2. For this example, let us say that flow 1 and flow 2 example, let us say that Flow 1 and Flow 2 each require 80 units of
each require 80 units of bandwidth (such as for the codec G.711 with bandwidth (such as for the codec G.711 with no silence suppression).
no silence suppression). Let us also say that the RSVP bandwidth
limit for interface 2 of R1 is 100 units. Let us also say that the RSVP bandwidth limit for Int 2 of R1 is 100
units.
As described in [3], a priority indication is established for each As described in [3], a priority indication is established for each
flow. In fact, there are two priority indications: flow. In fact, there are two priority indications:
1) one to establish the reservation, and 1) one to establish the reservation, and
2) one to defend the reservation. 2) one to defend the reservation.
In this example, flow 1 and flow 2 have an 'establishing' and a In this example, Flow 1 and Flow 2 have an 'establishing' and a
'defending' priority of 300 and 100 respectively. Flow 2 will have 'defending' priority of 300 and 100, respectively. Flow 2 will have
a higher establishing priority than flow 1 has for its defending a higher establishing priority than Flow 1 has for its defending
priority. This means that when flow 2 is signaled, and if no priority. This means that when Flow 2 is signaled, and if no
bandwidth is available at the interface, flow 1 will have to bandwidth is available at the interface, Flow 1 will have to
relinquish bandwidth in favor of the higher priority request of flow relinquish bandwidth in favor of the higher-priority request of Flow
2. The priorities assigned to a reservation are always end-to-end, 2. The priorities assigned to a reservation are always end-to-end,
and not altered by any routers in transit. and not altered by any routers in transit.
Without the benefit of this specification, flow 1 will be preempted. Without the benefit of this specification, Flow 1 will be preempted.
This specification makes it possible for the ResvErr message to This specification makes it possible for the ResvErr message to
indicate that 20 units are still available for a reservation to indicate that 20 units are still available for a reservation to
remain up (the interface's 100 units maximum minus flow 2's 80 remain up (the interface's 100 units maximum minus Flow 2's 80
units). The reservation initiating node (router or end-system) for units). The reservation initiating node (router or end-system) for
Flow 1 has the opportunity to re-negotiate (via call signaling) for Flow 1 has the opportunity to renegotiate (via call signaling) for
acceptable parameters within the existing and available bandwidth acceptable parameters within the existing and available bandwidth for
for the flow (for example, it may decide to change to using a codec the flow (for example, it may decide to change to using a codec such
such as G.729) as G.729)
The problems avoided with the partial failure of the flow are: The problems avoided with the partial failure of the flow are:
- Reduced packet loss which is resulted as flow 1 attempts to - Reduced packet loss, which results as Flow 1 attempts to
re-establish the reservation for a lower bandwidth. reestablish the reservation for a lower bandwidth.
- Inefficiency caused by multiple attempts until flow 1 is able to - Inefficiency caused by multiple attempts until Flow 1 is able to
request bandwidth equal to or lower than what is available. If request bandwidth equal to or lower than what is available. If
flow 1 is established with much less than what is available then Flow 1 is established with much less than what is available then it
it leads to inefficient use of available bandwidth. leads to inefficient use of available bandwidth.
3. RSVP Aggregation Overview 3. RSVP Aggregation Overview
The following network overview is to help visualize the concerns The following network overview is to help visualize the concerns that
that this specification addresses in RSVP Aggregates. Figure 2 this specification addresses in RSVP aggregates. Figure 2 consists
consists of 10 routers (the boxes) and 11 flows (1, 2, 3, 4, 5, 9, of 10 routers (the boxes) and 11 flows (1, 2, 3, 4, 5, 9, A, B, C, D,
A, B, C, D, and E). Initially there will 5 flows per aggregate and E). Initially, there will be 5 flows per aggregate (Flow 9 will
(flow 9 will be introduced to cause the problem we are addressing in be introduced to cause the problem we are addressing in this
this document),with 2 aggregates (X & Y); (1 through 5) in aggregate document), with 2 aggregates (X and Y); Flows 1 through 5 in
X and (A through E) in aggregate Y. These 2 aggregates will cross aggregate X and Flows A through E in aggregate Y. These 2 aggregates
one router interface utilizing all available capacity (in this will cross one router interface utilizing all available capacity (in
example). this example).
RSVP aggregation [per 2] is no different from an individual RSVP aggregation (per [2]) is no different from an individual
reservation with respect to being unidirectional. reservation with respect to being unidirectional.
Aggregator of X Deaggregator of X Aggregator of X Deaggregator of X
| | | |
V V V V
+------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
Flow 1-->| | | | | | | |--> Flow 1 Flow 1-->| | | | | | | |--> Flow 1
Flow 2-->| | | | | | | |--> Flow 2 Flow 2-->| | | | | | | |--> Flow 2
Flow 3-->| |==>| | | |==>| |--> Flow 3 Flow 3-->| |==>| | | |==>| |--> Flow 3
Flow 4-->| | ^ | | | | ^ | |--> Flow 4 Flow 4-->| | ^ | | | | ^ | |--> Flow 4
skipping to change at page 6, line 43 skipping to change at page 7, line 43
Flow C-->| |::>| | | |::>| |--> Flow C Flow C-->| |::>| | | |::>| |--> Flow C
Flow D-->| | | | | | | |--> Flow D Flow D-->| | | | | | | |--> Flow D
Flow E-->| R5 | | R6 | | R7 | | R8 |--> Flow E Flow E-->| R5 | | R6 | | R7 | | R8 |--> Flow E
+------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
^ ^ ^ ^
| | | |
Aggregator of Y Deaggregator of Y Aggregator of Y Deaggregator of Y
Figure 2. Generic RSVP Aggregate Topology Figure 2. Generic RSVP Aggregate Topology
Figure 2 legend/rules: Legend/Rules:
- Aggregate X priority = 100 - Aggregate X priority = 100
- Aggregate Y priority = 200 - Aggregate Y priority = 200
- All boxes are Routers - All boxes are routers
- Both aggregates are shown in the same direction (left to - Both aggregates are shown in the same direction (left to
right). Corresponding aggregates in the reverse direction are right). Corresponding aggregates in the reverse direction
not shown for diagram simplicity are not shown for diagram simplicity.
The path for aggregate X is: The path for aggregate X is:
R1 => R2 => R10 => R11 => R3 => R4 R1 => R2 => R10 => R11 => R3 => R4
where aggregate X starts in R1, and deaggregates in R4. where aggregate X starts in R1, and deaggregates in R4.
Flows 1, 2, 3, 4, 5 and 9 communicate through aggregate A Flows 1, 2, 3, 4, 5, and 9 communicate through aggregate A.
The path for aggregate Y is: The path for aggregate Y is:
R5 ::> R6 ::> R10 ::> R11 ::> R7 ::> R8 R5 ::> R6 ::> R10 ::> R11 ::> R7 ::> R8
where aggregate Y starts in R5, and deaggregates in R8. where aggregate Y starts in R5, and deaggregates in R8.
Flows A, B, C, D and E communicate through aggregate B Flows A, B, C, D, and E communicate through aggregate B.
Both aggregates share one leg or physical link: between R10 and Both aggregates share one leg or physical link: between R10 and R11,
R11, thus they share one outbound interface: Int8 of R10, where thus they share one outbound interface: Int 8 of R10, where
contention of resources may exist. That link has an RSVP capacity contention of resources may exist. That link has an RSVP capacity of
of 800kbps. RSVP signaling (messages) is outside this 800kbps in 800 kbps. RSVP signaling (messages) is outside the 800 kbps in this
this example, as is any session signaling protocol like SIP. example, as is any session signaling protocol like SIP.
3.1 RSVP Aggregation Reduction Scenario 3.1. RSVP Aggregation Reduction Scenario
Figure 2 shows an established aggregated reservation (aggregate X) Figure 2 shows an established aggregated reservation (aggregate X)
between the routers R1 and R4. This aggregated reservation between the routers R1 and R4. This aggregated reservation consists
consists of 5 microflows (flow 1, 2, 3, 4, 5). For the sake of this of 5 microflows (Flows 1, 2, 3, 4, and 5). For the sake of this
discussion, let us assume that each flow represents a voice call and discussion, let us assume that each flow represents a voice call and
requires 80kb (such as for the codec G.711 with no silence requires 80kb (such as for the codec G.711 with no silence
suppression). Aggregate X request is for 400kbps (80kbps * 5 flows). suppression). Aggregate X request is for 400 kbps (80 kbps * 5
The priority of the aggregate is derived from the individual flows). The priority of the aggregate is derived from the individual
microflows that it is made up of. In the simple case, all flows of a microflows that it is made up of. In the simple case, all flows of a
single priority are bundled as a single aggregate (another priority single priority are bundled as a single aggregate (another priority
level would be in another aggregate, even if traversing the same level would be in another aggregate, even if traversing the same path
path through the network). There may be other ways in which the through the network). There may be other ways in which the priority
priority of the aggregate is derived, but for this discussion it of the aggregate is derived, but for this discussion it is sufficient
is sufficient to note that each aggregate contains a priority (both to note that each aggregate contains a priority (both hold and
hold and defending priority). The means of deriving the priority is defending priority). The means of deriving the priority is out of
out of scope for this discussion. scope for this discussion.
Aggregate Y, in Figure 2, consists of flows A, B, C, D and E and Aggregate Y, in Figure 2, consists of Flows A, B, C, D, and E and
requires 400kbps (80kbps * 5 flows), and starts at R5 and ends requires 400 kbps (80 kbps * 5 flows), and starts at R5 and ends R8.
R8. This means there are two aggregates occupying all 800kbps of This means there are two aggregates occupying all 800 kbps of the
the RSVP capacity. RSVP capacity.
When Flow 9 is added into aggregate X, this will occupy 80kbps more When Flow 9 is added into aggregate X, this will occupy 80kbps more
than Int8 on R10 has available (880k offered load vs. 800k capacity) than Int8 on R10 has available (880k offered load vs. 800k capacity)
[1] and [2] create a behavior in RSVP to deny the entire aggregate Y [1] and [2] create a behavior in RSVP to deny the entire aggregate Y
and all its individual flows because aggregate X has a higher and all its individual flows because aggregate X has a higher
priority. This situation is where this document focuses its priority. This situation is where this document focuses its
requirements and calls for a solution. There should be some means requirements and calls for a solution. There should be some means to
to signal to all affected routers of aggregate Y that only 80kbps is signal to all affected routers of aggregate Y that only 80 kbps is
needed to accommodate another (higher priority) aggregate. A needed to accommodate another (higher priority) aggregate. A
solution that accomplishes this reduction instead of a failure solution that accomplishes this reduction instead of a failure could:
could:
- reduce significant packet loss of all flows within aggregate Y - reduce significant packet loss of all flows within aggregate Y
During the re-reservation request period of time no packets will During the re-reservation request period of time no packets will
traverse the aggregate until it is reestablished. traverse the aggregate until it is reestablished.
- reduces the chances that the reestablishment of the aggregate - reduces the chances that the reestablishment of the aggregate
will reserve an inefficient amount of bandwidth, causing the will reserve an inefficient amount of bandwidth, causing the
likely preemption of more individual flows at the aggregator likely preemption of more individual flows at the aggregator
than would be necessary had the aggregator had more information than would be necessary had the aggregator had more information
(that RSVP does not provide at this time) (that RSVP does not provide at this time)
During reestablishment of the aggregation in Figure 2. (without any During reestablishment of the aggregation in Figure 2 (without any
modification to RSVP), R8 would guess at how much bandwidth to ask modification to RSVP), R8 would guess at how much bandwidth to ask
for in the new RESV message. It could request too much bandwidth, for in the new RESV message. It could request too much bandwidth,
and have to wait for the error that not that much bandwidth was and have to wait for the error that not that much bandwidth was
available; it could request too little bandwidth and have that available; it could request too little bandwidth and have that
aggregation accepted, but this would meant that more individual aggregation accepted, but this would mean that more individual flows
flows would need to be preempted outside the aggregate than were would need to be preempted outside the aggregate than were necessary,
necessary, leading to inefficiencies in the opposite direction. leading to inefficiencies in the opposite direction.
4. Requirements for Reservation Reduction 4. Requirements for Reservation Reduction
The following are the requirements to reduce the bandwidth of a The following are the requirements to reduce the bandwidth of a
reservation. This applies to both individual and aggregate reservation. This applies to both individual and aggregate
reservations: reservations:
Req#1 - MUST have the ability to differentiate one reservation from Req#1 - MUST have the ability to differentiate one reservation from
another. In the case of aggregates, it MUST distinguish one another. In the case of aggregates, it MUST distinguish one
aggregate from other flows. aggregate from other flows.
Req#2 - MUST have the ability to indicate within an RSVP error Req#2 - MUST have the ability to indicate within an RSVP error
message (generated at the router with the congested message (generated at the router with the congested
interface) that a specific reservation (individual or interface) that a specific reservation (individual or
aggregate) is to be reduced in bandwidth. aggregate) is to be reduced in bandwidth.
Req#3 - MUST have the ability to indicate within the same error Req#3 - MUST have the ability to indicate within the same error
message the new maximum amount of bandwidth that is message the new maximum amount of bandwidth that is available
available to be utilized within the existing reservation, to be utilized within the existing reservation, but no more.
but no more.
Req#4 - MUST NOT produce a case in which retransmitted reduction Req#4 - MUST NOT produce a case in which retransmitted reduction
indications further reduce the bandwidth of a reservation. indications further reduce the bandwidth of a reservation.
Any additional reduction in bandwidth for a specified Any additional reduction in bandwidth for a specified
reservation MUST be signaled in a new message. reservation MUST be signaled in a new message.
RSVP messages are unreliable and can get lost. This specification RSVP messages are unreliable and can get lost. This specification
should not compound any error in the network. If a reduction should not compound any error in the network. If a reduction message
message were lost, another one needs to be sent. If the receiver were lost, another one needs to be sent. If the receiver ends up
ends up receiving two copies to reduce the bandwidth of a receiving two copies to reduce the bandwidth of a reservation by some
reservation by some amount, it is likely the router will reduce the amount, it is likely the router will reduce the bandwidth by twice
bandwidth by twice the amount than was actually called for. This the amount that was actually called for. This will be in error.
will be in error.
5. RSVP Bandwidth Reduction Solution 5. RSVP Bandwidth Reduction Solution
When a reservation is partially failed, a ResvErr (Reservation When a reservation is partially failed, a ResvErr (Reservation Error)
Error) message is generated just as it is done currently with message is generated just as it is done currently with preemptions.
preemptions. The error spec object and the preemption_pri policy The ERROR_SPEC object and the PREEMPTION_PRI object are included as
object are included as well. Very few additions/changes are needed well. Very few additions/changes are needed to the ResvErr message
to the ResvErr message to support partial preemptions. A new error to support partial preemptions. A new error subcode is required and
sub code is required and is defined in section 5.1. The error is defined in Section 5.1. The ERROR_SPEC object contained in the
flowspec contained in the ResvErr message indicates the flowspec ResvErr message indicates the flowspec that is reserved. The
that is reserved and this flowspec may not match or be less than the bandwidth indication in this flowspec SHOULD be less than the
original reservation request. This is defined in section 5.2. original reservation request. This is defined in Section 5.2.
A comment about RESV message not using a reliable transport. This A comment about RESV messages that do not use reliable transport:
document recommends that ResvErr message be made reliable by This document RECOMMENDS that ResvErr messages be made reliable by
implementing mechanisms in [6]. implementing mechanisms in [6].
The current behavior in RSVP requires a ResvTear message to be The current behavior in RSVP requires a ResvTear message to be
transmitted upstream when the ResvErr message is transmitted transmitted upstream when the ResvErr message is transmitted
downstream (per [1]). This ResvTear message terminates the downstream (per [1]). This ResvTear message terminates the
reservation in all routers upstream of the router where the failure reservation in all routers upstream of the router where the failure
occurred. This document requires that the ResvTear is only occurred. This document requires that the ResvTear is only generated
generated when the reservation is to be completely removed. In cases when the reservation is to be completely removed. In cases where the
where the reservation is only to be reduced, routers compliant with reservation is only to be reduced, routers compliant with this
this specification requires that the ResvTear message MUST NOT be specification require that the ResvTear message MUST NOT be sent.
sent.
An appendix has been written to walk through the overall solution to The appendix has been written to walk through the overall solution to
the problems presented in sections 2 and 3. There is mention of the problems presented in Sections 2 and 3. There is mention of this
this ResvTear transmission behavior within the appendix. ResvTear transmission behavior in the appendix.
5.1 Partial Preemption Error Code 5.1. Partial Preemption Error Code
The ResvErr message generated due to preemption includes the Error The ResvErr message generated due to preemption includes the
Spec object as well as the Preemption Priority Policy object. The ERROR_SPEC object as well as the PREEMPTION_PRI object. The format
format of Error-spec objects is defined in [1]. The error code of ERROR_SPEC objects is defined in [1]. The error code listed in
listed in the ERROR_SPEC object for preemption [5] currently is as the ERROR_SPEC object for preemption [5] currently is as follows:
follows:
Errcode = 2 (Policy Control Failure) and Errcode = 2 (Policy Control Failure) and
ErrSubCode = 5 (ERR_PREEMPT) ErrSubCode = 5 (ERR_PREEMPT)
The following error code is suggested in the Error_spec object for The following error code is suggested in the ERROR_SPEC object for
partial preemption: partial preemption:
Errcode = 2 (Policy Control Failure) and Errcode = 2 (Policy Control Failure) and
ErrSubCode = X (ERR_PARTIAL_PREEMPT) ErrSubCode = 102 (ERR_PARTIAL_PREEMPT)
Where 'X' is the number assigned by IANA for this error code There is also an error code in the PREEMPTION-PRI object. This error
There is also an error code in the preemption-pri policy object. code takes a value of 1 to indicate that the admitted flow was
This error code takes a value of 1 to indicate that the admitted preempted [3]. The same error value of 1 may be used for the partial
flow was preempted [3]. The same error value of 1 may be used for preemption case as well.
the partial preemption case as well.
5.2 Error Flow Descriptor 5.2. Error Flow Descriptor
The error flow descriptor is defined in [1] & [7]. In the case of The error flow descriptor is defined in [1] and [7]. In the case of
partial failure, the flowspec contained in the error flow partial failure, the flowspec contained in the error flow descriptor
descriptor indicates the highest average and peak rates that the indicates the highest average and peak rates that the preempting
preempting system can accept in the next RESV message. The system can accept in the next RESV message. The deaggregator must
deaggregator must reduce its reservation to a number less than or reduce its reservation to a number less than or equal to that,
equal to that, whether by changing codecs, by dropping reservations, whether by changing codecs, dropping reservations, or some other
or some other mechanism. mechanism.
5.3 Individual Reservation Flow Reduction 5.3. Individual Reservation Flow Reduction
When a router requires part of the bandwidth that has been allocated When a router requires part of the bandwidth that has been allocated
to a reservation be used for another flow, the router engages in the to a reservation be used for another flow, the router engages in the
partial-reduction of bandwidth as described in this document. The partial reduction of bandwidth as described in this document. The
router sends a ResvErr downstream to indicate the partial error with router sends a ResvErr downstream to indicate the partial error with
the error code and sub code as described in section 5.1. The the error code and subcode as described in section 5.1. The flowspec
flowspec contained in the ResvErr message will be used to indicate contained in the ResvErr message will be used to indicate the
the bandwidth that is currently allocated. bandwidth that is currently allocated.
The requesting endpoint that receives the ResvErr can then negotiate The requesting endpoint that receives the ResvErr can then negotiate
with the transmitting endpoint to lower the bandwidth requirement with the transmitting endpoint to lower the bandwidth requirement (by
(by selecting another lower bandwidth codec, for example). After the selecting another lower bandwidth codec, for example). After the
negotiations, both endpoints will issue the RSVP PATH and RESV negotiations, both endpoints will issue the RSVP PATH and RESV
message with the new, lowered bandwidth. message with the new, lowered bandwidth.
5.4 Aggregation Reduction of Individual Flows 5.4. Aggregation Reduction of Individual Flows
When a partial-failure occurs in a aggregation scenario, the When a partial failure occurs in an aggregation scenario, the
deaggregator receives the ResvErr message with the reduction deaggregator receives the ResvErr message with the reduction
indication from a router in the path of the aggregate. It then indication from a router in the path of the aggregate. It then
decides whether one or more individual flows from the aggregate are decides whether one or more individual flows from the aggregate are
to be affected by this ResvErr message. The following choices are to be affected by this ResvErr message. The following choices are
possible: possible:
o If that (deaggregator) router determines one or more individual o If that (deaggregator) router determines that one or more
flow(s) are to partially failed, then it sends a ResvErr message individual flow(s) are to partially failed, then it sends a
with a reduced bandwidth indication to those individual flow(s). ResvErr message with a reduced bandwidth indication to those
This is as per the descriptions in the previous section (5.3). individual flow(s). This is as per the descriptions in the
previous section (5.3).
o If that (deaggregator) router determines one individual flow is to o If that (deaggregator) router determines that one individual flow
be preempted to satisfy the aggregate ResvErr, it determines which is to be preempted to satisfy the aggregate ResvErr, it determines
flow is affected. That router transmits a new ResvErr message which flow is affected. That router transmits a new ResvErr
downstream per [3]. That same router transmits a ResvTear message message downstream per [3]. That same router transmits a ResvTear
upstream. This ResvTear message of an individual flow does not message upstream. This ResvTear message of an individual flow
tear down the aggregate. Only the individual flow is affected. does not tear down the aggregate. Only the individual flow is
affected.
o If that (deaggregator) router determines multiple individual flows o If that (deaggregator) router determines that multiple individual
are to be preempted to satisfy the aggregate ResvErr, it chooses flows are to be preempted to satisfy the aggregate ResvErr, it
which flows are affected. That router transmits a new ResvErr chooses which flows are affected. That router transmits a new
message downstream as per [3] to each individual flow. The router ResvErr message downstream as per [3] to each individual flow.
also transmits ResvTear messages upstream for the same individual The router also transmits ResvTear messages upstream for the same
flows. These ResvTear messages of an individual flow do not tear individual flows. These ResvTear messages of an individual flow
down the aggregate. Only the individual flows are affected. do not tear down the aggregate. Only the individual flows are
affected.
In all cases, the Deaggregator lowers the bandwidth requested in the In all cases, the deaggregator lowers the bandwidth requested in the
Aggregate Resv message to reflect the change. Aggregate Resv message to reflect the change.
Which particular flow or series of flows within an aggregate are Which particular flow or series of flows within an aggregate are
picked by the deaggregator for bandwidth reduction or preemption is picked by the deaggregator for bandwidth reduction or preemption is
outside the scope of this document. outside the scope of this document.
5.5 RSVP Flow Reduction involving IPSec Tunnels 5.5. RSVP Flow Reduction Involving IPsec Tunnels
RFC 2207 (per [8]) specifies how RSVP reservations function in IPSec RFC 2207 (per [8]) specifies how RSVP reservations function in IPsec
data flows. The nodes initiating the IPSec flow can be an end- data flows. The nodes initiating the IPsec flow can be an end-system
system like a computer, or it can router between two end-systems, or like a computer, or it can router between two end-systems, or it can
it can be an in-line bulk encryption device immediately adjacent to be an in-line bulk encryption device immediately adjacent to a router
a router interface, [11] directly addresses this later scenario. interface; [11] directly addresses this later scenario.
The methods of identification of an IPSec with reservation flow are The methods of identification of an IPsec with reservation flow are
different than non-encrypted flows, but how the reduction mechanism different from non-encrypted flows, but how the reduction mechanism
specified within this document functions is not. specified within this document functions is not.
An IPSec with reservation flow is, for all intents and purposes, An IPsec with reservation flow is, for all intents and purposes,
considered an individual flow with regard to how to reduce the considered an individual flow with regard to how to reduce the
bandwidth of the flow. Obviously an IPSec with reservation flow can bandwidth of the flow. Obviously, an IPsec with reservation flow can
be a series of individual flows or disjointed best effort packets be a series of individual flows or disjointed best-effort packets
between two systems. But to this specification, this tunnel is an between two systems. But to this specification, this tunnel is an
individual RSVP reservation. individual RSVP reservation.
Anywhere within this specification that mentions an individual Anywhere within this specification that mentions an individual
reservation flow, the same rules of bandwidth reduction and reservation flow, the same rules of bandwidth reduction and
preemption MUST apply. preemption MUST apply.
5.6 Reduction of Multiple Flows at Once 5.6. Reduction of Multiple Flows at Once
As a cautionary note, bandwidth SHOULD NOT be reduced across As a cautionary note, bandwidth SHOULD NOT be reduced across multiple
multiple reservations at the same time, in reaction to the same reservations at the same time, in reaction to the same reduction
reduction event. A router not knowing the impact of reservation event. A router not knowing the impact of reservation bandwidth
bandwidth reduction on more than one flow may cause more wide spread reduction on more than one flow may cause more widespread ill effects
ill effects than is necessary. than is necessary.
This says nothing to a policy where preemption should or should not This says nothing to a policy where preemption should or should not
occur across multiple flows. occur across multiple flows.
6. Backwards Compatibility 6. Backwards Compatibility
Backwards compatibility with this extension will result in RSVP Backwards compatibility with this extension will result in RSVP
operating as it does without this extension, and no worse. The two operating as it does without this extension, and no worse. The two
routers involved in this extension are the router that had the routers involved in this extension are the router that had the
congested interface and the furthest downstream router that congested interface and the furthest downstream router that
determines what to do with the reduction indication. determines what to do with the reduction indication.
In the case of the router that experiences congestion or otherwise In the case of the router that experiences congestion or otherwise
needs to reduce the bandwidth of an existing reservation: needs to reduce the bandwidth of an existing reservation:
- If that router supports this extension: - If that router supports this extension:
#1 - it generates the ResvErr message with the error code #1 - it generates the ResvErr message with the error code
indicating the reduction in bandwidth indicating the reduction in bandwidth.
#2 - it does not generate the ResvTear message #2 - it does not generate the ResvTear message.
- If that router does not support this extension, it generates both - If that router does not support this extension, it generates both
ResvErr and ResvTear messages according to [1]. ResvErr and ResvTear messages according to [1].
In the case of the router at the extreme downstream of a reservation In the case of the router at the extreme downstream of a reservation
that receives the ResvErr message with the reduction indication that receives the ResvErr message with the reduction indication:
- If that router does support this extension: - If that router does support this extension:
#1 - it processes this error message and applies whatever local #1 - it processes this error message and applies whatever local
policy it is configured to do to determine how to reduce the policy it is configured to do to determine how to reduce the
bandwidth of this designated flow bandwidth of this designated flow.
- If the router does not support this extension: - If the router does not support this extension:
#1 - it processes the ResvErr message according to [1] and all #1 - it processes the ResvErr message according to [1] and all
extensions it is able to understand, but not this extension extensions it is able to understand, but not this extension
from this document. from this document.
Thus, this extension does not cause ill effects within RSVP if one Thus, this extension does not cause ill effects within RSVP if one or
or more routers support this extension, and one or more routers do more routers support this extension, and one or more routers do not
not support this extension. support this extension.
7. Security Considerations 7. Security Considerations
This document does not lessen the overall security of RSVP or of This document does not lessen the overall security of RSVP or of
reservation flows through an aggregate. reservation flows through an aggregate.
If this specification is implemented poorly - which is never If this specification is implemented poorly - which is never
intended, but is a consideration - the following issues may arise: intended, but is a consideration - the following issues may arise:
1) If the ResvTear messages are transmitted initially (at the same 1) If the ResvTear messages are transmitted initially (at the same
time as the ResvErr messages indicating a reduction in bandwidth time as the ResvErr messages indicating a reduction in bandwidth
is necessary), all upstream routers will tear down the entire is necessary), all upstream routers will tear down the entire
reservation. This will free up the total amount of bandwidth of reservation. This will free up the total amount of bandwidth of
this reservation inadvertently. This may cause the re- this reservation inadvertently. This may cause the re-
establishment of an otherwise good reservation to fail. This has establishment of an otherwise good reservation to fail. This has
the most severe affects on an aggregate that has many individual the most severe affects on an aggregate that has many individual
flows that would have remained operational. flows that would have remained operational.
2) Just as RSVP has the vulnerability of premature termination of 2) Just as RSVP has the vulnerability of premature termination of
valid reservations by rouge flows without authentication valid reservations by rogue flows without authentication [12, 13],
[12 & 13], this mechanism will have the same vulnerability. this mechanism will have the same vulnerability. Usage of RSVP
Usage of RSVP authentication mechanisms is encouraged. authentication mechanisms is encouraged.
8. IANA Considerations 8. IANA Considerations
IANA is to assign the following from RFC [XXXX] (i.e. this The IANA has assigned the following from RFC 4495 (i.e., this
document): document):
The following error code is to be defined in the Error_spec object The following error code has been defined in the ERROR_SPEC object
for partial reservation failure under "Errcode = 2 (Policy Control for partial reservation failure under "Errcode = 2 (Policy Control
Failure)": Failure)":
ErrSubCode = X (ERR_PARTIAL_PREEMPT) ErrSubCode = 102 (ERR_PARTIAL_PREEMPT)
Where 'X' is assigned by IANA for this error code
The behavior of this ErrSubCode is defined in this document. The behavior of this ErrSubCode is defined in this document.
9. Acknowledgements 9. Acknowledgements
The authors would like to thank Fred Baker for contributing text and The authors would like to thank Fred Baker for contributing text and
guidance in this effort and to Roger Levesque and Francois Le guidance in this effort and to Roger Levesque and Francois Le
Faucheur for helpful comments. Faucheur for helpful comments.
Appendix 1. Walking Through the Solution 10. References
10.1. Normative References
[1] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, September 1997.
[2] Baker, F., Iturralde, C., Le Faucheur, F., and B. Davie,
"Aggregation of RSVP for IPv4 and IPv6 Reservations", RFC 3175,
September 2001.
[3] Herzog, S., "Signaled Preemption Priority Policy Element", RFC
3181, October 2001.
[4] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[5] Herzog, S., "RSVP Extensions for Policy Control", RFC 2750,
January 2000.
[6] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F., and S.
Molendini, "RSVP Refresh Overhead Reduction Extensions", RFC
2961, April 2001.
[7] Wroclawski, J., "The Use of RSVP with IETF Integrated Services",
RFC 2210, September 1997.
[8] Berger, L. and T. O'Malley, "RSVP Extensions for IPSEC Data
Flows", RFC 2207, September 1997.
10.2. Informative References
[9] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
[10] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition of
Explicit Congestion Notification (ECN) to IP", RFC 3168,
September 2001.
[11] Le Faucheur, F., Davie, B., Bose, P., Christou, C., and M.
Davenport, "Generic Aggregate RSVP Reservations", Work in
Progress, October 2005.
[12] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic
Authentication", RFC 2747, January 2000.
[13] Braden, R. and L. Zhang, "RSVP Cryptographic Authentication --
Updated Message Type Value", RFC 3097, April 2001.
Appendix A. Walking through the Solution
Here is a concise explanation of roughly how RSVP behaves with the Here is a concise explanation of roughly how RSVP behaves with the
solution to the problems presented in sections 2 & 3 of this solution to the problems presented in Sections 2 and 3 of this
document. There is no normative text in this appendix. document. There is no normative text in this appendix.
Here is a duplicate of Figure 2 from section 3 of the document body Here is a duplicate of Figure 2 from section 3 of the document body
(to bring it closer to the detailed description of the solution). (to bring it closer to the detailed description of the solution).
Aggregator of X Deaggregator of X Aggregator of X Deaggregator of X
| | | |
V V V V
+------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
Flow 1-->| | | | | | | |--> Flow 1 Flow 1-->| | | | | | | |--> Flow 1
skipping to change at page 14, line 42 skipping to change at page 18, line 4
Flow B-->| | V | | | | V | |--> Flow B Flow B-->| | V | | | | V | |--> Flow B
Flow C-->| |::>| | | |::>| |--> Flow C Flow C-->| |::>| | | |::>| |--> Flow C
Flow D-->| | | | | | | |--> Flow D Flow D-->| | | | | | | |--> Flow D
Flow E-->| R5 | | R6 | | R7 | | R8 |--> Flow E Flow E-->| R5 | | R6 | | R7 | | R8 |--> Flow E
+------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
^ ^ ^ ^
| | | |
Aggregator of Y Deaggregator of Y Aggregator of Y Deaggregator of Y
Duplicate of Figure 2. Generic RSVP Aggregate Topology Duplicate of Figure 2. Generic RSVP Aggregate Topology
Looking at Figure 2, aggregate X (with five 80 kbps flows) traverses:
Looking at Figure 2., aggregate X (with five 80kbps flows)
traverses:
R1 ==> R2 ==> R10 ==> R11 ==> R3 ==> R4 R1 ==> R2 ==> R10 ==> R11 ==> R3 ==> R4
And aggregate Y (with five 80kbps flows) traverses: And aggregate Y (with five 80kbps flows) traverses:
R5 ::> R6 ::> R10 ::> R11 ::> R7 ::> R8 R5 ::> R6 ::> R10 ::> R11 ::> R7 ::> R8
Both aggregates are 400kbps. This totals 800kbps at Interface-7 in Both aggregates are 400 kbps. This totals 800 kbps at Int 7 in R10,
R10, which is the maximum bandwidth RSVP has access to at this which is the maximum bandwidth that RSVP has access to at this
interface. Signaling messages still traverse the interface without interface. Signaling messages still traverse the interface without
problem. Aggregate X is at a higher relative priority than problem. Aggregate X is at a higher relative priority than aggregate
aggregate Y. Local policy in this example is for higher relative Y. Local policy in this example is for higher relative priority
priority flows to preempt lower priority flows during times of flows to preempt lower-priority flows during times of congestion.
congestion. The following points describe the flow when aggregate A The following points describe the flow when aggregate A is increased
is increased to include flow 9. to include Flow 9.
o When flow 9 (at 80kbps) is added to aggregate X, R1 will o When Flow 9 (at 80 kbps) is added to aggregate X, R1 will initiate
initiate the PATH message towards the destination endpoint of the PATH message towards the destination endpoint of the flow.
the flow. This hop-by-hop message will take it through R2, This hop-by-hop message will take it through R2, R10, R11, R3, and
R10, R11, R3 and R4 which is the aggregate X path (that R4, which is the aggregate X path (that was built per [2] from the
was built per [2] from the aggregate's initial set up) to the aggregate's initial setup) to the endpoint node.
endpoint node.
o In response, R4 will generate the RESV (reservation) message o In response, R4 will generate the RESV (reservation) message
[defined behavior per 1]. This RESV from the deaggregator (defined behavior per [1]). This RESV from the deaggregator
indicates an increase bandwidth sufficient to accommodate the indicates an increase bandwidth sufficient to accommodate the
existing 5 flows (1,2,3,4,5) and the new flow (9) [as stated in existing 5 flows (1, 2, 3, 4, and 5) and the new flow (9), as
2]. stated in [2].
o As mentioned before, in this example, Int8 in R 10 can only o As mentioned before, in this example, Int8 in R 10 can only
accommodate 800kbps, and aggregates X and Y have each already accommodate 800kbps, and aggregates X and Y have each already
established 400kbps flows comprised of five 80kbps individual established 400kbps flows comprised of five 80kbps individual
flows. Therefore, R10 (the interface that detects a congestion flows. Therefore, R10 (the interface that detects a congestion
event in this example) must make a decision about this new event in this example) must make a decision about this new
congestion generating condition in regard to the RESV message congestion generating condition in regard to the RESV message
received at Int8. received at Int8.
o Local Policy in this scenario is to preempt lower priority o Local policy in this scenario is to preempt lower-priority
reservations to place higher priority reservations. This would reservations to place higher-priority reservations. This would
normally cause all of aggregate Y to be preempted just to normally cause all of aggregate Y to be preempted just to
accommodate aggregate X's request for an additional 80kbps. accommodate aggregate X's request for an additional 80kbps.
o This document defines how aggregate Y is not completely o This document defines how aggregate Y is not completely preempted,
preempted, but reduced in bandwidth by 80kbps. This is but reduced in bandwidth by 80 kbps. This is contained in the
contained in the ResvErr message that R10 generates ResvErr message that R10 generates (downstream) towards R11, R7,
(downstream) towards R11, R7 and R8. See section 5 for and R8. See section 5 for the details of the error message.
the details of the error message.
o Normal operation of RSVP is to have the router that generates a o Normal operation of RSVP is to have the router that generates a
ResvErr message downstream to also generate a ResvTear message ResvErr message downstream to also generate a ResvTear message
upstream (in the opposite direction towards R5). The ResvTear upstream (in the opposite direction, i.e., towards R5). The
message terminates an individual flow or aggregate flow. This ResvTear message terminates an individual flow or aggregate flow.
document calls for that message to not be sent on any partial This document calls for that message not to be sent on any partial
failure of reservation. failure of reservation.
o R8 is the deaggregator of aggregate Y. The deaggregator o R8 is the deaggregator of aggregate Y. The deaggregator controls
controls all the parameters of an aggregate reservation. This all the parameters of an aggregate reservation. This will be the
will be the node that reduces the necessary bandwidth of the node that reduces the necessary bandwidth of the aggregate as a
aggregate as a response to the reception of an ResvErr message response to the reception of an ResvErr message (from R10)
(from R10) indicating such an action is called for. In this indicating such an action is called for. In this example,
example, bandwidth reduction is accomplished by preempting an bandwidth reduction is accomplished by preempting an individual
individual flow within the aggregate (perhaps picking on Flow D flow within the aggregate (perhaps picking on Flow D for
for individual preemption by generating a ResvErr downstream on individual preemption by generating a ResvErr downstream on that
that individual flow). individual flow).
o At the same time, a ResvTear message is transmitted upstream on o At the same time, a ResvTear message is transmitted upstream on
that individual flow (Flow D) by R8. This will not affect the that individual flow (Flow D) by R8. This will not affect the
aggregate directly, but is an indication to the routers (and the aggregate directly, but is an indication to the routers (and the
source end-system) which individual flow is to be preempted. source end-system) which individual flow is to be preempted.
o Once R8 preempts whichever individual flow (or 'bandwidth' at o Once R8 preempts whichever individual flow (or 'bandwidth' at the
the aggregate ingress), it transmits a new RESV message for that aggregate ingress), it transmits a new RESV message for that
aggregate (Y), not for a new aggregate. This RESV from the aggregate (Y), not for a new aggregate. This RESV from the
deaggregator indicates an decrease in bandwidth sufficient to deaggregator indicates a decrease in bandwidth sufficient to
accommodate the remaining 4 flows (A,B,C,E), which is now accommodate the remaining 4 flows (A, B, C, and E), which is now
320kbps (in this example). 320kbps (in this example).
o This RESV message travels the entire path of the reservation, o This RESV message travels the entire path of the reservation,
resetting all routers to this new aggregate bandwidth value. resetting all routers to this new aggregate bandwidth value. This
This should be what is necessary to prevent a ResvTear message should be what is necessary to prevent a ResvTear message from
from being generated by R10 towards R6 and R5. being generated by R10 towards R6 and R5.
R5 will not know through this RESV message which individual flow
was preempted. If in this example, R8 was given more bandwidth to
keep, it might have transmitted a bandwidth reduction ResvErr
indication towards the end-system of Flow D. In that case, a voice
signaling protocol (such as SIP) could have attempted a
renegotiation of that individual flow to a reduced bandwidth (say,
but changing the voice codec from G.711 to G. 729). This could have
saved Flow D from preemption.
10. References
10.1 Normative References
[1] R. Braden, Ed., L. Zhang, S. Berson, S. Herzog, S. Jamin,
"Resource ReSerVation Protocol (RSVP) -- Version 1 Functional
Specification", RFC 2205, September 1997
[2] F. Baker, C. Iturralde, F. Le Faucheur, B. Davie, "Aggregation of
RSVP for IPv4 and IPv6 Reservations", RFC 3175, September 2001
[3] S. Herzog, "Signaled Preemption Priority Policy Element", RFC
3181, October 2001
[4] Bradner S., "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119, March 1997
[5] S. Herzog, "RSVP Extensions for Policy Control", RFC 2750,
January 2000
[6] L. Berger, D. Gan, G. Swallow, P. Pan, F. Tommasi, S. Molendini,
"RSVP Refresh Overhead Reduction Extensions" RFC 2961, April 2001
[7] J. Wroclawski, "The Use of RSVP with IETF Integrated Services",
RFC 2210, September 1997
[8] L. Berger, T. O'Malley, "RSVP Extensions for IPSEC Data Flows",
RFC 2207, September 1997
10.2 Informational References
[9] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston,
J. Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, May 2002.
[10] K. Ramakrishnan, S. Floyd, D. Black, "The Addition of Explicit
Congestion Notification (ECN) to IP", RFC 3168, September 2001
[11] F. Le Faucheur, B. Davie, P. Bose, C. Christou, " Aggregate
reservations for IPSec Tunnel", draft-lefaucheur-rsvp-ipsec-01,
July 2005, "work in progress"
[12] F. Baker, B. Lindell, M. Talwar, "RSVP Cryptographic
Authentication", RFC 2747, January 2000
[13] R. Braden, L. Zhang, "RSVP Cryptographic Authentication -- R5 will not know through this RESV message which individual flow was
Updated Message Type Value", RFC 3097, April 2001 preempted. If in this example, R8 was given more bandwidth to keep,
it might have transmitted a bandwidth reduction ResvErr indication
towards the end-system of Flow D. In that case, a voice signaling
protocol (such as SIP) could have attempted a renegotiation of that
individual flow to a reduced bandwidth (say, but changing the voice
codec from G.711 to G. 729). This could have saved Flow D from
preemption.
Author Information Authors' Addresses
James M. Polk James M. Polk
Cisco Systems Cisco Systems
2200 East President George Bush Turnpike 2200 East President George Bush Turnpike
Richardson, Texas 75082 USA Richardson, Texas 75082 USA
Email: jmpolk@cisco.com EMail: jmpolk@cisco.com
Subha Dhesikan Subha Dhesikan
Cisco Systems Cisco Systems
170 W. Tasman Drive 170 W. Tasman Drive
San Jose, CA 95134 USA San Jose, CA 95134 USA
Email: sdhesika@cisco.com EMail: sdhesika@cisco.com
Intellectual Property Statement Full Copyright Statement
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
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 takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed Intellectual Property Rights or other rights that might be claimed to
to pertain to the implementation or use of the technology described pertain to the implementation or use of the technology described in
in this document or the extent to which any license under such this document or the extent to which any license under such rights
rights might or might not be available; nor does it represent that might or might not be available; nor does it represent that it has
it has made any independent effort to identify any such rights. made any independent effort to identify any such rights. Information
Information on the procedures with respect to rights in RFC on the procedures with respect to rights in RFC documents can be
documents can be found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use attempt made to obtain a general license or permission for the use of
of such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository specification can be obtained from the IETF on-line IPR repository at
at http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at this standard. Please address the information to the IETF at
ietf-ipr@ietf.org. ietf-ipr@ietf.org.
Disclaimer of Validity Acknowledgement
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.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
The Expiration date for this Internet Draft is:
July 24th, 2006 Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
 End of changes. 110 change blocks. 
416 lines changed or deleted 390 lines changed or added

This html diff was produced by rfcdiff 1.30. The latest version is available from http://www.levkowetz.com/ietf/tools/rfcdiff/