 |
Index for Section 7 |
|
 |
Alphabetical listing for R |
|
 |
Bottom of page |
|
RSVP(7)
NAME
RSVP, rsvp - Resource ReSerVation Protocol general information
DESCRIPTION
Resource ReSerVation Protocol, also known as RSVP, is an Internet protocol
that enables Internet applications to request enhanced quality-of-service
(QoS). The Internet application uses the RSVP Application Programming
Interface (RAPI) routines to make the QoS request. The RSVP control
program, rsvpd, uses the RSVP protocol to propagate the QoS request through
routers along the path or paths for the data flow. Each router accepts or
rejects the request depending on its available resources. If the request
fails, rsvpd informs the application using RAPI.
RSVP Model
RSVP performs the signaling necessary to make a resource reservation for a
simplex data flow sent to a unicast or multicast destination address.
Although RSVP distinguishes senders from receivers, an application can act
as both.
RSVP assigns a QoS to a specific multipoint-to-multipoint data flow called
a session. A session is defined by a transport protocol, IP destination
address, and a destination port. In order to receive data packets for a
particular multicast session, the host must join the IP multicast group by
using the setsockopt call with the IP_ADD_MEMBERSHIP option (IPv4) or
IPV6_JOIN_GROUP option (IPv6).
A sender, or data source, is defined by an IP source address and a source
port. A session can have multiple senders and, if the destination is a
multicast address, multiple receivers. TCP/UDP port numbers are used by
RSVP for defining sessions and senders.
Under RSVP, data receivers make the QoS requests. A QoS request contains a
flowspec and a filter spec. The flowspec includes an Rspec, which defines
the desired QoS and is used to control the packet scheduling mechanism in
the router or host, and a Tspec, which defines the traffic that the
receiver expects. The filter spec controls packet classification to
determine which sender's data packets receive the corresponding QoS.
The reservation style reservation parameter controls how reservations from
different receivers are shared in the Internet. See RFC 2205 for
information on reservation styles.
RSVP API
The RSVP API (RAPI) consists of the following routines:
rapi_session
An application calls this routine to define an API session for sending
or receiving, or both, a single simplex data flow.
rapi_sender
An application calls this routine to register as a data sender.
rapi_reserve
An application calls this routine to make a QoS reservation as a data
receiver.
rapi_release
An application calls this routine to close an API session and delete
all resource reservations.
rapi_getfd
An application calls this routine to obtain the file descriptor
associated with the UNIX socket connected to rsvpd.
rapi_dispatch
An application calls this routine when a read event is signaled on the
file descriptor that was obtained by a successful call to rapi_getfd.
rapi_version
An application calls this routine to obtain the version of RAPI on the
system.
rapi_event_rtn_t
The API calls this routine to invoke a procedure whose address was
specified in a call to rapi_session.
A single API session, defined by a single call to rapi_session, can have
only one sender at a time. More than one API session can be established
for the same RSVP session. For example, if an application sends multiple
UDP data flows, distinguished by source port, the application calls
rapi_session and rapi_sender separately for each of the flows.
The rapi_session routine allows the application to specify an upcall
(callback) routine that is invoked to signal RSVP state change and error
events. See rapi_event_rtn_t(3) for a description of the upcalls.
Upcall routines are invoked indirectly and synchronously by the application
in the following manner:
· Application issues a call to the rapi_getfd() routine to learn the
file descriptor of the UNIX socket used by the API.
· The application detects read events on this file descriptor, either
passing it directly in a select call or passing it to the notifier of
another library.
· When a read event on the file descriptor is signaled, the application
calls rapi_dispatch. This call makes the API execute the upcall
routine, if defined.
The rapi_sender and rapi_reserve calls can be repeated with different
parameters at different times to modify the state at any time, or can be
issued with null parameters to retract the correcponding registration.
RAPI Objects
Every RAPI object consists of two words: the total length of the object (in
bytes) and the object type. An empty object consists of a header with type
zero and a length of 8 bytes.
The RAPI defines the following RAPI objects and their respective formats:
· Flowspec
-- RAPI_FLOWSTYPE_Simplified
A simple list of parameters needed for either Guaranteed or
Controlled Load service, using the service type QOS_GUARANTEED or
QOS_CNTR_LOAD, respectively. The RAPI client library routines
map this format to and from an appropriate Integrated Services
data structure.
-- RAPI_FLOWSTYPE_Intserv
A fully formatted Integrated Services flowspec data structure.
In an upcall, a flowspec is delivered in simplified format by default.
However, if the RAPI_USE_INTSERV flag is set in the rapi_session()
call, the IntServ format is used in upcalls.
· Filter spec and sender template
-- RAPI_FILTERFORM_BASE
A socket address structure that defines the IP address and port.
-- RAPI_FILTERFORM_GPI
An address structure that defines the IP address and 32-bit
Gereralized Port Identifier. This is recommended for all IP
Security (IPSEC) applications.
· sender Tspec
-- RAPI_TSPECTYPE_Simplified
A simple list of parameters with the service type QOS_TSPEC. The
RAPI client library routines map this format to and from an
appropriate Integrated Services data structure.
-- RAPI_TSPECTYPE_Intserv A fully formatted Integrated Services
Tspec data structure.
In an upcall, a sender Tspec is delivered in simplified format by
default. However, if the RAPI_USE_INTSERV flag is set in the
rapi_session() call, the IntServ format is used in upcalls.
· Adspec
-- RAPI_ADSTYPE_Simplified
A simple list of Adspec parameters for all possible services.
The RAPI client library routines map this format to and from an
appropriate Integrated Services data structure.
-- RAPI_ADSTYPE_Intserv A fully formatted Integrated Services Tspec
data structure.
In an upcall, an Adspec is delivered in simplified format by default.
However, if the RAPI_USE_INTSERV flag is set in the rapi_session()
call, the IntServ format is used in upcalls.
See <rapi_lib.h> and <rsvp_intserv.h> for additional information on RAPI
object formats. See the Resource ReSerVation Protocol API (RAPI) technical
standard by The Open Group for information on Integrated Services data
structures.
SEE ALSO
Commands: iftcntl(8), rsvpd(8), rsvpstat(8)
Routines: rapi_dispatch(3), rapi_event_rtn_t(3), rapi_getfd(3),
rapi_release(3), rapi_reserve(3), rapi_sender(3), rapi_session(3),
rapi_version(3)
RFC 2205, Resource ReSerVation Protocol (RSVP) Version 1 Functional
Specification
RFC 2206, RSVP Management Information Base using SMIv2
RFC 2207, RSVP Extensions for IPSEC Data Flows
RFC 2208, Resource ReSerVation Protocol (RSVP) Version 1 Applicability
Statement Some Guidelines on Deployment
RFC 2209, Resource ReSerVation Protocol (RSVP) Version 1 Message Processing
Rules
 |
Index for Section 7 |
|
 |
Alphabetical listing for R |
|
 |
Top of page |
|