Index Index for
Section 7
Index Alphabetical
listing for R
Bottom of page 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 Index for
Section 7
Index Alphabetical
listing for R
Top of page Top of
page