Internet DRAFT - draft-polk-rsvp-multi-instance-object
draft-polk-rsvp-multi-instance-object
Network WG James Polk
Internet-Draft Subha Dhesikan
Intended status: Proposed Standard Cisco
Expires: January 4, 2015 July 4, 2014
Updates: RFC 2205 & 4495 (if published as an RFC)
Resource Reservation Protocol Multiple Instance Object
draft-polk-rsvp-multi-instance-object-02.txt
Abstract
This document creates the framework for a new Resource Reservation
Protocol version 1 (RSVP) object for instances in which there are
multiple occurrences of existing RSVP objects is to be included
within the same RSVP message. This document offers two instances for
multiple versions of the same object will be valid in RSVP messages,
for more than one traffic specification object (TSPEC), and more
than one TSPEC priority object (PREEMPTION_PRI).
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. This document may not be modified,
and derivative works of it may not be created, and it may not be
published except as an Internet-Draft.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on January 4, 2015.
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Polk & Dhesikan Expires January 4, 2015 [Page 1]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Framework for the MULTI_INSTANCE Object . . . . . . . . . . . 6
3.1 The MULTI_INSTANCE Object Format . . . . . . . . . . . . . 9
3.2 Rules for building a MULTI_INSTANCE Object . . . . . . . . 9
4. Multiple TSPEC Objects in the MULTI_INSTANCE Object . . . . . 10
5. Multiple PREEMPTION_PRI Elements in the MULTI_INSTANCE Object 12
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
7. Security Considerations . . . . . . . . . . . . . . . . . . . 16
8. Contributing Authors . . . . . . . . . . . . . . . . . . . . 16
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.1 Normative References . . . . . . . . . . . . . . . . . . 17
10.2 Informative References . . . . . . . . . . . . . . . . . 18
Author's Addresses . . . . . . . . . . . . . . . . . . . . . 18
Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introduction
This document creates the framework for a new Resource Reservation
Protocol version 1 (RSVP) [RFC2205] object for instances in which
there is a need to carry multiple occurrences of included RSVP
object within the same RSVP message. The need for multiple versions
of existing objects is for environments in which the information
conveyed within these objects may or may not be grantable by the
network. To optimization this operation, if a different version of
the same object, with different information or demands, can be
included without the need for that rejecting entire RSVP message.
For example, the initial RSVP PATH message contains a request for a
12Mbps bandwidth reservation, but that amount is not grantable by
one or more network nodes. If a reduced amount of bandwidth can
still granted, and is acceptable to the network as well as both
endpoints, allowing that PATH message to contain a backup bandwidth
request for, say 4Mbps, saves the time of completely rejecting the
initial PATH and having the sender generate a new PATH. A complete
rejection to this scenario is how RSVP operates today.
This is a general purpose optimization for RSVP, and will allow any
RSVP object to have multiple versions of an existing object,
provided that existing object is specified to do so. It is important
to understand that RSVP operates normally, with all Objects and
elements in their native locations. This document offers two
instances for multiple versions of the same object will be valid in
RSVP messages, for more than one traffic specification object
(TSPEC) [RFC2210], and more than one priority element
(PREEMPTION_PRI) [RFC3181]. This extension will bring RSVP more in
line with existing application layer protocols that offer multiple
choices for the specifics within a call or session. At the same
Polk & Dhesikan Expires January 4, 2015 [Page 2]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
time, all extra versions of Objects or elements are contained in a
single location that is ignored if not understood. Thus, backwards
compatibility is assured.
Realtime session set-up protocols such as SIP [RFC3261] carry a
Session Description Protocol (SDP) [RFC4566] payload which
establishes the parameters for rich media calls (i.e., voice, video)
between two or more endpoints. Since the late 1990s, SDP has had the
capability to offer more than one codec per application type (i.e.,
more than one audio payload type and/or more than one video payload
type), which can be carried in the same session set-up message. This
means a calling endpoint can give the called party a list of codecs
to choose from for that call, as well as multiple applications for
that call.
With this RSVP extension, for example, a SIP voice and/or video call
can have a reservation adapt to whichever codec(s) are picked for
that call, without wasting unnecessary bandwidth that will not be
utilized.
Visually, Figure 1. is a normal RSVP reservation set-up exchange
that is accepted by all RSVP enabled nodes.
Sender Rtr-1 Rtr-2 ... Rtr-N Receiver
| | | | |
| PATH (with a TSPEC) | | |
|------------->|--------->|----//--->|-------------->|
| | | | |
| RESV (with a FLOWSPEC) |
|<-------------|<---------|<---//----|<--------------|
| | | | |
Figure 1. Concept of RSVP in a Single Direction
However, Figure 2. is a normal RSVP reservation set-up exchange that
is rejected as the reservation is partially established. We will use
bandwidth as the reason for the rejection because it is probably the
easiest thing to understand about RSVP, that it creates reservation
of fixed bandwidth.
Polk & Dhesikan Expires January 4, 2015 [Page 3]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
Sender Rtr-1 Rtr-2 ... Rtr-N Receiver
| | | | |
| PATH (with 1 TSPEC wanting 12Mbps) |
|------------->|--------->|----//--->|-------------->|
| | | | |
| RESV (with 1 FLOWSPEC wanting 12Mbps) |
| | X <--//----|<--------------|
| | | | |
| ResvErr (with Admission control Error=2) |
| | |----//--->|-------------->|
| | | | |
| PathErr | |
|<-------------|<---------|<----//---|<--------------|
| | | | |
| PATH (with 1 TSPEC wanting 4Mbps) |
|------------->|--------->|----//--->|-------------->|
| | | | |
Figure 2. Concept of RSVP Rejection due to Limited Bandwidth
Rtr-2 in the above example reservation attempt rejects the
bandwidth requested for this reservation. Once the Sender receives
the PathErr message indicating why the rejection occurred, it can
attempt a new reservation requesting less bandwidth. Regrettably,
this is a bit of a guessing game put on the Sender to figure out how
much bandwidth to request next. When this scenario is complicated
when the reservation request is initiated because of a layer 7
signaling protocol, such as SIP, to establish a call between two
endpoints, as defined in [RFC3312]. All the users experience is
further delay as RSVP attempts to successfully establish the
reservation before "the phone can ring".
Presently, translating a (SIP) layer 7 operation into RSVP at layer
4, only a single reservation can be established per application
(i.e., one for voice, one for video) at a time (without creating
chaos). This one reservation request would most probably its
bandwidth request using the codec with the largest bandwidth
requirements. Bandwidth parameters are conveyed within a traffic
specification (TSPEC), as defined in [RFC2210]. Once one considers
the bandwidth needs of present day video codecs, always initially
setting up the maximum bandwidth reservation is less than optimal
(some might argue criminal).
If, on the other hand, the initial RSVP PATH message could contain
more than one version of a TSPEC, say one per codec. Then the
reservation would be established with the greatest amount of
bandwidth the network could grant at its most congested node in the
signaling path, which would in turn choose for the endpoints which
codec within SDP is selected for this call.
Thus, this extension would solve the problem in Figure 2. in this
way,
Polk & Dhesikan Expires January 4, 2015 [Page 4]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
Sender Rtr-1 Rtr-2 ... Rtr-N Receiver
| | | | |
| PATH (with 3 TSPECs for 12Mbps, 4Mbps, 1.5Mbps) |
|------------->|--------->|----//--->|--------------->|
| | | | |
| RESV (with 3 FLOWSPECs for 12Mbps, 4Mbps, 1.5Mbps) |
| | X <--//----|<---------------|
| | | | |
| (Rtr-2 cannot grant 12Mbps, but can grant 4Mbps) |
| | | | |
| ResvErr "ERR_PARTIAL_PREEMPT" (trim to 4Mbps) |
| | |----//--->|--------------->|
| | | | |
| RESV (with 2 FLOWSPECs for 4Mbps, 1.5Mbps) |
|<-------------|<---------| | |
| | | | |
| reservation established at 4Mbps |
|====================================================>|
| | | | |
Figure 3. Concept of RSVP Rejection due to Limited Bandwidth
Figure 3. shows a RSVP PATH message containing 3 TSPECs (12Mbps,
4Mbps, and 1.5Mbps), placed in that order in the PATH. Router 2
(Rtr-2) cannot grant the RESV message at 12Mbps, but can grant the
4Mbps bandwidth request. Rtr-2 trims the bandwidth upstream with a
slight modification to the procedures defined in RFC 4495, and
transmits the RESV downstream without the 12Mbps bandwidth request,
which was removed from the RESV. The Sender, in this example,
receives the RESV with 4Mbps and the reservation is established.
In Section 3., we will create the framework and format for the
MULTI_INSTANCE Object. In Section 4., we will show how to include
multiple TSPEC Objects within this MULTI_INSTANCE Object, as well as
stipulate the rules for TSPEC usage. In Section 5., we will show how
to include multiple PREEMPTION_PRI Objects within this
MULTI_INSTANCE Object, as well as stipulate the rules for
PREEMPTION_PRI usage. Section 6. will have the IANA registry
considerations, and Section 7. will have the Security
considerations.
2. Terminology
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 [RFC2119] when they
appear in ALL CAPS. These words may also appear in this document in
lower case as plain English words, absent their normative meanings.
Polk & Dhesikan Expires January 4, 2015 [Page 5]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
3. Framework for the MULTI_INSTANCE Object
The format of all RSVP Objects is based on a series of 32-bit words.
This is true with the MULTI_INSTANCE Object as well. Normally, RSVP
and IntServ documents specify Objects in a 32-bit wide, top down
format, where the most significant bit is the top left bit, and the
least significant bit on the right. This is loosely shown in Figure
4. below.
31 24 23 16 15 8 7 0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1 | value | reserved | value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2 | value |0| reserved | value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3 | value | value | ... |
. .
. ... .
. ... .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4. Generic RSVP Format for Illustration Purposes
The individual field value lengths within each RSVP Object depend on
the Object, thus Figure 4. is merely an example (which happens to be
the first 3 words format of a TSPEC).
However, RSVP messages can be quite long in this format, so what one
usually sees in documents are each individual Object and no overall
RSVP message format. Each Object has an field identifier indicating
which RSVP message this Object is within (e.g., PATH, RESV,
REFRESH), as well as a 'Parameter ID' indicating which Object within
this (e.g., TSPEC, Rspec, Policy_Data).
Looking at RSVP another way, to illustrate the point about where
certain parts can be within an overall RSVP message, Figure 5. Shows
an example RSVP message on its side, where the top of the message is
on the left and the bottom of the message is on the right. With that
in mind, the most significant bit of the top 32-bit word is on the
lower left of Figure 5., and the least significant bit is on the
upper left. The length of this message can vary and does not
represent anything other than this message has some size to it;
i.e., it has a number of Objects within this message, including a
sender_descriptor where the 'primary' TSPEC Object resides, and
Policy_Data Object where the PREEMPTION_PRI Object resides.
Additionally in the RSVP message is the proposed MULTI_INSTANCE
Object, which is neither in the sender_descriptor or Policy_Data
Object.
Polk & Dhesikan Expires January 4, 2015 [Page 6]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
Top sender_descriptor MULTI_INSTANCE Object Bottom
| \ / \ / |
V \ / \ / V
+--------------------------------------------------------------+
| | | | | X | | | Y | | | XXYY| | | | |
| | | | | X | | | Y | | | XXYY| | | | |
+--------------------------------------------------------------+
/ \
/ \
Policy_Data Object
Figure 5. Generic RSVP Format Shown Sideways
It is important to remember that RSVP enabled nodes will always
ignore Objects that are not understood. This allows the protocol to
be extended before all the RSVP nodes are upgraded to understand new
functions and capabilities. In other words, no one expects a single
'flag day' upgrade to occur in all routers at the same time in the
same network, which could be disruptive if not performed correctly.
An important aspect of this new Object is that the initial copy or
instance of the Object, however many Objects have multiple instances
in this RSVP message, MUST remain in its original place within the
message. We will refer to this original version of an Object or
element to be the 'primary' version or copy. Its placement allows
RSVP to operate normally. The MULTI_INSTANCE Object only carries a
second, third, etc. versions of Objects. Once the RSVP node
determines that it cannot grant what is asked for in an existing
Object, it will look to the MULTI_INSTANCE Object for the next
instance of that Object to replace the original with. Failing this,
the RSVP message will mostly likely be rejected through the normal
procedures already defined in RSVP documentation.
To give a practical example of this, we will use the message flow
from Figure 3. In it, we have a PATH message carrying not one, but
three TSPECs for 12Mbps, 4Mbps and 1.5Mbps. Once Rtr-2 cannot grant
the primary TSPEC asking for 12Mbps, that router discards that
TSPEC, from the RSVP message. It knows to look into the
MULTI_INSTANCE Object for a second version of the TSPEC. Finding two
(4Mbps and 1.5Mbps), Rtr-2 moves the 4Mbps TSPEC completely into the
sender_descriptor as the new 'primary' TSPEC and attempts to
establish the reservation at 4Mbps. In this case, 4Mbps is granted
and transmits the RESV upstream towards Rtr-1 with only one
remaining TSPEC in the MULTI_INSTANCE Object.
[EDITOR'S NOTE: It is important to state that, so far, we have not
defined where this MULTI_INSTANCE Object goes
within the RSVP message.]
The MULTI_INSTANCE Object can have a number of versions of the same
Object that is within the RSVP message, as well as can have more
than one different type of Object. To this end, here is the proposed
Polk & Dhesikan Expires January 4, 2015 [Page 7]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
generic format for the MULTI_INSTANCE Object that is only carrying a
single other Object
+----------------------------------------+
| MULTI_INSTANCE Object Top level header |
| +------------------------------------+
| | 1st Object type sub-header |
| | +---------------------------------+
| | | 2nd Object Header |
| | +---------------------------------+
| | | |
| | | Normal Object format |
| | | |
| | | |
+---+--+---------------------------------+
Figure 6. MULTI_INSTANCE with 1 Object
Figure 6. shows a complete second version of an existing RSVP
Object, which can be removed and copied bit-for-bit into the normal
placement of this Object within the RSVP message. It is important to
note that this MUST be a complete new copy of a valid Object.
Figure 7. shows a MULTI_INSTANCE Object with a second and third
version of the same RSVP Object
+----------------------------------------+
| MULTI_INSTANCE Object Top level header |
| +------------------------------------+
| | 1st Object type sub-header |
| | +---------------------------------+
| | | 2nd Object Header |
| | +---------------------------------+
| | | |
| | | Normal Object format |
| | | |
| | | |
| | +---------------------------------+
| | | 3rd Object Header |
| | +---------------------------------+
| | | |
| | | Normal Object format |
| | | |
| | | |
+---+--+---------------------------------+
Figure 7. MULTI_INSTANCE with 2 Objects
Again, version 2 and 3 are completely valid versions of the RSVP
Object they are meant to replace, with no change in any value
allowed.
Polk & Dhesikan Expires January 4, 2015 [Page 8]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
+----------------------------------------+
| MULTI_INSTANCE Object Top level header |
| +------------------------------------+
| | 1st Object type sub-header |
| | +---------------------------------+
| | | 2nd Object Header |
| | +---------------------------------+
| | | |
| | | Normal Object format |
| | | |
| | | |
| | +---------------------------------+
| | | 3rd Object Header |
| | +---------------------------------+
| | | |
| | | Normal Object format |
| | | |
| | | |
+---+--+---------------------------------+
| | 2nd Object type sub-header |
| | +---------------------------------+
| | | 2nd Object Header |
| | +---------------------------------+
| | | |
| | | Normal Object format |
| | | |
| | | |
+---+--+---------------------------------+
Figure 8. MULTI_INSTANCE with 2 Objects
Figure 8. adds a second type of Object to the MULTI_INSTANCE Object
that is shown in Figure 7. To be able to add another type of Object,
and not a second copy of the same Object, a new Object Type header
is REQUIRED to preface the first 32-bit word of the new Object.
These two different Objects carried within the MULTI_INSTANCE Object
can be related, or they might not have anything to do with each
other.
3.1 The MULTI_INSTANCE Object Format
The multi-32-bit word format of the MULTI_INSTANCE Object is TBD in
a subsequent revision of this document.
3.2 Rules for building a MULTI_INSTANCE Object
The following are the rules for implementations of the
MULTI_INSTANCE object:
#1 - having only 1 *SPEC or Object is allowed in the MULTI_INSTANCE
Polk & Dhesikan Expires January 4, 2015 [Page 9]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
Object (i.e., a grouping can have a single entry)
#2 - more than one *SPEC or Object is allowed in the MULTI_INSTANCE
Object (i.e., separate groups can have a single entry each)
#3 - more than one *SPEC or Object is allowed in the MULTI_INSTANCE
Object (i.e., separate groups can have a multiple entries each)
#4 - some groupings within MULTI_INSTANCE MUST be paired in whenever
a single instance occurs in any group.
In other words, based on rule #3, if a TSPEC is in each group, so
MUST there be an RSPEC if any RSPEC is within this MULTI_INSTANCE
Object. An RSPEC is an example of a *SPEC that MUST NOT be alone
without its TSPEC.
4. Multiple TSPEC Objects in the MULTI_INSTANCE Object
This document defines the framework for the MULTI_INSTANCE Object,
as well as for two Objects to be available for inclusion within this
new Object: the TSPEC Object and the PREEMPTION_PRI Object (detailed
in Section 5.). This section deals with how to include one or more
TSPEC Objects within the MULTI_INSTANCE Object.
This document specifies if the reservation is to be Controlled Load
[RFC2211], the entire TSPEC, including the two 32-bit word headers
(totaling eight 32-bit words), are included in the MULTI_INSTANCE
object. An example of a TSPEC from RFC 2210 is here in Figure 9.:
31 24 23 16 15 8 7 0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1 | 0 (a) | reserved | 7 (b) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2 | X (c) |0| reserved | 6 (d) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3 | 127 (e) | 0 (f) | 5 (g) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4 | Token Bucket Rate [r] (32-bit IEEE floating point number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5 | Token Bucket Size [b] (32-bit IEEE floating point number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6 | Peak Data Rate [p] (32-bit IEEE floating point number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7 | Minimum Policed Unit [m] (32-bit integer) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8 | Maximum Packet Size [M] (32-bit integer) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9. Controlled Load SENDER_TSPEC in a PATH
Polk & Dhesikan Expires January 4, 2015 [Page 10]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
(a) - Message format version number (0)
(b) - Overall length (7 words not including header)
(c) - Service header, service number
- '1' (Generic information) if in a PATH message;
(d) - Length of service data, 6 words not including
per-service header
(e) - Parameter ID, parameter 127 (Token Bucket TSpec)
(f) - Parameter 127 flags (none set)
(g) - Parameter 127 length, 5 words not including per-service
header
This document specifies if the reservation is to be Guaranteed
Service, the entire TSPEC and RSPEC, including the two 32-bit word
headers (totaling eleven 32-bit words), are included in the
MULTI_INSTANCE object as a single consecutive chunk.
A request guaranteed service reservation contains a TSPEC and RSPEC
[RFC2215], as shown in Figure 10.:
31 24 23 16 15 8 7 0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1 | 0 (a) | Unused | 10 (b) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2 | 2 (c) |0| reserved | 9 (d) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3 | 127 (e) | 0 (f) | 5 (g) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4 | Token Bucket Rate [r] (32-bit IEEE floating point number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5 | Token Bucket Size [b] (32-bit IEEE floating point number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6 | Peak Data Rate [p] (32-bit IEEE floating point number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7 | Minimum Policed Unit [m] (32-bit integer) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8 | Maximum Packet Size [M] (32-bit integer) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9 | 130 (h) | 0 (i) | 2 (j) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
10 | Rate [R] (32-bit IEEE floating point number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11 | Slack Term [S] (32-bit integer) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10. Guaranteed Service SENDER_TSPEC in a PATH
(a) - Message format version number (0)
(b) - Overall length (9 words not including header)
(c) - Service header, service number 2 (Guaranteed)
(d) - Length of per-service data, 9 words not including
per-service header
Polk & Dhesikan Expires January 4, 2015 [Page 11]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
(e) - Parameter ID, parameter 127 (Token Bucket TSpec)
(f) - Parameter 127 flags (none set)
(g) - Parameter 127 length, 5 words not including parameter header
(h) - Parameter ID, parameter 130 (Guaranteed Service RSpec)
(i) - Parameter xxx flags (none set)
(j) - Parameter xxx length, 2 words not including parameter header
The difference in structure between the Controlled-Load FLOWSPEC and
Guaranteed FLOWSPEC is the RSPEC, defined in [RFC2212]. The
difference with respect to the MULTI_INSTANCE Object is found in the
first 32-bit word, value 'b' above - the TSPEC Object overall
length. This will tell a node whether it is a Controlled Load or
Guaranteed Service TSPEC.
As a reminder, TSPECs contained in the MULTI_INSTANCE Object MUST
NOT be altered when moved from the MULTI_INSTANCE Object to the
sender_descriptor or FLOWSPEC. Generically, this needs to be a
simple cut and paste operation.
If there are multiple TSPECs in the MULTI_INSTANCE Object, each MUST
be the same type of TSPEC. In other words, there MUST NOT be a mix
of Controlled Load with Guaranteed Service TSPECs in the same
MULTI_INSTANCE Object.
RFC 4495 defines how existing reservations can partially preemption
(trim) the agreed upon bandwidth assigned to an existing
reservation. This specification extends RFC 4495 by allowing that
trimming of bandwidth assigned to a reservation to occur during
reservation establishment downstream. This occurs when a node
upstream cannot grant the bandwidth already granted downstream, but
that upstream node can grant a reduced amount of bandwidth from
another TSPEC within FLOWSPEC, from within the MULTI_INSTANCE
Object. This operation is shown in Figure 3.
5. Multiple PREEMPTION_PRI Elements in the MULTI_INSTANCE Object
The order of the TSPECs within the MULTI_INSTANCE Object is one way
to determine which is the next TSPEC to be processed by a router.
Another way of determining which TSPEC is the next one to be
processed is by allowing the dynamic bandwidth selection to reflect
a different reservation priority for each of the multiple
"bandwidth" associated with a reservation.
[RFC2750] presents a set of extensions for supporting generic policy
based admission control in RSVP. These extensions include the
standard format of POLICY_DATA objects, and a description of RSVP's
handling of policy events. These extensions are consistent with the
framework for policy-based admission control presented in [RFC2753].
POLICY_DATA objects are carried by RSVP messages and contain policy
information. The exchange of POLICY_DATA objects between
policy-capable nodes along the data path, supports the generation
Polk & Dhesikan Expires January 4, 2015 [Page 12]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
and enforcement of consistent end-to-end admission control policies.
POLICY_DATA objects contain a list of Policy Elements that each
contain a single unit of information necessary for the evaluation of
policy rules. Multiple policy elements are already specified. For
example, [RFC2872] specifies the Application and Sub Application
Identity policy element for use with RSVP.
[RFC3181] specifies another policy element, the Preemption Priority
Policy Element, that can be signaled in RSVP so that network node
may take into account this policy element in order to preempt some
previously admitted low priority sessions in order to make room for
a newer, higher priority session. The Preemption Priority Policy
Element (PREEMPTION_PRI) contains:
o one Preemption Priority specifying the priority of the new flow
compared with the defending priority of previously admitted
flows.
o one Defending Priority that is used once this reservation is
established to compare with the preemption priority of new flows.
The format of preemption priority policy element (copied from RFC
3181) is as follows:
+-------------+-------------+-------------+-------------+
| Length (12) | P-Type = PREEMPTION_PRI |
+------+------+-------------+-------------+-------------+
| Flags | M. Strategy | Error Code | Reserved(0) |
+------+------+-------------+-------------+-------------+
| Preemption Priority | Defending Priority |
+------+------+-------------+-------------+-------------+
Figure 11. Preemption Priority Policy Element Format
Length: 16 bits
Always 12. The overall length of the policy element, in bytes.
P-Type: 16 bits
PREEMPTION_PRI = 1
This value is registered with IANA, see Section 7.
Flags: 8 bits
Reserved (always 0).
Merge Strategy: 8 bit
1 Take priority of highest QoS: recommended
2 Take highest priority: aggressive
3 Force Error on heterogeneous merge
Polk & Dhesikan Expires January 4, 2015 [Page 13]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
Reserved: 8 bits
Error code: 8 bits
0 NO_ERROR Value used for regular PREEMPTION_PRI elements
1 PREEMPTION This previously admitted flow was preempted
2 HETEROGENEOUS This element encountered heterogeneous merge
Reserved: 8 bits
Always 0.
Preemption Priority: 16 bit (unsigned)
The priority of the new flow compared with the defending priority
of previously admitted flows. Higher values represent higher
Priority.
Defending Priority: 16 bits (unsigned)
Once a flow was admitted, the preemption priority becomes
irrelevant. Instead, its defending priority is used to compare
with the preemption priority of new flows.
For any specific flow, its preemption priority MUST always be less
than or equal to the defending priority.
The preemption priority and defending priority of the Preemption
Priority Policy Element carried in a RESV message MUST be associated
with the flow specification carried in the FLOWSPEC object. There
MUST be either no Preemption Priority Policy Element carried in the
MULTI_INSTANCE Object, or there needs to be the exact same number of
Preemption Priority Policy Element as there are TSPEC Objects. This
MUST be a one-to-one mapping of numbers. For example, the preemption
priority and defending priority of the first (respectively second)
sub-element (when present) of the MULTI_INSTANCE Object is to be
associated with the first (respectively second) flow specification
(when present) in the MULTI_INSTANCE Object.
If a RESV message contains a dissimilar number of TSPECs than
Preemption Priority Policy Elements in the MULTI_INSTANCE object,
but contains a Preemption Priority Policy Element in the POLICY_DATA
object, then the Preemption Priority Policy Element in the
MULTI_INSTANCE object MUST be ignored, and all TSPECs retain the
priority properties of the Preemption Priority Policy Element in the
POLICY_DATA object.
An example MULTI_INSTANCE Object with 2 TSPEC Objects and 2
Preemption Priority Policy Element is showing generically in Figure
12.
Polk & Dhesikan Expires January 4, 2015 [Page 14]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
+----------------------------------------+
| MULTI_INSTANCE Object Top level header |
| +------------------------------------+
| | TSPEC Object type sub-header |
| | +---------------------------------+
| | | TSPEC Top level Header (1 word) |
| | +---------------------------------+
| | | TSPEC secondary Header (1 word) |
| | +---------------------------------+
| | | |
| | | Normal 5 32-bit words |
| | | within TSPEC |
| | | |
| | | |
| | +---------------------------------+
| | | TSPEC Top level Header (1 word) |
| | +---------------------------------+
| | | TSPEC secondary Header (1 word) |
| | +---------------------------------+
| | | |
| | | Normal 5 32-bit words |
| | | within TSPEC |
| | | |
| | | |
| +--+---------------------------------+
| | PREEMPTION_PRI element sub-header |
| | +---------------------------------+
| | | PREEMPTION_PRI Object |
| | | |
+---+--+---------------------------------+
| | | PREEMPTION_PRI Object |
| | | |
+---+--+---------------------------------+
Figure 12. MULTI_INSTANCE with 2 TSPECs and 2 PREEMPTION_PRIs
6. IANA Considerations
This document IANA registers the following new parameter name in the
rsvp-parameters assignments at [IANA]:
Registry Name: Parameter Names
Registry:
Value Description Reference
-------- -------------------------------------------- ---------
125 Multiple_Instance_object [RFCXXXX]
Where RFCXXXX is replaced with the RFC number assigned to this
Document.
This document IANA registers the following new error subcode in the
Polk & Dhesikan Expires January 4, 2015 [Page 15]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
Error code section, under the Admission Control Failure (error=1),
of the rsvp-parameters assignments at [IANA]:
Registry Name: Error Codes and Globally-Defined Error Value
Sub-Codes
Registry:
"Admission Control
Failure"
Error Subcode meaning Reference
------------- ----------------------------------------- ---------
6 = MULTI_INSTANCE bandwidth unavailable [RFCXXXX]
7. Security Considerations
The security considerations for this document do not exceed what is
already in RFC 2205 (RSVP), as nothing in either of those documents
prevent a node from requesting a lot of bandwidth in a single TSPEC,
or what priority values are given in a Preemption Priority Policy
Element. This document merely reduces the signaling traffic load on
the network by allowing many requests that fall under the same
policy controls to be included in a single round-trip message
exchange.
Further, this document does not increase the security risk(s) to
that defined in RFC 4495, where this document creates additional
meaning to the RFC 4495 created error code 102.
A misbehaving Sender can include too many TSPECs in the
MULTI_INSTANCE object, which can lead to an amplification attack.
That said, a bad implementation can create a reservation for each
TSPEC received from within the RESV message. The number of TSPECs in
the new MULTI_INSTANCE object is limited, and the spec clearly
states that only a single reservation is to be set up per RESV
message.
To ensure the integrity of RSVP, the RSVP Authentication mechanisms
defined in [RFC2747] and [RFC3097] SHOULD be used. Those protect
RSVP message integrity hop-by-hop and provide node authentication as
well as replay protection, thereby protecting against corruption and
spoofing of RSVP messages.
8. Contributing Authors
The authors here would like to thank the authors of
draft-lefaucheur-tsvwg-rsvp-multiple-preemption-02 for allowing that
draft to be merged with this draft, specifically for the Preemption
Priority Policy Element discussion in Section 5. They are:
Francois Le Faucheur
Arun Kudur and
Ashok Narayanan
Polk & Dhesikan Expires January 4, 2015 [Page 16]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
9. Acknowledgements
The authors wish to thank Fred Baker, Joe Touch, Bruce Davie, Dave
Oran, Ashok Narayanan, Lou Berger, Lars Eggert, Arun Kudur, Janet
Gunn and Ken Carlberg for their helpful comments and guidance in
this effort.
10. References
10.1 Normative References
[RFC2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997
[RFC2205] R. Braden, Ed., L. Zhang, S. Berson, S. Herzog, S. Jamin,
"Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, September 1997
[RFC2210] J. Wroclawski, "The Use of RSVP with IETF Integrated
Services", RFC 2210, September 1997
[RFC2211] J. Wroclawski, "Specification of the Controlled-Load Network
Element Service ", RFC 2211, September 1997
[RFC2212] S. Shenker, C. Partridge, R. Guerin, "Specification of
Guaranteed Quality of Service", RFC 2212, September 1997
[RFC2215] S. Shenker, J. Wroclawski, "General Characterization
Parameters for Integrated Service Network Elements",
RFC 2212, September 1997
[RFC2747] F. Baker, B. Lindell, M. Talwar, " RSVP Cryptographic
Authentication", RFC2747, January 2000
[RFC2750] S. Herzog, "RSVP Extensions for Policy Control", RFC 2750,
January 2000
[RFC2753] R. Yavatkar, D. Pendarakis, R. Guerin, "A Framework for
Policy-based Admission Control", RFC 2753, January 2000
[RFC2872] Y. Bernet, R. Pabbati, "Application and Sub Application
Identity Policy Element for Use with RSVP", RFC 2872,
June 2000
[RFC3097] R. Braden, L. Zhang, "RSVP Cryptographic Authentication --
Updated Message Type Value", RFC 3097, April 2001
[RFC3181] S. Herzog, "Signaled Preemption Priority Policy Element",
RFC 3181, October 2001
Polk & Dhesikan Expires January 4, 2015 [Page 17]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
[RFC3261] 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.
[RFC3312] G. Camarillo, Ed., W. Marshall, Ed., J. Rosenberg,
"Integration of Resource Management and Session Initiation
Protocol (SIP)", RFC 3312 Preconditions, October 2002
[RFC4495] J. Polk, S. Dhesikan, "A Resource Reservation Protocol
(RSVP) Extension for the Reduction of Bandwidth of a
Reservation Flow", RFC 4495, May 2006
[RFC4566] M. Handley, V. Jacobson, C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006
10.2 Informative References
draft-lefaucheur-tsvwg-rsvp-multiple-preemption
draft-ietf-tsvwg-intserv-multiple-tspec
Author's Addresses
James Polk
3913 Treemont Circle
Colleyville, Texas, USA
+1.817.271.3552
mailto: jmpolk@cisco.com
Subha Dhesikan
Cisco Systems
170 W. Tasman Drive
San Jose, CA 95134 USA
mailto: sdhesika@cisco.com
Appendix A - History
This history of how we got to this phase of the development in this
document can be traced to the work and choices articulated in the
appendix within
draft-ietf-tsvwg-intserv-multiple-tspec
From there, another team developed
draft-lefaucheur-tsvwg-rsvp-multiple-preemption
Then Lou Berger (yeah, blame him!) came up with the bright idea of
Polk & Dhesikan Expires January 4, 2015 [Page 18]
Internet-Draft RSVP MULTI_INSTANCE Object July 2014
combining the two efforts in such a way that one can take a complete
Object or element, and replace the primary instance of that within
an RSVP message for whatever reason (perhaps the message would be
rejected if that piece was not replaced with more reasonable demands
on the network; who knows). Anyway, that's how we got here. That's
the story and I'm sticking to it... :-p
Polk & Dhesikan Expires January 4, 2015 [Page 19]