draft-ietf-rsvp-spec-14.txt   draft-ietf-rsvp-spec-15.txt 
Internet Draft R. Braden, Ed. Internet Draft R. Braden, Ed.
Expiration: May 1997 ISI Expiration: November 1997 ISI
File: draft-ietf-rsvp-spec-14.txt L. Zhang File: draft-ietf-rsvp-spec-15.txt L. Zhang
PARC PARC
S. Berson S. Berson
ISI ISI
S. Herzog S. Herzog
ISI IBM Research
S. Jamin S. Jamin
USC Univ. of Michigan
Resource ReSerVation Protocol (RSVP) -- Resource ReSerVation Protocol (RSVP) --
Version 1 Functional Specification Version 1 Functional Specification
November 5, 1996 May 27, 1997
Status of Memo Status of Memo
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
skipping to change at page 2, line 7 skipping to change at page 2, line 7
Abstract Abstract
This memo describes version 1 of RSVP, a resource reservation setup This memo describes version 1 of RSVP, a resource reservation setup
protocol designed for an integrated services Internet. RSVP provides protocol designed for an integrated services Internet. RSVP provides
receiver-initiated setup of resource reservations for multicast or receiver-initiated setup of resource reservations for multicast or
unicast data flows, with good scaling and robustness properties. unicast data flows, with good scaling and robustness properties.
Table of Contents Table of Contents
1. Introduction ........................................................3 1. Introduction ........................................................4
1.1 Data Flows ......................................................6 1.1 Data Flows ......................................................7
1.2 Reservation Model ...............................................7 1.2 Reservation Model ...............................................8
1.3 Reservation Styles ..............................................10 1.3 Reservation Styles ..............................................11
1.4 Examples of Styles ..............................................12 1.4 Examples of Styles ..............................................14
2. RSVP Protocol Mechanisms ............................................17 2. RSVP Protocol Mechanisms ............................................19
2.1 RSVP Messages ...................................................17 2.1 RSVP Messages ...................................................19
2.2 Merging Flowspecs ...............................................19 2.2 Merging Flowspecs ...............................................21
2.3 Soft State ......................................................20 2.3 Soft State ......................................................22
2.4 Teardown ........................................................22 2.4 Teardown ........................................................24
2.5 Errors ..........................................................23 2.5 Errors ..........................................................25
2.6 Confirmation ....................................................25 2.6 Confirmation ....................................................27
2.7 Policy and Security .............................................25 2.7 Policy Control ..................................................27
2.8 Non-RSVP Clouds .................................................26 2.8 Security ........................................................28
2.9 Host Model ......................................................27 2.9 Non-RSVP Clouds .................................................29
3. RSVP Functional Specification .......................................29 2.10 Host Model .....................................................30
3.1 RSVP Message Formats ............................................29 3. RSVP Functional Specification .......................................32
3.2 Port Usage ......................................................42 3.1 RSVP Message Formats ............................................32
3.3 Sending RSVP Messages ...........................................43 3.2 Port Usage ......................................................46
3.4 Avoiding RSVP Message Loops .....................................45 3.3 Sending RSVP Messages ...........................................47
3.5 Blockade State ..................................................48 3.4 Avoiding RSVP Message Loops .....................................49
3.6 Local Repair ....................................................50 3.5 Blockade State ..................................................53
3.7 Time Parameters .................................................51 3.6 Local Repair ....................................................55
3.8 Traffic Policing and Non-Integrated Service Hops ................52 3.7 Time Parameters .................................................56
3.9 Multihomed Hosts ................................................53 3.8 Traffic Policing and Non-Integrated Service Hops ................57
3.10 Future Compatibility ...........................................55 3.9 Multihomed Hosts ................................................58
3.11 RSVP Interfaces ................................................57 3.10 Future Compatibility ...........................................60
APPENDIX A. Object Definitions .........................................69 3.11 RSVP Interfaces ................................................62
APPENDIX B. Error Codes and Values .....................................84 APPENDIX A. Object Definitions .........................................75
APPENDIX C. UDP Encapsulation ..........................................89 APPENDIX B. Error Codes and Values .....................................90
APPENDIX D. Glossary ...................................................93 APPENDIX C. UDP Encapsulation ..........................................95
APPENDIX D. Glossary ...................................................99
What's Changed
This revision contains the following very minor changes from the ID14
version.
o For clarity, each message type is now defined separately in
Section 3.1.
o We added more precise and complete rules for accepting Path
messages for unicast and multicast destinations (Section
3.1.3).
o We added more precise and complete rules for processing and
forwarding PathTear messages (Section 3.1.5).
o A note was added that a SCOPE object will be ignored if it
appears in a ResvTear message (Section 3.1.6).
o A note was added that a SENDER_TSPEC or ADSPEC object will be
ignored if it appears in a PathTear message (Section 3.1.5).
o The obsolete error code Ambiguous Filter Spec (09) was
removed, and a new (and more consistent) name was given to
error code 08 (Appendix B).
o In the generic interface to traffic control, the Adspec was
added as a parameter to the AddFlow and ModFlow calls
(3.11.2). This is needed to accommodate a node that updates
the slack term (S) of Guaranteed service.
o An error subtype was added for an Adspec error (Appendix B).
o Additional explanation was added for handling a CONFIRM
object (Section 3.1.4).
o The rules for forwarding objects with unknown class type were
clarified.
o Additional discussion was added to the Introduction and to
Section 3.11.2 about the relationship of RSVP to the link
layer. (Section 3.10).
o Section 2.7 on Policy and Security was split into two
sections, and some additional discussion of security was
included.
o There were some minor editorial improvements.
1. Introduction 1. Introduction
This document defines RSVP, a resource reservation setup protocol This document defines RSVP, a resource reservation setup protocol
designed for an integrated services Internet [RSVP93,ISInt93]. designed for an integrated services Internet [RSVP93,ISInt93]. The
RSVP protocol is used by a host to request specific qualities of
The RSVP protocol is used by a host, on behalf of an application data service from the network for particular application data streams or
stream, to request a specific quality of service (QoS) from the flows. RSVP is also used by routers to deliver quality-of-service
network for particular data streams or flows. The RSVP protocol is (QoS) requests to all nodes along the path(s) of the flows and to
also used by routers to deliver QoS control requests to all nodes establish and maintain state to provide the requested service. RSVP
along the path(s) of the flows and to establish and maintain state to requests will generally result in resources being reserved in each
provide the requested service. RSVP requests will generally,
although not necessarily, result in resources being reserved in each
node along the data path. node along the data path.
RSVP requests resources for simplex flows, i.e., it requests RSVP requests resources for simplex flows, i.e., it requests
resources in only one direction. Therefore, RSVP treats a sender as resources in only one direction. Therefore, RSVP treats a sender as
logically distinct from a receiver, although the same application logically distinct from a receiver, although the same application
process may act as both a sender and a receiver at the same time. process may act as both a sender and a receiver at the same time.
RSVP operates on top of IP (either IPv4 or IPv6), occupying the place RSVP operates on top of IPv4 or IPv6, occupying the place of a
of a transport protocol in the protocol stack. However, RSVP does transport protocol in the protocol stack. However, RSVP does not
not transport application data but is rather an Internet control transport application data but is rather an Internet control
protocol, like ICMP, IGMP, or routing protocols. Like the protocol, like ICMP, IGMP, or routing protocols. Like the
implementations of routing and management protocols, an implementations of routing and management protocols, an
implementation of RSVP will typically execute in the background, not implementation of RSVP will typically execute in the background, not
in the data forwarding path, as shown in Figure 1. in the data forwarding path, as shown in Figure 1.
RSVP is not itself a routing protocol; RSVP is designed to operate RSVP is not itself a routing protocol; RSVP is designed to operate
with current and future unicast and multicast routing protocols. An with current and future unicast and multicast routing protocols. An
RSVP process consults the local routing database(s) to obtain routes. RSVP process consults the local routing database(s) to obtain routes.
In the multicast case, for example, a host sends IGMP messages to In the multicast case, for example, a host sends IGMP messages to
join a multicast group and then sends RSVP messages to reserve join a multicast group and then sends RSVP messages to reserve
resources along the delivery path(s) of that group. Routing resources along the delivery path(s) of that group. Routing
protocols determine where packets get forwarded; RSVP is only protocols determine where packets get forwarded; RSVP is only
concerned with the QoS of those packets that are forwarded in concerned with the QoS of those packets that are forwarded in
accordance with routing. accordance with routing.
In order to efficiently accommodate large groups, dynamic group In order to efficiently accommodate large groups, dynamic group
membership, and heterogeneous receiver requirements, RSVP makes membership, and heterogeneous receiver requirements, RSVP makes
receivers responsible for requesting QoS control [RSVP93]. A QoS receivers responsible for requesting a specific QoS [RSVP93]. A QoS
control request from a receiver host application is passed to the request from a receiver host application is passed to the local RSVP
local RSVP process. The RSVP protocol then carries the request to process. The RSVP protocol then carries the request to all the nodes
all the nodes (routers and hosts) along the reverse data path(s) to (routers and hosts) along the reverse data path(s) to the data
the data source(s). source(s), but only as far as the router where the receiver's data
path joins the multicast distribution tree. As a result, RSVP's
reservation overhead is in general logarithmic rather than linear in
the number of receivers.
HOST ROUTER HOST ROUTER
_____________________________ ____________________________ _____________________________ ____________________________
| _______ | | | | _______ | | |
| | | _______ | | _______ | | | | _______ | | _______ |
| |Appli- | | | |RSVP | | | | | |Appli- | | | |RSVP | | | |
| | cation| | RSVP <---------------------------> RSVP <----------> | | cation| | RSVP <---------------------------> RSVP <---------->
| | <--> | | | _______ | | | | | <--> | | | _______ | | |
| | | |process| _____ | ||Routing| |process| _____ | | | | |process| _____ | ||Routing| |process| _____ |
skipping to change at page 4, line 30 skipping to change at page 5, line 30
| _V__V_ ___V____ |Cntrl|| | _V__V_ __V_____ |Cntrl|| | _V__V_ ___V____ |Cntrl|| | _V__V_ __V_____ |Cntrl||
| | | | | |_____|| | | | | ||_____|| | | | | | |_____|| | | | | ||_____||
| |Class-| | Packet | | | |Class-| | Packet | | | |Class-| | Packet | | | |Class-| | Packet | |
| | ifier|==>Schedulr|================> ifier|==>Schedulr|===========> | | ifier|==>Schedulr|================> ifier|==>Schedulr|===========>
| |______| |________| |data | |______| |________| |data | |______| |________| |data | |______| |________| |data
| | | | | | | |
|_____________________________| |____________________________| |_____________________________| |____________________________|
Figure 1: RSVP in Hosts and Routers Figure 1: RSVP in Hosts and Routers
Each node that is capable of QoS control passes incoming data packets Quality of service is implemented for a particular data flow by
through a "packet classifier", which determines the route and the QoS mechanisms collectively called "traffic control". These mechanisms
class for each packet. On each outgoing interface, a "packet include (1) a packet classifier, (2) admission control, and (3) a
scheduler" then makes forwarding decisions for every packet, to "packet scheduler" or some other link-layer-dependent mechanism to
achieve the promised QoS on the particular link-layer medium used by determine when particular packets are forwarded. The "packet
that interface. classifier" determines the QoS class (and perhaps the route) for each
packet. For each outgoing interface, the "packet scheduler" or other
link-layer-dependent mechanism achieves the promised QoS. Traffic
control implements QoS service models defined by the Integrated
Services Working Group.
At each node, an RSVP QoS control request is passed to two local During reservation setup, an RSVP QoS request is passed to two local
decision modules, "admission control" and "policy control". decision modules, "admission control" and "policy control".
Admission control determines whether the node has sufficient Admission control determines whether the node has sufficient
available resources to supply the requested QoS. Policy control available resources to supply the requested QoS. Policy control
determines whether the user has administrative permission to make the determines whether the user has administrative permission to make the
reservation. If both checks succeed, parameters are set in the reservation. If both checks succeed, parameters are set in the
packet classifier and in the scheduler, to obtain the desired QoS. packet classifier and in the link layer interface (e.g., in the
If either check fails, the RSVP program returns an error notification packet scheduler) to obtain the desired QoS. If either check fails,
to the application process that originated the request. We refer to the RSVP program returns an error notification to the application
the packet classifier, packet scheduler, and admission control process that originated the request.
components as "traffic control". The packet scheduler and admission
control components implement QoS service models defined by the
Integrated Services Working Group.
RSVP protocol mechanisms provide a general facility for creating and RSVP protocol mechanisms provide a general facility for creating and
maintaining distributed reservation state across a mesh of multicast maintaining distributed reservation state across a mesh of multicast
or unicast delivery paths. RSVP itself transfers and manipulates QoS or unicast delivery paths. RSVP itself transfers and manipulates QoS
control parameters as opaque data, passing them to the appropriate and policy control parameters as opaque data, passing them to the
traffic control modules for interpretation. The structure and appropriate traffic control and policy control modules for
contents of the QoS parameters are documented in specifications interpretation. The structure and contents of the QoS parameters are
developed by the Integrated Services Working Group. In particular, documented in specifications developed by the Integrated Services
[ISrsvp96] describes these data structures and how RSVP fits into the Working Group; see [ISrsvp96]. The structure and contents of the
larger integrated service architecture. policy parameters are under development.
RSVP is designed to scale well for very large multicast groups. Since the membership of a large multicast group and the resulting
Since both the membership of a large group and the topology of large multicast tree topology are likely to change with time, the RSVP
multicast trees are likely to change with time, the RSVP design design assumes that state for RSVP and traffic control state is to be
assumes that router state for traffic control will be built and built and destroyed incrementally in routers and hosts. For this
destroyed incrementally. For this purpose, RSVP uses "soft state" in purpose, RSVP establishes "soft" state; that is, RSVP sends periodic
the routers. That is, RSVP sends periodic refresh messages to refresh messages to maintain the state along the reserved path(s).
maintain the state along the reserved path(s); in absence of In the absence of refresh messages, the state automatically times out
refreshes, the state will automatically time out and be deleted. and is deleted.
In summary, RSVP has the following attributes: In summary, RSVP has the following attributes:
o RSVP makes resource reservations for both unicast and many-to- o RSVP makes resource reservations for both unicast and many-to-
many multicast applications, adapting dynamically to changing many multicast applications, adapting dynamically to changing
group membership as well as to changing routes. group membership as well as to changing routes.
o RSVP is simplex, i.e., it makes reservations for unidirectional o RSVP is simplex, i.e., it makes reservations for unidirectional
data flows. data flows.
o RSVP is receiver-oriented, i.e., the receiver of a data flow o RSVP is receiver-oriented, i.e., the receiver of a data flow
initiates and maintains the resource reservation used for that initiates and maintains the resource reservation used for that
flow. flow.
o RSVP maintains "soft state" in the routers, providing graceful o RSVP maintains "soft" state in routers and hosts, providing
support for dynamic membership changes and automatic adaptation graceful support for dynamic membership changes and automatic
to routing changes. adaptation to routing changes.
o RSVP is not a routing protocol but depends upon present and o RSVP is not a routing protocol but depends upon present and
future routing protocols. future routing protocols.
o RSVP transports and maintains opaque state for traffic control, o RSVP transports and maintains traffic control and policy control
and policy control. parameters that are opaque to RSVP.
o RSVP provides several reservation models or "styles" (defined o RSVP provides several reservation models or "styles" (defined
below) to fit a variety of applications. below) to fit a variety of applications.
o RSVP provides transparent operation through routers that do not o RSVP provides transparent operation through routers that do not
support it. support it.
o RSVP supports both IPv4 and IPv6. o RSVP supports both IPv4 and IPv6.
Further discussion on the objectives and general justification for Further discussion on the objectives and general justification for
RSVP design are presented in [RSVP93] and [ISInt93]. RSVP design are presented in [RSVP93] and [ISInt93].
The remainder of this section describes the RSVP reservation The remainder of this section describes the RSVP reservation
services. Section 2 presents an overview of the RSVP protocol services. Section 2 presents an overview of the RSVP protocol
mechanisms. Section 3 contains the functional specification of RSVP, mechanisms. Section 3 contains the functional specification of RSVP,
while Section 4 presents explicit message processing rules. Appendix while Section 4 presents explicit message processing rules. Appendix
A defines the variable-length typed data objects used in the RSVP A defines the variable-length typed data objects used in the RSVP
protocol. Appendix B defines error codes and values. Appendix C protocol. Appendix B defines error codes and values. Appendix C
defines an extension for UDP encapsulation of RSVP messages. defines a UDP encapsulation of RSVP messages, for hosts whose
operating systems provide inadequate raw network I/O support.
1.1 Data Flows 1.1 Data Flows
RSVP defines a "session" to be a data flow with a particular RSVP defines a "session" to be a data flow with a particular
destination and transport-layer protocol. The destination of a destination and transport-layer protocol. RSVP treats each
session is defined by DestAddress, the IP destination address of session independently, and this document often omits the implied
the data packets, by the IP protocol ID, and perhaps by DstPort, a qualification "for the same session".
An RSVP session is defined by the triple: (DestAddress, ProtocolId
[, DstPort]). Here DestAddress, the IP destination address of the
data packets, may be a unicast or multicast address. ProtocolId
is the IP protocol ID. The optional DstPort parameter is a
"generalized destination port", i.e., some further demultiplexing "generalized destination port", i.e., some further demultiplexing
point in the transport or application protocol layer. RSVP treats point in the transport or application protocol layer. DstPort
each session independently, and this document often omits the could be defined by a UDP/TCP destination port field, by an
implied qualification "for the same session". equivalent field in another transport protocol, or by some
application-specific information.
DestAddress is a group address for multicast delivery or the Although the RSVP protocol is designed to be easily extensible for
unicast address of a single receiver. DstPort could be defined by greater generality, the basic protocol documented here supports
a UDP/TCP destination port field, by an equivalent field in only UDP/TCP ports as generalized ports. Note that it is not
another transport protocol, or by some application-specific strictly necessary to include DstPort in the session definition
information. Although the RSVP protocol is designed to be easily when DestAddress is multicast, since different sessions can always
extensible for greater generality, the basic protocol documented have different multicast addresses. However, DstPort is necessary
here supports only UDP/TCP ports as generalized ports. Note that to allow more than one unicast session addressed to the same
it is not strictly necessary to include DstPort in the session receiver host.
definition when DestAddress is multicast, since different sessions
can always have different multicast addresses. However, DstPort
is necessary to allow more than one unicast session addressed to
the same receiver host.
Figure 2 illustrates the flow of data packets in a single RSVP Figure 2 illustrates the flow of data packets in a single RSVP
session, assuming multicast data distribution. The arrows session, assuming multicast data distribution. The arrows
indicate data flowing from senders S1 and S2 to receivers R1, R2, indicate data flowing from senders S1 and S2 to receivers R1, R2,
and R3, and the cloud represents the distribution mesh created by and R3, and the cloud represents the distribution mesh created by
multicast routing. Multicast distribution forwards a copy of each multicast routing. Multicast distribution forwards a copy of each
data packet from a sender Si to every receiver Rj; a unicast data packet from a sender Si to every receiver Rj; a unicast
distribution session has a single receiver R. Each sender Si may distribution session has a single receiver R. Each sender Si may
be running in a unique Internet host, or a single host may contain be running in a unique Internet host, or a single host may contain
multiple senders distinguished by "generalized source ports". multiple senders distinguished by "generalized source ports".
skipping to change at page 7, line 29 skipping to change at page 8, line 32
for multipoint-to-single-point transmission. for multipoint-to-single-point transmission.
1.2 Reservation Model 1.2 Reservation Model
An elementary RSVP reservation request consists of a "flowspec" An elementary RSVP reservation request consists of a "flowspec"
together with a "filter spec"; this pair is called a "flow together with a "filter spec"; this pair is called a "flow
descriptor". The flowspec specifies a desired QoS. The filter descriptor". The flowspec specifies a desired QoS. The filter
spec, together with a session specification, defines the set of spec, together with a session specification, defines the set of
data packets -- the "flow" -- to receive the QoS defined by the data packets -- the "flow" -- to receive the QoS defined by the
flowspec. The flowspec is used to set parameters in the node's flowspec. The flowspec is used to set parameters in the node's
packet scheduler (assuming that admission control succeeds), while packet scheduler or other link layer mechanism, while the filter
the filter spec is used to set parameters in the packet spec is used to set parameters in the packet classifier. Data
classifier. Data packets that are addressed to a particular packets that are addressed to a particular session but do not
session but do not match any of the filter specs for that session match any of the filter specs for that session are handled as
are handled as best-effort traffic. best-effort traffic.
Note that the action to control QoS occurs at the place where the
data enters the medium, i.e., at the upstream end of the logical
or physical link, although an RSVP reservation request originates
from receiver(s) downstream. In this document, we define the
directional terms "upstream" vs. "downstream", "previous hop" vs.
"next hop", and "incoming interface" vs "outgoing interface" with
respect to the direction of data flow.
If the link-layer medium is QoS-active, i.e., if it has its own
QoS management capability, then the packet scheduler is
responsible for negotiation with the link layer to obtain the QoS
requested by RSVP. This mapping to the link layer QoS may be
accomplished in a number of possible ways; the details will be
medium-dependent. On a QoS-passive medium such as a leased line,
the scheduler itself allocates packet transmission capacity. The
scheduler may also allocate other system resources such as CPU
time or buffers.
The flowspec in a reservation request will generally include a The flowspec in a reservation request will generally include a
service class and two sets of numeric parameters: (1) an "Rspec" service class and two sets of numeric parameters: (1) an "Rspec"
(R for `reserve') that defines the desired QoS, and (2) a "Tspec" (R for `reserve') that defines the desired QoS, and (2) a "Tspec"
(T for `traffic') that describes the data flow. The formats and (T for `traffic') that describes the data flow. The formats and
contents of Tspecs and Rspecs are determined by the integrated contents of Tspecs and Rspecs are determined by the integrated
service models [ISrsvp96] and are generally opaque to RSVP. service models [ISrsvp96] and are generally opaque to RSVP.
The exact format of a filter spec depends upon whether IPv4 or The exact format of a filter spec depends upon whether IPv4 or
IPv6 is in use; see Appendix A. In the most general approach IPv6 is in use; see Appendix A. In the most general approach
[RSVP93], filter specs may select arbitrary subsets of the packets [RSVP93], filter specs may select arbitrary subsets of the packets
in a given session. Such subsets might be defined in terms of in a given session. Such subsets might be defined in terms of
senders (i.e., sender IP address and generalized source port), in senders (i.e., sender IP address and generalized source port), in
terms of a higher-level protocol, or generally in terms of any terms of a higher-level protocol, or generally in terms of any
fields in any protocol headers in the packet. For example, filter fields in any protocol headers in the packet. For example, filter
specs might be used to select different subflows in a specs might be used to select different subflows of a
hierarchically-encoded signal by selecting on fields in an hierarchically-encoded video stream by selecting on fields in an
application-layer header. In the interest of simplicity (and to application-layer header. In the interest of simplicity (and to
minimize layer violation), the present RSVP version uses a much minimize layer violation), the basic filter spec format defined in
more restricted form of filter spec, consisting of sender IP the present RSVP specification has a very restricted form: sender
address and optionally the UDP/TCP port number SrcPort. IP address and optionally the UDP/TCP port number SrcPort.
Because the UDP/TCP port numbers are used for packet Because the UDP/TCP port numbers are used for packet
classification, each router must be able to examine these fields. classification, each router must be able to examine these fields.
This raises three potential problems. This raises three potential problems.
1. It is necessary to avoid IP fragmentation of a data flow for 1. It is necessary to avoid IP fragmentation of a data flow for
which a resource reservation is desired. which a resource reservation is desired.
Document [ISrsvp96] specifies a procedure for applications Document [ISrsvp96] specifies a procedure for applications
using RSVP facilities to compute the minimum MTU over a using RSVP facilities to compute the minimum MTU over a
skipping to change at page 9, line 6 skipping to change at page 9, line 40
details will be provided in the future. details will be provided in the future.
3. IP-level Security, under either IPv4 or IPv6, may encrypt the 3. IP-level Security, under either IPv4 or IPv6, may encrypt the
entire transport header, hiding the port numbers of data entire transport header, hiding the port numbers of data
packets from intermediate routers. packets from intermediate routers.
A small extension to RSVP for IP Security under IPv4 and IPv6 A small extension to RSVP for IP Security under IPv4 and IPv6
is described separately in [IPSEC96]. is described separately in [IPSEC96].
RSVP messages carrying reservation requests originate at receivers RSVP messages carrying reservation requests originate at receivers
and are passed upstream towards the sender(s). At each and are passed upstream towards the sender(s). Note: in this
intermediate node, two general actions are taken on a request. document, we define the directional terms "upstream" vs.
"downstream", "previous hop" vs. "next hop", and "incoming
interface" vs "outgoing interface" with respect to the direction
of data flow.
1. Make a reservation At each intermediate node, a reservation request triggers two
general actions, as follows:
The request is passed to admission control and policy 1. Make a reservation on a link
control. If either test fails, the reservation is rejected
and RSVP returns an error message to the appropriate The RSVP process passes the request to admission control and
receiver(s). If both succeed, the node uses the flowspec to policy control. If either test fails, the reservation is
set up the packet scheduler for the desired QoS and the rejected and the RSVP process returns an error message to the
filter spec to set the packet classifier to select the appropriate receiver(s). If both succeed, the node sets the
appropriate data packets. packet classifier to select the data packets defined by the
filter spec, and it interacts with the appropriate link layer
to obtain the desired QoS defined by the flowspec.
The detailed rules for satisfying an RSVP QoS request depend
upon the particular link layer technology in use on each
interface. Specifications are under development in the ISSLL
Working Group for mapping reservation requests into popular
link layer technologies. For a simple leased line, the
desired QoS will be obtained from the packet scheduler in the
link layer driver, for example. If the link-layer technology
implements its own QoS management capability, then RSVP must
negotiate with the link layer to obtain the requested QoS.
Note that the action to control QoS occurs at the place where
the data enters the link-layer medium, i.e., at the upstream
end of the logical or physical link, although an RSVP
reservation request originates from receiver(s) downstream.
2. Forward the request upstream 2. Forward the request upstream
The reservation request is propagated upstream towards the A reservation request is propagated upstream towards the
appropriate senders. The set of sender hosts to which a appropriate senders. The set of sender hosts to which a
given reservation request is propagated is called the "scope" given reservation request is propagated is called the "scope"
of that request. of that request.
The reservation request that a node forwards upstream may differ The reservation request that a node forwards upstream may
from the request that it received from downstream, for two differ from the request that it received from downstream, for
reasons. First, the traffic control mechanism may modify the two reasons. The traffic control mechanism may modify the
flowspec hop-by-hop. Second, reservations for the same sender, or flowspec hop-by-hop. More importantly, reservations from
the same set of senders, from different downstream branches of the different downstream branches of the multicast tree(s) from
multicast tree(s) are "merged" as reservations travel upstream; as the same sender (or set of senders) must be " merged" as
a result, a node forwards upstream only the reservation request reservations travel upstream.
with the "maximum" flowspec.
When a receiver originates a reservation request, it can also When a receiver originates a reservation request, it can also
request a confirmation message to indicate that its request was request a confirmation message to indicate that its request was
(probably) installed in the network. A successful reservation (probably) installed in the network. A successful reservation
request propagates upstream along the multicast tree until it request propagates upstream along the multicast tree until it
reaches a point where an existing reservation is equal or greater reaches a point where an existing reservation is equal or greater
than that being requested. At that point, the arriving request is than that being requested. At that point, the arriving request is
merged with the reservation in place and need not be forwarded merged with the reservation in place and need not be forwarded
further; the node may then send a reservation confirmation message further; the node may then send a reservation confirmation message
back to the receiver. Note that the receipt of a confirmation is back to the receiver. Note that the receipt of a confirmation is
skipping to change at page 13, line 11 skipping to change at page 14, line 33
Figure 4 illustrates a router with two incoming interfaces, Figure 4 illustrates a router with two incoming interfaces,
labeled (a) and (b), through which flows will arrive, and two labeled (a) and (b), through which flows will arrive, and two
outgoing interfaces, labeled (c) and (d), through which data will outgoing interfaces, labeled (c) and (d), through which data will
be forwarded. This topology will be assumed in the examples that be forwarded. This topology will be assumed in the examples that
follow. There are three upstream senders; packets from sender S1 follow. There are three upstream senders; packets from sender S1
(S2 and S3) arrive through previous hop (a) ((b), respectively). (S2 and S3) arrive through previous hop (a) ((b), respectively).
There are also three downstream receivers; packets bound for R1 There are also three downstream receivers; packets bound for R1
(R2 and R3) are routed via outgoing interface (c) ((d), (R2 and R3) are routed via outgoing interface (c) ((d),
respectively). We furthermore assume that outgoing interface (d) respectively). We furthermore assume that outgoing interface (d)
is connected to a broadcast LAN, and that R2 and R3 are reached is connected to a broadcast LAN, i.e., that replication occurs in
via different next hop routers (not shown). the network; R2 and R3 are reached via different next hop routers
(not shown).
We must also specify the multicast routes within the node of We must also specify the multicast routes within the node of
Figure 4. Assume first that data packets from each Si shown in Figure 4. Assume first that data packets from each Si shown in
Figure 4 are routed to both outgoing interfaces. Under this Figure 4 are routed to both outgoing interfaces. Under this
assumption, Figures 5, 6, and 7 illustrate Wildcard-Filter, assumption, Figures 5, 6, and 7 illustrate Wildcard-Filter,
Fixed-Filter, and Shared-Explicit reservations, respectively. Fixed-Filter, and Shared-Explicit reservations, respectively.
________________ ________________
(a)| | (c) (a)| | (c)
( S1 ) ---------->| |----------> ( R1 ) ( S1 ) ---------->| |----------> ( R1 )
skipping to change at page 13, line 28 skipping to change at page 15, line 13
Fixed-Filter, and Shared-Explicit reservations, respectively. Fixed-Filter, and Shared-Explicit reservations, respectively.
________________ ________________
(a)| | (c) (a)| | (c)
( S1 ) ---------->| |----------> ( R1 ) ( S1 ) ---------->| |----------> ( R1 )
| Router | | | Router | |
(b)| | (d) |---> ( R2 ) (b)| | (d) |---> ( R2 )
( S2,S3 ) ------->| |------| ( S2,S3 ) ------->| |------|
|________________| |---> ( R3 ) |________________| |---> ( R3 )
| |
Figure 4: Router Configuration Figure 4: Router Configuration
For simplicity, these examples show flowspecs as one-dimensional For simplicity, these examples show flowspecs as one-dimensional
multiples of some base resource quantity B. The "Receive" column multiples of some base resource quantity B. The "Receives" column
shows the RSVP reservation requests received over outgoing shows the RSVP reservation requests received over outgoing
interfaces (c) and (d), and the "Reserve" column shows the interfaces (c) and (d), and the "Reserves" column shows the
resulting reservation state for each interface. The "Send" resulting reservation state for each interface. The "Sends"
column shows the reservation requests that are sent upstream to column shows the reservation requests that are sent upstream to
previous hops (a) and (b). In the "Reserve" column, each box previous hops (a) and (b). In the "Reserves" column, each box
represents one reserved "pipe" on the outgoing link, with the represents one reserved "pipe" on the outgoing link, with the
corresponding flow descriptor. corresponding flow descriptor.
Figure 5, showing the WF style, illustrates two distinct Figure 5, showing the WF style, illustrates two distinct
situations in which merging is required. (1) Each of the two next situations in which merging is required. (1) Each of the two next
hops on interface (d) results in a separate RSVP reservation hops on interface (d) results in a separate RSVP reservation
request, as shown; these two requests must be merged into the request, as shown; these two requests must be merged into the
effective flowspec, 3B, that is used to make the reservation on effective flowspec, 3B, that is used to make the reservation on
interface (d). (2) The reservations on the interfaces (c) and (d) interface (d). (2) The reservations on the interfaces (c) and (d)
must be merged in order to forward the reservation requests must be merged in order to forward the reservation requests
upstream; as a result, the larger flowspec 4B is forwarded upstream; as a result, the larger flowspec 4B is forwarded
upstream to each previous hop. upstream to each previous hop.
| |
Send | Reserve Receive Sends | Reserves Receives
| |
| _______ | _______
WF( *{4B} ) <- (a) | (c) | * {4B}| (c) <- WF( *{4B} ) WF( *{4B} ) <- (a) | (c) | * {4B}| (c) <- WF( *{4B} )
| |_______| | |_______|
| |
-----------------------|---------------------------------------- -----------------------|----------------------------------------
| _______ | _______
WF( *{4B} ) <- (b) | (d) | * {3B}| (d) <- WF( *{3B} ) WF( *{4B} ) <- (b) | (d) | * {3B}| (d) <- WF( *{3B} )
| |_______| <- WF( *{2B} ) | |_______| <- WF( *{2B} )
Figure 5: Wildcard-Filter (WF) Reservation Example Figure 5: Wildcard-Filter (WF) Reservation Example
Figure 6 shows Fixed-Filter (FF) style reservations. The flow Figure 6 shows Fixed-Filter (FF) style reservations. For each
descriptors for senders S2 and S3, received from outgoing outgoing interface, there is a separate reservation for each
source that has been requested, but this reservation will be
shared among all the receivers that made the request. The flow
descriptors for senders S2 and S3, received through outgoing
interfaces (c) and (d), are packed (not merged) into the request interfaces (c) and (d), are packed (not merged) into the request
forwarded to previous hop (b). On the other hand, the three forwarded to previous hop (b). On the other hand, the three
different flow descriptors specifying sender S1 are merged into different flow descriptors specifying sender S1 are merged into
the single request FF( S1{4B} ) that is sent to previous hop (a). the single request FF( S1{4B} ) that is sent to previous hop (a).
For each outgoing interface, there is a separate reservation for
each source that has been requested, but this reservation will be
shared among all the receivers that made the request.
| |
Send | Reserve Receive Sends | Reserves Receives
| |
| ________ | ________
FF( S1{4B} ) <- (a) | (c) | S1{4B} | (c) <- FF( S1{4B}, S2{5B} ) FF( S1{4B} ) <- (a) | (c) | S1{4B} | (c) <- FF( S1{4B}, S2{5B} )
| |________| | |________|
| | S2{5B} | | | S2{5B} |
| |________| | |________|
---------------------|--------------------------------------------- ---------------------|---------------------------------------------
| ________ | ________
<- (b) | (d) | S1{3B} | (d) <- FF( S1{3B}, S3{B} ) <- (b) | (d) | S1{3B} | (d) <- FF( S1{3B}, S3{B} )
FF( S2{5B}, S3{B} ) | |________| <- FF( S1{B} ) FF( S2{5B}, S3{B} ) | |________| <- FF( S1{B} )
skipping to change at page 15, line 9 skipping to change at page 17, line 9
| |________| | |________|
Figure 6: Fixed-Filter (FF) Reservation Example Figure 6: Fixed-Filter (FF) Reservation Example
Figure 7 shows an example of Shared-Explicit (SE) style Figure 7 shows an example of Shared-Explicit (SE) style
reservations. When SE-style reservations are merged, the reservations. When SE-style reservations are merged, the
resulting filter spec is the union of the original filter specs, resulting filter spec is the union of the original filter specs,
and the resulting flowspec is the largest flowspec. and the resulting flowspec is the largest flowspec.
| |
Send | Reserve Receive Sends | Reserves Receives
| |
| ________ | ________
SE( S1{3B} ) <- (a) | (c) |(S1,S2) | (c) <- SE( (S1,S2){B} ) SE( S1{3B} ) <- (a) | (c) |(S1,S2) | (c) <- SE( (S1,S2){B} )
| | {B} | | | {B} |
| |________| | |________|
---------------------|--------------------------------------------- ---------------------|---------------------------------------------
| __________ | __________
<- (b) | (d) |(S1,S2,S3)| (d) <- SE( (S1,S3){3B} ) <- (b) | (d) |(S1,S2,S3)| (d) <- SE( (S1,S3){3B} )
SE( (S2,S3){3B} ) | | {3B} | <- SE( S2{2B} ) SE( (S2,S3){3B} ) | | {3B} | <- SE( S2{2B} )
| |__________| | |__________|
skipping to change at page 16, line 8 skipping to change at page 18, line 8
and S3 are not forwarded to interface (c), e.g., because the and S3 are not forwarded to interface (c), e.g., because the
network topology provides a shorter path for these senders towards network topology provides a shorter path for these senders towards
R1, not traversing this node. The bottom part of Figure 8 shows R1, not traversing this node. The bottom part of Figure 8 shows
WF style reservations under this assumption. Since there is no WF style reservations under this assumption. Since there is no
route from (b) to (c), the reservation forwarded out interface (b) route from (b) to (c), the reservation forwarded out interface (b)
considers only the reservation on interface (d). considers only the reservation on interface (d).
_______________ _______________
(a)| | (c) (a)| | (c)
( S1 ) ---------->| >-----------> |----------> ( R1 ) ( S1 ) ---------->| >-----------> |----------> ( R1 )
| - | | > |
| - | | > |
(b)| - | (d) (b)| > | (d)
( S2,S3 ) ------->| >-------->--> |----------> ( R2, R3 ) ( S2,S3 ) ------->| >-------->--> |----------> ( R2, R3 )
|_______________| |_______________|
Router Configuration Router Configuration
| |
Send | Reserve Receive Sends | Reserves Receives
| |
| _______ | _______
WF( *{4B} ) <- (a) | (c) | * {4B}| (c) <- WF( *{4B} ) WF( *{4B} ) <- (a) | (c) | * {4B}| (c) <- WF( *{4B} )
| |_______| | |_______|
| |
-----------------------|---------------------------------------- -----------------------|----------------------------------------
| _______ | _______
WF( *{3B} ) <- (b) | (d) | * {3B}| (d) <- WF( * {3B} ) WF( *{3B} ) <- (b) | (d) | * {3B}| (d) <- WF( * {3B} )
| |_______| <- WF( * {2B} ) | |_______| <- WF( * {2B} )
skipping to change at page 17, line 32 skipping to change at page 19, line 32
_____ | <--Resv|_____________________| <-- Resv | | | _____ | <--Resv|_____________________| <-- Resv | | |
| | | |--| D' | | | | |--| D' |
| B' |--| | |_____| | B' |--| | |_____|
|_____| | | |_____| | |
Figure 9: Router Using RSVP Figure 9: Router Using RSVP
Figure 9 illustrates RSVP's model of a router node. Each data Figure 9 illustrates RSVP's model of a router node. Each data
flow arrives from a "previous hop" through a corresponding flow arrives from a "previous hop" through a corresponding
"incoming interface" and departs through one or more "outgoing "incoming interface" and departs through one or more "outgoing
interface"(s). The same physical interface may act in both the interface"(s). The same interface may act in both the incoming
incoming and outgoing roles for different data flows in the same and outgoing roles for different data flows in the same session.
session. Multiple previous hops and/or next hops may be reached Multiple previous hops and/or next hops may be reached through a
through a given physical interface, as a result of the connected given physical interface; for example, the figure implies that D
network being a shared medium, or the existence of non-RSVP and D' are connected to (d) with a broadcast LAN.
routers in the path to the next RSVP hop (see Section 2.8).
There are two fundamental RSVP message types: Resv and Path. There are two fundamental RSVP message types: Resv and Path.
Each receiver host sends RSVP reservation request (Resv) messages Each receiver host sends RSVP reservation request (Resv) messages
upstream towards the senders. These messages must follow exactly upstream towards the senders. These messages must follow exactly
the reverse of the path(s) the data packets will use, upstream to the reverse of the path(s) the data packets will use, upstream to
all the sender hosts included in the sender selection. They all the sender hosts included in the sender selection. They
create and maintain "reservation state" in each node along the create and maintain "reservation state" in each node along the
path(s). Resv messages must finally be delivered to the sender path(s). Resv messages must finally be delivered to the sender
hosts themselves, so that the hosts can set up appropriate traffic hosts themselves, so that the hosts can set up appropriate traffic
skipping to change at page 18, line 50 skipping to change at page 20, line 50
o Adspec o Adspec
A Path message may carry a package of OPWA advertising A Path message may carry a package of OPWA advertising
information, known as an "Adspec". An Adspec received in a information, known as an "Adspec". An Adspec received in a
Path message is passed to the local traffic control, which Path message is passed to the local traffic control, which
returns an updated Adspec; the updated version is then returns an updated Adspec; the updated version is then
forwarded in Path messages sent downstream. forwarded in Path messages sent downstream.
Path messages are sent with the same source and destination Path messages are sent with the same source and destination
addresses as the data, so that they will be routed correctly addresses as the data, so that they will be routed correctly
through non-RSVP clouds (see Section 2.8). On the other hand, through non-RSVP clouds (see Section 2.9). On the other hand,
Resv messages are sent hop-by-hop; each RSVP-speaking node Resv messages are sent hop-by-hop; each RSVP-speaking node
forwards a Resv message to the unicast address of a previous RSVP forwards a Resv message to the unicast address of a previous RSVP
hop. hop.
2.2 Merging Flowspecs 2.2 Merging Flowspecs
As noted earlier, a single physical interface may receive multiple A Resv message forwarded to a previous hop carries a flowspec that
is the "largest" of the flowspecs requested by the next hops to
which the data flow will be sent (however, see Section 3.5 for a
different merging rule used in certain cases). We say the
flowspecs have been "merged". The examples shown in Section 1.4
illustrated another case of merging, when there are multiple
reservation requests from different next hops for the same session reservation requests from different next hops for the same session
and with the same filter spec, but RSVP should install only one and with the same filter spec, but RSVP should install only one
reservation on that interface. The installed reservation should reservation on that interface. Here again, the installed
have an effective flowspec that is the "largest" of the flowspecs reservation should have an effective flowspec that is the
requested by the different next hops. Similarly, a Resv message "largest" of the flowspecs requested by the different next hops.
forwarded to a previous hop should carry a flowspec that is the
"largest" of the flowspecs requested by the different next hops
(however, in certain cases the "smallest" is taken rather than the
largest, see Section 3.5). These cases both represent flowspec
merging.
Flowspec merging requires calculation of the "largest" of a set of Since flowspecs are opaque to RSVP, the actual rules for comparing
flowspecs. However, flowspecs are opaque to RSVP, so the actual flowspecs must be defined and implemented outside RSVP proper.
rules for comparing flowspecs must be defined and implemented The comparison rules are defined in the appropriate integrated
outside RSVP proper. The comparison rules are defined in the service specification document. An RSVP implementation will need
appropriate integrated service specification document; see to call service-specific routines to perform flowspec merging.
[ISrsvp96]. An RSVP implementation will need to call service-
specific routines to perform flowspec merging.
Note that flowspecs are generally multi-dimensional vectors; they Note that flowspecs are generally multi-dimensional vectors; they
may contain both Tspec and Rspec components, each of which may may contain both Tspec and Rspec components, each of which may
itself be multi-dimensional. Therefore, it may not be possible to itself be multi-dimensional. Therefore, it may not be possible to
strictly order two flowspecs. For example, if one request calls strictly order two flowspecs. For example, if one request calls
for a higher bandwidth and another calls for a tighter delay for a higher bandwidth and another calls for a tighter delay
bound, one is not "larger" than the other. In such a case, bound, one is not "larger" than the other. In such a case,
instead of taking the larger, the service-specific merging instead of taking the larger, the service-specific merging
routines must be able to return a third flowspec that is at least routines must be able to return a third flowspec that is at least
as large as each; mathematically, this is the "least upper bound" as large as each; mathematically, this is the "least upper bound"
(LUB). In some cases, a flowspec at least as small is needed; (LUB). In some cases, a flowspec at least as small is needed;
this is the "greatest lower bound" (GLB) GLB (Greatest Lower this is the "greatest lower bound" (GLB) GLB (Greatest Lower
Bound). Bound).
The following steps are used to calculate the effective flowspec The following steps are used to calculate the effective flowspec
(Te, Re) to be installed on an interface [ISrsvp96]. Here Te is (Re, Te) to be installed on an interface [ISrsvp96]. Here Te is
the effective Tspec and Re is the effective Rspec. As an example, the effective Tspec and Re is the effective Rspec.
consider interface (d) in Figure 9.
1. A service-specific calculation of the LUB of the flowspecs 1. An effective flowspec is determined for the outgoing
that arrived in Resv messages from different next hops (e.g., interface. Depending upon the link-layer technology, this
D and D') but the same outgoing interface (d) is performed. may require merging flowspecs from different next hops; this
means computing the effective flowspec as the LUB of the
flowspecs. Note that what flowspecs to merge is determined
by the link layer medium (see Section 3.11.2), while how to
merge them is determined by the service model in use
[ISrsvp96].
The result is a flowspec that is opaque to RSVP but actually The result is a flowspec that is opaque to RSVP but actually
consists of the pair (Re, Resv_Te), where Re is the LUB of consists of the pair (Re, Resv_Te), where is Re is the
the Rspecs and Resv_Te is the LUB of the Tspecs from the Resv effective Rspec and Resv_Te is the effective Tspec.
messages.
2. A service-specific calculation of Path_Te, the sum of all 2. A service-specific calculation of Path_Te, the sum of all
Tspecs that were supplied in Path messages from different Tspecs that were supplied in Path messages from different
previous hops (e.g., some or all of A, B, and B' in Figure previous hops (e.g., some or all of A, B, and B' in Figure
9), is performed. 9), is performed.
3. RSVP passes these two results, (Re, Resv_Te) and Path_Te, to 3. (Re, Resv_Te) and Path_Te are passed to traffic control.
traffic control. Traffic control will compute the "minimum" Traffic control will compute the effective flowspec as the
of Path_Te and Resv_Te in a service-dependent manner, to be "minimum" of Path_Te and Resv_Te, in a service-dependent
the effective flowspec. manner.
A generic set of service-specific calls to compare flowspecs and Section 3.11.6 defines a generic set of service-specific calls to
compute the LUB and GLB of flowspecs, and to compare and sum compare flowspecs, to compute the LUB and GLB of flowspecs, and to
Tspecs, is defined in Section 3.11.5. compare and sum Tspecs.
2.3 Soft State 2.3 Soft State
RSVP takes a "soft state" approach to managing the reservation RSVP takes a "soft state" approach to managing the reservation
state in routers and hosts. RSVP soft state is created and state in routers and hosts. RSVP soft state is created and
periodically refreshed by Path and Resv messages. The state is periodically refreshed by Path and Resv messages. The state is
deleted if no matching refresh messages arrive before the deleted if no matching refresh messages arrive before the
expiration of a "cleanup timeout" interval. State may also be expiration of a "cleanup timeout" interval. State may also be
deleted by an explicit "teardown" message, described in the next deleted by an explicit "teardown" message, described in the next
section. At the expiration of each "refresh timeout" period and section. At the expiration of each "refresh timeout" period and
skipping to change at page 21, line 10 skipping to change at page 23, line 12
minimal bandwidth for RSVP messages to protect them from minimal bandwidth for RSVP messages to protect them from
congestion losses. congestion losses.
The state maintained by RSVP is dynamic; to change the set of The state maintained by RSVP is dynamic; to change the set of
senders Si or to change any QoS request, a host simply starts senders Si or to change any QoS request, a host simply starts
sending revised Path and/or Resv messages. The result will be an sending revised Path and/or Resv messages. The result will be an
appropriate adjustment in the RSVP state in all nodes along the appropriate adjustment in the RSVP state in all nodes along the
path; unused state will time out if it is not explicitly torn path; unused state will time out if it is not explicitly torn
down. down.
In steady state, refreshing is performed hop-by-hop, to allow In steady state, state is refreshed hop-by-hop to allow merging.
merging. When the received state differs from the stored state, When the received state differs from the stored state, the stored
the stored state is updated. If this update results in state is updated. If this update results in modification of state
modification of state to be forwarded in refresh messages, these to be forwarded in refresh messages, these refresh messages must
refresh messages must be generated and forwarded immediately, so be generated and forwarded immediately, so that state changes can
that state changes can be propagated end-to-end without delay. be propagated end-to-end without delay. However, propagation of a
However, propagation of a change stops when and if it reaches a change stops when and if it reaches a point where merging causes
point where merging causes no resulting state change. This no resulting state change. This minimizes RSVP control traffic
minimizes RSVP control traffic due to changes and is essential for due to changes and is essential for scaling to large multicast
scaling to large multicast groups. groups.
State that is received through a particular interface I* should State that is received through a particular interface I* should
never be forwarded out the same interface. Conversely, state that never be forwarded out the same interface. Conversely, state that
is forwarded out interface I* must be computed using only state is forwarded out interface I* must be computed using only state
that arrived on interfaces different from I*. A trivial example that arrived on interfaces different from I*. A trivial example
of this rule is illustrated in Figure 10, which shows a transit of this rule is illustrated in Figure 10, which shows a transit
router with one sender and one receiver on each interface (and router with one sender and one receiver on each interface (and
assumes one next/previous hop per interface). Interfaces (a) and assumes one next/previous hop per interface). Interfaces (a) and
(c) serve as both outgoing and incoming interfaces for this (c) serve as both outgoing and incoming interfaces for this
session. Both receivers are making wildcard-style reservations, session. Both receivers are making wildcard-style reservations,
skipping to change at page 22, line 28 skipping to change at page 24, line 28
Reserve on (a) | Reserve on (c) Reserve on (a) | Reserve on (c)
__________ | __________ __________ | __________
| * {4B} | | | * {3B} | | * {4B} | | | * {3B} |
|__________| | |__________| |__________| | |__________|
| |
Figure 10: Independent Reservations Figure 10: Independent Reservations
2.4 Teardown 2.4 Teardown
Upon arrival, RSVP "teardown" messages remove path and reservation RSVP "teardown" messages remove path or reservation state
state immediately. Although it is not necessary to explicitly immediately. Although it is not necessary to explicitly tear down
tear down an old reservation, we recommend that all end hosts send an old reservation, we recommend that all end hosts send a
a teardown request as soon as an application finishes. teardown request as soon as an application finishes.
There are two types of RSVP teardown message, PathTear and There are two types of RSVP teardown message, PathTear and
ResvTear. A PathTear message travels towards all receivers ResvTear. A PathTear message travels towards all receivers
downstream from its point of initiation and deletes path state, as downstream from its point of initiation and deletes path state, as
well as all dependent reservation state, along the way. An well as all dependent reservation state, along the way. An
ResvTear message deletes reservation state and travels towards all ResvTear message deletes reservation state and travels towards all
senders upstream from its point of initiation. A PathTear senders upstream from its point of initiation. A PathTear
(ResvTear) message may be conceptualized as a reversed-sense Path (ResvTear) message may be conceptualized as a reversed-sense Path
message (Resv message, respectively). message (Resv message, respectively).
skipping to change at page 25, line 12 skipping to change at page 27, line 12
blockade state timeout interval). Such intermittent behavior blockade state timeout interval). Such intermittent behavior
might be very distressing for users. might be very distressing for users.
2.6 Confirmation 2.6 Confirmation
To request a confirmation for its reservation request, a receiver To request a confirmation for its reservation request, a receiver
Rj includes in the Resv message a confirmation-request object Rj includes in the Resv message a confirmation-request object
containing Rj's IP address. At each merge point, only the largest containing Rj's IP address. At each merge point, only the largest
flowspec and any accompanying confirmation-request object is flowspec and any accompanying confirmation-request object is
forwarded upstream. If the reservation request from Rj is equal forwarded upstream. If the reservation request from Rj is equal
to or smaller than the reservation in place on a node, its Resv to or smaller than the reservation in place on a node, its Resv is
are not forwarded further, and if the Resv included a not forwarded further, and if the Resv included a confirmation-
confirmation-request object, a ResvConf message is sent back to request object, a ResvConf message is sent back to Rj. If the
Rj. If the confirmation request is forwarded, it is forwarded confirmation request is forwarded, it is forwarded immediately,
immediately, and no more than once for each request. and no more than once for each request.
This confirmation mechanism has the following consequences: This confirmation mechanism has the following consequences:
o A new reservation request with a flowspec larger than any in o A new reservation request with a flowspec larger than any in
place for a session will normally result in either a ResvErr place for a session will normally result in either a ResvErr
or a ResvConf message back to the receiver from each sender. or a ResvConf message back to the receiver from each sender.
In this case, the ResvConf message will be an end-to-end In this case, the ResvConf message will be an end-to-end
confirmation. confirmation.
o The receipt of a ResvConf gives no guarantees. Assume the o The receipt of a ResvConf gives no guarantees. Assume the
first two reservation requests from receivers R1 and R2 first two reservation requests from receivers R1 and R2
arrive at the node where they are merged. R2, whose arrive at the node where they are merged. R2, whose
reservation was the second to arrive at that node, may reservation was the second to arrive at that node, may
receive a ResvConf from that node while R1's request has not receive a ResvConf from that node while R1's request has not
yet propagated all the way to a matching sender and may still yet propagated all the way to a matching sender and may still
fail. Thus, R2 may receive a ResvConf although there is no fail. Thus, R2 may receive a ResvConf although there is no
end-to-end reservation in place; furthermore, R2 may receive end-to-end reservation in place; furthermore, R2 may receive
a ResvConf followed by a ResvErr. a ResvConf followed by a ResvErr.
2.7 Policy and Security 2.7 Policy Control
RSVP-mediated QoS requests will result in particular user(s) RSVP-mediated QoS requests allow particular user(s) to obtain
getting preferential access to network resources. To prevent preferential access to network resources. To prevent abuse, some
abuse, some form of back pressure on users is likely to be form of back pressure will generally be required on users who make
required. This back pressure might take the form of reservations. For example, such back pressure may be accomplished
administrative rules, or of some form of real or virtual billing by administrative access policies, or it may depend upon some form
for the "cost" of a reservation. The form and contents of such of user feedback such as real or virtual billing for the "cost" of
back pressure is a matter of administrative policy that may be a reservation. In any case, reliable user identification and
determined independently by each administrative domain in the selective admission will generally be needed when a reservation is
Internet. requested.
Therefore, there is likely to be policy control as well as The term "policy control" is used for the mechanisms required to
admission control over the establishment of reservations. As support access policies and back pressure for RSVP reservations.
input to policy control, RSVP messages may carry "policy data". When a new reservation is requested, each node must answer two
Policy data may include credentials identifying users or user questions: "Are enough resources available to meet this request?"
classes, account numbers, limits, quotas, etc. RSVP will pass the and "Is this user allowed to make this reservation?" These two
"policy data" to a "Local Policy Module" (LPM) for a decision. decisions are termed the "admission control" decision and the
"policy control" decision, respectively, and both must be
favorable in order for RSVP to make a reservation. Different
administrative domains in the Internet may have different
reservation policies.
To protect the integrity of the policy control mechanisms, it may The input to policy control is referred to as "policy data", which
be necessary to ensure the integrity of RSVP messages against RSVP carries in POLICY_DATA objects. Policy data may include
corruption or spoofing, hop by hop. For this purpose, RSVP credentials identifying users or user classes, account numbers,
messages may carry integrity objects that can be created and limits, quotas, etc. Like flowspecs, policy data is opaque to
verified by neighbor RSVP-capable nodes. These objects use a RSVP, which simply passes it to policy control when required.
keyed cryptographic digest technique and assume that RSVP Similarly, merging of policy data must be done by the policy
neighbors share a secret [Baker96]. control mechanism rather than by RSVP itself. Note that the merge
points for policy data are likely to be at the boundaries of
administrative domains. It may therefore be necessary to carry
accumulated and unmerged policy data upstream through multiple
nodes before reaching one of these merge points.
User policy data in reservation request messages presents a Carrying user-provided policy data in Resv messages presents a
scaling problem. When a multicast group has a large number of potential scaling problem. When a multicast group has a large
receivers, it will be impossible or undesirable to carry all number of receivers, it will be impossible or undesirable to carry
receivers' policy data upstream to the sender(s). The policy data all receivers' policy data upstream. The policy data will have to
will have to be administratively merged at places near the be administratively merged at places near the receivers, to avoid
receivers, to avoid excessive policy data. Administrative merging excessive policy data. Further discussion of these issues and an
implies checking the user credentials and accounting data and then example of a policy control scheme will be found in [PolArch96].
substituting a token indicating the check has succeeded. A chain Specifications for the format of policy data objects and RSVP
of trust established using integrity fields will allow upstream processing rules for them are under development.
nodes to accept these tokens.
In summary, different administrative domains in the Internet may 2.8 Security
have different policies regarding their resource usage and
reservation. The role of RSVP is to carry policy data associated
with each reservation to the network as needed. Note that the
merge points for policy data are likely to be at the boundaries of
administrative domains. It may be necessary to carry accumulated
and unmerged policy data upstream through multiple nodes before
reaching one of these merge points.
This document does not specify the contents of policy data, the RSVP raises the following security issues.
structure of an LPM, or any generic policy models. These will be
defined in the future.
2.8 Non-RSVP Clouds o Message integrity and node authentication
Corrupted or spoofed reservation requests could lead to theft
of service by unauthorized parties or to denial of service
caused by locking up network resources. RSVP protects
against such attacks with a hop-by-hop authentication
mechanism using an encrypted hash function. The mechanism is
supported by INTEGRITY objects that may appear in any RSVP
message. These objects use a keyed cryptographic digest
technique, which assumes that RSVP neighbors share a secret.
Although this mechanism is part of the base RSVP
specification, it is described in a companion document
[Baker96].
Widespread use of the RSVP integrity mechanism will require
the availability of the long-sought key management and
distribution infrastructure for routers. Until that
infrastructure becomes available, manual key management will
be required to secure RSVP message integrity.
o User authentication
Policy control will depend upon positive authentication of
the user responsible for each reservation request. Policy
data may therefore include cryptographically protected user
certificates. Specification of such certificates is a future
issue.
Even without globally-verifiable user certificates, it may be
possible to provide practical user authentication in many
cases by establishing a chain of trust, using the hop-by-hop
INTEGRITY mechanism described earlier.
o Secure data streams
The first two security issues concerned RSVP's operation. A
third security issue concerns resource reservations for
secure data streams. In particular, the use of IPSEC (IP
Security) in the data stream poses a problem for RSVP: if
the transport and higher level headers are encrypted, RSVP's
generalized port numbers cannot be used to define a session
or a sender.
To solve this problem, an RSVP extension has been defined in
which the security association identifier (IPSEC SPI) plays a
role roughly equivalent to the generalized ports [IPSEC97].
2.9 Non-RSVP Clouds
It is impossible to deploy RSVP (or any new protocol) at the same It is impossible to deploy RSVP (or any new protocol) at the same
moment throughout the entire Internet. Furthermore, RSVP may moment throughout the entire Internet. Furthermore, RSVP may
never be deployed everywhere. RSVP must therefore provide correct never be deployed everywhere. RSVP must therefore provide correct
protocol operation even when two RSVP-capable routers are joined protocol operation even when two RSVP-capable routers are joined
by an arbitrary "cloud" of non-RSVP routers. Of course, an by an arbitrary "cloud" of non-RSVP routers. Of course, an
intermediate cloud that does not support RSVP is unable to perform intermediate cloud that does not support RSVP is unable to perform
resource reservation. However, if such a cloud has sufficient resource reservation. However, if such a cloud has sufficient
capacity, it may still provide useful realtime service. capacity, it may still provide useful realtime service.
skipping to change at page 27, line 42 skipping to change at page 30, line 39
the logical outgoing interface; both values are stored in the path the logical outgoing interface; both values are stored in the path
state. A Resv message arriving at the addressed node carries both state. A Resv message arriving at the addressed node carries both
the IP address and the LIH of the correct outgoing interface, i.e, the IP address and the LIH of the correct outgoing interface, i.e,
the interface that should receive the requested reservation, the interface that should receive the requested reservation,
regardless of which interface it arrives on. regardless of which interface it arrives on.
The LIH may also be useful when RSVP reservations are made over a The LIH may also be useful when RSVP reservations are made over a
complex link layer, to map between IP layer and link layer flow complex link layer, to map between IP layer and link layer flow
entities. entities.
2.9 Host Model 2.10 Host Model
Before a session can be created, the session identification, Before a session can be created, the session identification
comprised of DestAddress, ProtocolId, and perhaps the generalized (DestAddress, ProtocolId [, DstPort]) must be assigned and
destination port, must be assigned and communicated to all the communicated to all the senders and receivers by some out-of-band
senders and receivers by some out-of-band mechanism. When an RSVP mechanism. When an RSVP session is being set up, the following
session is being set up, the following events happen at the end events happen at the end systems.
systems.
H1 A receiver joins the multicast group specified by H1 A receiver joins the multicast group specified by
DestAddress, using IGMP. DestAddress, using IGMP.
H2 A potential sender starts sending RSVP Path messages to the H2 A potential sender starts sending RSVP Path messages to the
DestAddress. DestAddress.
H3 A receiver application receives a Path message. H3 A receiver application receives a Path message.
H4 A receiver starts sending appropriate Resv messages, H4 A receiver starts sending appropriate Resv messages,
skipping to change at page 33, line 29 skipping to change at page 36, line 29
The maximum object content length is 65528 bytes. The Class- The maximum object content length is 65528 bytes. The Class-
Num and C-Type fields may be used together as a 16-bit number Num and C-Type fields may be used together as a 16-bit number
to define a unique type for each object. to define a unique type for each object.
The high-order two bits of the Class-Num is used to determine The high-order two bits of the Class-Num is used to determine
what action a node should take if it does not recognize the what action a node should take if it does not recognize the
Class-Num of an object; see Section 3.10. Class-Num of an object; see Section 3.10.
3.1.3 Path Messages 3.1.3 Path Messages
Each sender host periodically sends a Path message for each
data flow it originates. It contains a SENDER_TEMPLATE object
defining the format of the data packets and a SENDER_TSPEC
object specifying the traffic characteristics of the flow.
Optionally, it may contain may be an ADSPEC object carrying
advertising (OPWA) data for the flow.
A Path message travels from a sender to receiver(s) along the
same path(s) used by the data packets. The IP source address
of a Path message must be an address of the sender it
describes, while the destination address must be the
DestAddress for the session. These addresses assure that the
message will be correctly routed through a non-RSVP cloud.
The format of a Path message is as follows: The format of a Path message is as follows:
<Path Message> ::= <Common Header> [ <INTEGRITY> ] <Path Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP> <SESSION> <RSVP_HOP>
<TIME_VALUES> <TIME_VALUES>
[ <POLICY_DATA> ... ] [ <POLICY_DATA> ... ]
[ <sender descriptor> ] [ <sender descriptor> ]
<sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC> <sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC>
[ <ADSPEC> ] [ <ADSPEC> ]
If the INTEGRITY object is present, it must immediately follow If the INTEGRITY object is present, it must immediately follow
the common header. There are no other requirements on the common header. There are no other requirements on
transmission order, although the above order is recommended. transmission order, although the above order is recommended.
Any number of POLICY_DATA objects may appear. Any number of POLICY_DATA objects may appear.
skipping to change at page 33, line 50 skipping to change at page 37, line 15
<sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC> <sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC>
[ <ADSPEC> ] [ <ADSPEC> ]
If the INTEGRITY object is present, it must immediately follow If the INTEGRITY object is present, it must immediately follow
the common header. There are no other requirements on the common header. There are no other requirements on
transmission order, although the above order is recommended. transmission order, although the above order is recommended.
Any number of POLICY_DATA objects may appear. Any number of POLICY_DATA objects may appear.
The PHOP (i.e., the RSVP_HOP) object of each Path message The PHOP (i.e., RSVP_HOP) object of each Path message contains
contains the previous hop address, i.e., the IP address of the the previous hop address, i.e., the IP address of the interface
interface through which the Path message was most recently through which the Path message was most recently sent. It also
sent. It also carries a logical interface handle (LIH). carries a logical interface handle (LIH).
Each sender host periodically sends a Path message for each
data flow it originates. The SENDER_TEMPLATE object defines
the format of the data packets, while the SENDER_TSPEC object
specifies the traffic characteristics of the flow. Optionally,
there may be an ADSPEC object carrying advertising (OPWA) data
for the flow.
The Path message travels from a sender to receiver(s) along the
same path(s) used by the data packets. The IP source address
of a Path message is an address of the sender it describes,
while the destination address is the DestAddress for the
session. These addresses assure that the message will be
correctly routed through a non-RSVP cloud.
Each RSVP-capable node along the path(s) captures a Path Each RSVP-capable node along the path(s) captures a Path
message and processes it to create path state for the sender message and processes it to create path state for the sender
defined by the SENDER_TEMPLATE and SESSION objects. Any defined by the SENDER_TEMPLATE and SESSION objects. Any
POLICY_DATA, SENDER_TSPEC, and ADSPEC objects are also saved in POLICY_DATA, SENDER_TSPEC, and ADSPEC objects are also saved in
the path state. If an error is encountered while processing a the path state. If an error is encountered while processing a
Path message, a PathErr message is sent to the originating Path message, a PathErr message is sent to the originating
sender of the Path message. Path messages must satisfy the sender of the Path message. Path messages must satisfy the
rules on SrcPort and DstPort in Section 3.2. rules on SrcPort and DstPort in Section 3.2.
skipping to change at page 35, line 5 skipping to change at page 37, line 50
The route depends upon the session DestAddress, and for some The route depends upon the session DestAddress, and for some
routing protocols also upon the source (sender's IP) address. routing protocols also upon the source (sender's IP) address.
The routing information generally includes the list of zero or The routing information generally includes the list of zero or
more outgoing interfaces to which the Path message is to be more outgoing interfaces to which the Path message is to be
forwarded. Because each outgoing interface has a different IP forwarded. Because each outgoing interface has a different IP
address, the Path messages sent out different interfaces address, the Path messages sent out different interfaces
contain different PHOP addresses. In addition, ADSPEC objects contain different PHOP addresses. In addition, ADSPEC objects
carried in Path messages will also generally differ for carried in Path messages will also generally differ for
different outgoing interfaces. different outgoing interfaces.
Some IP multicast routing protocols (e.g., DVMRP, PIM, and Path state for a given session and sender may not necessarily
MOSPF) also keep track of the expected incoming interface for have a unique PHOP or unique incoming interface. There are two
each source host to a multicast group. Whenever this cases, corresponding to multicast and unicast sessions.
information is available, RSVP should check the incoming
interface of each Path message and do special handling of those o Multicast Sessions
messages Path messages that have arrived on the wrong
interface; see Section 3.9. Multicast routing allows a stable distribution tree in
which Path messages from the same sender arrive from more
than one PHOP, and RSVP must be prepared to maintain all
such path state. The RSVP rules for handling this
situation are contained in Section 3.9. RSVP must not
forward (according to the rules of Section 3.9) Path
messages that arrive on an incoming interface different
from that provided by routing.
o Unicast Sessions
For a short period following a unicast route change
upstream, a node may receive Path messages from multiple
PHOPs for a given (session, sender) pair. The node cannot
reliably determine which is the right PHOP, although the
node will receive data from only one of the PHOPs at a
time. One implementation choice for RSVP is to ignore
PHOP in matching unicast past state, and allow the PHOP to
flip among the candidates. Another implementation choice
is to maintain path state for each PHOP and to send Resv
messages upstream towards all such PHOPs. In either case,
the situation is a transient; the unused path state will
time out or be torn down (because upstream path state
timed out).
3.1.4 Resv Messages 3.1.4 Resv Messages
Resv messages carry reservation requests hop-by-hop from Resv messages carry reservation requests hop-by-hop from
receivers to senders, along the reverse paths of data flows for receivers to senders, along the reverse paths of data flows for
the session. The IP destination address of a Resv message is the session. The IP destination address of a Resv message is
the unicast address of a previous-hop node, obtained from the the unicast address of a previous-hop node, obtained from the
path state. The IP source address is an address of the node path state. The IP source address is an address of the node
that sent the message. that sent the message.
skipping to change at page 37, line 29 skipping to change at page 41, line 5
A request with wildcard sender selection will match all A request with wildcard sender selection will match all
senders that route to the given outgoing interface. senders that route to the given outgoing interface.
Whenever a Resv message with wildcard sender selection is Whenever a Resv message with wildcard sender selection is
forwarded to more than one previous hop, a SCOPE object forwarded to more than one previous hop, a SCOPE object
must be included in the message (see Section 3.4 below); must be included in the message (see Section 3.4 below);
in this case, the scope for forwarding the reservation is in this case, the scope for forwarding the reservation is
constrained to just the sender IP addresses explicitly constrained to just the sender IP addresses explicitly
listed in the SCOPE object. listed in the SCOPE object.
3.1.5 Teardown Messages A Resv message that is forwarded by a node is generally
the result of merging a set of incoming Resv messages
(that are not blockaded; see Section 3.5). If one of
these merged messages contains a RESV_CONFIRM object and
has a FLOWSPEC larger than the FLOWSPECs of the other
merged reservation requests, then this RESV_CONFIRM object
is forwarded in the outgoing Resv message. A RESV_CONFIRM
object in one of the other merged requests (whose
flowspecs are equal to, smaller than, or incomparable to,
the merged flowspec, and which is not blockaded) will
trigger the generation of an ResvConf message containing
the RESV_CONFIRM. A RESV_CONFIRM object in a request that
is blockaded will be neither forwarded nor returned; it
will be dropped in the current node.
There are two types of RSVP teardown message, PathTear and 3.1.5 Path Teardown Messages
ResvTear.
o A PathTear message deletes path state (which in turn Receipt of a PathTear (path teardown) message deletes matching
deletes any reservation state for that sender), traveling path state. Matching state must have match the SESSION,
towards all receivers that are downstream from the SENDER_TEMPLATE, and PHOP objects. In addition, a PathTear
initiating node. A PathTear message must be routed message for a multicast session can only match path state for
exactly like the corresponding Path message. Therefore, the incoming interface on which the PathTear arrived. If there
its IP destination address must be the session is no matching path state, a PathTear message should be
DestAddress, and its IP source address must be the address discarded and not forwarded.
of the sender being torn down.
o A ResvTear message deletes reservation state, traveling PathTear messages are initiated explicitly by senders or by
towards all matching senders upstream from the initiating path state timeout in any node, and they travel downstream
node. A ResvTear message must be routed like the towards all receivers. A unicast PathTear must not be
corresponding Resv message, and its IP destination address forwarded if there is path state for the same (session, sender)
will be the unicast address of a previous hop. A ResvTear pair but a different PHOP. Forwarding of multicast PathTear
message will be initiated by a receiver, by a node in messages is governed by the rules of Section 3.9.
which reservation state has timed out, or by a node in
which a reservation has been preempted. A PathTear message must be routed exactly like the
corresponding Path message. Therefore, its IP destination
address must be the session DestAddress, and its IP source
address must be the sender address from the path state being
torn down.
<PathTear Message> ::= <Common Header> [ <INTEGRITY> ] <PathTear Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP> <SESSION> <RSVP_HOP>
[ <sender descriptor> ] [ <sender descriptor> ]
<sender descriptor> ::= (see earlier definition) <sender descriptor> ::= (see earlier definition)
A PathTear message may include a SENDER_TSPEC or ADSPEC object
in its sender descriptor, but these must be ignored. The order
requirements are as given earlier for a Path message, but the
above order is recommended.
Deletion of path state as the result of a PathTear message or a
timeout must also adjust related reservation state as required
to maintain consistency in the local node. The adjustment
depends upon the reservation style. For example, suppose a
PathTear deletes the path state for a sender S. If the style
specifies explicit sender selection (FF or SE), any reservation
with a filter spec matching S should be deleted; if the style
has wildcard sender selection (WF), the reservation should be
deleted if S is the last sender to the session. These
reservation changes should not trigger an immediate Resv
refresh message, since the PathTear message has already made
the required changes upstream. They should not trigger a
ResvErr message, since the result could be to generate a shower
of such messages.
3.1.6 Resv Teardown Messages
Receipt of a ResvTear (reservation teardown) message deletes
matching reservation state. Matching reservation state must
match the SESSION, STYLE, and FILTER_SPEC objects as well as
the LIH in the RSVP_HOP object. If there is no matching
reservation state, a ResvTear message should be discarded. A
ResvTear message may tear down any subset of the filter specs
in FF-style or SE-style reservation state.
ResvTear messages are initiated explicitly by receivers or by
any node in which reservation state has timed out, and they
travel upstream towards all matching senders.
A ResvTear message must be routed like the corresponding Resv
message, and its IP destination address will be the unicast
address of a previous hop.
<ResvTear Message> ::= <Common Header> [<INTEGRITY>] <ResvTear Message> ::= <Common Header> [<INTEGRITY>]
<SESSION> <RSVP_HOP> <SESSION> <RSVP_HOP>
[ <SCOPE> ] <STYLE> [ <SCOPE> ] <STYLE>
<flow descriptor list> <flow descriptor list>
<flow descriptor list> ::= (see earlier definition) <flow descriptor list> ::= (see earlier definition)
FLOWSPEC objects in the flow descriptor list of a ResvTear FLOWSPEC objects in the flow descriptor list of a ResvTear
message will be ignored and may be omitted. The order message will be ignored and may be omitted. The order
requirements for INTEGRITY object, sender descriptor, STYLE requirements for INTEGRITY object, sender descriptor, STYLE
object, and flow descriptor list are as given earlier for Path object, and flow descriptor list are as given earlier for a
and Resv messages. A ResvTear message may specify any subset Resv message, but the above order is recommended. A ResvTear
of the filter specs in FF-style or SE-style reservation state. message may include a SCOPE object, but it must be ignored.
Note that, unless it is accidentally dropped along the way, a
PathTear message will reach all receivers downstream from the
originating node. On the other hand, a ResvTear message will
cease to be forwarded at the node where merging would have
suppressed forwarding of the corresponding Resv message.
Depending upon the resulting state change in a node, receipt of
a ResvTear message may cause a ResvTear message to be
forwarded, a modified Resv message to be forwarded, or no
message to be forwarded.
These three cases can be illustrated in the case of the FF- A ResvTear message will cease to be forwarded at the node where
style reservations shown in Figure 6. merging would have suppressed forwarding of the corresponding
Resv message. Depending upon the resulting state change in a
node, receipt of a ResvTear message may cause a ResvTear
message to be forwarded, a modified Resv message to be
forwarded, or no message to be forwarded. These three cases
can be illustrated in the case of the FF-style reservations
shown in Figure 6.
o If receiver R2 sends a ResvTear message for its o If receiver R2 sends a ResvTear message for its
reservation S3{B}, the corresponding reservation is reservation S3{B}, the corresponding reservation is
removed from interface (d) and an ResvTear for S3{B} is removed from interface (d) and a ResvTear for S3{B} is
forwarded out (b). forwarded out (b).
o If receiver R1 sends a ResvTear for its reservation o If receiver R1 sends a ResvTear for its reservation
S1{4B}, the corresponding reservation is removed from S1{4B}, the corresponding reservation is removed from
interface (c) and a modified Resv message FF( S1{3B} ) is interface (c) and a modified Resv message FF( S1{3B} ) is
immediately forwarded out (a). immediately forwarded out (a).
o If receiver R3 sends a ResvTear message for S1{B}, there o If receiver R3 sends a ResvTear message for S1{B}, there
is no change in the effective reservation S1{3B} on (d) is no change in the effective reservation S1{3B} on (d)
and no message is forwarded. and no message is forwarded.
Deletion of path state as the result of a PathTear message or a 3.1.7 Path Error Messages
timeout must cause any adjustments in related reservation state
required to maintain consistency in the local node. The
adjustment in reservation state depends upon the style. For
example, suppose a PathTear deletes the path state for a sender
S. If the style specifies explicit sender selection (FF or
SE), any reservation with a filter spec matching S should be
deleted; if the style has wildcard sender selection (WF), the
reservation should be deleted if S is the last sender to the
session. These reservation changes should not trigger an
immediate Resv refresh message, since the PathTear message has
already made the required changes upstream. However, at the
node in which a ResvTear message stops, the change of
reservation state may trigger a Resv refresh starting at that
node.
3.1.6 Error Messages
There are two types of RSVP error messages.
o PathErr messages result from Path messages and travel
upstream towards senders. PathErr messages are routed
hop-by-hop using the path state; at each hop, the IP
destination address is the unicast address of a previous
hop. PathErr messages do not modify the state of any node
through which they pass; instead, they are only reported
to the sender application.
o ResvErr messages result from Resv messages and travel PathErr (path error) messages report errors in processing Path
downstream towards the appropriate receivers. They are messages. They are travel upstream towards senders and are
routed hop-by-hop using the reservation state; at each routed hop-by-hop using the path state. At each hop, the IP
hop, the IP destination address is the unicast address of destination address is the unicast address of a previous hop.
a next-hop node. PathErr messages do not modify the state of any node through
which they pass; they are only reported to the sender
application.
<PathErr message> ::= <Common Header> [ <INTEGRITY> ] <PathErr message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <ERROR_SPEC> <SESSION> <ERROR_SPEC>
[ <POLICY_DATA> ...] [ <POLICY_DATA> ...]
[ <sender descriptor> ] [ <sender descriptor> ]
<sender descriptor> ::= (see earlier definition) <sender descriptor> ::= (see earlier definition)
The ERROR_SPEC object specifies the error and includes the IP
address of the node that detected the error (Error Node
Address). One or more POLICY_DATA objects may be included
message to provide relevant information. The sender descriptor
is copied from the message in error. The object order
requirements are as given earlier for a Path message, but the
above order is recommended.
3.1.8 Resv Error Messages
ResvErr (reservation error) messages report errors in
processing Resv messages, or they may report the spontaneous
disruption of a reservation, e.g., by administrative
preemption.
ResvErr messages travel downstream towards the appropriate
receivers, routed hop-by-hop using the reservation state. At
each hop, the IP destination address is the unicast address of
a next-hop node.
<ResvErr Message> ::= <Common Header> [ <INTEGRITY> ] <ResvErr Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP> <SESSION> <RSVP_HOP>
<ERROR_SPEC> [ <SCOPE> ] <ERROR_SPEC> [ <SCOPE> ]
[ <POLICY_DATA> ...] [ <POLICY_DATA> ...]
<STYLE> [ <error flow descriptor> ] <STYLE> [ <error flow descriptor> ]
The ERROR_SPEC object specifies the error and includes the IP The ERROR_SPEC object specifies the error and includes the IP
address of the node that detected the error (Error Node address of the node that detected the error (Error Node
Address). One or more POLICY_DATA objects may be included in Address). One or more POLICY_DATA objects may be included in
an error message to provide relevant information (i.e., when an an error message to provide relevant information (e.g.,, when a
administrative failure is being reported). In a ResvErr policy control error is being reported). The RSVP_HOP object
message, the RSVP_HOP object contains the previous hop address, contains the previous hop address, and the STYLE object is
and the STYLE object is copied from the Resv message in error. copied from the Resv message in error. The use of the SCOPE
The use of the SCOPE object in a ResvErr message is defined object in a ResvErr message is defined below in Section 3.4.
below in Section 3.4. The object order requirements are as given for Resv messages,
but the above order is recommended.
The following style-dependent rules define the composition of a The following style-dependent rules define the composition of a
valid error flow descriptor; the object order requirements are valid error flow descriptor; the object order requirements are
as given earlier for a Resv message. as given earlier for flow descriptor.
o WF Style: o WF Style:
<error flow descriptor> ::= <WF flow descriptor> <error flow descriptor> ::= <WF flow descriptor>
o FF style: o FF style:
<error flow descriptor> ::= <FF flow descriptor> <error flow descriptor> ::= <FF flow descriptor>
Each flow descriptor in a FF-style Resv message must be Each flow descriptor in a FF-style Resv message must be
skipping to change at page 41, line 4 skipping to change at page 45, line 26
o SE style: o SE style:
<error flow descriptor> ::= <SE flow descriptor> <error flow descriptor> ::= <SE flow descriptor>
An SE-style ResvErr message may list the subset of the An SE-style ResvErr message may list the subset of the
filter specs in the corresponding Resv message to which filter specs in the corresponding Resv message to which
the error applies. the error applies.
Note that a ResvErr message contains only one flow descriptor. Note that a ResvErr message contains only one flow descriptor.
Therefore, a Resv message that contains N > 1 flow descriptors Therefore, a Resv message that contains N > 1 flow descriptors
(FF style) may create up to N separate ResvErr messages. (FF style) may create up to N separate ResvErr messages.
Generally speaking, a ResvErr message should be forwarded Generally speaking, a ResvErr message should be forwarded
towards all receivers that may have caused the error being towards all receivers that may have caused the error being
reported. More specifically: reported. More specifically:
o The node that detects an error in a reservation request o The node that detects an error in a reservation request
sends a ResvErr message to the next hop from which the sends a ResvErr message to the next hop node from which
erroneous reservation came. the erroneous reservation came.
This message must contain the information required to This ResvErr message must contain the information required
define the error and to route the error message in later to define the error and to route the error message in
hops. It therefore includes an ERROR_SPEC object, a copy later hops. It therefore includes an ERROR_SPEC object, a
of the STYLE object, and the appropriate error flow copy of the STYLE object, and the appropriate error flow
descriptor. If the error is an admission control failure, descriptor. If the error is an admission control failure
any reservation already in place must be left in place, while attempting to increase an existing reservation, then
and the InPlace flag bit must be on in the ERROR_SPEC of the existing reservation must be left in place and the
the ResvErr message. InPlace flag bit must be on in the ERROR_SPEC of the
ResvErr message.
o Succeeding nodes forward the ResvErr message to next hops o Succeeding nodes forward the ResvErr message to next hops
that have local reservation state. For reservations with that have local reservation state. For reservations with
wildcard scope, there is an additional limitation on wildcard scope, there is an additional limitation on
forwarding ResvErr messages, to avoid loops; see Section forwarding ResvErr messages, to avoid loops; see Section
3.4. There is also a rule restricting the forwarding of a 3.4. There is also a rule restricting the forwarding of a
Resv message after an Admission Control failure; see Resv message after an Admission Control failure; see
Section 3.5. Section 3.5.
A ResvErr message that is forwarded should carry the A ResvErr message that is forwarded should carry the
FILTER_SPEC from the corresponding reservation state. FILTER_SPEC(s) from the corresponding reservation state.
o When a ResvErr message reaches a receiver, the STYLE o When a ResvErr message reaches a receiver, the STYLE
object, flow descriptor list, and ERROR_SPEC object object, flow descriptor list, and ERROR_SPEC object
(including its flags) should be delivered to the receiver (including its flags) should be delivered to the receiver
application. application.
An error encountered while processing an error message must 3.1.9 Confirmation Messages
cause the error message to be discarded without creating
further error messages; however, logging of such events may be
useful.
3.1.7 Confirmation Messages
ResvConf messages are sent to (probabilistically) acknowledge ResvConf messages are sent to (probabilistically) acknowledge
reservation requests. A ResvConf message is sent as the result reservation requests. A ResvConf message is sent as the result
of the appearance of a RESV_CONFIRM object in a Resv message. of the appearance of a RESV_CONFIRM object in a Resv message.
A ResvConf message is sent to the unicast address of a receiver A ResvConf message is sent to the unicast address of a receiver
host; the address is obtained from the RESV_CONFIRM object. host; the address is obtained from the RESV_CONFIRM object.
However, a ResvConf message is forwarded to the receiver hop- However, a ResvConf message is forwarded to the receiver hop-
by-hop, to accommodate the hop-by-hop integrity check by-hop, to accommodate the hop-by-hop integrity check
mechanism. mechanism.
skipping to change at page 42, line 20 skipping to change at page 46, line 39
<SESSION> <ERROR_SPEC> <SESSION> <ERROR_SPEC>
<RESV_CONFIRM> <RESV_CONFIRM>
<STYLE> <flow descriptor list> <STYLE> <flow descriptor list>
<flow descriptor list> ::= (see earlier definition) <flow descriptor list> ::= (see earlier definition)
The object order requirements are the same as those given The object order requirements are the same as those given
earlier for a Resv message. earlier for a Resv message, but the above order is recommended.
The RESV_CONFIRM object is a copy of that object in the Resv The RESV_CONFIRM object is a copy of that object in the Resv
message that triggered the confirmation. The ERROR_SPEC is message that triggered the confirmation. The ERROR_SPEC is
used only to carry the IP address of the originating node, in used only to carry the IP address of the originating node, in
the Error Node Address; the Error Code and Value are zero to the Error Node Address; the Error Code and Value are zero to
indicate a confirmation. The flow descriptor list specifies indicate a confirmation. The flow descriptor list specifies
the particular reservations that are being confirmed; it may be the particular reservations that are being confirmed; it may be
a subset of flow descriptor list of the Resv that requested the a subset of flow descriptor list of the Resv that requested the
confirmation. confirmation.
skipping to change at page 43, line 18 skipping to change at page 47, line 39
header). SrcPort may be omitted (set to zero) in certain cases. header). SrcPort may be omitted (set to zero) in certain cases.
The following rules hold for the use of zero DstPort and/or The following rules hold for the use of zero DstPort and/or
SrcPort fields in RSVP. SrcPort fields in RSVP.
1. Destination ports must be consistent. 1. Destination ports must be consistent.
Path state and reservation state for the same DestAddress and Path state and reservation state for the same DestAddress and
ProtocolId must each have DstPort values that are all zero or ProtocolId must each have DstPort values that are all zero or
all non-zero. Violation of this condition in a node is a all non-zero. Violation of this condition in a node is a
"Conflicting Dest Port" error. "Conflicting Dest Ports" error.
2. Destination ports rule. 2. Destination ports rule.
If DstPort in a session definition is zero, all SrcPort If DstPort in a session definition is zero, all SrcPort
fields used for that session must also be zero. The fields used for that session must also be zero. The
assumption here is that the protocol does not have UDP/TCP- assumption here is that the protocol does not have UDP/TCP-
like ports. Violation of this condition in a node is a like ports. Violation of this condition in a node is a "Bad
"Conflicting Src Port" error. Src Ports" error.
3. Source Ports must be consistent. 3. Source Ports must be consistent.
A sender host must not send path state both with and without A sender host must not send path state both with and without
a zero SrcPort. Violation of this condition is an "Ambiguous a zero SrcPort. Violation of this condition is a
Path" error. "Conflicting Sender Port" error.
Note that RSVP has no "wildcard" ports, i.e., a zero port cannot
match a non-zero port.
3.3 Sending RSVP Messages 3.3 Sending RSVP Messages
RSVP messages are sent hop-by-hop between RSVP-capable routers as RSVP messages are sent hop-by-hop between RSVP-capable routers as
"raw" IP datagrams with protocol number 46. Raw IP datagrams are "raw" IP datagrams with protocol number 46. Raw IP datagrams are
also intended to be used between an end system and the first/last also intended to be used between an end system and the first/last
hop router, although it is also possible to encapsulate RSVP hop router, although it is also possible to encapsulate RSVP
messages as UDP datagrams for end-system communication, as messages as UDP datagrams for end-system communication, as
described in Appendix C. UDP encapsulation is needed for systems described in Appendix C. UDP encapsulation is needed for systems
that cannot do raw network I/O. that cannot do raw network I/O.
Path, PathTear, and ResvConf messages must be sent with the Router Path, PathTear, and ResvConf messages must be sent with the Router
Alert IP option [Katz95] in their IP headers. This option may be Alert IP option [Katz97] in their IP headers. This option may be
used in the fast forwarding path of a high-speed router to detect used in the fast forwarding path of a high-speed router to detect
datagrams that require special processing. datagrams that require special processing.
Upon the arrival of an RSVP message M that changes the state, a Upon the arrival of an RSVP message M that changes the state, a
node must forward the state modification immediately. However, node must forward the state modification immediately. However,
this must not trigger sending a message out the interface through this must not trigger sending a message out the interface through
which M arrived (which could happen if the implementation simply which M arrived (which could happen if the implementation simply
triggered an immediate refresh of all state for the session). triggered an immediate refresh of all state for the session).
This rule is necessary to prevent packet storms on broadcast LANs. This rule is necessary to prevent packet storms on broadcast LANs.
skipping to change at page 44, line 28 skipping to change at page 49, line 4
Future versions of the protocol will provide solutions for these Future versions of the protocol will provide solutions for these
problems if they prove burdensome. The most likely direction will problems if they prove burdensome. The most likely direction will
be to perform "semantic fragmentation", i.e., break the path or be to perform "semantic fragmentation", i.e., break the path or
reservation state being transmitted into multiple self-contained reservation state being transmitted into multiple self-contained
messages, each of an acceptable size. messages, each of an acceptable size.
RSVP uses its periodic refresh mechanisms to recover from RSVP uses its periodic refresh mechanisms to recover from
occasional packet losses. Under network overload, however, occasional packet losses. Under network overload, however,
substantial losses of RSVP messages could cause a failure of substantial losses of RSVP messages could cause a failure of
resource reservations. To control the queueing delay and dropping resource reservations. To control the queuing delay and dropping
of RSVP packets, routers should be configured to offer them a of RSVP packets, routers should be configured to offer them a
preferred class of service. If RSVP packets experience noticeable preferred class of service. If RSVP packets experience noticeable
losses when crossing a congested non-RSVP cloud, a larger value losses when crossing a congested non-RSVP cloud, a larger value
can be used for the timeout factor K (see section 3.7). can be used for the timeout factor K (see section 3.7).
Some multicast routing protocols provide for "multicast tunnels", Some multicast routing protocols provide for "multicast tunnels",
which do IP encapsulation of multicast packets for transmission which do IP encapsulation of multicast packets for transmission
through routers that do not have multicast capability. A through routers that do not have multicast capability. A
multicast tunnel looks like a logical outgoing interface that is multicast tunnel looks like a logical outgoing interface that is
mapped into some physical interface. A multicast routing protocol mapped into some physical interface. A multicast routing protocol
skipping to change at page 48, line 12 skipping to change at page 52, line 48
The following rules are used for SCOPE objects in ResvErr messages The following rules are used for SCOPE objects in ResvErr messages
with WF style: with WF style:
1. The node that detected the error initiates an ResvErr message 1. The node that detected the error initiates an ResvErr message
containing a copy of the SCOPE object associated with the containing a copy of the SCOPE object associated with the
reservation state or message in error. reservation state or message in error.
2. Suppose a wildcard-style ResvErr message arrives at a node 2. Suppose a wildcard-style ResvErr message arrives at a node
with a SCOPE object containing the sender host address list with a SCOPE object containing the sender host address list
L. The node forwards the ResvErr message using the rules of L. The node forwards the ResvErr message using the rules of
Section 3.1.6. However, the ResvErr message forwarded out OI Section 3.1.8. However, the ResvErr message forwarded out OI
must contain a SCOPE object derived from L by including only must contain a SCOPE object derived from L by including only
those senders that route to OI. If this SCOPE object is those senders that route to OI. If this SCOPE object is
empty, the ResvErr message should not be sent out OI. empty, the ResvErr message should not be sent out OI.
3.5 Blockade State 3.5 Blockade State
The basic rule for creating a Resv refresh message is to merge the The basic rule for creating a Resv refresh message is to merge the
flowspecs of the reservation requests in place in the node, by flowspecs of the reservation requests in place in the node, by
computing their LUB. However, this rule is modified by the computing their LUB. However, this rule is modified by the
existence of "blockade state" resulting from ResvErr messages, to existence of "blockade state" resulting from ResvErr messages, to
skipping to change at page 49, line 49 skipping to change at page 54, line 38
particular was made because it is simple to define and particular was made because it is simple to define and
implement, and no reason is known for using a different implement, and no reason is known for using a different
definition of "minimum" here). definition of "minimum" here).
This refresh merging algorithm is applied separately to each flow This refresh merging algorithm is applied separately to each flow
(each sender or PHOP) contributing to a shared reservation (WF or (each sender or PHOP) contributing to a shared reservation (WF or
SE style). SE style).
Figure 12 shows an example of the the application of blockade Figure 12 shows an example of the the application of blockade
state for a shared reservation (WF style). There are two previous state for a shared reservation (WF style). There are two previous
hops labelled (a) and (b), and two next hops labelled (c) and (d). hops labeled (a) and (b), and two next hops labeled (c) and (d).
The larger reservation 4B arrived from (c) first, but it failed The larger reservation 4B arrived from (c) first, but it failed
somewhere upstream via PHOP (a), but not via PHOP (b). The somewhere upstream via PHOP (a), but not via PHOP (b). The
figures show the final "steady state" after the smaller figures show the final "steady state" after the smaller
reservation 2B subsequently arrived from (d). This steady state reservation 2B subsequently arrived from (d). This steady state
is perturbed roughly every Kb*R seconds, when the blockade state is perturbed roughly every Kb*R seconds, when the blockade state
times out. The next refresh then sends 4B to previous hop (a); times out. The next refresh then sends 4B to previous hop (a);
presumably this will fail, sending a ResvErr message that will presumably this will fail, sending a ResvErr message that will
re-establish the blockade state, returning to the situation shown re-establish the blockade state, returning to the situation shown
in the figure. At the same time, the ResvErr message will be in the figure. At the same time, the ResvErr message will be
forwarded to next hop (c) and to all receivers downstream forwarded to next hop (c) and to all receivers downstream
skipping to change at page 54, line 50 skipping to change at page 59, line 40
interface Iapp that differs from Isp, the shortest-path interface Iapp that differs from Isp, the shortest-path
interface to the sender. Then there are two possible ways interface to the sender. Then there are two possible ways
for multicast routing to deliver data packets to the for multicast routing to deliver data packets to the
application. The RSVP process must determine which case application. The RSVP process must determine which case
holds by examining the path state, to decide which incoming holds by examining the path state, to decide which incoming
interface to use for sending Resv messages. interface to use for sending Resv messages.
1. The multicast routing protocol may create a separate 1. The multicast routing protocol may create a separate
branch of the multicast distribution `tree' to deliver branch of the multicast distribution `tree' to deliver
to Iapp. In this case, there will be path state for to Iapp. In this case, there will be path state for
both Isp and Iapp. The path state on Iapp should only both interfaces Isp and Iapp. The path state on Iapp
match a reservation from the local application; it must should only match a reservation from the local
be marked "Local_only" by the RSVP process. If application; it must be marked "Local_only" by the RSVP
"Local_only" path state for Iapp exists, the Resv process. If "Local_only" path state for Iapp exists,
message should be sent out Iapp. the Resv message should be sent out Iapp.
Note that it is possible for the path state blocks for Note that it is possible for the path state blocks for
Isp and Iapp to have the same next hop, if there is an Isp and Iapp to have the same next hop, if there is an
intervening non-RSVP cloud. intervening non-RSVP cloud.
2. The multicast routing protocol may forward data within 2. The multicast routing protocol may forward data within
the router from Isp to Iapp. In this case, Iapp will the router from Isp to Iapp. In this case, Iapp will
appear in the list of outgoing interfaces of the path appear in the list of outgoing interfaces of the path
state for Isp, and the Resv message should be sent out state for Isp, and the Resv message should be sent out
Isp. Isp.
3. When Path and PathTear messages are forwarded, path
state marked "Local_Only" must be ignored.
3.10 Future Compatibility 3.10 Future Compatibility
We may expect that in the future new object C-Types will be We may expect that in the future new object C-Types will be
defined for existing object classes, and perhaps new object defined for existing object classes, and perhaps new object
classes will be defined. It will be desirable to employ such new classes will be defined. It will be desirable to employ such new
objects within the Internet using older implementations that do objects within the Internet using older implementations that do
not recognize them. Unfortunately, this is only possible to a not recognize them. Unfortunately, this is only possible to a
limited degree with reasonable complexity. The rules are as limited degree with reasonable complexity. The rules are as
follows (`b' represents a bit). follows (`b' represents a bit).
skipping to change at page 55, line 48 skipping to change at page 60, line 42
o Class-Num = 10bbbbbb o Class-Num = 10bbbbbb
The node should ignore the object, neither forwarding it The node should ignore the object, neither forwarding it
nor sending an error message. nor sending an error message.
o Class-Num = 11bbbbbb o Class-Num = 11bbbbbb
The node should ignore the object but forward it, The node should ignore the object but forward it,
unexamined and unmodified, in all messages resulting unexamined and unmodified, in all messages resulting
from the state contained in this message. from this message.
For example, suppose that a Resv message that is received The following more detailed rules hold for unknown-class
contains an object of unknown class number 11bbbbbb. Such an objects with a Class-Num of the form 11bbbbbb:
object should be saved in the reservation state without
further examination; however, only the latest object with a
given (unknown class, C-Type) pair should be saved. When a
Resv message is forwarded, it should include copies of such
saved unknown-class objects from all reservations that are
merged to form the new Resv message.
Note that objects with unknown class cannot be merged; 1. Such unknown-class objects received in PathTear,
however, unmerged objects may be forwarded until they reach a ResvTear, PathErr, or ResvErr messages should be
node that knows how to merge them. Forwarding objects with forwarded immediately in the same messages.
unknown class enables incremental deployment of new objects;
however, the scaling limitations of doing so must be
carefully examined before a new object class is deployed with
both high bits on.
These rules should be considered when any new Class-Num is 2. Such unknown-class objects received in Path or Resv
defined. messages should be saved with the corresponding state
and forwarded in any refresh message resulting from that
state.
3. When a Resv refresh is generated by merging multiple
reservation requests, the refresh message should include
the union of unknown-class objects from the component
requests. Only one copy of each unique unknown-class
object should be included in this union.
4. The original order of such unknown-class objects need
not be retained; however, the message that is forwarded
must obey the general order requirements for its message
type.
Although objects with unknown class cannot be merged, these
rules will forward such objects until they reach a node that
knows how to merge them. Forwarding objects with unknown
class enables incremental deployment of new objects; however,
the scaling limitations of doing so must be carefully
examined before a new object class is deployed with both high
bits on.
2. Unknown C-Type for Known Class 2. Unknown C-Type for Known Class
One might expect the known Class-Num to provide information One might expect the known Class-Num to provide information
that could allow intelligent handling of such an object. that could allow intelligent handling of such an object.
However, in practice such class-dependent handling is However, in practice such class-dependent handling is
complex, and in many cases it is not useful. complex, and in many cases it is not useful.
Generally, the appearance of an object with unknown C-Type Generally, the appearance of an object with unknown C-Type
should result in rejection of the entire message and should result in rejection of the entire message and
skipping to change at page 62, line 29 skipping to change at page 67, line 29
- NotGuilty - NotGuilty
This flag may be on for an Admission Control This flag may be on for an Admission Control
failure, to indicate that the flowspec requested failure, to indicate that the flowspec requested
by this receiver was strictly less than the by this receiver was strictly less than the
flowspec that got the error. This flag is set flowspec that got the error. This flag is set
at the receiver API. at the receiver API.
Filter_spec_list and Flowspec will contain the Filter_spec_list and Flowspec will contain the
corresponding objects from the error flow descriptor corresponding objects from the error flow descriptor
(see Section 3.1.6). List_count will specify the (see Section 3.1.8). List_count will specify the
number of FILTER_SPECS in Filter_spec_list. The number of FILTER_SPECS in Filter_spec_list. The
Policy_data_list parameter will contain any Policy_data_list parameter will contain any
POLICY_DATA objects from the ResvErr message. POLICY_DATA objects from the ResvErr message.
5. Info_type = RESV_CONFIRM 5. Info_type = RESV_CONFIRM
A Confirmation event indicates that a ResvConf A Confirmation event indicates that a ResvConf
message was received. message was received.
Upcall: <Upcall_Proc>( ) -> session-id, Upcall: <Upcall_Proc>( ) -> session-id,
skipping to change at page 63, line 14 skipping to change at page 68, line 14
Although RSVP messages indicating path or resv events may Although RSVP messages indicating path or resv events may
be received periodically, the API should make the be received periodically, the API should make the
corresponding asynchronous upcall to the application only corresponding asynchronous upcall to the application only
on the first occurrence or when the information to be on the first occurrence or when the information to be
reported changes. All error and confirmation events reported changes. All error and confirmation events
should be reported to the application. should be reported to the application.
3.11.2 RSVP/Traffic Control Interface 3.11.2 RSVP/Traffic Control Interface
In an RSVP-capable node, enhanced QoS is achieved by a group of It is difficult to present a generic interface to traffic
inter-related traffic control functions: a packet classifier, control, because the details of establishing a reservation
an admission control module, and a packet scheduler. This depend strongly upon the particular link layer technology in
section describes a generic RSVP interface to traffic control. use on an interface.
Merging of RSVP reservations is required because of multicast
data delivery, which replicates data packets for delivery to
different next-hop nodes. At each such replication point, RSVP
must merge reservation requests from the corresponding next
hops by computing the "maximum" of their flowspecs. At a given
router or host, one or more of the following three replication
locations may be in use.
1. IP layer
IP multicast forwarding performs replication in the IP
layer. In this case, RSVP must merge the reservations
that are in place on the corresponding outgoing interfaces
in order to forward a request upstream.
2. "The network"
Replication might take place downstream from the node,
e.g., in a broadcast LAN, in link-layer switches, or in a
mesh of non-RSVP-capable routers (see Section 2.8). In
these cases, RSVP must merge the reservations from the
different next hops in order to make the reservation on
the single outgoing interface. It must also merge
reservations requests from all outgoing interfaces in
order to forward a request upstream.
3. Link-layer driver
For a multi-access technology, replication may occur in
the link layer driver or interface card. For example,
this case might arise when there is a separate ATM point-
to-point VC towards each next hop. RSVP may need to apply
traffic control independently to each VC, without merging
requests from different next hops.
In general, these complexities do not impact the protocol
processing that is required by RSVP, except to determine
exactly what reservation requests need to be merged. It may be
desirable to organize an RSVP implementation into two parts: a
core that performs link-layer-independent processing, and a
link-layer-dependent adaptation layer. However, we present
here a generic interface that assumes that replication can
occur only at the IP layer or in "the network".
o Make a Reservation o Make a Reservation
Call: TC_AddFlowspec( Interface, TC_Flowspec, Call: TC_AddFlowspec( Interface, TC_Flowspec,
TC_Tspec, Police_Flags ) TC_Tspec, TC_Adspec, Police_Flags )
-> RHandle [, Fwd_Flowspec] -> RHandle [, Fwd_Flowspec]
The TC_Flowspec parameter defines the desired effective The TC_Flowspec parameter defines the desired effective
QoS to admission control; its value is computed as the QoS to admission control; its value is computed as the
maximum over the flowspecs of different next hops (see the maximum over the flowspecs of different next hops (see the
Compare_Flowspecs call below). The TC_Tspec parameter Compare_Flowspecs call below). The TC_Tspec parameter
defines the effective sender Tspec Path_Te (see Section defines the effective sender Tspec Path_Te (see Section
2.2). The Police_Flags parameter carries the three flags 2.2). The TC_Adspec parameter defines the effective
E_Police_Flag, M_Police_Flag, and B_Police_Flag; see Adspec. The Police_Flags parameter carries the three
flags E_Police_Flag, M_Police_Flag, and B_Police_Flag; see
Section 3.8. Section 3.8.
If this call is successful, it establishes a new If this call is successful, it establishes a new
reservation channel corresponding to RHandle; otherwise, reservation channel corresponding to RHandle; otherwise,
it returns an error code. The opaque number RHandle is it returns an error code. The opaque number RHandle is
used by the caller for subsequent references to this used by the caller for subsequent references to this
reservation. If the traffic control service updates the reservation. If the traffic control service updates the
flowspec, the call will also return the updated object as flowspec, the call will also return the updated object as
Fwd_Flowspec. Fwd_Flowspec.
o Modify Reservation o Modify Reservation
Call: TC_ModFlowspec( Interface, RHandle, TC_Flowspec, Call: TC_ModFlowspec( Interface, RHandle, TC_Flowspec,
Sender_Tspec, Police_flags ) TC_Tspec, TC_Adspec, Police_flags )
[ -> Fwd_Flowspec ] [ -> Fwd_Flowspec ]
This call is used to modify an existing reservation. This call is used to modify an existing reservation.
TC_Flowspec is passed to Admission Control; if it is TC_Flowspec is passed to Admission Control; if it is
rejected, the current flowspec is left in force. The rejected, the current flowspec is left in force. The
corresponding filter specs, if any, are not affected. The corresponding filter specs, if any, are not affected. The
other parameters are defined as in TC_AddFlowspec. If the other parameters are defined as in TC_AddFlowspec. If the
service updates the flowspec, the call will also return service updates the flowspec, the call will also return
the updated object as Fwd_Flowspec. the updated object as Fwd_Flowspec.
o Delete Flowspec o Delete Flowspec
Call: TC_DelFlowspec( Interface, RHandle ) Call: TC_DelFlowspec( Interface, RHandle )
skipping to change at page 64, line 46 skipping to change at page 70, line 46
o OPWA Update o OPWA Update
Call: TC_Advertise( Interface, Adspec, Call: TC_Advertise( Interface, Adspec,
Non_RSVP_Hop_flag ) -> New_Adspec Non_RSVP_Hop_flag ) -> New_Adspec
This call is used for OPWA to compute the outgoing This call is used for OPWA to compute the outgoing
advertisement New_Adspec for a specified interface. The advertisement New_Adspec for a specified interface. The
flag bit Non_RSVP_Hop_flag should be set whenever the RSVP flag bit Non_RSVP_Hop_flag should be set whenever the RSVP
process detects that the previous RSVP hop included one or daemon detects that the previous RSVP hop included one or
more non-RSVP-capable routers. TC_Advertise will insert more non-RSVP-capable routers. TC_Advertise will insert
this information into New_Adspec to indicate that a non- this information into New_Adspec to indicate that a non-
integrated-service hop was found; see Section 3.8. integrated-service hop was found; see Section 3.8.
o Preemption Upcall o Preemption Upcall
Upcall: TC_Preempt() -> RHandle, Reason_code Upcall: TC_Preempt() -> RHandle, Reason_code
In order to grant a new reservation request, the admission In order to grant a new reservation request, the admission
control and/or policy control modules may preempt one or control and/or policy control modules may preempt one or
skipping to change at page 65, line 25 skipping to change at page 71, line 24
reservation, passing the RHandle of the reservation and a reservation, passing the RHandle of the reservation and a
sub-code indicating the reason. sub-code indicating the reason.
3.11.3 RSVP/Policy Control Interface 3.11.3 RSVP/Policy Control Interface
This interface will be specified in a future document. This interface will be specified in a future document.
3.11.4 RSVP/Routing Interface 3.11.4 RSVP/Routing Interface
An RSVP implementation needs the following support from the An RSVP implementation needs the following support from the
packet forwarding and routing mechanisms of the node. routing mechanisms of the node.
o Promiscuous Receive Mode for RSVP Messages
Packets received for IP protocol 46 but not addressed to
the node must be diverted to the RSVP program for
processing, without being forwarded. On a router, the
identity of the interface, real or virtual, on which it is
received as well as the IP source address and IP TTL with
which it arrived must also be available to the RSVP
process.
The RSVP messages to be diverted will carry the Router
Alert IP option, which can be used to pick them out of a
high-speed forwarding path. Alternatively, the node can
intercept all protocol 46 packets.
o Route Query o Route Query
To forward Path and PathTear messages, an RSVP process To forward Path and PathTear messages, an RSVP process
must be able to query the routing process(s) for routes. must be able to query the routing process(s) for routes.
Ucast_Route_Query( [ SrcAddress, ] DestAddress, Ucast_Route_Query( [ SrcAddress, ] DestAddress,
Notify_flag ) -> OutInterface Notify_flag ) -> OutInterface
Mcast_Route_Query( [ SrcAddress, ] DestAddress, Mcast_Route_Query( [ SrcAddress, ] DestAddress,
Notify_flag ) Notify_flag )
-> [ IncInterface, ] OutInterface_list -> [ IncInterface, ] OutInterface_list
Depending upon the routing protocol, the query may or may Depending upon the routing protocol, the query may or may
not depend upon SrcAddress, i.e., upon the sender host IP not depend upon SrcAddress, i.e., upon the sender host IP
address, which is also the IP source address of the address, which is also the IP source address of the
message. Here IncInterface is the interface through which message. Here IncInterface is the interface through which
skipping to change at page 66, line 46 skipping to change at page 72, line 32
to the RSVP process that a specified route has changed. to the RSVP process that a specified route has changed.
Ucast_Route_Change( ) -> [ SrcAddress, ] DestAddress, Ucast_Route_Change( ) -> [ SrcAddress, ] DestAddress,
OutInterface OutInterface
Mcast_Route_Change( ) -> [ SrcAddress, ] DestAddress, Mcast_Route_Change( ) -> [ SrcAddress, ] DestAddress,
[ IncInterface, ] OutInterface_list [ IncInterface, ] OutInterface_list
o Outgoing Link Specification
RSVP must be able to force a (multicast) datagram to be
sent on a specific outgoing virtual link, bypassing the
normal routing mechanism. A virtual link may be a real
outgoing link or a multicast tunnel. Outgoing link
specification is necessary to send different versions of
an outgoing Path message on different interfaces. It is
also necessary in some cases to avoid routing loops.
o Source Address Specification
RSVP must be able to specify the IP source address to be
used when sending Path messages.
o Interface List Discovery o Interface List Discovery
RSVP must be able to learn what real and virtual RSVP must be able to learn what real and virtual
interfaces are active, with their IP addresses. interfaces are active, with their IP addresses.
It should be possible to logically disable an interface It should be possible to logically disable an interface
for RSVP. When an interface is disabled for RSVP, a Path for RSVP. When an interface is disabled for RSVP, a Path
message should never be forwarded out that interface, and message should never be forwarded out that interface, and
if an RSVP message is received on that interface, the if an RSVP message is received on that interface, the
message should be silently discarded (perhaps with local message should be silently discarded (perhaps with local
logging). logging).
3.11.5 Service-Dependent Manipulations 3.11.5 RSVP/Packet I/O Interface
An RSVP implementation needs the following support from the
packet I/O and forwarding mechanisms of the node.
o Promiscuous Receive Mode for RSVP Messages
Packets received for IP protocol 46 but not addressed to
the node must be diverted to the RSVP program for
processing, without being forwarded. The RSVP messages to
be diverted in this manner will include Path, PathTear,
and ResvConf messages. These message types carry the
Router Alert IP option, which can be used to pick them out
of a high-speed forwarding path. Alternatively, the node
can intercept all protocol 46 packets.
On a router or multi-homed host, the identity of the
interface (real or virtual) on which a diverted message is
received, as well as the IP source address and IP TTL with
which it arrived, must also be available to the RSVP
process.
o Outgoing Link Specification
RSVP must be able to force a (multicast) datagram to be
sent on a specific outgoing real or virtual link,
bypassing the normal routing mechanism. A virtual link
might be a multicast tunnel, for example. Outgoing link
specification is necessary to send different versions of
an outgoing Path message on different interfaces, and to
avoid routing loops in some cases.
o Source Address and TTL Specification
RSVP must be able to specify the IP source address and IP
TTL to be used when sending Path messages.
o Router Alert
RSVP must be able to cause Path, PathTear, and ResvConf
message to be sent with the Router Alert IP option.
3.11.6 Service-Dependent Manipulations
Flowspecs, Tspecs, and Adspecs are opaque objects to RSVP; Flowspecs, Tspecs, and Adspecs are opaque objects to RSVP;
their contents are defined in service specification documents. their contents are defined in service specification documents.
In order to manipulate these objects, RSVP process must have In order to manipulate these objects, RSVP process must have
available to it the following service-dependent routines. available to it the following service-dependent routines.
o Compare Flowspecs o Compare Flowspecs
Compare_Flowspecs( Flowspec_1, Flowspec_2 ) -> Compare_Flowspecs( Flowspec_1, Flowspec_2 ) ->
skipping to change at page 71, line 31 skipping to change at page 77, line 31
+ + + +
| | | |
+ IPv6 Next/Previous Hop Address + + IPv6 Next/Previous Hop Address +
| | | |
+ + + +
| | | |
+-------------+-------------+-------------+-------------+ +-------------+-------------+-------------+-------------+
| Logical Interface Handle | | Logical Interface Handle |
+-------------+-------------+-------------+-------------+ +-------------+-------------+-------------+-------------+
This object provides the IP address of the interface through which This object carries the IP address of the interface through which the
the last RSVP-knowledgeable hop forwarded this message. The Logical last RSVP-knowledgeable hop forwarded this message. The Logical
Interface Handle is a 32-bit number which may be used to distinguish Interface Handle (LIH) is used to distinguish logical outgoing
logical outgoing interfaces as described in Section 3.3; it should be interfaces, as discussed in Sections 3.3 and 3.9. A node receiving
identically zero if there is no logical interface handle. an LIH in a Path message saves its value and returns it in the HOP
objects of subsequent Resv messages sent to the node that originated
the LIH. The LIH should be identically zero if there is no logical
interface handle.
A.3 INTEGRITY Class A.3 INTEGRITY Class
INTEGRITY class = 4. INTEGRITY class = 4.
See [Baker96]. See [Baker96].
A.4 TIME_VALUES Class A.4 TIME_VALUES Class
TIME_VALUES class = 5. TIME_VALUES class = 5.
skipping to change at page 85, line 50 skipping to change at page 91, line 50
Reservation style conflicts with style(s) of existing reservation Reservation style conflicts with style(s) of existing reservation
state. The Error Value field contains the low-order 16 bits of the state. The Error Value field contains the low-order 16 bits of the
Option Vector of the existing style with which the conflict Option Vector of the existing style with which the conflict
occurred. This Resv message cannot be forwarded. occurred. This Resv message cannot be forwarded.
o Error Code = 06: Unknown reservation style o Error Code = 06: Unknown reservation style
Reservation style is unknown. This Resv message cannot be Reservation style is unknown. This Resv message cannot be
forwarded. forwarded.
o Error Code = 07: Conflicting dest port o Error Code = 07: Conflicting dest ports
Sessions for same destination address and protocol have appeared Sessions for same destination address and protocol have appeared
with both zero and non-zero dest port fields. This Error Code may with both zero and non-zero dest port fields. This Error Code may
appear in a PathErr or ResvErr message. appear in a PathErr or ResvErr message.
o Error Code = 08: Ambiguous path o Error Code = 08: Conflicting sender ports
Sender port appears both zero and non-zero in same session in a
Path message. This Error Code may appear only in a PathErr
message.
o Error Code = 09: Ambiguous Filter Spec
Message contains a filter spec that matches more than one sender, Sender port is both zero and non-zero in Path messages for the same
but an explicit style that requires an exact match. session. This Error Code may appear only in a PathErr message.
o Error Code = 10, 11: (reserved) o Error Code = 09, 10, 11: (reserved)
o Error Code = 12: Service preempted o Error Code = 12: Service preempted
The service request defined by the STYLE object and the flow The service request defined by the STYLE object and the flow
descriptor has been administratively preempted. descriptor has been administratively preempted.
For this Error Code, the 16 bits of the Error Value field are: For this Error Code, the 16 bits of the Error Value field are:
ssur cccc cccc cccc ssur cccc cccc cccc
skipping to change at page 87, line 4 skipping to change at page 92, line 44
message. message.
o Error Code = 14: Unknown object C-Type o Error Code = 14: Unknown object C-Type
Error Value contains 16-bit value composed of (Class-Num, C-Type) Error Value contains 16-bit value composed of (Class-Num, C-Type)
of object. of object.
o Error Code = 15-19: (reserved) o Error Code = 15-19: (reserved)
o Error Code = 20: Reserved for API o Error Code = 20: Reserved for API
Error Value field contains an API error code, for an API error that Error Value field contains an API error code, for an API error that
was detected asynchronously and must be reported via an upcall. was detected asynchronously and must be reported via an upcall.
o Error Code = 21: Traffic Control Error o Error Code = 21: Traffic Control Error
Reservation request was rejected by Traffic Control due to the Traffic Control call failed due to the format or contents of the
format or contents of the request. This Resv message cannot be parameters to the request. The Resv or Path message that caused
forwarded, and continued attempts would be futile. the call cannot be forwarded, and repeating the call would be
futile.
For this Error Code, the 16 bits of the Error Value field are: For this Error Code, the 16 bits of the Error Value field are:
ss00 cccc cccc cccc ss00 cccc cccc cccc
Here the high-order bits ss are as defined under Error Code 01. Here the high-order bits ss are as defined under Error Code 01.
The following globally-defined sub-codes may appear in the low The following globally-defined sub-codes may appear in the low
order 12 bits (cccc cccc cccc) when ss = 00: order 12 bits (cccc cccc cccc) when ss = 00:
skipping to change at page 87, line 39 skipping to change at page 93, line 34
an acceptable replacement. an acceptable replacement.
- Sub-code = 03: Bad Flowspec value - Sub-code = 03: Bad Flowspec value
Malformed or unreasonable request. Malformed or unreasonable request.
- Sub-code = 04: Bad Tspec value - Sub-code = 04: Bad Tspec value
Malformed or unreasonable request. Malformed or unreasonable request.
- Sub-code = 05: Bad Adspec value
Malformed or unreasonable request.
o Error Code = 22: Traffic Control System error o Error Code = 22: Traffic Control System error
A system error was detected and reported by the traffic control A system error was detected and reported by the traffic control
modules. The Error Value will contain a system-specific value modules. The Error Value will contain a system-specific value
giving more information about the error. RSVP is not expected to giving more information about the error. RSVP is not expected to
be able to interpret this value. be able to interpret this value.
o Error Code = 23: RSVP System error o Error Code = 23: RSVP System error
The Error Value field will provide implementation-dependent The Error Value field will provide implementation-dependent
skipping to change at page 88, line 37 skipping to change at page 94, line 37
o Bad RSVP checksum o Bad RSVP checksum
o INTEGRITY failure o INTEGRITY failure
o Illegal RSVP message Type o Illegal RSVP message Type
o Illegal object length: not a multiple of 4, or less than 4. o Illegal object length: not a multiple of 4, or less than 4.
o Next hop/Previous hop address in HOP object is illegal. o Next hop/Previous hop address in HOP object is illegal.
o Conflicting source port: Source port is non-zero in a filter spec o Bad source port: Source port is non-zero in a filter spec or sender
or sender template for a session with destination port zero. template for a session with destination port zero.
o Required object class (specify) missing o Required object class (specify) missing
o Illegal object class (specify) in this message type. o Illegal object class (specify) in this message type.
o Violation of required object order o Violation of required object order
o Flow descriptor count wrong for style o Flow descriptor count wrong for style or message type
o Logical Interface Handle invalid o Logical Interface Handle invalid
o Unknown object Class-Num. o Unknown object Class-Num.
o Destination address of ResvConf message does not match Receiver o Destination address of ResvConf message does not match Receiver
Address in the RESV_CONFIRM object it contains. Address in the RESV_CONFIRM object it contains.
APPENDIX C. UDP Encapsulation APPENDIX C. UDP Encapsulation
skipping to change at page 91, line 14 skipping to change at page 97, line 14
group that is limited to the local connected network. group that is limited to the local connected network.
o Pu and Pu' are two well-known UDP ports for UDP encapsulation of o Pu and Pu' are two well-known UDP ports for UDP encapsulation of
RSVP, with values 1698 and 1699. RSVP, with values 1698 and 1699.
o Ra is the IP address of the router interface `a'. o Ra is the IP address of the router interface `a'.
o Router interface `a' is on the local network connected to Hu and o Router interface `a' is on the local network connected to Hu and
Hr. Hr.
o [RA] indicates that the Router Alert option is sent. o
The following notes apply to these figures: The following notes apply to these figures:
[Note 1] Hu sends a unicast Path message either to the destination [Note 1] Hu sends a unicast Path message either to the destination
address D, if D is local, or to the address Ra of the first-hop address D, if D is local, or to the address Ra of the first-hop
router. Ra is presumably known to the host. router. Ra is presumably known to the host.
[Note 2] Here D is the address of the local interface through which [Note 2] Here D is the address of the local interface through which
the message arrived. the message arrived.
skipping to change at page 91, line 36 skipping to change at page 97, line 36
UNICAST DESTINATION D: UNICAST DESTINATION D:
RSVP RSVP RSVP RSVP
Node Send Receive Node Send Receive
___ _____________ _______________ ___ _____________ _______________
Hu UDP(D/Ra,Pu) UDP(D,Pu) Hu UDP(D/Ra,Pu) UDP(D,Pu)
[Note 1] and UDP(D,Pu') [Note 1] and UDP(D,Pu')
[Note 2] [Note 2]
Hr Raw(D)[RA] Raw() Hr Raw(D) Raw()
and if (UDP) and UDP(D, Pu) and if (UDP) and UDP(D, Pu)
then UDP(D,Pu') [Note 2] then UDP(D,Pu') [Note 2]
(Ignore Pu') (Ignore Pu')
R (Interface a): R (Interface a):
Raw(D)[RA] Raw() Raw(D) Raw()
and if (UDP) and UDP(Ra, Pu) and if (UDP) and UDP(Ra, Pu)
then UDP(D,Pu') (Ignore Pu') then UDP(D,Pu') (Ignore Pu')
Figure 13: UDP Encapsulation Rules for Unicast Path and Resv Messages Figure 13: UDP Encapsulation Rules for Unicast Path and Resv Messages
MULTICAST DESTINATION D: MULTICAST DESTINATION D:
RSVP RSVP RSVP RSVP
Node Send Receive Node Send Receive
___ _____________ _________________ ___ _____________ _________________
Hu UDP(G*,Pu) UDP(D,Pu') Hu UDP(G*,Pu) UDP(D,Pu')
[Note 3] [Note 3]
and UDP(G*,Pu) and UDP(G*,Pu)
Hr Raw(D,Tr)[RA] Raw() Hr Raw(D,Tr) Raw()
and if (UDP) and UDP(G*,Pu) and if (UDP) and UDP(G*,Pu)
then UDP(D,Pu') (Ignore Pu') then UDP(D,Pu') (Ignore Pu')
R (Interface a): R (Interface a):
Raw(D,Tr)[RA] Raw() Raw(D,Tr) Raw()
and if (UDP) and UDP(G*,Pu) and if (UDP) and UDP(G*,Pu)
then UDP(D,Pu') (Ignore Pu') then UDP(D,Pu') (Ignore Pu')
Figure 14: UDP Encapsulation Rules for Multicast Path Messages Figure 14: UDP Encapsulation Rules for Multicast Path Messages
A router may determine if its interface X needs UDP encapsulation by A router may determine if its interface X needs UDP encapsulation by
listening for UDP-encapsulated Path messages that were sent to either G* listening for UDP-encapsulated Path messages that were sent to either G*
(multicast D) or to the address of interface X (unicast D). There is (multicast D) or to the address of interface X (unicast D). There is
one failure mode for this scheme: if no host on the connected network one failure mode for this scheme: if no host on the connected network
acts as an RSVP sender, there will be no Path messages to trigger UDP acts as an RSVP sender, there will be no Path messages to trigger UDP
skipping to change at page 96, line 6 skipping to change at page 102, line 6
o Flow descriptor o Flow descriptor
The combination of a flowspec and a filterspec. The combination of a flowspec and a filterspec.
o Flowspec o Flowspec
Defines the QoS to be provided for a flow. The flowspec is used to Defines the QoS to be provided for a flow. The flowspec is used to
set parameters in the packet scheduling function to provide the set parameters in the packet scheduling function to provide the
requested quality of service. A flowspec is carried in a FLOWSPEC requested quality of service. A flowspec is carried in a FLOWSPEC
object. The flowspec format is opaque to RSVP, and is defined by object. The flowspec format is opaque to RSVP and is defined by
the Integrated Services Working Group. the Integrated Services Working Group.
o Generalized destination port o Generalized destination port
The component of a session definition that provides further The component of a session definition that provides further
transport or application protocol layer demultiplexing beyond transport or application protocol layer demultiplexing beyond
DestAddress. See "session". DestAddress. See "session".
o Generalized source port o Generalized source port
skipping to change at page 96, line 46 skipping to change at page 102, line 46
o Killer reservation problem o Killer reservation problem
The killer reservation problem describes a case where a receiver The killer reservation problem describes a case where a receiver
attempting and failing to make a large QoS reservation prevents attempting and failing to make a large QoS reservation prevents
smaller QoS reservations from being established. See Sections 2.5 smaller QoS reservations from being established. See Sections 2.5
and 3.5 for more information. and 3.5 for more information.
o LIH o LIH
The LIH (Logical Interface Handle) is used to help deal with non- The LIH (Logical Interface Handle) is used to help deal with non-
RSVP clouds. See Section 2.8 for more information. RSVP clouds. See Section 2.9 for more information.
o Local repair o Local repair
Allows RSVP to rapidly adapt its reservations to changes in Allows RSVP to rapidly adapt its reservations to changes in
routing. See Section 3.6 for more information. routing. See Section 3.6 for more information.
o LPM o LPM
Local Policy Module. the function that exerts policy control. Local Policy Module. the function that exerts policy control.
skipping to change at page 97, line 46 skipping to change at page 103, line 46
messages. messages.
o Node o Node
A router or host system. A router or host system.
o Non-RSVP clouds o Non-RSVP clouds
Groups of hosts and routers that do not run RSVP. Dealing with Groups of hosts and routers that do not run RSVP. Dealing with
nodes that do not support RSVP is important for backwards nodes that do not support RSVP is important for backwards
compatibility. See section 2.8. compatibility. See section 2.9.
o Object o Object
An element of an RSVP control message; a type, length, value An element of an RSVP control message; a type, length, value
triplet. triplet.
o OPWA o OPWA
Abbreviation for "One Pass With Advertising". Describes a Abbreviation for "One Pass With Advertising". Describes a
reservation setup model in which (Path) messages sent downstream reservation setup model in which (Path) messages sent downstream
skipping to change at page 100, line 15 skipping to change at page 106, line 15
request has failed or an active reservation has been preempted. request has failed or an active reservation has been preempted.
o ResvTear o ResvTear
Reservation Teardown RSVP control message, deletes reservation Reservation Teardown RSVP control message, deletes reservation
state. state.
o Rspec o Rspec
The component of a flowspec that defines a desired QoS. The Rspec The component of a flowspec that defines a desired QoS. The Rspec
format is opaque to RSVP, and is defined by the Integrated Services format is opaque to RSVP and is defined by the Integrated Services
Working Group of the IETF. Working Group of the IETF.
o RSVP_HOP o RSVP_HOP
Object of an RSVP control message that carries the PHOP or NHOP Object of an RSVP control message that carries the PHOP or NHOP
address of the source of the message. address of the source of the message.
o Scope o Scope
The set of sender hosts to which a given reservation request is to The set of sender hosts to which a given reservation request is to
skipping to change at page 102, line 29 skipping to change at page 108, line 29
selection and shared attributes. selection and shared attributes.
o Wildcard sender selection o Wildcard sender selection
A (reservation) style attribute: traffic from any sender to a A (reservation) style attribute: traffic from any sender to a
specific session receives the same QoS. See also "explicit sender specific session receives the same QoS. See also "explicit sender
selection". selection".
References References
[Baker96] Baker, F., "RSVP Cryptographic Authentication", Work in [Baker96] Baker, F., "RSVP Cryptographic Authentication", Internet
Progress, February 1996. Draft <draft-ietf-rsvp-md5-02.txt>, June 1996.
[ISInt93] Braden, R., Clark, D., and S. Shenker, "Integrated Services [ISInt93] Braden, R., Clark, D., and S. Shenker, "Integrated Services
in the Internet Architecture: an Overview", RFC 1633, ISI, MIT, and in the Internet Architecture: an Overview", RFC 1633, ISI, MIT, and
PARC, June 1994. PARC, June 1994.
[FJ94] Floyd, S. and V. Jacobson, "Synchronization of Periodic Routing [FJ94] Floyd, S. and V. Jacobson, "Synchronization of Periodic Routing
Messages", IEEE/ACM Transactions on Networking, Vol. 2, No. 2, Messages", IEEE/ACM Transactions on Networking, Vol. 2, No. 2,
April, 1994. April, 1994.
[IPSEC96] Berger, L. and T. O'Malley, "RSVP Extensions for IPSEC IPv4 [IPSEC96] Berger, L. and T. O'Malley, "RSVP Extensions for IPSEC Data
Data Flows", Internet Draft, <draft-ietf-rsvp-ext-04.txt>, Flows", Internet Draft, <draft-ietf-rsvp-ext-07.txt>, Fore Systems
Integrated Services Working Group, June 1996. and BBN, March 1997.
[Katz95] Katz, D., "IP Router Alert Option", Work in Progress, November
1995.
[ISdata96] Wroclawski, J., "Data Element Naming and Encoding for [Katz97] Katz, D., "IP Router Alert Option", RFC 2113, cisco Systems,
Integrated Services Messages", <draft-ietf-intserv-data-encoding- February 1997.
02.txt>, Integrated Services Working Group, July 1996.
[ISrsvp96] Wroclawski, J., "The Use of RSVP with Integrated Services", [ISrsvp96] Wroclawski, J., "The Use of RSVP with Integrated Services",
<draft-ietf-intserv-rsvp-use.00.txt>, Integrated Services Working <draft-ietf-intserv-rsvp-use.01.txt>, MIT, October 1996.
Group, July 1996.
[ISTempl96] Shenker, S. and J. Wroclawski, "Network Element QoS Control [PolArch96] Herzog, S., "Policy Control for RSVP: Architectural
Service Specification Template", <draft-ietf-intserv-serv-template- Overview". <draft-ietf-rsvp-policy-arch-01.txt>, IBM, November
03.txt>, Integrated Services Working Group, July 1996. 1996.
[OPWA95] Shenker, S. and L. Breslau, "Two Issues in Reservation [OPWA95] Shenker, S. and L. Breslau, "Two Issues in Reservation
Establishment", Proc. ACM SIGCOMM '95, Cambridge, MA, August 1995. Establishment", Proc. ACM SIGCOMM '95, Cambridge, MA, August 1995.
[RSVP93] Zhang, L., Deering, S., Estrin, D., Shenker, S., and D. [RSVP93] Zhang, L., Deering, S., Estrin, D., Shenker, S., and D.
Zappala, "RSVP: A New Resource ReSerVation Protocol", IEEE Network, Zappala, "RSVP: A New Resource ReSerVation Protocol", IEEE Network,
September 1993. September 1993.
Security Considerations Security Considerations
See Section 2.7. See Section 2.8.
Authors' Addresses Authors' Addresses
Bob Braden Bob Braden
USC Information Sciences Institute USC Information Sciences Institute
4676 Admiralty Way 4676 Admiralty Way
Marina del Rey, CA 90292 Marina del Rey, CA 90292
Phone: (310) 822-1511 Phone: (310) 822-1511
EMail: Braden@ISI.EDU EMail: Braden@ISI.EDU
skipping to change at page 104, line 4 skipping to change at page 109, line 35
Phone: (310) 822-1511 Phone: (310) 822-1511
EMail: Braden@ISI.EDU EMail: Braden@ISI.EDU
Lixia Zhang Lixia Zhang
Xerox Palo Alto Research Center Xerox Palo Alto Research Center
3333 Coyote Hill Road 3333 Coyote Hill Road
Palo Alto, CA 94304 Palo Alto, CA 94304
Phone: (415) 812-4415 Phone: (415) 812-4415
EMail: Lixia@PARC.XEROX.COM EMail: Lixia@PARC.XEROX.COM
Steve Berson Steve Berson
USC Information Sciences Institute USC Information Sciences Institute
4676 Admiralty Way 4676 Admiralty Way
Marina del Rey, CA 90292 Marina del Rey, CA 90292
Phone: (310) 822-1511 Phone: (310) 822-1511
EMail: Berson@ISI.EDU EMail: Berson@ISI.EDU
Shai Herzog Shai Herzog
USC Information Sciences Institute IBM T. J. Watson Research Center
4676 Admiralty Way P.O Box 704
Marina del Rey, CA 90292 Yorktown Heights, NY 10598
Phone: (310) 822 1511 Phone: (914) 784-6059
EMail: Herzog@ISI.EDU EMail: Herzog@WATSON.IBM.COM
Sugih Jamin Sugih Jamin
Computer Science Department University of Michigan
University of Southern California CSE/EECS
Los Angeles, CA 90089-0871 1301 Beal Ave.
Ann Arbor, MI 48109-2122
Phone: (213) 740-6578 Phone: (313) 763-1583
EMail: jamin@catarina.usc.edu
EMail: jamin@EECS.UMICH.EDU
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/